Commit Graph

313 Commits

Author SHA1 Message Date
peter
f5471aef6e * more spilling rewrites 2004-10-05 20:41:01 +00:00
peter
ee3585f56f * spilling code rewritten for x86. It now used the generic
spilling routines. Special x86 optimization still needs
    to be added.
  * Spilling fixed when both operands needed to be spilled
  * Cleanup of spilling routine, do_spill_readwritten removed
2004-10-04 20:46:22 +00:00
florian
d57089732b * fixed dword->single/double on sparc 2004-10-03 19:21:56 +00:00
florian
001292bf50 * made sqrt, sqr and abs internal for the sparc 2004-10-03 12:41:30 +00:00
peter
75cd5c80fa * indents 2004-10-01 17:33:47 +00:00
florian
15d3388449 * fixed more sparc overflow stuff
* fixed some op64 stuff for sparc
2004-09-29 18:55:40 +00:00
peter
0af84db9cf * fixed crash 2004-09-28 20:19:36 +00:00
peter
6da9996dba * fixed passing of flaot parameters. The general size is still float,
only the size of the locations is now OS_32
2004-09-27 21:24:17 +00:00
peter
25b0dc04d7 * fixed spilling code 2004-09-27 21:23:26 +00:00
florian
62f93d3473 + partial overflow checking on sparc; multiplication still missing 2004-09-26 21:04:35 +00:00
florian
5392f62678 + a_jmp_name for sparc added 2004-09-26 17:36:12 +00:00
florian
be3f78e283 * handling of C styled varargs fixed 2004-09-25 20:28:39 +00:00
peter
65c3ba277c * ungetregister is now only used for cpuregisters, renamed to
ungetcpuregister
  * renamed (get|unget)explicitregister(s) to ..cpuregister
  * removed location-release/reference_release
2004-09-25 14:23:54 +00:00
peter
d5140a5792 * don't remove MOV reg1,reg1 it is needed for the RA 2004-09-21 20:33:00 +00:00
peter
33a834821f * paraloc branch merged 2004-09-21 17:25:12 +00:00
florian
5b2a1d9fdf * fixed absolute on sparc 2004-08-25 20:40:04 +00:00
florian
1eb575fa22 * fixed longbool(<int64>) on sparc 2004-08-24 21:02:32 +00:00
florian
59a814d7e1 * fixed boolean(<int>) on sparc 2004-08-23 20:45:52 +00:00
florian
4b3ed28d07 * morphos now takes any pointer var. as libbase
* alignment for sparc fixed
  * int -> double conversion on sparc fixed
2004-08-22 20:11:38 +00:00
peter
f3f33a5fea * fixed shr/shl 32 2004-08-16 21:00:30 +00:00
florian
cf25a973f8 * fixed alignment of variant records
* more alignment problems fixed
2004-08-15 13:30:18 +00:00
florian
6368652be2 * fixed several sparc alignment issues
+ Jonas' inline node patch; non functional yet
2004-08-14 14:50:42 +00:00
florian
6802705043 * float to float and int to float fixed 2004-08-01 19:01:10 +00:00
florian
8eaf31e212 * qword/int64 shifting fixed 2004-08-01 08:46:31 +00:00
mazen
72556ae39f * fix compile problem 2004-07-26 04:00:35 +00:00
florian
8a9758c5e2 * logs truncated 2004-06-20 08:55:28 +00:00
florian
e9bb27df36 * spilling of doubles on sparc fixed 2004-06-20 08:47:33 +00:00
florian
cf6f4fb550 - offsetfixup removed 2004-06-20 07:11:32 +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
mazen
5962aeb34e * make sparc para manager quite similar to ppc one to help
copying evolutions.
+ Add support to var args in registers. need to be verfied as it
  was just copying ppc's one
