Commit Graph

7309 Commits

Author SHA1 Message Date
Károly Balogh
8f534e5428 * made Shell() work correctly on MorphOS 2005-01-06 09:20:36 +00:00
Károly Balogh
5908985365 * more SysV call support stuff for MorphOS 2005-01-06 02:13:03 +00:00
Károly Balogh
18be2ff0fd * sysv abi also uses F0-F13 as volatile registers 2005-01-05 19:01:53 +00:00
florian
6ecf269d34 + new error msg for arm shifter op handling added 2005-01-05 17:31:12 +00:00
florian
5942e4b6f6 * added support of shifter ops in arm inline assembler 2005-01-05 15:22:39 +00:00
Károly Balogh
86c111a794 * fixed SysV syscall support (MorphOS) 2005-01-05 02:31:06 +00:00
florian
eca0cb266f * not operator for byte/word fixed 2005-01-04 21:00:48 +00:00
florian
468eca38bd * load_reg_reg fixed 2005-01-04 20:15:05 +00:00
florian
655e947521 * better commenting 2005-01-04 20:14:40 +00:00
olle
94e74ca197 * sorted in correctly new tokens added by Karoly 2005-01-04 19:22:33 +00:00
olle
c2be1fd337 * made macpas switches in sync with turbo switches 2005-01-04 18:39:06 +00:00
Károly Balogh
088575dc32 + sysv style syscalls added for MorphOS 2005-01-04 17:40:33 +00:00
peter
d2c8a99440 * don't typecast index of indexed properties 2005-01-04 16:52:07 +00:00
peter
717e3c76c2 * set nf_is_self node flag when self is loaded 2005-01-04 16:39:46 +00:00
peter
14ccaf9c7b * allow enum with jumps as array index in delphi mode 2005-01-04 16:39:12 +00:00
peter
fd3f6a9017 * fix setting minval for enum with specified values 2005-01-04 16:38:54 +00:00
peter
537dcdde20 * don't allow properties in C style operators 2005-01-04 16:38:07 +00:00
peter
b88a75d42f * give error when property doesn't reference a method or field 2005-01-04 16:37:38 +00:00
peter
d111c8130a * don't release temps for array of ansistring 2005-01-04 16:37:09 +00:00
peter
cf8c959014 * release temps in array constructor 2005-01-04 16:36:51 +00:00
peter
720815e13b * fix aftercosntruction calls, vmt=1 is used to indicate that
afterconstruction needs to be called
  * only accept resourcestring when objpas is loaded
2005-01-04 16:36:31 +00:00
peter
b537382710 * give error when reading identifier > 255 chars 2005-01-04 16:34:03 +00:00
florian
bb096fcec6 * fixed nan et al. handling on arm 2005-01-04 16:20:51 +00:00
florian
a90585b5a4 * arm sets FPUFPA by default for now 2005-01-04 16:19:52 +00:00
florian
b6199234eb * prepared for fpu mode depended define 2005-01-04 16:18:57 +00:00
florian
6ab9be6a5d * implemented nostackframe calling convention directive 2005-01-04 15:36:32 +00:00
peter
296e81146e * insert stack_check helper call before doing register allocation
so the used registers can't be reused when parameters are loaded
    into register variables
2005-01-03 22:27:56 +00:00
peter
b34de6861f fix outline of 3rd level of options (-SI option mainly) 2005-01-03 20:27:47 +00:00
florian
80af47489d + first batch of patches to support tdef.getcopy fully 2005-01-03 17:55:57 +00:00
Jonas Maebe
f9b99ad965 * remove "release subregA; allocate other_subreg_of_A" sequences so the
register renaming doesn't stop early
2005-01-03 14:59:28 +00:00
peter
a8684d35ad unsigned*unsigned will also have unsigned result. 2005-01-02 17:31:07 +00:00
peter
a15f1c3283 * Don't release methodpointer. It is maybe still needed when we need to
convert the calln to loadn
2005-01-02 16:58:48 +00:00
florian
4900f10f2e * version and copyright increased 2005-01-02 10:20:08 +00:00
armin
f7a03147bb * increased maxsize of ExeCmd and DllCmd 2005-01-01 20:18:24 +00:00
armin
53f6eb9216 * support ! in import file names for netware also 2005-01-01 20:08:59 +00:00
florian
7d1dd39ecc * ie with array of const;cdecl; fixed 2005-01-01 19:30:17 +00:00
florian
18c1196125 * cleanup 2005-01-01 16:23:37 +00:00
florian
d41004eae3 * initial (non-complete) version by Ido Kanner aka ik_5 2005-01-01 15:17:07 +00:00
florian
91ef608143 * maybe_constant means also that a loc can be CREGISTER 2005-01-01 14:32:53 +00:00
florian
ed57ad0371 * improved code generation for OP_MUL/OP_IMUL 2005-01-01 13:19:09 +00:00
olle
de0440d620 + first version 2004-12-31 21:34:33 +00:00
marco
80132165d2 * regened with correct VERSION 2004-12-31 07:50:12 +00:00
marco
b8780d4782 * Makefile regened 2004-12-31 07:43:19 +00:00
Jonas Maebe
07d5650ab3 * fixes to interface style help 2004-12-30 19:06:56 +00:00
peter
6ae17badf1 * back to 1.9.5 for HEAD 2004-12-30 19:01:29 +00:00
peter
73585ab8ee * 1.9.6 2004-12-30 18:36:56 +00:00
Tomas Hajny
bdeab14b7f * missing utilsprefix added 2004-12-30 17:41:27 +00:00
Jonas Maebe
d898b8dfb7 * no more moving the loading of regvars past conditional jumps 2004-12-30 14:51:22 +00:00
florian
485b770322 * alignment fixes for sparc 2004-12-30 14:36:29 +00:00
Jonas Maebe
f041b36ce7 * fixed checking of overlapping references 2004-12-30 13:49:42 +00:00
michael
fe4c4fac08 + Fixed interface style help 2004-12-29 11:54:58 +00:00
olle
594a8cd94a + script which mimics the fpc program on MPW 2004-12-28 22:07:11 +00:00
olle
c9a59bbdfd * fixed typo in MPW error msg 2004-12-28 22:02:05 +00:00
olle
ea004048cb + suppression of link varning of 'qd' 2004-12-28 22:00:15 +00:00
Tomas Hajny
f290fbb299 * 8.3 fixes (short target name in paths) 2004-12-28 20:43:00 +00:00
Tomas Hajny
0d1a6fb4b2 * don't put quoted paths in link.res for OS/2 2004-12-28 20:39:12 +00:00
Jonas Maebe
53c04512cc * fixed several regvar related bugs, cycle with -OZp3r doesn't work
yet though
2004-12-28 18:01:40 +00:00
olle
3f7fdcb45e * fixed compilation for PowerPC 2004-12-28 02:25:43 +00:00
olle
5aa1ac7420 + added support for MPW error messages
+ added support for cooperative multitasking under MPW
2004-12-28 01:39:07 +00:00
Tomas Hajny
8b7e6be55c * missing maybequoted() added for deletion of generated .s files during external assembly 2004-12-27 19:48:58 +00:00
peter
ac962df59f * don't parse public,private,protected as procdirectives, leave
procdirective parsing before any other check is done
2004-12-27 17:32:06 +00:00
peter
f0267daa4a * also don't call procvar when converting to procvar 2004-12-27 16:54:29 +00:00
peter
c1bf99c30a * fix crash with callnode.ppuload when symtableproc=nil 2004-12-27 16:36:10 +00:00
peter
2a20174317 * set flag if a procedure references a symbol in staticsymtable 2004-12-27 16:35:48 +00:00
florian
5fb0678de2 * fixed class field info alignment 2004-12-27 15:54:54 +00:00
Jonas Maebe
b2869b3c75 * fixed internalerror when cycling with -O3p3u 2004-12-27 15:20:03 +00:00
Jonas Maebe
99cffcc375 - disable inlining for any procedure that contains assembler. Could
be enabled again if the procedure has neither local variables nor
    parameters.
