Commit Graph

161 Commits

Author SHA1 Message Date
florian
468eca38bd * load_reg_reg fixed 2005-01-04 20:15:05 +00:00
florian
6ab9be6a5d * implemented nostackframe calling convention directive 2005-01-04 15:36:32 +00:00
florian
7d1dd39ecc * ie with array of const;cdecl; fixed 2005-01-01 19:30:17 +00:00
florian
ad4345c217 * fixed arm compilation 2004-11-24 22:03:26 +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
peter
0c7e53bb81 * fixed compile of powerpc,sparc,arm 2004-11-11 19:31:33 +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
florian
73c30d6579 * fixed arm compilation with cgutils
* ...
2004-11-01 17:41:28 +00:00
florian
13618bb9cd * fixed currency division 2004-11-01 12:10:26 +00:00
florian
e5feec37cb * fixed handling of stack parameters on the arm 2004-11-01 09:23:01 +00:00
peter
c95a859f0a * generic tlocation
* move tlocation to cgutils
2004-10-31 21:45:02 +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
florian
c8d7f6be2b * another couple of arm fixed 2004-10-31 12:37:11 +00:00
florian
410d01458c * fixed several arm compiler bugs 2004-10-24 17:32:53 +00:00
peter
2ee2004032 * fixed compilation with removed loadref 2004-10-24 11:53:45 +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
mazen
581b52422c - remove $IFDEF DELPHI and related code
- remove $IFDEF FPCPROCVAR and related code
2004-10-15 09:14:16 +00:00
peter
8b3e00244f * length parameter for copyvaluearray changed to tlocation 2004-10-11 15:46:45 +00:00
florian
960bf7b8b1 * fixed float spilling to use sfm/lfm instead of stf/ldf 2004-07-04 15:22:34 +00:00
florian
5062c04096 * fixed problem with cpu interferences 2004-07-03 19:29:14 +00:00
florian
8a9758c5e2 * logs truncated 2004-06-20 08:55:28 +00:00
florian
588e2c38bf * dwarf branch merged 2004-06-16 20:07:06 +00:00
florian
c68ea95074 + syscall directive support for MorphOS added 2004-04-28 15:19:03 +00:00
florian
6e4b98f913 * concatcopy with len=0 exits now immediatly 2004-03-31 19:13:04 +00:00
florian
aae508c277 + arm floating point register saving implemented
* hopefully stabs generation for MacOSX fixed
  + some defines for arm added
2004-03-29 19:19:35 +00:00
florian
1280635cc4 * arm assembler instructions can have 4 operands
* qword comparisations fixed
2004-03-23 21:03:50 +00:00
florian
3ac0c812e0 * interface trampolines (hopyfully) fixed 2004-03-22 22:19:02 +00:00
florian
f3c4d487e7 + added interface support for the arm
* added  FPC_REQUIRES_PROPER_ALIGNMENT define for targets which require proper alignment
2004-03-21 22:40:15 +00:00
florian
5bc07e7c96 + float parameters can be on the stack now as well 2004-03-20 21:11:01 +00:00
florian
c65e094bba + implemented cdecl'd varargs on arm
+ -dCMEM supported by the compiler
  * label/goto asmsymbol type with -dextdebug fixed
2004-03-20 20:55:36 +00:00
florian
74501ae73f * some alignment issues resolved
* compiler doesn't generate anymore instructions not supported by the linux fpe
2004-03-16 22:12:10 +00:00
florian
f9840598b0 * handling of spilling improved 2004-03-15 22:20:13 +00:00
florian
9594866b30 * optimized mul code generation 2004-03-14 21:42:24 +00:00
florian
16366a944c * spilling problem fixed
* handling of floating point memory references fixed
2004-03-14 16:15:39 +00:00
florian
a50e082468 * floating compares fixed
* unary minus for floats fixed
2004-03-13 18:45:40 +00:00
florian
c855ac1e56 + second_cmpfloat implemented, needs probably to be fixed 2004-03-11 22:41:37 +00:00
florian
164a5bb1d4 + fixed code generation for cmn 2004-03-10 22:35:40 +00:00
florian
40363f47e5 * compilation of arm rtl fixed 2004-03-07 00:16:59 +00:00
florian
10e765329d * fixed arm compilation
* cleaned up code generation for exported linux procedures
2004-03-06 20:35:19 +00:00
olle
4fecc1a56f * big transformation of Tai_[const_]Symbol.Create[data]name* 2004-03-02 00:36:32 +00:00
florian
bde158d4b5 * small compilation fix 2004-02-12 13:24:44 +00:00
florian
abc41f1c3c * several fixes to parameter handling on arm 2004-02-09 22:48:45 +00:00
Jonas Maebe
71202a141d * taicpu.is_same_reg_move() now gets a regtype parameter so it only
removes moves of that particular register type. This is necessary so
    we don't remove the live_start instruction of a register before it
    has been processed
2004-02-08 23:10:21 +00:00
florian
1e9e0b0e35 * fixed compilation problem 2004-02-08 23:06:59 +00:00
Jonas Maebe
9495f77117 - removed taicpu.is_reg_move because it's not used anymore
+ support tracking fpu register moves by rgobj for the ppc
2004-02-08 20:15:42 +00:00
peter
8c5b0f7d82 * first try to get cpupara working for x86_64 2004-02-04 22:01:13 +00:00
peter
ecfbbeffc3 * renamed xNNbittype to xNNinttype
* renamed registers32 to registersint
  * replace some s32bit,u32bit with torddef([su]inttype).def.typ
