Commit Graph

7217 Commits

Author SHA1 Message Date
peter
29db12ecfa * disable inlining across units when the inline procedure references
a variable or procedure in the static symtable
2004-12-15 21:08:15 +00:00
peter
fad0e529a4 * syscall with sysv abi for morphos 2004-12-15 19:30:32 +00:00
peter
d387fda801 * give error when paraloc is not filled in order_parameter 2004-12-15 19:30:16 +00:00
peter
9e49f8eef9 * fixed crash with -vp 2004-12-15 17:01:28 +00:00
marco
9dec5c3179 * introduction "cleanpath" (=fexpand), fixfilename(paramstr(0)) + search $PREFIX/etc/fpc.cfg 2004-12-15 16:06:47 +00:00
peter
00c14e1083 * external is again allowed in implementation 2004-12-15 16:00:16 +00:00
peter
5576ae73a6 * fix visibility of protected/private 2004-12-15 15:59:54 +00:00
Jonas Maebe
0f2922f5a1 * fixed foreachnode(static) for case nodes (fixes inlining of case
statements)
2004-12-15 15:27:03 +00:00
peter
ed9f8f54e7 * generic optimizer 2004-12-12 14:07:07 +00:00
peter
1c458abb0b * compile fixes for x86_64 2004-12-12 12:56:18 +00:00
peter
749afb3dec * small optimization with options passed to cycle 2004-12-12 12:33:25 +00:00
florian
0037f4a199 * fixed operand size calculation for sse operands
+ all nasm assembler targets to help page output added
2004-12-12 10:50:34 +00:00
florian
4d25901e99 * check if the selected assembler supports current target improved 2004-12-12 00:35:19 +00:00
florian
dc98c3265f * check if the selected assembler supports current target 2004-12-12 00:31:52 +00:00
Jonas Maebe
9e24c28774 - removed superfluous location_force_reg() in second_nothing 2004-12-11 15:25:40 +00:00
Jonas Maebe
d7c52f4062 * external vars are not regable 2004-12-11 15:19:08 +00:00
florian
78bff4ff2e * made some target short names look more nicer 2004-12-11 14:39:03 +00:00
Jonas Maebe
fcf16c4983 * fixed synchronising 64bit regvars on 32bit systems at the start and
end of procedures
  * hack for ppc for loading of paras from their callee location to local
    temps
2004-12-11 12:42:28 +00:00
Jonas Maebe
62d4f7dd52 * fixed regvar problem due to emit_bit_test() changing a register that
was allowed to be a LOC_CREGISTER
2004-12-11 01:04:26 +00:00
Jonas Maebe
7c9d8d8872 * fixed int64 regvar bug in location_force_register 2004-12-11 01:03:01 +00:00
Jonas Maebe
2bd47e8ce6 * fixed type conversion between same-size ints with different signs in
case the value is already in a register
2004-12-10 23:38:54 +00:00
Jonas Maebe
95348379fa * certain type conversions have no cost (also fixes problem of
inc(int64) with regvars turned on on non-64bit platforms)
2004-12-10 13:16:31 +00:00
peter
78c2af7b3c * set vo_explicit_paraloc flag 2004-12-07 16:11:52 +00:00
peter
a266052fd9 * modified algorithm for shortening manglednames to fix compilation
of procedures with a lot of longtypenames that are equal, see
    tw343
2004-12-07 15:41:11 +00:00
michael
44bf61f445 * Convert array of widechar to pwidechar instead of pchar 2004-12-07 13:52:54 +00:00
peter
9c0be16488 implicit load of variants unit 2004-12-06 19:23:05 +00:00
Jonas Maebe
5b7ffabd0c * only set/clear bit 6 of cr in case of varargs for the sysv abi 2004-12-06 18:06:37 +00:00
Jonas Maebe
4f53d8367d * introduced bug (x shl 65 = x shl 1 when shifting with a constant, but
still 0 otherwise) to pass tshlshr
2004-12-06 17:53:43 +00:00
peter
d45dea5db8 * fix methodpointer compare, compare only the proc field 2004-12-06 15:57:22 +00:00
Tomas Hajny
390876bdb4 * Makefiles regenerated 2004-12-05 16:54:46 +00:00
Tomas Hajny
12a5595b20 * Makefiles regenerated 2004-12-05 16:46:49 +00:00
peter
2b6456fe16 * procvar handling for tp procvar mode fixed
* proc to procvar moved from addrnode to typeconvnode
  * inlininginfo is now allocated only for inline routines that
    can be inlined, introduced a new flag po_has_inlining_info
