svenbarth
f27ce0b159
Rework the way the method bodies for specializations are generated: instead of walking the global and local symboltable all pending specializations are kept in a list of the current module which is (for now) walked at the end of a unit/program to generate the method bodies as before.
...
fmodule.pas, tmodule:
+ new list pendingspecializations which keeps track of all pending specializations of the current module
psub.pas:
* move generate_specialization_procs and related routines to pgenutil
+ new procedure read_proc_body to read a routine's body, cause generate_specialization_procs needs it (unlike the already existing overload in the implementation section, this one can only handle bodies of non-nested routines)
pgenutil.pas:
* generate_specialization_phase2: add the newly specialized generic to the current module's pending specializations
* generate_specialization_procs: reworked so that it uses the new pendingspecializations field instead of walking the global and local symboltable of the current unit
pmodules.pas:
+ add pgenutil to uses due to the moved generate_specialization_procs
+ added test
git-svn-id: trunk@33826 -
2016-05-26 18:56:16 +00:00
svenbarth
2f6a1c01ba
pgenutil.pas, generate_specialization_phase2:
...
* ensure that the owner of the newly greated def is set to the symtable we specialize in (happens with generic routines)
git-svn-id: trunk@33825 -
2016-05-26 18:37:37 +00:00
svenbarth
f8def6dbc9
Store and use procedure directives of generic routines.
...
scanner.pas, tscannerfile:
+ new method is_recording_tokens to check whether token recording is already active
pdecsub.pas, parse_proc_directives:
* record tokens into the declaration token buffer of a generic routine if necessary
pgenutil.pas, generate_specialization_phase2:
* process the procedure directives that had been recorded with the generic routine
git-svn-id: trunk@33824 -
2016-05-26 18:35:08 +00:00
Károly Balogh
a2a630e9c5
m68k: fixed and enabled hardware mod/div support for coldfire, also it no longer depends on cpu family but cpu capability
...
git-svn-id: trunk@33821 -
2016-05-26 16:54:39 +00:00
Károly Balogh
931c14f0cf
m68k: in second_int_to_bool, don't call TST after OR, since OR sets the flags as required already
...
git-svn-id: trunk@33819 -
2016-05-26 14:48:56 +00:00
Károly Balogh
766eeffc69
m68k: build fix. (changes before commit is a bad idea...)
...
git-svn-id: trunk@33817 -
2016-05-26 14:47:16 +00:00
Károly Balogh
2bfa1b995a
m68k: added division/remainder cpu capabilities
...
git-svn-id: trunk@33816 -
2016-05-26 14:41:00 +00:00
Károly Balogh
6706445cb4
m68k: enable hardware divisions for all '020+, not only 020 itself
...
git-svn-id: trunk@33810 -
2016-05-26 10:38:08 +00:00
Károly Balogh
aa63aa95bb
m68k: a bunch of '000 related fixes and cleanups. generated source now compiles for '000 again, which was broken due to recent improvements conflicting with limitations of the original '000
...
git-svn-id: trunk@33809 -
2016-05-26 10:33:29 +00:00
Károly Balogh
62e0eab89b
m68k: also handle large register save/restore offsets on 68000
...
git-svn-id: trunk@33808 -
2016-05-26 00:04:55 +00:00
Károly Balogh
0dd5beb064
m68k: more unaligned access support in the base cg, also enabled the code
...
git-svn-id: trunk@33807 -
2016-05-26 00:03:25 +00:00
Károly Balogh
b6d845e732
m68k: needs_unaligned helper. returns true when the given reference with the given size needs to be loaded with unaligned support on the given cpu
...
git-svn-id: trunk@33806 -
2016-05-25 23:56:24 +00:00
Károly Balogh
391a79aebf
m68k: a bunch of tweaks and improvements to assembly functions. higher move() speed on coldfire, disabled fillword implementation on CPUs not supporting unaligned access
...
git-svn-id: trunk@33805 -
2016-05-25 22:44:18 +00:00
Károly Balogh
7fbae10515
m68k: added more cpu capabilities (unaligned access, long addressing, various MULx), and the 68060 cpu target
...
git-svn-id: trunk@33804 -
2016-05-25 22:14:58 +00:00
michael
cf6f3b7024
* Split autostore in autoconf/autosession
...
git-svn-id: trunk@33791 -
2016-05-25 15:49:35 +00:00
Károly Balogh
a82196bf84
* now Amiga and MorphOS defines tf_requires_proper_alignment. for 68k Amiga it's required for 68000, on others it's not mandatory but beneficial
...
git-svn-id: trunk@33788 -
2016-05-25 09:54:01 +00:00
nickysn
c78f406d99
+ implemented proper stack checking for the i8086
...
git-svn-id: trunk@33787 -
2016-05-24 23:57:47 +00:00
florian
9daa4bd48d
* always generate unaligned pointer entries (so .4bytes instead of .long is generated) in dwarf debugging info
...
git-svn-id: trunk@33782 -
2016-05-24 18:58:01 +00:00
svenbarth
a35627628c
Fix potential access violations when compiling units with helper types and/or generics
...
fmodule.pas, tmodule:
* end_of_parsing: free neither extendeddefs nor genericdummysyms as both might be used by the def-aware symtablestack even after parsing the unit is done
git-svn-id: trunk@33780 -
2016-05-24 14:32:04 +00:00
michael
a1e5c122f2
* Some updates from Graeme Geldenhuys
...
- pdf: updates demo with a landscape page.
- pdf: Intenal Coordinate Matrix was not always adjusted when needed.
eg: When the Page.Orientation was changed, PaperType was changed and so on.
- pdf: Extra sanity check to prevent a possible AV.
- TTF: new FixPathDelimiters() to fix font search paths.
git-svn-id: trunk@33779 -
2016-05-24 14:29:17 +00:00
michael
73ab7d877a
* Fix 30181: correctly finalize fontmanager
...
git-svn-id: trunk@33778 -
2016-05-24 12:43:46 +00:00
michael
300db70983
* Updated from latest service descriptions
...
git-svn-id: trunk@33777 -
2016-05-24 08:35:58 +00:00
michael
4d671cd49d
* Fix bug #30174 , by default allow additional properties
...
git-svn-id: trunk@33776 -
2016-05-24 08:33:45 +00:00
michael
1d54f9f3e7
* Improved code generator to take care of some corner cases (duplicate identifiers, linefeeds in descriptions)
...
git-svn-id: trunk@33775 -
2016-05-24 08:32:58 +00:00
michael
2121a3ae39
* Improved code generator to take care of some corner cases
...
git-svn-id: trunk@33774 -
2016-05-24 08:32:10 +00:00
pierre
345361beef
Revert commit 33771 and directly replace cpu8086 by cpui8086 which is always defined by ppc8086 compiler
...
git-svn-id: trunk@33773 -
2016-05-24 06:52:17 +00:00
michael
904b28bde2
* Small patch from Graeme Geldenhuys to make coding style more coherent (bug id 30114)
...
git-svn-id: trunk@33772 -
2016-05-24 06:49:18 +00:00
pierre
ba509152b8
Also define CPUSMALL macro if CPUI8086 is defined
...
git-svn-id: trunk@33771 -
2016-05-23 21:07:11 +00:00
pierre
6646a0d29f
Correct tseg.pp test for i8086 CPPU for which seg/cseg/dseg/sseg should NOT return zero values
...
git-svn-id: trunk@33770 -
2016-05-23 20:58:37 +00:00
pierre
74b3481918
Use small number for Blocks constant for i8086 CPU also
...
git-svn-id: trunk@33769 -
2016-05-23 20:51:07 +00:00
nickysn
0a9bcf0369
+ added the new test/units/windows directory to the list of dirs, searched for tests by the makefile
...
git-svn-id: trunk@33763 -
2016-05-23 17:22:07 +00:00
pierre
4ff01e1f41
Modify tnodeutils.insertbsssym method to generate indirect symbol only if flags contains tf_supports_packages
...
git-svn-id: trunk@33762 -
2016-05-23 15:31:18 +00:00
lacak
33d48897d7
fcl-db: sqldb: when parsing SQL end of /* comment */ is not detected if ends with **/. Bug #30171
...
git-svn-id: trunk@33761 -
2016-05-23 07:25:21 +00:00
florian
57f93ed40d
* correctly generate accesses to jump tables if it contains negative entries, resolves issue #30119
...
git-svn-id: trunk@33760 -
2016-05-22 21:02:49 +00:00
Károly Balogh
963c4aa1f8
* fixed the sign handling of i386 fpc_div_int64 helper (Mantis 30166)
...
git-svn-id: trunk@33753 -
2016-05-22 16:57:30 +00:00
nickysn
bffe9480f4
+ added the winapi functions, structures and constants for raw keyboard and mouse input
...
git-svn-id: trunk@33746 -
2016-05-22 01:59:27 +00:00
Károly Balogh
e2b3c6389f
fcl-net: fixed the build after r33728 on everything which is non-Unix and non-Windows...
...
git-svn-id: trunk@33745 -
2016-05-22 01:02:48 +00:00
Károly Balogh
5acd04d284
m68k: some experimental code for the unaligned access support on plain 68000. work in progress, inactive code for now
...
git-svn-id: trunk@33744 -
2016-05-22 00:32:41 +00:00
Károly Balogh
a6ee4a2ded
m68k: cleaned up second_addordinal and included OP_SUB in the common codepath
...
git-svn-id: trunk@33743 -
2016-05-21 18:43:26 +00:00
michael
07073c09a6
* Added Proxy support: bug ID #26270
...
git-svn-id: trunk@33742 -
2016-05-21 18:19:38 +00:00
Károly Balogh
47621f81cd
m68k: implemented second_addordinal; for the most trivial cases. this allows the right node to be a reference. falls back to the generic implementation for nontrivial cases.
...
git-svn-id: trunk@33741 -
2016-05-21 16:46:12 +00:00
nickysn
dd9ea88b79
* TObjSection.MemPos reverted back to qword after r33692, since it breaks the
...
i8086-msdos internal linker for .exe files larger than 64kb (thanks pierre for
investigating this issue)
git-svn-id: trunk@33740 -
2016-05-21 16:45:36 +00:00
Károly Balogh
786aecabeb
m68k: improved a_op_reg_ref, to support more operations. implemented a_op_ref_reg
...
git-svn-id: trunk@33739 -
2016-05-21 16:41:13 +00:00
Jonas Maebe
0e9d232d2a
* fixed indentation in previous commit
...
git-svn-id: trunk@33738 -
2016-05-21 14:51:24 +00:00
Jonas Maebe
fe5cf94e10
* moved generation of initialisation/finalisation nodes from the code
...
generator to psub and ngenutil
o removed dependence of hlcgobj on pass_1
git-svn-id: trunk@33737 -
2016-05-21 14:48:34 +00:00
Jonas Maebe
60d75fa97e
* fixed (harmless) range error in 64 bit BSD-based RTLs
...
git-svn-id: trunk@33736 -
2016-05-21 14:48:32 +00:00
michael
bd06efefa2
* Support for AcceptIdleTimeout, correct termination when running threaded (bug ID 29879)
...
git-svn-id: trunk@33735 -
2016-05-21 10:59:09 +00:00
michael
c05373bfe1
* Do not raise error if a connection was created during accept, silently drop the connection
...
git-svn-id: trunk@33734 -
2016-05-21 10:58:08 +00:00
Jonas Maebe
46166c89cb
- removed no longer used and unsafe ttemprefnode.create_offset()
...
functionality
git-svn-id: trunk@33733 -
2016-05-21 10:28:28 +00:00
Jonas Maebe
712e4f90d6
- removed (unnecessary) use of ctemprefnode.create_offset() while parsing
...
array constructors
git-svn-id: trunk@33732 -
2016-05-21 10:28:25 +00:00