2004-02-03 22:32:53 +00:00
florian
ff303ba334 * handling of floating point references fixed 2004-01-29 17:09:32 +00:00
florian
16e7ba3a47 * alignment issues fixed 2004-01-29 17:09:14 +00:00
florian
de4fa4e7e7 * fixed another couple of arm bugs 2004-01-28 15:36:46 +00:00
florian
c77ec09d49 * fixed code generation for math inl. nodes
* more code generator improvements
2004-01-27 15:04:06 +00:00
florian
35110d8ef5 * fixed several arm issues 2004-01-26 19:05:56 +00:00
florian
8d335b9466 * fixed some spilling stuff
+ not(<int64>) implemented
  + small set comparisations implemented
2004-01-24 20:19:46 +00:00
florian
37454274bc * fixed several arm floating point issues 2004-01-24 18:12:40 +00:00
florian
0bb8e3912f * fixref fixed if index, base and offset were given 2004-01-24 01:33:20 +00:00
florian
5a2c4d4bff * genintparaloc fixed 2004-01-24 01:32:49 +00:00
florian
d7786f6246 * fixed generic shl/shr operations
+ added register allocation hook calls for arm specific operand types:
    register set and shifter op
2004-01-23 15:12:49 +00:00
florian
6e1d153194 * another fix to flag handling 2004-01-23 00:01:48 +00:00
florian
e7aba71412 * fixed several issues with flags 2004-01-22 20:13:18 +00:00
florian
3ab069324a * op_const_reg_reg with OP_SAR fixed 2004-01-22 02:22:47 +00:00
florian
703af0f1f4 * improved register usage
+ implemented second_cmp64bit
2004-01-22 01:47:15 +00:00
florian
af3d31eceb * fixed handling of max. distance of pc relative symbols 2004-01-21 19:01:03 +00:00
florian
3b21b99111 * fixed register allocator problems with concatcopy 2004-01-21 15:41:56 +00:00
florian
75e2de9f2c + reintroduce implemented 2004-01-21 14:22:00 +00:00
florian
e680460234 * fixed a_cmp_const_reg_label
* fixed volatile register handling which was broken by my last patch
2004-01-21 01:22:35 +00:00
florian
162ff2e6d4 * fixed a_call_reg
+ implemented paramgr.get_volative_registers
2004-01-20 23:18:00 +00:00
florian
1779c5dd8c * fixed symbol type writing for arm-linux
* fixed assembler generation for abs
2004-01-20 21:02:54 +00:00
Jonas Maebe
da74a9fea6 - removed unused methods from old generic spilling code 2003-12-28 16:20:09 +00:00
peter
1c7e6fc380 * sparc updates
* use registertype in spill_register
2003-12-26 14:02:30 +00:00
florian
78aeec22ca * arm compiler compilation fixed 2003-12-18 17:06:21 +00:00
florian
dd8f11e8e1 * fixed ldm/stm arm assembler reading
* fixed a_load_reg_reg with OS_8 on ARM
  * non supported calling conventions cause only a warning now
2003-12-08 17:43:57 +00:00
florian
1a87a5ed45 * fixed several arm calling conventions issues
* fixed reference reading in the assembler reader
  * fixed a_loadaddr_ref_reg
2003-12-03 17:39:04 +00:00
peter
1b0d0ca3c4 * s128real type is not compatible with s80real 2003-12-01 18:43:31 +00:00
florian
a567970402 * fixed several arm related problems 2003-11-30 19:35:29 +00:00
peter
db60537005 * fixed is_move 2003-11-29 17:36:56 +00:00
florian
4584775cbe * changed some types to prevend range check errors 2003-11-24 15:17:37 +00:00
florian
256299c274 * fixed reading of reg. sets in the arm assembler reader 2003-11-21 16:29:26 +00:00
florian
ebab97b3c8 + first part of arm assembler reader 2003-11-17 23:23:47 +00:00
florian
1af574ceca * assembler readers OOPed
+ typed currency constants
  + typed 128 bit float constants if the CPU supports it
2003-11-12 16:05:39 +00:00
florian
bbf7300a0c * Florian's culmutative nr. 1; contains:
- invalid calling conventions for a certain cpu are rejected
    - arm softfloat calling conventions
    - -Sp for cpu dependend code generation
    - several arm fixes
    - remaining code for value open array paras on heap
2003-11-07 15:58:32 +00:00
florian
8b337fb5ef + type cast variant<->enum
* cnv. node second pass uses now as well helper wrappers
2003-11-04 22:30:15 +00:00
florian
a9d9a15e20 * fixed ARM for new reg. allocation scheme 2003-11-02 14:30:03 +00:00
mazen
ba59054e84 * rgHelper renamed to rgBase
* using findreg_by_<name|number>_table directly to decrease heap overheading
2003-10-31 08:40:51 +00:00
mazen
75f88a5b90 * now uses standard routines in rgHelper unit to search registers by number and by name 2003-10-30 15:02:04 +00:00
florian
1df13c788c * fixed some MMX<->SSE
* started to fix ppc, needs an overhaul
  + stabs info improve for spilling, not sure if it works correctly/completly
  - MMX_SUPPORT removed from Makefile.fpc
2003-10-11 16:06:42 +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
florian
df906eda61 * some assembling problems fixed
* improved loadaddr_ref_reg
2003-09-09 12:53:39 +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
florian
1a95384ec1 * arm is working again as before the new register naming scheme was implemented 2003-09-05 23:57:01 +00:00
florian
024d08e05a * ARM compiler compiles again 2003-09-04 21:07:03 +00:00
florian
0d3832776f * first bunch of adaptions of arm compiler for new register type 2003-09-04 00:15:28 +00:00
florian
91533b5d5a * initial revision of new register naming 2003-09-03 19:10:30 +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