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
peter
99c4b6cf86
* m68k fix
2003-04-23 13:48:07 +00:00
peter
35ea6c7233
* optimizer is x86
2003-04-23 13:47:41 +00:00
peter
2bb32541be
* fix m68k compile
2003-04-23 13:40:33 +00:00
peter
7ff85f0779
* fix sparc compile
2003-04-23 13:35:39 +00:00
peter
32d79d4f80
* fix warning for calling constructor inside constructor
2003-04-23 13:21:06 +00:00
peter
77cdb2fcae
* fix self passing to fpc_help_fail
2003-04-23 13:20:34 +00:00
peter
cf1f53f910
* fix push_high_param for cdecl
2003-04-23 13:15:04 +00:00
peter
4cee86cad2
* fix operator overload search parameter order
2003-04-23 13:13:58 +00:00
peter
155a2cdab4
* fix checking of procdef type which was broken since loadn returned
...
pointertype for tp procvar
2003-04-23 13:13:08 +00:00
peter
74756e4e85
* fix po_comp setting for fpc mode
2003-04-23 13:12:26 +00:00
florian
0284016ee9
* fixed several issues with powerpc
...
+ applied a patch from Jonas for nested function calls (PowerPC only)
* ...
2003-04-23 12:35:34 +00:00
peter
7dae726270
* po_comp for proc to procvar fixed
2003-04-23 11:37:33 +00:00
peter
29a382388e
* fix range check error after previous commit
2003-04-23 11:37:15 +00:00
peter
3a321cb62e
* cdecl array of const has no addr push
2003-04-23 10:14:30 +00:00
peter
181da6423d
* firstaddr will check procvardef
2003-04-23 10:13:55 +00:00
peter
5207aaf391
* don't check po_varargs for delphi
2003-04-23 10:12:51 +00:00
peter
e258c7bf84
* allow multi pass2 changed to global boolean instead of node flag
2003-04-23 10:12:14 +00:00
peter
a13db1decb
* range check error for GUID fixed
2003-04-23 10:11:22 +00:00
peter
18b1a27d2c
* procvar is not compared in addrn
2003-04-23 10:10:54 +00:00
peter
4290586968
* unix signalhandler has longint argument
2003-04-23 10:10:31 +00:00
peter
41dfcfba39
* expectloc fixes
2003-04-23 10:10: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
4cf63d5b32
* wrong location_copy for include/exclude
2003-04-23 09:50:31 +00:00
Jonas Maebe
5ed5d2897f
* fixed ttemprefnode.compare and .getcopy to take offset field into
...
account
2003-04-23 08:41:34 +00:00
Jonas Maebe
b3a3398faf
* fixed istemp() when tg.direction = 1
2003-04-23 08:40:39 +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
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
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
florian
253df05727
+ added first_ and last_imreg
2003-04-22 11:27:48 +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
peter
01d13cb85e
* use location_reset
2003-04-22 09:54:18 +00:00
peter
8edbb7afed
* fix insert_typeconv to handle new varargs which don't have a
...
paraitem set
2003-04-22 09:53:33 +00:00
peter
0e0a581230
* do not convert procvars with void return to callnode
2003-04-22 09:52:30 +00:00
peter
0cb3160a63
* mark_write implemented for default with a warning in EXTDEBUG, this
...
is required for error recovery where the left node can be also a non
writable node
2003-04-22 09:52:00 +00:00
peter
ed82f9ff35
* do not load self when calling a non-inherited class constructor
2003-04-22 09:49:44 +00:00
peter
26b4fdbfa7
* always allocate 4 bytes when 0 bytes are asked
2003-04-22 09:46:17 +00:00
peter
811fdad9b6
* removed some ie checks
2003-04-21 20:05:10 +00:00
peter
ab7f62f3e1
* forgot to copy vmtrefaddr to selfrefaddr when self=vmt
2003-04-21 20:03:32 +00:00
peter
e21dab9739
* count address regs separate
2003-04-21 19:16:49 +00:00
peter
7e9e15cce8
* when ecx is not available allocated another register
2003-04-21 19:15:26 +00:00
Jonas Maebe
934974e234
* fixed tstatementnode.det_resulttype and tststatementnode.pass_1
...
* fixed some getcopy issues with ttemp*nodes
2003-04-21 15:00:22 +00:00
Jonas Maebe
e206a74439
- removed copying of all paras when secondpassing a callnode (this used
...
to be necessary for inlinign support, but currently the whole inlined
procedure is already copied in advance). Note that the compiler crashes
when compiling ucomplex with -dTEST_INLINE (also after fixing the
syntax errors), but that was also the case before this change.
2003-04-21 13:53:16 +00:00
Jonas Maebe
44f26523e6
* process para's from first to last instead of the other way round
2003-04-17 18:52:35 +00:00
daniel
0c93e261e7
* Added some code to keep track of move instructions in register
...
allocator
2003-04-17 16:48:21 +00:00
daniel
ba9d0abb67
* Tweaked register allocate/deallocate positition to less interferences
...
are generated.
2003-04-17 10:02:48 +00:00
daniel
a32926e2fc
* Some work on interference graph construction
2003-04-17 07:50:24 +00:00
Jonas Maebe
56132c1a9c
* assembler procedures now again get a stackframe if they have local
...
variables. No space is reserved for a function result however.
Also, the register parameters aren't automatically saved on the stack
anymore in assembler procedures.
2003-04-16 09:26:55 +00:00
Jonas Maebe
fd1056c621
* fixed paralocation for integer var/out parameters
2003-04-16 07:55:07 +00:00