Commit Graph

5703 Commits

Author SHA1 Message Date
michael
953269fcff + Patch from Wiktor Sywula for watcom support 2003-09-30 08:39:50 +00:00
peter
540691bf02 * optimized releasing of registers 2003-09-29 20:58:55 +00:00
peter
409b982075 * insertbefore added 2003-09-29 20:52:50 +00:00
peter
15446d6522 * removed emitjmp 2003-09-28 21:49:39 +00:00
peter
a028d221cc * fixed invalid opcode handling in spill registers 2003-09-28 21:49:30 +00:00
peter
9a9d96fe5d * fix register leak 2003-09-28 21:48:57 +00:00
peter
47d211aa2e * fix register leaks 2003-09-28 21:48:20 +00:00
peter
2693582200 * register paras and local copies updates 2003-09-28 21:47:18 +00:00
peter
c6f0a5fb0e * fix allocation of threadvar parameter 2003-09-28 21:46:18 +00:00
peter
75cb52213f * fix register leak in with debug 2003-09-28 21:45:52 +00:00
peter
2c4df4364e * fix check that filedef needs var para 2003-09-28 21:44:55 +00:00
peter
99bb20747e * parent framepointer changed to hidden parameter
* tloadparentfpnode added
2003-09-28 17:55:03 +00:00
peter
a561878746 * removed a_call_ref 2003-09-28 13:54:43 +00:00
peter
dea558b5c7 * return reg 255 when allowdupreg is defined 2003-09-28 13:41:12 +00:00
peter
b3ef859971 * default calling convention changed to stdcall 2003-09-28 13:39:58 +00:00
peter
d77cf79d3b * optimized releasing of registers 2003-09-28 13:39:38 +00:00
peter
e732233993 * invalid register message 2003-09-28 13:38:11 +00:00
peter
e248f1b570 * a_call_ref removed 2003-09-28 13:37:19 +00:00
peter
36c2bb1e1a * give error for wrong register number 2003-09-28 13:37:07 +00:00
peter
eb5429425a * shortstr compare updated for different calling conventions 2003-09-28 13:35:40 +00:00
peter
116153cf24 * register calling updates 2003-09-28 13:35:24 +00:00
peter
f6868f8d48 * fix reported file position for not matched forwards 2003-09-27 13:29:43 +00:00
peter
b6a0492c9c * remove sp_fixup 2003-09-25 21:29:23 +00:00
peter
1c11c95b3c * change push/pop in getreg/ungetreg 2003-09-25 21:29:16 +00:00
peter
2392f28675 * parameter fixes 2003-09-25 21:28:00 +00:00
peter
ab3d323e5b * rearranged threadvar code so the result register is the same
for the relocated and address loaded variables
2003-09-25 21:27:31 +00:00
peter
e7a50f0ee0 * remove obsolete tparalocation.sp_fixup 2003-09-25 21:26:24 +00:00
peter
349fceb4fc * has_local_copy gdb fix 2003-09-25 21:25:37 +00:00
peter
56c14885bb * remove allocate_intterupt_parameter, allocation is platform
dependent and needs to be done in create_paraloc_info
2003-09-25 21:25:13 +00:00
peter
eee2002780 * don't include vo_has_local_copy for open array/array of const 2003-09-25 21:24:09 +00:00
peter
bf66a6e4ab * fix filepositions
* insert spill temp allocations at the start of the proc
2003-09-25 16:19:32 +00:00
peter
545f437740 * fixed stabs for globals,static 2003-09-25 16:18:54 +00:00
peter
e487793919 * %st is st0 in nasm 2003-09-25 14:59:16 +00:00
peter
7c6560ab7f * fix intf wrapper code 2003-09-25 14:59:06 +00:00
peter
0805c4e535 * fix different expectloc 2003-09-25 14:57:51 +00:00
peter
cc823ff893 * fix check for unreachable locals 2003-09-25 14:57:36 +00:00
florian
0493cd3d2e * more x86-64 fixes 2003-09-25 13:13:32 +00:00
florian
f6e456268f * fixed make cycle 2003-09-24 21:15:49 +00:00
florian
cedff1a593 + processor type intialization for x86-64 added 2003-09-24 17:13:22 +00:00
florian
0b48a6a3ec * x86-64 adaptions 2003-09-24 17:12:36 +00:00
florian
8edd479391 * several fixes for new reg allocator 2003-09-24 17:12:02 +00:00
florian
88a3541c80 * x86_64 support; turn on by passing x86_64 2003-09-24 17:11:33 +00:00
marco
88e866dcb7 * (Peter) patch to fix snapshot 2003-09-24 13:02:10 +00:00
peter
420c1cdfe1 * don't call firstpass in resulttypepass 2003-09-23 21:10:11 +00:00
peter
72b8932713 * check for refs>0 in init/final local data 2003-09-23 21:03:59 +00:00
peter
d3063f722c * connect parasym to paraitem 2003-09-23 21:03:35 +00:00
peter
72761249f1 * fix global var+offset 2003-09-23 20:37:53 +00:00
peter
56ece89fe5 * fpc_check_object(_ext) has saveregisters and doesn't need
saving of registers
2003-09-23 20:37:16 +00:00
peter
06071e3d31 * remove obsolete code 2003-09-23 20:36:47 +00:00
peter
ddc50a91ca * add missing release of main_proc 2003-09-23 18:03:08 +00:00
peter
9ef935b8a7 * recordminalign for sparc 0 2003-09-23 17:58:38 +00:00
peter
8af51ea6d3 * locals and paras are allocated in the code generation
* tvarsym.localloc contains the location of para/local when
    generating code for the current procedure
