daniel
787fcc5797
* Made ATT asm writer work with -sr
2003-08-18 11:49:47 +00:00
Jonas Maebe
4f8c390198
* fixed regvars so they work with newra (at least for ppc)
...
* fixed some volatile register bugs
+ -dnotranslation option for -dnewra, which causes the registers not to
be translated from virtual to normal registers. Requires support in
the assembler writer as well, which is only implemented in aggas/
agppcgas currently
2003-08-17 16:59:20 +00:00
daniel
878498029f
* Fixed newra compilation
2003-08-15 14:44:20 +00:00
peter
52c73e80d1
* start of sparc support for newra
2003-08-11 21:18:20 +00:00
daniel
42c320cb29
* cs_regalloc renamed to cs_regvars to avoid confusion with register
...
allocator
* Some preventive changes to i386 spillinh code
2003-08-09 18:56:54 +00:00
Jonas Maebe
f909d6a620
* fixed ppc compilation problems and changed VOLATILE_REGISTERS for x86
...
so that it doesn't include ebp and esp anymore
2003-07-06 21:50:33 +00:00
daniel
268bfcf784
* Fixed register allocator. *Lots* of fixes.
2003-07-06 15:31:20 +00:00
peter
390db181c1
* loadfpu_reg_reg size specifier
2003-07-03 18:59:25 +00:00
pierre
c80bd4565d
* fix a bug preventing correct reading of intel 'mov [edi],al'
2003-06-20 12:57:15 +00:00
Jonas Maebe
404d344d92
* lots of newra fixes (need getfuncretparaloc implementation for i386)!
...
* renamed all_intregisters to volatile_intregisters and made it
processor dependent
2003-06-17 16:34:44 +00:00
Jonas Maebe
d29c96896f
* fixed newra cycle for x86
...
* added constants for indicating source and destination operands of the
"move reg,reg" instruction to aasmcpu (and use those in rgobj)
2003-06-14 14:53:50 +00:00
peter
0dceec9a64
* current_procdef removed, use current_procinfo.procdef instead
2003-06-13 21:19:30 +00:00
Jonas Maebe
709e6da4fa
- removed ALL_INTREGISTERS (only the one in rgobj is valid)
2003-06-12 19:11:34 +00:00
peter
a71427cf2c
* fix newra cycle for i386
2003-06-12 18:31:18 +00:00
peter
46a27d8c27
* fixed copyvaluepara for left-to-right pushing
2003-06-07 10:24:10 +00:00
peter
7363a7d605
* 32bit operands need ofcourse 32bit size
2003-06-07 10:23:50 +00:00
Jonas Maebe
f27da44d92
* fixed cycling problem
2003-06-07 10:06:55 +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
daniel
41e0bc4cec
* Register allocator finished
2003-06-03 13:01:59 +00:00
Jonas Maebe
6f3e16298a
* function results can now also be regvars
...
- removed tprocinfo.return_offset, never use it again since it's invalid
if the result is a regvar
2003-06-02 21:42:05 +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
9cafe9c315
* fixed opsize and operand size setting for 64bit values
2003-05-31 16:22:28 +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
florian
a8eb2ab740
* started to fix and clean up the sparc port
2003-05-28 23:18:31 +00:00
peter
9e2958f846
* i386 att instruction table moved to separate unit
2003-05-22 21:33:08 +00:00
peter
437ce7f8a2
* removed some unit dependencies
2003-05-22 21:32:28 +00:00
peter
abca40f041
* regvar fixes
2003-05-16 14:33:31 +00:00
peter
92ee1804b6
* removed selfpointer_offset, vmtpointer_offset
...
* tvarsym.adjusted_address
* address in localsymtable is now in the real direction
* removed some obsolete globals
2003-05-15 18:58:53 +00:00
peter
9ffa87206f
* removed radirect
2003-05-13 19:15:28 +00:00
florian
b48d0f8b36
* i386 and x86-64 share second_int_to_bool, moved to nx86cnv.pas
2003-05-01 08:02:42 +00:00
florian
9612e57805
* introduced defaultordconsttype to decribe the default size of ordinal constants
...
on 64 bit CPUs it's equal to cs64bitdef while on 32 bit CPUs it's equal to s32bitdef
+ added defines CPU32 and CPU64 for 32 bit and 64 bit CPUs
* int64s/qwords are allowed as for loop counter on 64 bit CPUs
2003-05-01 07:59:42 +00:00
florian
91bbc7bea3
* error when address of an abstract method is taken
...
* fixed some x86-64 problems
* merged some more x86-64 and i386 code
2003-04-30 20:53:32 +00:00
florian
de6916276a
* merged more x86-64/i386 code
2003-04-30 15:45:35 +00:00
peter
60978ba89c
* aktprocdef renamed to current_procdef
...
* procinfo renamed to current_procinfo
* procinfo will now be stored in current_module so it can be
cleaned up properly
* gen_main_procsym changed to create_main_proc and release_main_proc
to also generate a tprocinfo structure
* fixed unit implicit initfinal
2003-04-27 11:21:32 +00:00
florian
754a34200a
* merged i386/aasmcpu and x86_64/aasmcpu to x86/aasmcpu
2003-04-25 12:43:40 +00:00
florian
ad2f6d6dab
* merged agx64att and ag386att to x86/agx86att
2003-04-25 12:04:31 +00:00
florian
c36e3569c3
* removed
2003-04-25 11:50:38 +00:00
florian
d0025abb0e
* commited it, to remove it :)
2003-04-25 11:50:20 +00:00
florian
98d09473e4
* merged i386/cpubase and x86_64/cpubase to x86/cpubase;
...
different stuff went to cpubase.inc
2003-04-25 11:12:09 +00:00
daniel
9e2084b8d5
* Further register allocator work. Compiler now smaller with new
...
allocator than without.
* Somebody forgot to adjust ppu version number
2003-04-23 14:42:07 +00:00
daniel
7677b18770
* Removed usage of edi in a lot of places when new register allocator used
...
+ Added newra versions of g_concatcopy and secondadd_float
2003-04-23 09:51:16 +00:00
peter
e248c0ece4
* fixed C style array of const
...
* fixed C array passing
* fixed left to right with high parameters
2003-04-22 13:47:08 +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
0c93e261e7
* Added some code to keep track of move instructions in register
...
allocator
2003-04-17 16:48:21 +00:00
peter
c4ddcc78a8
* generic constructor working for i386
...
* remove fixed self register
* esi added as address register for i386
2003-03-28 19:16:56 +00:00
peter
864736747f
* reg2opsize()
2003-03-18 18:17:46 +00:00
Jonas Maebe
e8a0c0cd62
* and more new register allocator fixes (in the i386 code generator this
...
time). At least now the ppc cross compiler can compile the linux
system unit again, but I haven't tested it.
2003-03-13 19:52:23 +00:00
daniel
390ae3e2b1
* Fixed ie 200301234 problem on Win32 target
2003-02-27 16:40:32 +00:00
daniel
18ab545cb7
* Fixed the optimizer
2003-02-26 21:15:43 +00:00
daniel
86bcea6ef5
* Code generator converted to new register notation
...
- Horribily outdated todo.txt removed
2003-02-19 22:00:14 +00:00