peter
abc49206fc
* section smartlink for win32 added, disabled by default because ld.exe
...
ignores the --gc-sections for pe-i38
git-svn-id: trunk@2305 -
2006-01-16 10:50:02 +00:00
peter
2ee18b3d8c
* support section names with length > 8
...
git-svn-id: trunk@2304 -
2006-01-16 10:48:21 +00:00
peter
c297cb1569
* generate also external stubs for win32 without import section
...
git-svn-id: trunk@2303 -
2006-01-15 22:05:52 +00:00
florian
a76d26bcb1
* according to errore.msg -gw generates dwarf debugging info, this wasn't the case, fixed
...
git-svn-id: trunk@2298 -
2006-01-15 16:08:43 +00:00
marco
4fe8654fe4
* shared lib i_ and t_ changes. Some small comments cleanup to t_
...
git-svn-id: trunk@2297 -
2006-01-15 15:22:29 +00:00
florian
d525a3b162
+ set WINDOWS define on all Windows platforms (Win32,Win64,WinCE)
...
git-svn-id: trunk@2291 -
2006-01-15 11:00:35 +00:00
Jonas Maebe
f6864a653f
* don't warn about possible use of uninitialised function results of
...
parent procedures in nested procedures (bug 4675)
git-svn-id: trunk@2287 -
2006-01-14 15:34:38 +00:00
Jonas Maebe
09a668dac9
* check whether loop counters are valid for assignment (bug 4695)
...
git-svn-id: trunk@2285 -
2006-01-14 14:09:39 +00:00
florian
b9a0e2ead2
* makefile again regenerated
...
git-svn-id: trunk@2280 -
2006-01-13 20:32:53 +00:00
florian
40290348bc
* Makefiles regenerated
...
git-svn-id: trunk@2279 -
2006-01-13 19:49:25 +00:00
peter
daa0be6ed1
* use not unsetbool for -WI-
...
git-svn-id: trunk@2277 -
2006-01-13 17:27:47 +00:00
peter
45176ea2a8
* split tstringtype for stringdef and stringconstnode
...
to prevent wrong typecasts
git-svn-id: trunk@2276 -
2006-01-13 17:20:27 +00:00
Károly Balogh
b0d7dd59e8
* fixed case sensitivity flags for Amiga & co
...
git-svn-id: trunk@2275 -
2006-01-13 16:26:39 +00:00
peter
66f8276445
* refactor booleans in systeminfo structure, they are now flags
...
* support for case aware filesystems (Windows), they do now only
one lookup if a file exists
* add -WI option to generate import section for DLL imports or
let the linker handle it. Default is still import section until
the Makefiles are fixed, then the generation can be left to the
linker
git-svn-id: trunk@2274 -
2006-01-13 15:13:26 +00:00
florian
44fb1f1db8
* symbol_end for typed consts
...
git-svn-id: trunk@2269 -
2006-01-12 20:38:22 +00:00
florian
9ad60a821f
* fixed building on non unix targets
...
* increased copyright
* changed version to 2.0.2
git-svn-id: trunk@2264 -
2006-01-12 08:18:22 +00:00
peter
a5f659b982
* support FPCDATE include
...
git-svn-id: trunk@2263 -
2006-01-12 06:59:43 +00:00
florian
30fc11e7ca
* makefiles regenerated
...
git-svn-id: trunk@2260 -
2006-01-11 21:46:28 +00:00
florian
270c8def11
* prefix and extension handling fixed
...
git-svn-id: trunk@2258 -
2006-01-11 21:43:12 +00:00
florian
210f9c07d6
+ makefiles adapted for shared library support
...
git-svn-id: trunk@2257 -
2006-01-11 21:42:30 +00:00
Jonas Maebe
ef4ece3674
* fixed allocregbetween in case the first removed tai_regalloc is an
...
allocation
git-svn-id: trunk@2241 -
2006-01-09 10:07:14 +00:00
Károly Balogh
b718d9ff37
+ added framework code for AmigaOS/PPC syscall support
...
git-svn-id: trunk@2239 -
2006-01-09 08:58:30 +00:00
Tomas Hajny
6aced9e534
* fix for web bug #4182
...
git-svn-id: trunk@2238 -
2006-01-09 02:52:55 +00:00
Jonas Maebe
9f8753c6c0
* fixed web bug #4669 (usage of location.loc instead of expectloc)
...
git-svn-id: trunk@2236 -
2006-01-08 21:11:04 +00:00
Jonas Maebe
1273e0d7ed
* generate signed comparisons for immediate equality comparisons if
...
possible, because those can be optimized better by the peephole
optimizer
git-svn-id: trunk@2235 -
2006-01-08 19:54:58 +00:00
tom_at_work
9ee594aedd
* changes which were forgotten to commit in r2222 for ppc32 cg
...
git-svn-id: trunk@2234 -
2006-01-08 18:08:26 +00:00
tom_at_work
6e290373c8
* div by const now enabled with -O2 (not -O3)
...
* large integer constants (>2 instructions to load) are put into the TOC as well
git-svn-id: trunk@2233 -
2006-01-08 18:04:44 +00:00
tom_at_work
60345fa78a
* removed hexstr(), already in RTL (and even supports 64 bit integers)
...
git-svn-id: trunk@2232 -
2006-01-08 18:01:34 +00:00
florian
f5e89801da
+ added option -i<path> for input path
...
git-svn-id: trunk@2226 -
2006-01-08 15:52:30 +00:00
Jonas Maebe
db580afbff
* fixed refs bookkeeping of jump labels (fix from Florian in popt386)
...
git-svn-id: trunk@2225 -
2006-01-08 15:50:14 +00:00
tom_at_work
4e35206d33
* basic ppc64 PIC code support
...
git-svn-id: trunk@2223 -
2006-01-08 13:28:46 +00:00
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
Jonas Maebe
6d3ae16267
* fixed web bug #4647 (untyped elements in array constructors) + test
...
git-svn-id: trunk@2110 -
2006-01-01 20:43:28 +00:00
Jonas Maebe
cbb59be2f1
* fixed web bug #4651 + test
...
git-svn-id: trunk@2108 -
2006-01-01 20:19:38 +00:00
florian
fb4557d71e
* first implementation of pic for i386
...
git-svn-id: trunk@2107 -
2006-01-01 20:14:48 +00:00
Jonas Maebe
2aa9653a61
- removed code commented out in previous commit
...
git-svn-id: trunk@2106 -
2006-01-01 17:42:58 +00:00
Jonas Maebe
3f86e6b728
* keep upper bound of loops in a register instead of in memory
...
git-svn-id: trunk@2105 -
2006-01-01 17:02:34 +00:00
Jonas Maebe
9603f4bf82
* fixed double writing of "<var> located in register" in assembler
...
source after previous patch
git-svn-id: trunk@2104 -
2006-01-01 15:36:42 +00:00
Jonas Maebe
365d2892f4
+ support for bo/bi notation for branches in the assembler reader
...
git-svn-id: trunk@2102 -
2006-01-01 13:34:04 +00:00
florian
008da5b11c
+ new cpus/fpus added
...
git-svn-id: trunk@2101 -
2006-01-01 12:41:39 +00:00
Jonas Maebe
cd69c36f17
* commited -> committed (fix for web bug #4642 , by Vincent Snijders)
...
git-svn-id: trunk@2099 -
2005-12-31 17:30:22 +00:00
florian
a11a177469
* generate pic'ed external jmps on 386 as well if necessary
...
git-svn-id: trunk@2092 -
2005-12-31 13:51:57 +00:00
Jonas Maebe
41d6d85084
* fixed spilling of fpu registers
...
git-svn-id: trunk@2090 -
2005-12-31 13:14:56 +00:00
Jonas Maebe
018fa207d7
* only allocate the calleeside register locations of parameters when
...
needed, avoids some unnecessary register conflicts (not yet perfect
for 64bit locations on 32bit cpus)
git-svn-id: trunk@2089 -
2005-12-31 12:28:56 +00:00
Jonas Maebe
c423e23bb4
* only use r12 as frame pointer in the entry code for ppc if necessary
...
git-svn-id: trunk@2086 -
2005-12-31 10:54:09 +00:00
Jonas Maebe
6c30925e04
* fixed offsets used by stmw/lmw
...
git-svn-id: trunk@2084 -
2005-12-30 23:50:37 +00:00
Jonas Maebe
c3f27eee06
* optimized generation of and generated entry and exit code:
...
* no stack frame generated anymore if it's not necessary
* only the necessary stack space is now reserved, instead of
room for all non-volatile registers
* less usage of helper registers
git-svn-id: trunk@2082 -
2005-12-30 17:20:07 +00:00
Jonas Maebe
55218d452b
* don't change the binding of real external symbols in the patch
...
of r2058, fixes the binary writer
git-svn-id: trunk@2060 -
2005-12-27 09:41:52 +00:00
Jonas Maebe
de8dbbd2c4
* final fixes for Mac OS X shared library creation: procedures declared
...
as forward are no longer treated as external symbols
* changed alloc_proc_symbol() to directly call newasmsymbol as opposed
to creating a dummy tai_symbol()
git-svn-id: trunk@2058 -
2005-12-26 18:18:05 +00:00
Jonas Maebe
021dabc37e
* also honour vsf_use_hints for uninitialised warnings for the
...
function result variable
git-svn-id: trunk@2052 -
2005-12-26 14:44:03 +00:00
florian
dae84f282f
* fixed handling of doubles in softemu mode if they are split between register and memory
...
git-svn-id: trunk@2047 -
2005-12-24 17:43:57 +00:00