Commit Graph

449 Commits

Author SHA1 Message Date
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
Jonas Maebe
3056a64bf0 * fixed regvars support. Needs -doldregvars to activate. Only tested with
ppc, other processors should however only require maxregvars and
    maxfpuregvars constants in cpubase.pas. Remember to take scratch-
    registers into account when defining that value.
2004-02-08 18:08:59 +00:00
Jonas Maebe
a23c7932cf * fixed previous commit 2004-02-08 14:50:13 +00:00
Jonas Maebe
169c8f5a3b * changed an explicit mr to a_load_reg_reg so it's registered with the
register allocator as move
2004-02-07 15:01:05 +00:00
peter
8c5b0f7d82 * first try to get cpupara working for x86_64 2004-02-04 22:01:13 +00:00
olle
035c98cad2 * made more in phase with agppcgas.pas 2004-02-04 15:28:24 +00:00
olle
7e373764ba * uodated header comment 2004-02-04 15:23:28 +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
Jonas Maebe
5a98f00e7f - removed mov "reg, reg" optimizations, as they are removed by the
register allocator and may be necessary to indicate a register may not
    be reused before some point
2004-02-03 19:49:24 +00:00
Jonas Maebe
4f957bebff + implemented second_prefetch 2004-02-02 21:22:19 +00:00
florian
35b8e93073 * fixed more alignment issues 2004-01-30 13:42:03 +00:00
Jonas Maebe
c006ab8326 - removed double construction of fpu register allocator 2004-01-25 16:36:34 +00:00
Jonas Maebe
df428f7a5d * fixed allocation of parameters passed by reference for powerpc in
callee
2004-01-17 15:55:10 +00:00
florian
541955ad91 + x86 instruction tables for x86-64 extended 2004-01-15 14:01:18 +00:00
peter
47f08937e4 * use localalign info for alignment for locals and temps
* sparc fpu flags branching added
  * moved powerpc copy_valye_openarray to generic
2004-01-12 22:11:38 +00:00
olle
6ab944bfcf * gen of conditional instr updated according to agppcgas
* gen of PPCAsm command fixed
2004-01-12 00:08:03 +00:00
Jonas Maebe
4c7c8b9c3a * fixed mtfsb0 instruction for assembler reader/writer
* fixed initialisation of fpscr register to avoid spurious SIGPFE's
    (uses mtfsb0 instruction, so added extra define in options.pas to avoid
    requiring to start with a cross compiler)
2004-01-10 00:16:20 +00:00
peter
b4159755d2 * fixed too long ie number 2004-01-06 21:37:41 +00:00
Jonas Maebe
bee5b615cf + as_darwin assembler type (labels start with L)
* never generate register->number mappings for Darwin
    * always use real register names for Darwin
2004-01-04 21:18:10 +00:00
Jonas Maebe
9e781b8c7b + added log message for last commit 2004-01-04 21:17:51 +00:00
Jonas Maebe
744d6d85b2 *** empty log message *** 2004-01-04 21:12:47 +00:00
Jonas Maebe
c2efd86268 + integer division-by-zero detection support for ppc
+ compilerproc FPC_DIVBYZERO
2004-01-01 17:58:16 +00:00
Jonas Maebe
be0397b1d1 * fixed currency bugs. Int64 currency handling still needs to be
rewritten so that it doesn't include conversions to real anymore
    though
2003-12-31 22:30:39 +00:00
Jonas Maebe
8be1033511 * (64 bit int) shl/shr (value > 63) := 0 2003-12-31 18:12:23 +00:00
Jonas Maebe
92f038ebec * fixed saving/restoring of volatile fpu registers under sysv
+ better provisions for abi differences regarding fpu registers that have
    to be saved
