Commit Graph

5807 Commits

Author SHA1 Message Date
peter
b369a7ee9e * better link on target support 2003-09-30 19:54:23 +00:00
peter
5a7ce9fbe3 * fix pushw reg 2003-09-30 19:53:47 +00:00
marco
957a3d4b36 * -Q=-P and -L=-V 2003-09-30 17:25:01 +00:00
marco
9b39a588c3 * -V support 2003-09-30 11:24:59 +00:00
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
peter
375820ccae * unchain operators before adding to overloaded list 2003-08-23 22:31:08 +00:00
peter
cb16846e3b * fixed static class check for properties 2003-08-23 22:29:51 +00:00
peter
90782badfe * reload flagged units when interface is loaded 2003-08-23 22:29:24 +00:00
peter
0526b6fd9b * don't check size for open array in valid_for_assign 2003-08-23 18:52:18 +00:00
peter
f86df421ce * only check for size matches when parameter is enum,ord,float 2003-08-23 18:42:57 +00:00
peter
17d7fb5a03 * allow typeof(self) in class methods 2003-08-23 18:41:52 +00:00
daniel
889bd81bdb * Register allocator bugfix for h2pas 2003-08-23 10:46:21 +00:00
olle
399fac564f + added xxx_regname stuff
* made the mpw asm writer work again
2003-08-22 12:30:43 +00:00
florian
dc22fe7863 * continued to work on the arm skeleton 2003-08-21 23:23:59 +00:00
olle
b9394fd616 - removed parameter from fpc_iocheck 2003-08-21 22:14:16 +00:00
peter
6b12cc11e5 * first spill the registers of top_ref before spilling top_reg 2003-08-21 17:20:19 +00:00
peter
4b44f9b557 * fixed copy support for array of char,pchar in $H+ mode
* fixed copy support for pwidechar,array of widechar
2003-08-21 15:10:51 +00:00
peter
b9afdc6a36 * fix reg-supreg range check error 2003-08-21 14:48:36 +00:00
peter
8cf0c122f4 * remove convert_registers 2003-08-21 14:47:41 +00:00
florian
20b5945be0 * arm compiler can be compiled; far from being working 2003-08-21 03:14:00 +00:00
daniel
ff2c9d870b * convert_registers call removed from t_win32.pas 2003-08-20 20:50:18 +00:00
daniel
cdb8a15f4a * Some more R_NO changes
* Preventive code to loadref added
2003-08-20 20:29:06 +00:00
daniel
81d4cc15c7 * Fixed the fixed trouble 2003-08-20 20:13:08 +00:00
daniel
78ee625c7e * Fixed some R_NO trouble 2003-08-20 20:11:24 +00:00
daniel
2b0cd432ca * Small NOTARGETWIN32 conditional tweak 2003-08-20 19:28:21 +00:00
peter
d113495cf1 * fixed stackalloc to not allocate localst.datasize twice
* order of stackalloc code fixed for implicit init/final
2003-08-20 17:48:49 +00:00
daniel
2ce08bd157 * Some old register convention code removed
* A few changes to eliminate a few lines of code
2003-08-20 16:52:01 +00:00
peter
2a5f30418e * define NOOPT until optimizer is fixed 2003-08-20 15:50:35 +00:00
florian
abf9504b0e * more arm stuff 2003-08-20 15:50:12 +00:00
daniel
7203890d79 * Fixed PowerPC compilation 2003-08-20 14:28:52 +00:00
daniel
ebb1f3a361 * New register coding now mandatory, some more convert_registers calls
removed.
2003-08-20 09:07:00 +00:00
daniel
82b0cf41a6 * Made internal assembler use new register coding 2003-08-20 07:48:03 +00:00
daniel
41211715ff * Corrected a comment. 2003-08-19 13:58:33 +00:00
mazen
aded38f845 + implemented gas_regname based on convert_register_to_enum std_Reg2str 2003-08-19 13:22:51 +00:00
mazen
412188e68f - No more used in sources. 2003-08-19 11:54:48 +00:00
daniel
8cb289e65f * Fixed PowerPC compilation 2003-08-19 11:53:03 +00:00
Jonas Maebe
11e98e7d73 * some newra optimizations (eliminate lots of moves between registers) 2003-08-18 21:27:00 +00:00
daniel
86fde70d18 * Improved -sr on PowerPC ATT asm writer 2003-08-18 11:58:14 +00:00
marco
4c571efdda * fix for 2592, pushw imm 2003-08-18 11:52:57 +00:00
olle
c6f4df63e6 + cleaning up in proc entry and exit, now calc_stack_frame always is used. 2003-08-18 11:50:55 +00:00
daniel
787fcc5797 * Made ATT asm writer work with -sr 2003-08-18 11:49:47 +00:00
olle
4c5827fbee + added asm directive ALIGNING OFF to avoid unexpected aligning by the assembler 2003-08-18 11:47:15 +00:00
daniel
0263254289 * Now -sr works... 2003-08-17 21:11:00 +00:00
daniel
63e1b70931 * Notranslation changed into -sr functionality 2003-08-17 20:47:47 +00:00
Jonas Maebe
4f8c390198 * fixed regvars so they work with newra (at least for ppc)
* fixed some volatile register bugs
  + -dnotranslation option for -dnewra, which causes the registers not to
    be translated from virtual to normal registers. Requires support in
    the assembler writer as well, which is only implemented in aggas/
    agppcgas currently