2003-09-23 17:56:05 +00:00
marco
a2f5d5f579 * adapted to unixutil 2003-09-18 15:48:22 +00:00
marco
86cdc8f4d1 * BSD 1.0.x still uses st_ prefixes. 2003-09-18 15:38:17 +00:00
marco
4b6df870be * fix for snapshot building. 2003-09-18 08:50:48 +00:00
olle
6f78eac09f + support for a different set of compiler directives under $MODE MAC
+ added mac directives $SETC $IFC $ELSEC $ENDC
2003-09-17 22:30:19 +00:00
olle
f891435ca0 + added command line option for language mode -M<x>
+ helpinfo powerpc targets
2003-09-17 21:38:54 +00:00
olle
41fda4ee40 + added command line option for language mode -M<x> 2003-09-17 21:37:07 +00:00
peter
76a53a375d * varspez in calls to push_addr_param 2003-09-16 16:17:01 +00:00
peter
369fe529be * obsolete 2003-09-16 15:14:49 +00:00
marco
cc3c6c7f4a * Had a useless dependancy on unit unix in 1_1 mode 2003-09-16 13:42:39 +00:00
marco
fd800a1de8 * now for all platforms 2003-09-16 07:07:29 +00:00
marco
cf0c2af370 * fixed 2003-09-15 20:11:06 +00:00
daniel
505f97b75a * Removed m68k from fullcycle 2003-09-15 16:30:41 +00:00
Jonas Maebe
5677b3c274 * fixed release_reg_left_right for fpu registers 2003-09-14 21:57:08 +00:00
Jonas Maebe
0bc32cbcd1 + implemented volatile register queries 2003-09-14 21:56:41 +00:00
peter
94b2de254f * remove ppc code 2003-09-14 21:36:01 +00:00
peter
dfd282aac6 * flags2reg fixed
* fixed 64bit not
2003-09-14 21:35:52 +00:00
peter
46e1925e11 * new volatile registers proc 2003-09-14 21:35:15 +00:00
peter
3ccd30efde * fix setelementn support
* fix loading of flags
2003-09-14 21:34:16 +00:00
peter
c8bc89720c * location_force_reg gives IE when size=OS_NO 2003-09-14 21:33:37 +00:00
peter
1fcc82e61a * don't check exepath when linking on target 2003-09-14 21:33:11 +00:00
marco
4144f93ce5 * Unix reform 2003-09-14 20:26:18 +00:00
daniel
62e1074d1f * Fixed endian problem in Tregisterrec record 2003-09-14 19:30:58 +00:00
peter
d76dc1047e * updates for new ra 2003-09-14 19:19:04 +00:00
peter
f8bb9785e0 * remove obsolete code already in comments 2003-09-14 19:18:10 +00:00
peter
bf0d3c730f * don't use a_call_ref because it can use a parameter register
as temp
2003-09-14 19:17:39 +00:00
Jonas Maebe
5a5b42e927 - removed initialization code 2003-09-14 17:27:56 +00:00
Jonas Maebe
c8863b920b * fixed some ppc problems 2003-09-14 16:37:20 +00:00
daniel
1e02028986 * Fixed incorrect movzx spilling 2003-09-14 14:22:51 +00:00
peter
90f37cbcda * obsolete 2003-09-14 13:20:24 +00:00
peter
aca99d30e8 * fix previous commit, also include objectsymtable 2003-09-14 13:20:12 +00:00
peter
836dc5f062 * give IE when st is not assigned in deref 2003-09-14 12:58:29 +00:00
peter
8dd0a4027a * support mulitple overloads in implementation, this is delphi
compatible
  * procsym only stores the overloads available in the interface