2004-12-05 12:28:10 +00:00
Tomas Hajny
efda160d12 * fix for compilation on 8.3 filesystems 2004-12-05 12:25:48 +00:00
florian
8b9c48e7fb * fixed compiler side of variant <-> dyn. array conversion 2004-12-05 12:15:11 +00:00
olle
53f77231d5 + bugfix for $Z+ for mode macpas 2004-12-05 00:32:56 +00:00
Jonas Maebe
49a8939b22 * modifications to work with the generic code to copy LOC_REFERENCE
parameters to local temps (fixes tests/test/cg/tmanypara)
2004-12-04 21:47:46 +00:00
florian
d018160981 * fixed compilation 2004-12-04 15:23:00 +00:00
peter
57dc23a294 * fix crashes with nodeinlining 2004-12-03 16:07:04 +00:00
peter
36268edfed * fix for int64 parameters passed in a single LOC_REFERENCE of 8 bytes 2004-12-03 16:06:31 +00:00
peter
5ee4b9ad24 * use tlocation for tempnodes 2004-12-03 16:04:47 +00:00
peter
466c376d13 * LOC_CREGISTER fix 2004-12-03 15:58:11 +00:00
peter
c2263a36ac * int64 can also be put in a register 2004-12-03 15:57:39 +00:00
peter
6fa0391558 * fix for 1.9.4 that IE'd when rebuilding fpc 2004-12-03 15:57:11 +00:00
peter
959bdccc49 * disable pass2inline 2004-12-02 19:26:14 +00:00
Jonas Maebe
bd04491f50 * patch from Peter to fix inlining of case statements 2004-11-30 18:13:39 +00:00
peter
24cc110e9f * public is allowd in interface 2004-11-29 21:50:08 +00:00
peter
7c144223ad * fixed wrong calculation for checking default parameters 2004-11-29 21:40:54 +00:00
peter
459858305e * location_force_reg in second_nothing can reuse LOC_CREGISTER 2004-11-29 21:02:08 +00:00
peter
cd4534c862 * uninited results 2004-11-29 20:50:37 +00:00
michael
d4b8a224a1 + Added license to this library 2004-11-29 19:16:43 +00:00
peter
06cfe01791 * os2 fixes for import
* asmsymtype support for intel reader
2004-11-29 18:50:15 +00:00
peter
05127d887d * when importing by index don't change mangledname 2004-11-29 17:48:34 +00:00
peter
5f61be6b4d * prevent some IEs with delphi methodpointers 2004-11-29 17:32:56 +00:00
Jonas Maebe
97b2ef94c1 * loadvmtaddrn and loadparentfpn both have complexity 1 (the latter
fixes compilation of tw0935 with nodeinlining)
2004-11-28 19:29:45 +00:00
Jonas Maebe
21c7a9db2f * fixed check for regvar-ability of tempnodes 2004-11-28 19:16:53 +00:00
Jonas Maebe
38db3679d8 * only try to replace locals from the inlined procedure with temps,
cycle now works with -dNODEINLINE
2004-11-28 14:34:59 +00:00
Jonas Maebe
f244dea6ec * fixed some bugs in the node inlining code due to the transition from
dynamic array to tlist
  * fixed some register temp bugs (node inlining still does not work again
    though)