2004-03-15 14:39:56 +00:00
mazen
5d851cb954 + support for LongBool(Int64) type cast 2004-03-15 14:37:06 +00:00
mazen
6f13b5d5f3 * fixed conditions upon IEs for inlined function call stack frames 2004-03-12 15:42:18 +00:00
mazen
e465aa443e - revert '../' from include path 2004-03-12 08:18:11 +00:00
mazen
9fe655fa0f + help lazarus analyze the file 2004-03-11 16:21:27 +00:00
mazen
8fade03fa5 + give location for 64bit to fix IE 200402061 2004-03-09 13:05:49 +00:00
mazen
7ba73ec7b0 * make it as similar to PPC one ase possible 2004-03-08 16:28:39 +00:00
olle
4fecc1a56f * big transformation of Tai_[const_]Symbol.Create[data]name* 2004-03-02 00:36:32 +00:00
mazen
83d619bec5 * symaddr ==> refaddr to follow the rest of compiler changes 2004-02-27 15:15:33 +00:00
mazen
f02d3cfc4f * symaddr ==> refaddr to follow the rest of compiler changes 2004-02-27 13:27:28 +00:00
mazen
46c23fdc4d + added AInt support 2004-02-27 11:44:48 +00:00
mazen
b1bffd0a95 * symaddr ==> refaddr to follow the rest of compiler changes 2004-02-27 11:43:56 +00:00
florian
fabb9c33ac * top_symbol killed
+ refaddr to treference added
  + refsymbol to treference added
  * top_local stuff moved to an extra record to save memory
  + aint introduced
  * tppufile.get/putint64/aint implemented
2004-02-27 10:21:04 +00:00
mazen
77473fed86 * fix compile problem for sparc 2004-02-25 14:25:47 +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
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
mazen
bf36516f33 * Supported assembler modes are GAS and STANDARD 2004-01-26 14:41:24 +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
peter
42c6e9323b * sparc updates, mostly float related 2004-01-12 16:39:40 +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
peter
e380119e8c * sparc assembler reader updates 2003-12-25 01:25:43 +00:00
mazen
e0303f16a7 * new TRegister definition applied 2003-12-19 14:38:03 +00:00
mazen
23f1b2c49e * improve hadlign %hi and %lo operators 2003-12-10 13:16:35 +00:00
mazen
247effd0cc + added uses_registers overloaded method for sparc 2003-12-09 09:44:22 +00:00
mazen
3884537785 + support for native sparc assembler reader 2003-12-08 13:02:21 +00:00
peter
1b0d0ca3c4 * s128real type is not compatible with s80real 2003-12-01 18:43:31 +00:00
mazen
077647ee63 + defintion of ts128real
+ globtype is needed in interface uses clause
2003-11-28 13:09:07 +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
peter
f44380e4a9 * fixed alias/colouring > 255 2003-11-10 19:05:50 +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
peter
b8b0ba21fa * 1.9.0 2003-11-01 19:27:54 +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
mazen
105806e6e7 + added fake MM Registers support because of generic code need it. 2003-10-29 15:18:33 +00:00
peter
b224d87ea5 * added more register functions 2003-10-24 15:20:37 +00:00
mazen
619b429650 *fixes related to removal of rg 2003-10-24 11:31:43 +00:00
mazen
7251301e50 -unused units removed from uses clause 2003-10-24 11:28:35 +00:00
mazen
dd632de71e -unused units removed from uses clause
*fix related to rg which was removed
2003-10-24 11:25:32 +00:00
mazen
f217753383 *fix related to toper==>poper 2003-10-24 11:22:50 +00:00
mazen
301f8978ae * rg.[un]GetRegister* ==> [Un]Get[*]Register 2003-10-24 11:14:46 +00:00
mazen
0bcacbde35 * fixed compil problem when using ObjFpc mode (^ required). 2003-10-24 07:00:17 +00:00
olle
ac930a13e2 * changed to symbolic const for alignment
+ alignment set for function result
2003-10-08 21:16: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
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
d76dc1047e * updates for new ra 2003-09-14 19:19:04 +00:00
peter
ded08a12a9 * regenerated 2003-09-03 20:35:57 +00:00
peter
3a3bdd95a7 * superregisters also from .dat file 2003-09-03 16:29:37 +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
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
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
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
peter
52c73e80d1 * start of sparc support for newra 2003-08-11 21:18:20 +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
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
peter
1b633246b9 * sparc fixes 2003-07-08 21:23:24 +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
peter
32d076480b * framepointer fixes for sparc
* parent framepointer code more generic
2003-07-06 17:58:22 +00:00