peter
fb81b7ebbb
* old trgobj moved to x86/rgcpu and renamed to trgx86fpu
...
* tregisteralloctor renamed to trgobj
* removed rgobj from a lot of units
* moved location_* and reference_* to cgobj
* first things for mmx register allocation
2003-10-10 17:48:13 +00:00
daniel
b2343f4b16
* Register allocator splitted, ans abstract now
2003-10-09 21:31:37 +00:00
peter
70fe77ca7c
* procinfo unit contains tprocinfo
...
* cginfo renamed to cgbase
* moved cgmessage to verbose
* fixed ppc and sparc compiles
2003-10-01 20:34:48 +00:00
peter
6a8d5eb25d
* NEWRA branch merged
2003-09-03 15:55:00 +00:00
daniel
cdb8a15f4a
* Some more R_NO changes
...
* Preventive code to loadref added
2003-08-20 20:29:06 +00:00
Jonas Maebe
af784cfb1e
* final (?) fix to in-code
2003-07-23 11:02:53 +00:00
Jonas Maebe
db3bd69a18
* fixed bug in tcginnode.pass_2
2003-07-20 18:03:27 +00:00
Jonas Maebe
a82c9531b7
* fixed register leak
...
* changed a couple of case-statements to location_force_reg()
2003-07-06 14:28:04 +00:00
Jonas Maebe
7ca760912b
* tcginnode.pass_2 doesn't call a helper anymore in any case
...
* fixed ungetregisterfpu compilation problems
2003-06-12 22:09:54 +00:00
Jonas Maebe
7081853478
- disabled gentreejmp for now, it expects that the case labels are
...
ordered as a perfectly balanced tree, while they are often a linked
list -> generates extremely bad code
2003-06-08 16:03:22 +00:00
Jonas Maebe
edb2179730
+ added freeintparaloc
...
* ppc get/freeintparaloc now check whether the parameter regs are
properly allocated/deallocated (and get an extra list para)
* ppc a_call_* now internalerrors if pi_do_call is not yet set
* fixed lot of missing pi_do_call's
2003-06-07 18:57:04 +00:00
peter
d91c880148
* cg.a_load_* get a from and to size specifier
...
* makeregsize only accepts newregister
* i386 uses generic tcgnotnode,tcgunaryminus
2003-06-03 21:11:09 +00:00
peter
230a14ff68
* getregisterfpu size parameter added
...
* op_const_reg size parameter added
* sparc updates
2003-06-01 21:38:06 +00:00
peter
414bd5fa22
* more sparc cleanup
...
* accumulator removed, splitted in function_return_reg (called) and
function_result_reg (caller)
2003-05-30 23:57:08 +00:00
Jonas Maebe
e7e2cfe9a4
* a_load_loc_reg now has an extra size parameter for the destination
...
register (properly fixes what I worked around in revision 1.106 of
ncgutil.pas)
2003-05-30 23:49:18 +00:00
Jonas Maebe
1712878279
* fixed tcginnode endian bug again, but correcty this time :)
2003-05-24 19:48:49 +00:00
florian
89c93b12c4
* fixed sparc compiler compilation
2003-05-23 21:10:50 +00:00
Jonas Maebe
25435fe881
* corrected fix for endian differences in tcginnode
2003-05-23 19:52:28 +00:00
Jonas Maebe
4aadabdf80
* fixed size setting of result location of innodes
2003-05-17 19:17:35 +00:00
Jonas Maebe
a3a3311e41
* fixed endian issue in inlined in-test for smallsets
...
* pass the address of normalsets to fpc_set_in_set_byte instead of the
contents of the first 4 bytes
2003-05-01 12:26:50 +00:00
daniel
6aa01a99a9
* Ifdefs around a lot of calls to cleartempgen
...
* Fixed registers that are allocated but not freed in several nodes
* Tweak to register allocator to cause less spills
* 8-bit registers now interfere with esi,edi and ebp
Compiler can now compile rtl successfully when using new register
allocator
2003-04-25 08:25:26 +00:00
peter
47489f2376
* firstpass uses expectloc
...
* checks if there are differences between the expectloc and
location.loc from secondpass in EXTDEBUG
2003-04-22 23:50:22 +00:00
peter
9ed2ce8c12
* removed some notes/hints
2003-04-22 14:33:38 +00:00
florian
92a29d7e82
* fixed generic in operator code
...
+ added debug code to check if all scratch registers are released
2003-04-22 12:45:58 +00:00
daniel
25059e21b6
+ Implemented the actual register allocator
...
+ Scratch registers unavailable when new register allocator used
+ maybe_save/maybe_restore unavailable when new register allocator used
2003-04-22 10:09:34 +00:00
daniel
86bcea6ef5
* Code generator converted to new register notation
...
- Horribily outdated todo.txt removed
2003-02-19 22:00:14 +00:00
daniel
55a161bbbf
* Tregister changed into a record
2003-01-08 18:43:56 +00:00
peter
34e8266af4
* case statement inlining added
...
* fixed inlining of write()
* switched statementnode left and right parts so the statements are
processed in the correct order when getcopy is used. This is
required for tempnodes
2002-11-27 02:37:12 +00:00
peter
f3fc72095f
* splitted defbase in defutil,symutil,defcmp
...
* merged isconvertable and is_equal into compare_defs(_ext)
* made operator search faster by walking the list only once
2002-11-25 17:43:16 +00:00
carl
67486c96c3
* fixes for Delphi 6 compilation
...
(warning : Some features do not work under Delphi)
2002-10-05 12:43:23 +00:00
carl
801d6914e8
* range check error fixes
2002-10-03 21:31:10 +00:00
Jonas Maebe
a15d8cfe39
* a_load_reg_reg() now has two size parameters: source and dest. This
...
allows some optimizations on architectures that don't encode the
register size in the register name.
2002-09-17 18:54:01 +00:00
peter
6c06c346d8
* fix last optimization in genlinearlist, detected by bug tw1066
...
* use generic casenode.pass2 routine and override genlinearlist
* add jumptable support to generic casenode, by default there is
no jumptable support
2002-09-16 18:08:26 +00:00
carl
aa6453d52e
* oldset define is now correct for all cpu's except i386
...
* correct compilation problems because of the above
2002-08-15 15:11:53 +00:00
carl
c68b2dfbee
* rename swatoperands to swapoperands
...
+ m68k first compilable version (still needs a lot of testing):
assembler generator, system information , inline
assembler reader.
2002-08-13 18:01:50 +00:00
peter
425bb45ddc
* renamed current_library to objectlibrary
2002-08-11 14:32:25 +00:00
peter
ac71268ce6
* saving of asmsymbols in ppu supported
...
* asmsymbollist global is removed and moved into a new class
tasmlibrarydata that will hold the info of a .a file which
corresponds with a single module. Added librarydata to tmodule
to keep the library info stored for the module. In the future the
objectfiles will also be stored to the tasmlibrarydata class
* all getlabel/newasmsymbol and friends are moved to the new class
2002-08-11 13:24:10 +00:00
Jonas Maebe
3446f05f12
* genlinear(cmp)list can now be overridden by descendents
2002-08-11 11:37:42 +00:00
florian
3ec544be88
* fixed powerpc compilation problems
2002-08-11 06:14:40 +00:00
Jonas Maebe
856d8f9150
* optimizations and bugfix
2002-08-10 17:15:12 +00:00
carl
8284576720
+ generic case node
2002-07-28 09:24:18 +00:00
daniel
feb28ce902
* Added internal error when asked to generate code for 'if expr in []'
2002-07-23 14:31:00 +00:00
daniel
1130395e7e
* Readded old set code. To use it define 'oldset'. Activated by default
...
for ppc.
2002-07-23 12:34:29 +00:00
daniel
3a134c6e07
* Sets are now internally sets.
2002-07-22 11:48:04 +00:00
Jonas Maebe
494c85885b
* fixed some bugs in tcginnode.pass_2() and optimized the bit test
2002-07-21 16:58:20 +00:00
florian
59abf2555b
* types.pas renamed to defbase.pas because D6 contains a types
...
unit so this would conflicts if D6 programms are compiled
+ Willamette/SSE2 instructions to assembler added
2002-07-20 11:57:52 +00:00
florian
336808f6c3
* start of the new generic parameter handling
2002-07-11 14:41:27 +00:00
florian
aa15b56de1
* problems with last commit fixed
2002-07-07 10:16:29 +00:00
carl
2091014e89
+ generic set handling
2002-07-06 20:19:25 +00:00
peter
68ce5a00e5
* cg64 patch
...
* basics for currency
* asnode updates for class and interface (not finished)
2002-07-01 16:23:52 +00:00
carl
068e3dd944
+ generic sets
2002-06-16 08:14:56 +00:00