2003-09-14 12:58:00 +00:00
peter
9311d0803d * save destroyed registers when calling threadvar helper 2003-09-14 12:57:10 +00:00
Jonas Maebe
d6fead1277 * fixed compilation for non-x86 2003-09-14 12:55:06 +00:00
daniel
c82243df4d * Add BTR to destination memory location check in spilling 2003-09-12 20:25:17 +00:00
daniel
90e1ca64f3 * Fixed fast spilling functionality by re-adding the code that initializes
precoloured nodes to degree 255. I would like to play hangman on the one
    who removed that code.
2003-09-12 19:07:42 +00:00
olle
e313062d0b * max lenght of symbols increased to 255
* emitted strings can now contain backslashes
2003-09-12 12:30:27 +00:00
florian
8f66389b46 * improved arm code generation
* move some protected and private field around
  * the temp. register for register parameters/arguments are now released
    before the move to the parameter register is done. This improves
    the code in a lot of cases.
2003-09-11 11:54:59 +00:00
daniel
079751b894 * Failed attempt to restore broken fastspill functionality 2003-09-10 19:14:31 +00:00
marco
305226dd23 * fix from peter for bts reg32,mem32 problem 2003-09-10 11:23:09 +00:00
marco
cd5ae5fcc3 * Patch from Peter for paraloc 2003-09-10 08:31:47 +00:00
peter
3a3d710c47 * basics for x86 register calling 2003-09-09 21:03:17 +00:00
daniel
49e539ac8d * Adding register allocation order 2003-09-09 20:59:27 +00:00
peter
05a15df3c2 * use register with least interferences in spillregister 2003-09-09 15:55:44 +00:00
peter
6b06f9e985 * winapi doesn't like pushing 8 byte record 2003-09-09 15:55:05 +00:00
peter
0a8bddc756 * calling convention fix 2003-09-09 15:54:10 +00:00
florian
f495796796 * x86 instruction table updated to nasm 0.98.37:
- sse3 aka prescott support
      - small fixes
2003-09-09 12:54:45 +00:00
florian
df906eda61 * some assembling problems fixed
* improved loadaddr_ref_reg
2003-09-09 12:53:39 +00:00
peter
64bc322e0e * fix compilerproc for default=oldfpccall 2003-09-08 18:28:51 +00:00
peter
b9d09a4e5c * preparations for different default calling conventions
* various RA fixes
2003-09-07 22:09:34 +00:00
florian
61c2b19b5c * proper error recovering from invalid published fields 2003-09-07 14:14:51 +00:00
olle
dea663850a * reverted last change, linux on powerpc still uses aix abi 2003-09-07 09:08:26 +00:00
florian
f3e9e7a24f * fixed web bug #2669
* cosmetic fix in printnode
  * tobjectdef.gettypename implemented
