tom_at_work
c887507adf
* generic compiler patches for ppc64/linux PIC code
...
git-svn-id: trunk@2222 -
2006-01-08 13:27:31 +00:00
Jonas Maebe
e4451558c4
* optimized register allocation for tempnodes
...
git-svn-id: trunk@2221 -
2006-01-08 12:53:43 +00:00
florian
844e78b401
* error corrections for message files from Karl-Michael Schindler
...
git-svn-id: trunk@2217 -
2006-01-08 09:18:08 +00:00
tom_at_work
8c8e25353b
* reverted changes from 2214, needs to be split into several commits
...
git-svn-id: trunk@2215 -
2006-01-08 01:03:15 +00:00
tom_at_work
6313a9be7b
* basic code generation for dynamic linking code for ppc64
...
git-svn-id: trunk@2214 -
2006-01-07 22:16:33 +00:00
Jonas Maebe
5e9db609e3
* fixed bug fixref whereby a register of a reference was overwritten
...
git-svn-id: trunk@2212 -
2006-01-07 21:52:17 +00:00
florian
e43a1223ff
* fixed refs book keeping
...
git-svn-id: trunk@2211 -
2006-01-07 21:10:39 +00:00
Jonas Maebe
a8ea851999
* changed min and max so more efficient code is generated for them
...
git-svn-id: trunk@2209 -
2006-01-07 16:36:04 +00:00
Jonas Maebe
c54826b403
* removed extra deallocation and allocation of function result
...
registers, allows for most optimal code possible to be generated
for trivial functions (but in some cases worsens generated code
because the register allocator is not 100% optimal)
git-svn-id: trunk@2208 -
2006-01-07 16:19:19 +00:00
Jonas Maebe
1521a33979
* fixed allocregdebug code
...
git-svn-id: trunk@2204 -
2006-01-07 15:01:46 +00:00
florian
a3e3e7e8c5
* avoid esp to be freed
...
git-svn-id: trunk@2203 -
2006-01-07 14:32:09 +00:00
Károly Balogh
cd38c236a0
+ made the compiler to know about PowerPC AmigaOS
...
git-svn-id: trunk@2201 -
2006-01-07 04:46:27 +00:00
Károly Balogh
fd54c6b468
+ ppc-amigaos stack cookie support
...
git-svn-id: trunk@2199 -
2006-01-07 02:41:15 +00:00
Jonas Maebe
5692b93a52
* fixed bug in regalloc info in case a sequence is swapped with
...
a storeback at the end (i.e., "mov x,y" ... "mov y,x")
git-svn-id: trunk@2197 -
2006-01-06 15:29:25 +00:00
Jonas Maebe
a885e9da0e
* fixed replaceregdebug code
...
git-svn-id: trunk@2196 -
2006-01-06 14:55:42 +00:00
Jonas Maebe
0da53e4ff0
* don't give an IE with extdebug on darwin if a symbol is "re-allocated"
...
with a wrong type, because we can't know the type of a symbol in the
CG
git-svn-id: trunk@2194 -
2006-01-06 12:08:43 +00:00
Jonas Maebe
fc1b5c9fe2
* fixed backwards extension of regalloc information
...
git-svn-id: trunk@2193 -
2006-01-06 11:17:29 +00:00
Jonas Maebe
ac24965242
* procedures which use goto/label revert to the older and less
...
efficient regvar allocation scheme
* also allocate regvars before the loops, not just afterwards
git-svn-id: trunk@2192 -
2006-01-05 23:45:00 +00:00
Jonas Maebe
ea89d8a881
* don't move addresses in a LOC_CREGISTER to another register for
...
derefnodes
git-svn-id: trunk@2190 -
2006-01-05 20:46:20 +00:00
florian
9670e0eb78
* leave stackframe on x86-64 as well away if possible
...
git-svn-id: trunk@2187 -
2006-01-05 18:08:33 +00:00
Jonas Maebe
61ef30381c
* Only synchronise regvars after a loop (and only those regvars
...
which are used in the loop). The compiler makes now much
more efficient use of registers for register variables (and
different regvars can now also share the same register if
their live range does not overlap)
git-svn-id: trunk@2186 -
2006-01-05 17:48:11 +00:00
Jonas Maebe
b769a968e3
* make sure live_start and live_end are correctly updated while
...
generating the initialisation and entry code
git-svn-id: trunk@2185 -
2006-01-05 17:46:16 +00:00
Jonas Maebe
24c3ec1095
* also process methodpointerinit and methodpointerdone fields
...
of calln in foreachnode*()
git-svn-id: trunk@2183 -
2006-01-05 16:49:31 +00:00
Jonas Maebe
fe71df8928
* also synchronise FPU and MM CREGISTERS at the end of procedures
...
git-svn-id: trunk@2178 -
2006-01-05 10:24:14 +00:00
florian
1024b80867
+ sub routines with children with asm blocks need a real stack frame, fixes new failure of tw0848
...
git-svn-id: trunk@2177 -
2006-01-05 10:10:58 +00:00
Jonas Maebe
7aa315c71a
* made some Tcpuregisterset parameters const to avoid useless copying
...
git-svn-id: trunk@2176 -
2006-01-05 10:10:25 +00:00
florian
abc1bcca24
* fixed previous commit ...
...
git-svn-id: trunk@2175 -
2006-01-05 09:40:04 +00:00
florian
c9870d4aa3
* new line inserted :)
...
git-svn-id: trunk@2174 -
2006-01-05 09:36:48 +00:00
florian
1851481694
* fixed typo
...
git-svn-id: trunk@2173 -
2006-01-05 09:35:59 +00:00
tom_at_work
3462426b1d
* stack frame optimizations
...
git-svn-id: trunk@2172 -
2006-01-04 23:27:40 +00:00
Jonas Maebe
cbaa100654
* "fixed" web bugs 3183 and 4403 by breaking the parser in
...
Delphi mode so that you can change the return type of
overriding interface methods into anything you want.
You will get a nasty warning though.
git-svn-id: trunk@2168 -
2006-01-04 22:21:05 +00:00
Jonas Maebe
9c2ee3a722
* fixed web bug #4086 : do not create a refcounted temp for
...
interface temps created for complex callnodes
git-svn-id: trunk@2165 -
2006-01-04 21:07:10 +00:00
florian
a71d2b432c
* synchronize reg. variables before loading the function result
...
git-svn-id: trunk@2163 -
2006-01-04 20:30:41 +00:00
florian
f7d2c47f73
+ no stackframe is generated for i386 if possible
...
git-svn-id: trunk@2162 -
2006-01-04 19:19:06 +00:00
Jonas Maebe
58381ff7b6
* made chararray handling 98% TP-compatible, fixes web bugs 3012
...
and 4080. The compatibility differences are:
a) writing a chararray which is zero-based but not zero-
terminated does not cause a buffer overflow
b) non-zero-based chararrays can also be read
The difference was that previously, all chararrays were treated
as pchars. In TP/Delphi (and now also in FPC), this is only done
for zero-based chararrays. For non-zero-based ones, the entire
contents of the array should always be used (including #0 's).
The default parameters in the system unit for the chararray
helpers are to avoid having to use a define for bootstrapping.
git-svn-id: trunk@2152 -
2006-01-04 10:05:10 +00:00
florian
629b765688
* updated message file from Karl-Michael Schindler
...
git-svn-id: trunk@2151 -
2006-01-04 10:00:07 +00:00
daniel
1318b95a06
* Enable recognition of property keyword in all modes now that
...
they are allowed for objects
git-svn-id: trunk@2149 -
2006-01-03 23:11:28 +00:00
tom_at_work
4b48a8880f
* added support for BI and BO fields for branches
...
* correct spilling for FP values
git-svn-id: trunk@2143 -
2006-01-03 21:07:39 +00:00
Jonas Maebe
9bb86eb411
* never make vs_var or vs_out variabled non-regable, unless it's an
...
access from a nested procedure. This allows keeping the address
of large function results like shortstrings in a register,
because they were always made non-regable by a typeconversionnode
due to the fact that they are aliased by an absolute alias.
git-svn-id: trunk@2140 -
2006-01-03 15:37:49 +00:00
florian
a8e4073903
* fixed broken DirectoryExists
...
git-svn-id: trunk@2136 -
2006-01-03 12:53:27 +00:00
florian
61e3b70cfa
* cleaned up segmented thread variables
...
git-svn-id: trunk@2135 -
2006-01-03 12:49:29 +00:00
florian
3ccec3fbdd
* proper error if a directory is passed as configuration file
...
git-svn-id: trunk@2134 -
2006-01-02 21:07:15 +00:00
Jonas Maebe
48e98d2a17
* fixed compilation of macpas interface-only units
...
git-svn-id: trunk@2130 -
2006-01-02 20:55:10 +00:00
Jonas Maebe
f3e69a1569
* also allow overloading of function results with related interfaces
...
git-svn-id: trunk@2128 -
2006-01-02 18:58:41 +00:00
florian
bf5907dcdc
* more @GOT parsing
...
git-svn-id: trunk@2125 -
2006-01-02 18:30:18 +00:00
florian
43cd438544
* generate _GLOBAL_OFFSET_TABLE_ variable on i386 if necessary
...
git-svn-id: trunk@2124 -
2006-01-02 18:29:43 +00:00
florian
06c84e1c5e
* fixed writing of symbol sizes
...
git-svn-id: trunk@2123 -
2006-01-02 18:29:18 +00:00
Jonas Maebe
89523d390b
* fixed web bugs 4574 and 4575
...
+ added combined test for these bugs
git-svn-id: trunk@2119 -
2006-01-02 17:54:39 +00:00
florian
30d5ff9f03
* fixed access to already freed memory location
...
git-svn-id: trunk@2118 -
2006-01-02 17:11:55 +00:00
florian
56616ea3ad
+ parsing of @GOT on i386
...
git-svn-id: trunk@2117 -
2006-01-02 15:37:18 +00:00