2004-11-27 22:43:01 +00:00
florian
54ceea9e60 * some m68k stuff updated 2004-11-27 16:16:02 +00:00
peter
1fcd2cd8ad * internal flag for compare_defs_ext 2004-11-26 22:34:28 +00:00
peter
1418add0e0 * don't allow pointer(ordinal) typecast in fpc mode, only allow it
for delphi and for internal use
2004-11-26 22:33:54 +00:00
peter
b55fe3fa67 * don't allow @method in tp procvar mode 2004-11-26 22:33:24 +00:00
peter
08d0d3b73c * fixed read temp for result 2004-11-26 22:33:00 +00:00
armin
f4ffaa9828 * applied peters patch for cross compile (bin installation) 2004-11-26 13:03:07 +00:00
Jonas Maebe
26ab4ead33 * fixed intermittent bug in overflow checking of subtractions 2004-11-26 12:30:47 +00:00
Jonas Maebe
fff0683902 * fixed overflow checking of unsigned multiplications 2004-11-26 12:17:04 +00:00
armin
2189bb812b * added utilsprefix for as,ld and nlmconv 2004-11-25 18:46:11 +00:00
florian
ad4345c217 * fixed arm compilation 2004-11-24 22:03:26 +00:00
peter
576e1825aa * enabled pass1 inlining from Jonas 2004-11-22 22:19:00 +00:00
peter
8cf8c54609 * fixed varargs
* replaced dynarray with tlist
2004-11-22 22:01:19 +00:00
peter
a263b1d40e * GetHeapStatus added, removed MaxAvail,MemAvail,HeapSize 2004-11-22 19:34:58 +00:00
Jonas Maebe
a7d7a49615 * fixed importing of cdecl routines for OS'es which have a cprefix 2004-11-22 12:22:25 +00:00
peter
2985766e9d * manglednames for nested procedures include full parameters from
the parents to prevent double manglednames
2004-11-21 21:51:31 +00:00
peter
2ad2e252a3 * allow spaces before : of a label 2004-11-21 21:36:13 +00:00
peter
9a64d34d34 * add checks for filedef type to prevent crashes 2004-11-21 21:27:31 +00:00
peter
a29eab36c7 * fixed funcretloc for sparc 2004-11-21 18:13:31 +00:00
peter
89b1b583c9 * ttempcreatenode.create_reg merged into .create with parameter
whether a register is allowed
  * funcret_paraloc renamed to funcretloc
2004-11-21 17:54:59 +00:00
florian
18f7aa97dd * changed funcret location back to tlocation 2004-11-21 17:17:03 +00:00
peter
29d3a94892 * fixed message methods
* fixed typo with win32 dll import from implementation
  * released external check
2004-11-21 16:33:19 +00:00
peter
4d8460ec2f * float routines all use internproc and compilerproc helpers 2004-11-21 15:35:23 +00:00
florian
1943e6a5ab * write nil entry after last entry to vmt table so the size of the vmt can be determined 2004-11-20 14:39:27 +00:00
peter
1f6d2f6ece * fixed setting of mangledname when importing 2004-11-19 16:30:24 +00:00
marco
c1ee8eed7b * cycle fix. 2004-11-19 14:21:44 +00:00
marco
7fa7a1f3da * fix for " Split po_public into po_public and po_global" 2004-11-19 08:33:02 +00:00
michael
180966c0aa * Split po_public into po_public and po_global (Peter) 2004-11-19 08:17:01 +00:00
michael
4963306976 + Fix for win32 cycle 2004-11-18 10:06:19 +00:00
peter
1687306d22 * make some checks EXTDEBUG only for now so linux cycles again 2004-11-17 22:41:41 +00:00
peter
14d25d278b mangledname setting moved to place after the complete proc declaration is read
import generation moved to place where body is also parsed (still gives problems with win32)
2004-11-17 22:21:35 +00:00
peter
c4502aebe7 * _mangledname for symbols moved only to symbols that really need it
* overload number removed, add function result type to the mangledname fo
  procdefs
2004-11-16 22:09:57 +00:00
peter
4ef34e7e43 * fixed rangecheck error with derefdata 2004-11-16 20:49:08 +00:00
peter
87d2861f89 * fixes for win32 mangledname 2004-11-16 20:32:40 +00:00
peter
e740a66636 * tparaitem removed, use tparavarsym instead
* parameter order is now calculated from paranr value in tparavarsym
2004-11-15 23:35:30 +00:00
peter
382ac54e58 * fixed Makefile targets for cross compilers 2004-11-15 19:31:27 +00:00
peter
db81b4333a * fatal error when procedure is too complex 2004-11-14 21:08:27 +00:00
florian
60e0494a74 * fixed morphos syscall 2004-11-14 16:26:29 +00:00
peter
0c7e53bb81 * fixed compile of powerpc,sparc,arm 2004-11-11 19:31:33 +00:00
peter
95e0ed26f8 * use helper call to retrieve address of input/output to reduce
code that is generated in the main program for loading the
    threadvar
