Jonas Maebe
71202a141d
* taicpu.is_same_reg_move() now gets a regtype parameter so it only
...
removes moves of that particular register type. This is necessary so
we don't remove the live_start instruction of a register before it
has been processed
2004-02-08 23:10:21 +00:00
Jonas Maebe
9495f77117
- removed taicpu.is_reg_move because it's not used anymore
...
+ support tracking fpu register moves by rgobj for the ppc
2004-02-08 20:15:42 +00:00
peter
221090453c
* x86_64 fixes for opsize
2004-02-05 18:28:37 +00:00
peter
663fa583d9
* real fix for the short jmp out of range problem. Only forward jumps
...
needs an offset correction. For backward jumps both the address of
the symbol and the instruction are already updated so no correction
is required.
2004-02-03 21:21:23 +00:00
daniel
97e87aaebc
* reginfo now also only allocated during register allocation
...
* third round of gdb cleanups: kick out most of concatstabto
2004-01-26 16:12:27 +00:00
florian
541955ad91
+ x86 instruction tables for x86-64 extended
2004-01-15 14:01:18 +00:00
peter
c34c9af5ce
* moved spilling code from taicpu to rg
2004-01-12 16:37:59 +00:00
peter
1c7e6fc380
* sparc updates
...
* use registertype in spill_register
2003-12-26 14:02:30 +00:00
florian
dd2bb53aa5
+ possible sse2 unit usage for double calculations
...
* some sse2 assembler issues fixed
2003-12-25 12:01:35 +00:00
florian
06442fa677
+ $fputype directive support
...
+ single data type operations with sse unit
* fixed more x86-64 stuff
2003-12-25 01:07:09 +00:00
peter
1367e342db
* reg allocations for imaginary register are now inserted just
...
before reg allocation
* tregister changed to enum to allow compile time check
* fixed several tregister-tsuperregister errors
2003-12-15 21:25:48 +00:00
daniel
7061f04355
* Register allocator speed optimizations
...
- Worklist no longer a ringbuffer
- No find operations are left
- Simplify now done in constant time
- unusedregs is now a Tsuperregisterworklist
- Microoptimizations
2003-12-14 20:24:28 +00:00
florian
1af574ceca
* assembler readers OOPed
...
+ typed currency constants
+ typed 128 bit float constants if the CPU supports it
2003-11-12 16:05:39 +00:00
peter
48ef24605a
* support scalefactor for opr_local
...
* support reference with opr_local set, fixes tw2631
2003-10-30 19:59:00 +00:00
peter
5925d38ac7
* support indexing and offset retrieval for locals
2003-10-29 15:40:20 +00:00
peter
4a1ecb07d1
* splitted buildderef and buildderefimpl to fix interface crc
...
calculation
2003-10-23 14:44:07 +00:00
peter
6878c55c80
* write derefdata in a separate ppu entry
2003-10-22 20:39:59 +00:00
peter
96f9973b46
* taicpu_abstract.oper[] changed to pointers
2003-10-21 15:15:35 +00:00
peter
d0de3b3ea8
* 64k registers supported
...
* fixed some memory leaks
2003-10-17 14:38:32 +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
540691bf02
* optimized releasing of registers
2003-09-29 20:58:55 +00:00
peter
a028d221cc
* fixed invalid opcode handling in spill registers
2003-09-28 21:49:30 +00:00
peter
36c2bb1e1a
* give error for wrong register number
2003-09-28 13:37:07 +00:00
florian
f6e456268f
* fixed make cycle
2003-09-24 21:15:49 +00:00
florian
0b48a6a3ec
* x86-64 adaptions
2003-09-24 17:12:36 +00:00
peter
8af51ea6d3
* locals and paras are allocated in the code generation
...
* tvarsym.localloc contains the location of para/local when
generating code for the current procedure
2003-09-23 17:56:05 +00:00
daniel
1e02028986
* Fixed incorrect movzx spilling
2003-09-14 14:22:51 +00:00
daniel
c82243df4d
* Add BTR to destination memory location check in spilling
2003-09-12 20:25:17 +00:00
daniel
079751b894
* Failed attempt to restore broken fastspill functionality
2003-09-10 19:14:31 +00:00
marco
305226dd23
* fix from peter for bts reg32,mem32 problem
2003-09-10 11:23:09 +00:00
florian
f495796796
* x86 instruction table updated to nasm 0.98.37:
...
- sse3 aka prescott support
- small fixes
2003-09-09 12:54:45 +00:00
peter
b9d09a4e5c
* preparations for different default calling conventions
...
* various RA fixes
2003-09-07 22:09:34 +00:00
peter
6a8d5eb25d
* NEWRA branch merged
2003-09-03 15:55:00 +00:00
peter
6b12cc11e5
* first spill the registers of top_ref before spilling top_reg
2003-08-21 17:20:19 +00:00
peter
b9afdc6a36
* fix reg-supreg range check error
2003-08-21 14:48:36 +00:00
daniel
2ce08bd157
* Some old register convention code removed
...
* A few changes to eliminate a few lines of code
2003-08-20 16:52:01 +00:00
daniel
ebb1f3a361
* New register coding now mandatory, some more convert_registers calls
...
removed.
2003-08-20 09:07:00 +00:00
daniel
82b0cf41a6
* Made internal assembler use new register coding
2003-08-20 07:48:03 +00:00
daniel
41211715ff
* Corrected a comment.
2003-08-19 13:58:33 +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
daniel
268bfcf784
* Fixed register allocator. *Lots* of fixes.
2003-07-06 15:31:20 +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
daniel
41e0bc4cec
* Register allocator finished
2003-06-03 13:01:59 +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
peter
437ce7f8a2
* removed some unit dependencies
2003-05-22 21:32:28 +00:00
florian
754a34200a
* merged i386/aasmcpu and x86_64/aasmcpu to x86/aasmcpu
2003-04-25 12:43:40 +00:00
florian
37194d2f61
* fixed more problems with cpubase and x86-64
2002-04-25 16:12:09 +00:00