2003-08-17 16:59:20 +00:00
Jonas Maebe
48bc5d09e0 * fixed compilation of ppc compiler with -dnewra 2003-08-17 16:53:19 +00:00
daniel
7d3bfaaed4 * Precoloured nodes now have an infinite degree approached with 255,
like they should.
2003-08-17 14:32:48 +00:00
daniel
45f9851e87 * Another register allocator bug fixed.
* cpu_registers set to 6 for i386
2003-08-17 08:48:02 +00:00
marco
c461204cdc * fix from Jonas. 2003-08-16 18:56:40 +00:00
Jonas Maebe
ddcab79323 * set correct localsymtable fixup already in handle_body_start instead
of in after_pass1, as it's necessary to get the correct offsets for
    the calleeside paralocs (and those are now setup in the generic
    handle_body_start)
2003-08-16 14:26:44 +00:00
florian
2b83637905 * several arm related stuff fixed 2003-08-16 13:23:01 +00:00
daniel
878498029f * Fixed newra compilation 2003-08-15 14:44:20 +00:00
peter
52c73e80d1 * start of sparc support for newra 2003-08-11 21:18:20 +00:00
mazen
f8be2992fd - dupplicated code removed 2003-08-11 14:22:06 +00:00
mazen
3f76298b6b + added support of NewRA in compilation of ppcsparc 2003-08-11 13:21:01 +00:00
mazen
a18dbbb2e6 - removed uncommon file header! 2003-08-11 09:15:53 +00:00
mazen
4df534c5e2 - Code cleaning : removed unused commentd units which equivalent were already added. 2003-08-11 09:05:09 +00:00
peter
6731abb0db * fixed some reported bugs 2003-08-10 17:25:23 +00:00
daniel
42c320cb29 * cs_regalloc renamed to cs_regvars to avoid confusion with register
allocator
  * Some preventive changes to i386 spillinh code
2003-08-09 18:56:54 +00:00
Jonas Maebe
2a3c6e0de5 * fixed conversion from signed value to floats if the compiler is
compiled with a 1.0.x compiler
2003-08-09 15:28:29 +00:00
Jonas Maebe
b1a903fd4d * fixed bug in load_fpu_location found by Olle 2003-08-08 19:01:02 +00:00
olle
c2fe8dbd99 * merged macos entry/exit code generation into the general one. 2003-08-08 15:49:24 +00:00
daniel
a4495e3867 * Made code generator reverse or/add/and/xor/imul instructions when
possible to reduce the slowdown of spills.
2003-08-03 20:38:00 +00:00
daniel
4984afb8f0 - Removed cmpop from Ti386addnode.second_addstring 2003-08-03 20:19:43 +00:00
daniel
557ac8b02e * Fixed a register allocator bug
* Figured out why -dnewra generates superfluous "mov reg1,reg2"
    statements: changes in location_force. These moves are now no longer
    constrained so they are optimized away.
2003-08-03 14:09:50 +00:00
florian
612a8cbbb1 * basic stuff fixed 2003-07-26 00:55:57 +00:00
Jonas Maebe
a783aea0b9 * fixed bogus abstract method warnings 2003-07-25 09:54:57 +00:00
Jonas Maebe
3c5d94dc64 * fixed nil pointer access 2003-07-24 10:45:40 +00:00
Jonas Maebe
177d57f22c * split en_exit_code into a part that may allocate a register and a part
that doesn't, so the former can be done before the register colouring
    has been performed
2003-07-23 11:04:15 +00:00
Jonas Maebe
af784cfb1e * final (?) fix to in-code 2003-07-23 11:02:53 +00:00
Jonas Maebe
a3cb0d2002 * don't use rg.getregisterint() anymore in g_stackframe_entry_*, because
the register colouring has already occurred then, use a hard-coded
    register instead