2004-11-09 23:10:22 +00:00
peter
6c9c4c686c * small m68k updates to bring it up2date
* give better error for external local variable
2004-11-09 22:32:59 +00:00
peter
7c0b6e129e * fixed wrong typecasts 2004-11-09 17:26:47 +00:00
peter
338155d396 * fixed compile 2004-11-09 16:46:05 +00:00
peter
b0afe9a351 * indexword can't be used for 1.9.4 2004-11-09 16:18:12 +00:00
peter
6458bd0ce1 * tvarsym splitted 2004-11-08 22:09:58 +00:00
florian
4b211028a2 * include/exclude for sets in registers fixed 2004-11-08 21:59:34 +00:00
florian
87b589f4f5 * better code generation for copying of open arrays 2004-11-08 21:47:39 +00:00
florian
7b8c44bbce * fixed open arrays when using register variables 2004-11-08 20:23:29 +00:00
florian
239db4ba9d * marked o* registers as volatile 2004-11-07 00:33:45 +00:00
florian
8ffe3c6a9e * debug writeln removed 2004-11-06 18:58:18 +00:00
peter
e009b39d8b * check extension of library if it needs to be linked static 2004-11-06 17:58:10 +00:00
florian
42e14b6825 + additional extdebug check for wrong add_reg_instructions added
* too long manglednames are cut off at 200 chars using a crc
2004-11-06 17:44:47 +00:00
florian
e2ec30866a * fixed OP_SUB for negative constants fitting in the shifter 2004-11-06 15:18:57 +00:00
peter
ad89ee8150 * rename duplicate symbols and insert with unique name in the
symtable
2004-11-05 21:16:55 +00:00
florian
7f89448cec * vmt offset of objects is no properly aligned when necessary 2004-11-05 21:07:13 +00:00
florian
fa2f619598 * THREADVARLIST is now aligned 2004-11-05 20:04:49 +00:00
florian
caa87a23ec * fixed arm compilation 2004-11-05 13:14:30 +00:00
florian
7e778c5d78 * fixed dyn. linker handling 2004-11-05 12:27:27 +00:00
florian
aa23d79073 * path of dyn. linker on arm for linux fixed 2004-11-05 11:04:23 +00:00
peter
088892de9b use filepos of main when generating the module stabs 2004-11-04 23:59:13 +00:00
peter
37139422aa elecount also on 32bit needs the qword part to prevent overflow 2004-11-04 17:58:48 +00:00
peter
d804452dcc added checking for token=_ID after _POINT is parsed 2004-11-04 17:57:58 +00:00
peter
2eb3dfd077 linking with cygwin fixed 2004-11-04 17:12:52 +00:00
peter
79e754cb8c forgot if cs_debuginfo 2004-11-04 17:12:24 +00:00
peter
f4a7c3d444 fixed debuginfo for variables in staticsymtable 2004-11-04 17:09:54 +00:00
peter
589dd8c10e First check outputunitdir/outputexedir for .o file 2004-11-03 22:22:51 +00:00
florian
054f6bff3a * fixed missing cgutils usage 2004-11-03 17:51:58 +00:00
florian
e2a6678591 * fixed sparc <-> i386 mixture 2004-11-03 12:04:03 +00:00
peter
33494a7775 * fix possible range error 2004-11-03 10:11:13 +00:00
florian
926da4b9c9 * fixed writing of para locations for procedures with explicit locations for parameters 2004-11-03 09:46:34 +00:00
olle
135be09271 * fixed possible problem with null termination 2004-11-02 22:17:25 +00:00
florian
c94553080b + added profiler call for x86_64 2004-11-02 20:50:54 +00:00
Jonas Maebe
14197fb830 * copy totype field in ttypeconvnode.getcopy() 2004-11-02 20:15:53 +00:00
florian
4be6ea3b4a * dyn. array dimensions are now stored as sinttype so it's target register size dependend 2004-11-02 18:37:08 +00:00
florian
bfce614370 * fixed -<sse register>
* information about simple moves for sse is given to the register allocator
2004-11-02 18:23:16 +00:00
florian
143b4a8cb1 * <signed type> to qword range check for 64 bit targets fixed 2004-11-02 17:25:36 +00:00
peter
2e161c5e9e * nf_internal flag for internal inserted typeconvs. This will
supress the generation of warning/hints
2004-11-02 12:55:16 +00:00
peter
9b00c7832e * support > 32bit accesses for x86_64
* rewrote array size checking to support 64bit
2004-11-01 23:30:11 +00:00
florian
636f2ea7c9 * resource ansistrings now use aint for len and ref. count as well 2004-11-01 20:22:04 +00:00
florian
239dd7121e - removed unnecessary printnode 2004-11-01 18:26:52 +00:00
peter
0d506c579e * removed wrong check for symtableprocentry 2004-11-01 18:16:48 +00:00
florian
b8eb638978 * cg64f64 isn't used anymore 2004-11-01 17:44:27 +00:00
florian
73c30d6579 * fixed arm compilation with cgutils
* ...
2004-11-01 17:41:28 +00:00
florian
00a32c2b31 + added cgutils uses clause 2004-11-01 17:40:29 +00:00
florian
852ca7e923 + added sse instruction being not be able writing to a memory location 2004-11-01 17:30:17 +00:00
peter
2aceb6f856 * no checkpointer code for dynarr to openarr 2004-11-01 17:15:47 +00:00
peter
6a0aa09b20 * give IE instead of crash when no procsym is passed for calln 2004-11-01 16:58:57 +00:00
florian
1c569cbd08 * cvt*2* can't write to memory location, fixed 2004-11-01 15:42:47 +00:00
florian
6bdfe21f79 * default target for x86_64 is linux 2004-11-01 15:42:00 +00:00
florian
f0e07003be * fixed type information for dyn. arrays on 64 bit systems 2004-11-01 15:33:12 +00:00
peter
f02ebed09e * support @labelsym 2004-11-01 15:32:12 +00:00
peter
a2cbf27e96 * -Or fix for absolute 2004-11-01 15:31:57 +00:00
peter
f80f3fc0fa * shortstr compare with empty string fixed
* removed special i386 code
2004-11-01 12:43:28 +00:00
florian
13618bb9cd * fixed currency division 2004-11-01 12:10:26 +00:00
peter
1cf3aef0f0 * regalloc bind to instructions need to get real ait_instruction 2004-11-01 10:34:08 +00:00
peter
703e1cee60 * obsolete 2004-11-01 10:33:45 +00:00
peter
916041c81c * symlist typeconv for absolute fixed 2004-11-01 10:33:01 +00:00
peter
a66a2c855e * temp for dynarray copy needs to be typed 2004-11-01 10:32:27 +00:00
peter
91a00b5344 * procvar arguments need to be at least equal 2004-11-01 10:31:48 +00:00
peter
882cc700fb * fixed uninited var in a_load_reg_ref 2004-11-01 10:30:06 +00:00
florian
e5feec37cb * fixed handling of stack parameters on the arm 2004-11-01 09:23:01 +00:00
peter
9f811b8bca * remove previous patch 2004-11-01 08:02:26 +00:00
Jonas Maebe
dc71fc8290 * make sure live_start/end is never a tai_regalloc, as those can be
removed by the register allocator and thus become invalid. This fixed
    make cycle with -Or for ppc, but I'm not sure what the warning on
    symsym.pas:1663 means. Since the tlocation change, even regular make
    cycle doesn't work anymore though...