2003-12-29 14:17:50 +00:00
Jonas Maebe
da6a3d28c8 * hopefully fixed tb0454 2003-12-29 11:35:19 +00:00
Jonas Maebe
83323b4955 * fixed tb0350 (support loading address of reference containing the
address 0)
2003-12-29 11:13:53 +00:00
Jonas Maebe
8953ed5494 * fixed tnotnode for < 32 bit quantities 2003-12-28 23:49:30 +00:00
florian
d38abc3a3f + setting of bit 6 of cr for c var args on ppc implemented 2003-12-28 22:09:12 +00:00
florian
218beb5b32 * handling of open array value parameters fixed 2003-12-28 19:22:27 +00:00
Jonas Maebe
6bab64590e * hopefully fixed varargs (both Pascal- and C-style) 2003-12-28 15:33:06 +00:00
Jonas Maebe
ffa51d27c3 * hopefully fixed interfaces (untested) 2003-12-28 15:14:14 +00:00
peter
1c7e6fc380 * sparc updates
* use registertype in spill_register
2003-12-26 14:02:30 +00:00
peter
3afcfd7f86 * extnumber failure is $ffff instead of -1
* fix non-vmt call for register calling on i386
2003-12-23 23:12:44 +00:00
florian
7bd24b32c3 + register allocators are set to nil now after they are freed 2003-12-18 01:03:52 +00:00
florian
2aeea741ed * fixed ppc compilation 2003-12-16 21:49:47 +00:00
Jonas Maebe
03d03d7ce4 * fixed compilation and simplified fixref, so it never has to reallocate
already freed registers anymore
2003-12-15 21:37:09 +00:00
peter
bce5a1e252 * rg[tregistertype] added in tcg 2003-12-12 17:16:17 +00:00
florian
2d6847e5cd + short gas register names for smartlinking added 2003-12-10 22:19:27 +00:00
florian
d43895d744 + initial interface support added 2003-12-10 01:10:25 +00:00
Károly Balogh
c5afdadecb * fixed compilation with -dppc603 2003-12-10 00:09:57 +00:00
Jonas Maebe
8c11916462 * forgot call to cg.g_overflowcheck() in nppcadd
* fixed overflow flag definition
  * fixed cg.g_overflowcheck() for signed numbers (jump over call to
    FPC_OVERFLOW if *no* overflow instead of if overflow :)
2003-12-09 20:39:43 +00:00
Jonas Maebe
ccc9c93fc7 * support writing of symbols with length 255 2003-12-09 20:09:09 +00:00
Jonas Maebe
d59197ec26 * fixed case bugs 2003-12-09 19:13:32 +00:00
Jonas Maebe
e4312930d1 * fixed usigned overflow checking 2003-12-08 21:18:44 +00:00
florian
2e5c899b81 + dummy tppcparamanager.create_varargs_paraloc_info added 2003-12-07 22:35:05 +00:00
florian
e63ae3ffee * a_load_ref_ref isn't allowed to be used in g_stackframe_entry 2003-12-07 21:59:21 +00:00
Jonas Maebe
62394e45d7 * moved count_locals from pstatmnt to symutils
* use count_locals in powerpc/cpupi to check whether we should set the
    first temp offset (and as such generate a stackframe)
2003-12-07 16:40:45 +00:00
Jonas Maebe
5f2356f45d * finally fixed int->bool conversion properly 2003-12-07 11:21:05 +00:00
Jonas Maebe
2aba43c797 * completely overhauled and fixed generic spilling code. New method:
spilling_get_operation_type(operand_number): returns the operation
    performed by the instruction on the operand: read/write/read+write.
    See powerpc/aasmcpu.pas for an example