2004-12-27 14:41:09 +00:00
peter
272cf5b9f1 * also compare procoptions and proctype when searching interface
implementations
2004-12-26 20:16:44 +00:00
peter
0d4ba90aa8 * don't allow class methods in interfaces 2004-12-26 20:12:23 +00:00
peter
65501ac04c * fix invalid typecast 2004-12-26 20:11:39 +00:00
peter
04e7db0905 * typecast float to non-float needs a move to memory 2004-12-26 20:09:35 +00:00
peter
ced6bf20cd * fix lineinfo for with blocks 2004-12-26 16:22:01 +00:00
peter
a1c525a3e6 * resourcestring does not need exception frame 2004-12-26 16:21:39 +00:00
florian
f068e0c3da * fixed extended->double/single conversion when using sse 2004-12-25 12:29:08 +00:00
florian
0ad4b9d394 * optimized float to float conversion 2004-12-25 10:48:17 +00:00
Jonas Maebe
d377cacc61 * fixed call-by-value passing of records with size 1, 2 or 4 for AIX abi
(using a hack, normally all records should by passed by value under the
     aix abi, but that's currently impossible)
2004-12-24 15:00:11 +00:00
Jonas Maebe
067c588089 - removed unused variables 2004-12-24 11:58:33 +00:00
Jonas Maebe
4c3b9ce6c3 * fixed a_jmp_name() for darwin 2004-12-24 11:51:55 +00:00
Jonas Maebe
bbb95a65f7 * fixed typo 2004-12-23 18:45:23 +00:00
peter
1da9e24cee * support sizeof()
* fix typecasting a constant like dword(4)
2004-12-22 17:09:55 +00:00
peter
dc363f29bc * maybequoted() added 2004-12-22 16:32:45 +00:00
michael
1027d1941d + Enable local debug info in methods 2004-12-21 08:38:16 +00:00
peter
f52d2b2edf * regenerated 2004-12-20 18:37:51 +00:00
peter
ba3516dff6 * A_IMUL readwrite operand 1 2004-12-19 21:34:09 +00:00
peter
3c3ec40b70 * regenerated 2004-12-19 17:42:32 +00:00
florian
ce3f177339 * dyn. linker path fixed for x86_64 2004-12-19 14:03:16 +00:00
florian
b44f17099c * fixed some alignment trouble 2004-12-18 15:48:06 +00:00
florian
c279c13d17 * the optimization fstp f;fld f to fst f disabled; leads to rounding problems 2004-12-18 15:21:56 +00:00
Jonas Maebe
84aa52942f * fixed tracking of usage of flags register
* fixed destroying of "memwrite"'s
  * fixed checking of entire sequences in all cases (previously this was
    only guaranteed if the new sequence was longer than the old one, and
    not if vice versa)
  * fixed wrong removal of sequences if a register load was already
    completely removed in the previous sequence (because in that case,
    that register has to be removed and renamed in the new sequence as
    well before removing the new sequence)
2004-12-18 15:16:10 +00:00
Jonas Maebe
a3627d9345 * fixed compilation with -dcsdebug -dallocregdebug 2004-12-18 14:07:35 +00:00
marco
e79fb753bc * slash typo 2004-12-16 08:06:42 +00:00
peter
c3f6b3125e * 64bit typecast 2004-12-15 21:09:06 +00:00
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