2004-10-31 23:18:29 +00:00
peter
1c0b14c9f7 * only allow ordinal-pointer for same size 2004-10-31 22:05:25 +00:00
peter
c95a859f0a * generic tlocation
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
peter
7d745c0483 * default paths fixed 2004-10-31 19:09:54 +00:00
peter
bc59556a41 * $fpctarget expands to <cpu>-<os>
* allow * in middle of the path to support ../*/units/$fpctarget
2004-10-31 18:54:24 +00:00
peter
d97d37ca78 * new unit dir 2004-10-31 18:40:51 +00:00
florian
7f20bc1c96 * fixed ie with pi_do_call 2004-10-31 16:47:43 +00:00
florian
36ca15cf07 * fixed compilation of system unit on arm 2004-10-31 16:04:30 +00:00
olle
8763a9166a + Change of the way global variables, with multiple entrypoints,
are referenced, fixes a lot of failed tests
2004-10-31 15:32:13 +00:00
olle
f8c9ad629c + All sections get names in macos 2004-10-31 15:29:39 +00:00
Jonas Maebe
c9eba4e861 * fixed web bug #3378 2004-10-31 15:17:08 +00:00
florian
a684d2669d * fixed jump table for sparc 2004-10-31 14:24:47 +00:00
florian
c8d7f6be2b * another couple of arm fixed 2004-10-31 12:37:11 +00:00
florian
3a06b4f0fd * jmp table code generation for case statement on sparc 2004-10-30 22:01:11 +00:00
florian
7eccede56f * initial revision, not yet enabled 2004-10-30 17:50:53 +00:00
florian
e04b172854 * fixed generic optimizer
* enabled generic optimizer for sparc
2004-10-30 15:21:37 +00:00
peter
86f78c7300 * units are now created in separate directory units/cpu-os/
* distclean uses cleanall rule and removes units dir
  * cross compile support fixed, it is now possible to cycle a ppcsparc
    without deleting ppc386
  * bintutilsperfix defaults to cpu-os-
2004-10-30 12:36:43 +00:00
olle
51fb338952 * reverted, for macos only, last change. 2004-10-28 18:29:44 +00:00
Jonas Maebe
e737e39888 * fixed bugs due to change of the value field of tlocation from aword to
aint
2004-10-26 18:22:31 +00:00
Jonas Maebe
0a32b9a526 * fixed tlocation record again for big endian
* fixed (currently unused) saved_standard_registers array
2004-10-26 18:22:04 +00:00
Jonas Maebe
c0b4a9026c + empty g_save_standard_registers/g_restore_standard_registers overrides
(their work was/is done by g_proc_entry/g_proc_exit, and the generic
     version saves the registers in the wrong place)
2004-10-26 18:21:29 +00:00
peter
759c010f6a * -Ch for heapsize added again
* __heapsize contains the heapsize
2004-10-26 15:11:01 +00:00
peter
ed07ab5f04 * localloc of staticsymtable needs a AT_NONE since it is a reference 2004-10-26 15:03:31 +00:00
peter
2e91bcf821 * align arraydef rtti 2004-10-26 15:02:33 +00:00
peter
5ec6609d11 * add saved_standard_registers 2004-10-25 17:04:51 +00:00
peter
e7459f5466 * heap and heapsize removed
* checkpointer fixes
2004-10-25 15:38:41 +00:00
peter
8706d9bec9 * help page updated 2004-10-25 15:37:50 +00:00
peter
d19663f3a8 * save standard registers moved to tcgobj 2004-10-25 15:36:47 +00:00
peter
30d25d1d2b * -Or fixes 2004-10-24 20:10:08 +00:00
peter
705868e816 * remove saveregister calling convention 2004-10-24 20:01:08 +00:00
florian
410d01458c * fixed several arm compiler bugs 2004-10-24 17:32:53 +00:00
peter
30be9e8e5d * during translation only process regalloc for the current regtype 2004-10-24 17:04:01 +00:00
peter
34756dfe4a * don't give warning for property as unknwon proc directive 2004-10-24 13:48:50 +00:00
peter
d24241b008 * gc-sections added when section smartlinking is used 2004-10-24 13:36:26 +00:00
peter
3eebc18aab * fixed writing of methodtable 2004-10-24 13:35:39 +00:00
peter
fcde2cab80 * support rodata like data when writing ordinal cosnts 2004-10-24 13:35:25 +00:00
peter
2ee2004032 * fixed compilation with removed loadref 2004-10-24 11:53:45 +00:00
peter
adb6f59eef * small regvar fixes
* loadref parameter removed from concatcopy,incrrefcount,etc
2004-10-24 11:44:28 +00:00
florian
60f0434585 * fixed compilation of arm compiler 2004-10-24 07:54:25 +00:00
florian
c6fbf26b6a * first arm fixes for new paraloc handling 2004-10-22 16:36:57 +00:00
Jonas Maebe
513b687ce7 + support for nostackframe directive 2004-10-20 07:32:42 +00:00
peter
f0723c54f0 * fixed compile error 2004-10-18 14:39:22 +00:00