2003-12-06 22:16:12 +00:00
Jonas Maebe
30cf6be249 * another fix to a_load_ref_reg()
+ implemented uses_registers() method
2003-12-06 22:13:53 +00:00
Jonas Maebe
8cb716ca56 * fixed load_ref_reg for source > dest size 2003-12-05 22:53:28 +00:00
Jonas Maebe
255589e12e * fixed some int<->boolean type conversion issues 2003-12-04 20:37:02 +00:00
Jonas Maebe
4ac4d2cadb * fixded fixref() regarding the reallocation of already freed registers
used in references
2003-11-30 11:32:12 +00:00
Jonas Maebe
08a966d88a * fixed fpu regallocator initialisation 2003-11-30 10:16:05 +00:00
Jonas Maebe
8ad6133ea3 * more ppc fixes, hello world works again under linuxppc 2003-11-29 22:54:32 +00:00
Jonas Maebe
8cb7f46d9c * fixed writing of conditional branches which only depend on the value
of ctr
2003-11-29 18:17:26 +00:00
Jonas Maebe
d5373d5971 * fixed several ppc assembler reader related problems
* local vars in assembler procedures now start at offset 4
  * fixed second_int_to_bool (apparently an integer can be in  LOC_JUMP??)
2003-11-29 16:27:19 +00:00
Jonas Maebe
6623aaf098 * fixed is_condreg
* fixed branch condition parsing in assembler reader
2003-11-23 20:00:39 +00:00
florian
3f1b80bfaa + skeleton for bXX crX,<label> 2003-11-23 18:32:42 +00:00
Jonas Maebe
9b38228c7e * fixed uninitialised var 2003-11-23 17:33:24 +00:00
florian
256299c274 * fixed reading of reg. sets in the arm assembler reader 2003-11-21 16:29:26 +00:00
florian
3b743d766b * fixed ppc assembler reader 2003-11-15 19:00:10 +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
78e93cec32 * initial revision 2003-11-06 20:48:02 +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
f72431af31 + copying of open array value parameters to the heap implemented 2003-11-02 17:19:33 +00:00
Jonas Maebe
a624d954f4 * fixed releasing of references (ppc also has a base and an index, not
just a base)
2003-11-02 15:20:06 +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
1e72dd2d78 * fixed compilation of ppc compiler 2003-10-25 10:37:26 +00:00
florian
05fcae577a * some ppc stuff fixed
* memory leak fixed
2003-10-19 01:34:30 +00:00
florian
5b33ab3643 * fixed more ppc stuff 2003-10-17 15:25:18 +00:00
peter
0939085ab1 * commented out more obsolete constants 2003-10-17 15:08:34 +00:00
peter
ec2e200e42 * fixed ppc build 2003-10-17 14:52:07 +00:00
florian
6a01a7b4a6 * compilation of the powerpc compiler fixed 2003-10-17 01:22:08 +00:00
florian
c70c620d9b * some ideas for mm support implemented 2003-10-13 01:58:03 +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
olle
3febb20061 * changed to symbolic const for alignment 2003-10-08 21:15:27 +00:00
mazen
7668192be0 + Alignement field added to TParaLocation (=4 as 32 bits archs) 2003-10-08 14:11:36 +00:00
peter
70fe77ca7c * procinfo unit contains tprocinfo
* cginfo renamed to cgbase
  * moved cgmessage to verbose
  * fixed ppc and sparc compiles
2003-10-01 20:34:48 +00:00
peter
99bb20747e * parent framepointer changed to hidden parameter
* tloadparentfpnode added
2003-09-28 17:55:03 +00:00
Jonas Maebe
0bc32cbcd1 + implemented volatile register queries 2003-09-14 21:56:41 +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
olle
e313062d0b * max lenght of symbols increased to 255
* emitted strings can now contain backslashes
2003-09-12 12:30:27 +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
peter
98d153815c * some fixes for ppc 2003-09-03 21:04:14 +00:00
peter
c05cf49b35 * removed empty cga unit 2003-09-03 19:39:16 +00:00
peter
601160a0e3 * powerpc compiles again 2003-09-03 19:35:24 +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
olle
0458038ee5 * minor adjustment 2003-08-24 21:40:12 +00:00
olle
399fac564f + added xxx_regname stuff
* made the mpw asm writer work again
2003-08-22 12:30:43 +00:00
daniel
7203890d79 * Fixed PowerPC compilation 2003-08-20 14:28:52 +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