2003-07-23 11:02:23 +00:00
Jonas Maebe
355f84758e * several rg.allocexplicitregistersint/rg.deallocexplicitregistersint
pairs round calls to helpers
2003-07-23 11:01:14 +00:00
Jonas Maebe
356ee447ba * "lastsaveintreg" is RS_R31 instead of RS_R27 with -dnewra, because
there are no scratch regs anymore
2003-07-23 11:00:09 +00:00
Jonas Maebe
5ab3ea0af5 - disabled some debugging code 2003-07-23 10:58:06 +00:00
florian
5aba45edbf * very basic stuff for the arm 2003-07-21 16:35:30 +00:00
Jonas Maebe
d191387d5a * fixed 64bit int results with -dnewra (you can't free both registers and
then allocate two new ones, because then the registers could be reversed
    afterwards -> you get something like "movl %eax, %edx; movl %edx,%eax")
2003-07-21 13:51:50 +00:00
Jonas Maebe
7bc1557f5c * add_edges_used() is now also called for registers allocated with
getexplicitregisterint()
  * writing the intereference graph is now only done with -dradebug2 and
    the created files are now called "igraph.<module_name>"
2003-07-21 13:32:39 +00:00
florian
d2035fd6b4 * very basic stuff for the arm 2003-07-21 11:52:57 +00:00
Jonas Maebe
d73acd12f6 * fixed newra bug due to the fact that we sometimes need a temp reg
when loading/storing to memory (base+index+offset is not possible)
    and because a reference is often freed before it is last used, this
    temp register was soemtimes the same as one of the reference regs
2003-07-20 20:39:20 +00:00
Jonas Maebe
db3bd69a18 * fixed bug in tcginnode.pass_2 2003-07-20 18:03:27 +00:00
Jonas Maebe
66fcf33869 * fix for threadvars with -dnewra 2003-07-20 16:26:43 +00:00
Jonas Maebe
af61f830d0 * fixed bug in g_concatcopy with -dnewra 2003-07-20 16:15:58 +00:00
peter
1b633246b9 * sparc fixes 2003-07-08 21:23:24 +00:00
peter
09ed47cba6 * don't allow add/assignments for formaldef
* formaldef size changed to 0
2003-07-08 15:20:56 +00:00
peter
3d85d9c2bd * Fix halt() call 2003-07-07 19:59:41 +00:00
peter
6cd9e5efc7 * big endian first allocates high 2003-07-06 22:10:56 +00:00
peter
d03fd8f7e0 * operand order of cmp fixed 2003-07-06 22:10:13 +00:00
peter
d0e4a452e4 * signed compare fixed 2003-07-06 22:09:50 +00:00
peter
3f97c26b4b * shr and div fixed 2003-07-06 22:09:32 +00:00
Jonas Maebe
f909d6a620 * fixed ppc compilation problems and changed VOLATILE_REGISTERS for x86
so that it doesn't include ebp and esp anymore
2003-07-06 21:50:33 +00:00
Jonas Maebe
d514f33ce4 * committed wrong file previously :( 2003-07-06 21:26:06 +00:00
Jonas Maebe
1846337739 * fixed ppc compiler 2003-07-06 20:25:03 +00:00
peter
32d076480b * framepointer fixes for sparc
* parent framepointer code more generic
2003-07-06 17:58:22 +00:00
peter
ae8e74b45b * cleanup and first sparc implementation 2003-07-06 17:44:12 +00:00
daniel
268bfcf784 * Fixed register allocator. *Lots* of fixes. 2003-07-06 15:31:20 +00:00
Jonas Maebe
117d6934a1 + first spill_registers implementation, most likely still very buggy 2003-07-06 15:29:06 +00:00
Jonas Maebe
2763f461ce * VOLATILE_REGISTERS was wrong (it was more or less the inverted set
of what it had to be :/ )
2003-07-06 15:28:24 +00:00
Jonas Maebe
cc6a8fbe91 * make sure all registers except r0 are handled by the register
allocator for -dnewra
2003-07-06 15:27:44 +00:00
Jonas Maebe
acb3078279 * newra fix for threadvars 2003-07-06 15:25:54 +00:00
Jonas Maebe
80d6905b7b * fixed my previous completely broken commit. It's not perfect though,
registers > last_supreg and < max_intreg may still be "translated"
2003-07-06 15:00:47 +00:00
Jonas Maebe
b1917a614b * support integer registers that are not managed by newra (ie. don't
translate register numbers that fall outside the range
    first_supreg..last_supreg)
2003-07-06 14:45:05 +00:00