2003-09-06 22:27:08 +00:00
florian
eb9a587759 + support of NaN and Inf in the compiler as values of real constants 2003-09-06 16:47:24 +00:00
florian
e78dd95d0b * fixed exit code (no preindexed addressing mode in LDM) 2003-09-06 16:45:51 +00:00
florian
bd6bf8ac94 * fixed stm and ldm to be usable with preindex operand 2003-09-06 11:21:49 +00:00
olle
ce46a4fe31 * linux on powerpc now uses sysv abi 2003-09-06 10:46:56 +00:00
olle
82e40f6506 + compiler now define abi macros for powerpc FPC_ABI_AIX or FPC_ABI_SYSV 2003-09-06 10:41:54 +00:00
florian
a13ce1dfb4 + added *_watcom units 2003-09-06 10:01:11 +00:00
florian
1a95384ec1 * arm is working again as before the new register naming scheme was implemented 2003-09-05 23:57:01 +00:00
florian
22f1ff8da4 * merged Wiktor's Watcom patches in 1.1 2003-09-05 17:41:12 +00:00
marco
f34e9e5adf * applied Peter's patch. Now cycles. 2003-09-05 11:21:39 +00:00
olle
4471dd1d26 + bugfix, put token UNIMPLEMENTED in right order 2003-09-04 21:58:16 +00:00
olle
30938b72a7 + added new lagnuage mode: MAC 2003-09-04 21:37:29 +00:00
florian
024d08e05a * ARM compiler compiles again 2003-09-04 21:07:03 +00:00
peter
dfd60cb507 * released useparatemp 2003-09-04 15:39:58 +00:00
peter
059908d399 * abort with IE when spilling requires > 20 loops 2003-09-04 14:46:12 +00:00
peter
01a1f7d063 * return 0 instead of $ff when no reg is found 2003-09-04 14:42:44 +00:00
florian
0d3832776f * first bunch of adaptions of arm compiler for new register type 2003-09-04 00:15:28 +00:00
peter
610cbec252 * fixes for FPU register allocation 2003-09-03 21:06:45 +00:00
peter
adeae3a00b * write INVALID as register name instead of IE 2003-09-03 21:06:19 +00:00
peter
b4d54b1889 * powerpc needs software int64 to double 2003-09-03 21:06:05 +00:00
peter
98d153815c * some fixes for ppc 2003-09-03 21:04:14 +00:00
peter
ded08a12a9 * regenerated 2003-09-03 20:35:57 +00:00
peter
36bb27dab3 * fixed number sorting 2003-09-03 20:35:06 +00:00
peter
386027ffb5 * fixed sorting of register number 2003-09-03 20:33:28 +00:00
peter
c05cf49b35 * removed empty cga unit 2003-09-03 19:39:16 +00:00
peter
ef23ab2c78 * powerpc reg update 2003-09-03 19:37:07 +00:00
peter
601160a0e3 * powerpc compiles again 2003-09-03 19:35:24 +00:00
florian
91533b5d5a * initial revision of new register naming 2003-09-03 19:10:30 +00:00
florian
100cec5cee * inital revision derived from sparc 2003-09-03 19:09:35 +00:00
peter
3a3bdd95a7 * superregisters also from .dat file 2003-09-03 16:29:37 +00:00
peter
b66e477dd8 * also generate superregisters 2003-09-03 16:28:16 +00:00
peter
6a8d5eb25d * NEWRA branch merged 2003-09-03 15:55:00 +00:00
florian
220e05dd5e * fixed arm concatcopy
+ arm support in the common compiler sources added
  * moved some generic cg code around
  + tfputype added
  * ...
2003-09-03 11:18:36 +00:00
florian
6264028af1 * fixed reference handling
* fixed operand postfix for floating point instructions
  * fixed wrong shifter constant handling
2003-09-01 15:11:16 +00:00
florian
e36c23db74 * results of work on arm port last weekend 2003-09-01 09:54:57 +00:00
florian
301df6dab9 * fixed procedure entry/exit code
* started to fix reference handling
2003-08-29 21:36:28 +00:00
florian
04501b6fff * another couple of arm fixes 2003-08-28 13:26:10 +00:00
florian
dc7d8ba847 * today's arm patches 2003-08-28 00:05:29 +00:00
florian
dd9e5cf591 + same procedure as very day: today's work on arm 2003-08-27 00:27:56 +00:00
peter
15958fec9f * methodpointer fixes 2003-08-26 12:43:02 +00:00
peter
d5a6a5b7f9 * fix wrong registers in reference 2003-08-26 12:42:45 +00:00
florian
f3266351dc + started to implement FPU support for the ARM
* fixed a lot of other things
2003-08-25 23:20:38 +00:00
olle
0458038ee5 * minor adjustment 2003-08-24 21:40:12 +00:00
olle
d69418fe36 * made FPC_RAISEEXCEPTION compatible with MacOS 2003-08-24 21:38:43 +00:00
florian
9edd2b0401 * continued to work on the arm port 2003-08-24 12:27:26 +00:00
peter
284d18b7ca * reload also caller module when it is already compiled 2003-08-23 22:31:42 +00:00