florian
ed57ad0371
* improved code generation for OP_MUL/OP_IMUL
2005-01-01 13:19:09 +00:00
florian
b44f17099c
* fixed some alignment trouble
2004-12-18 15:48:06 +00:00
florian
d018160981
* fixed compilation
2004-12-04 15:23:00 +00:00
peter
8cf8c54609
* fixed varargs
...
* replaced dynarray with tlist
2004-11-22 22:01:19 +00:00
peter
a29eab36c7
* fixed funcretloc for sparc
2004-11-21 18:13:31 +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
florian
18f7aa97dd
* changed funcret location back to tlocation
2004-11-21 17:17:03 +00:00
peter
4d8460ec2f
* float routines all use internproc and compilerproc helpers
2004-11-21 15:35:23 +00:00
peter
e740a66636
* tparaitem removed, use tparavarsym instead
...
* parameter order is now calculated from paranr value in tparavarsym
2004-11-15 23:35:30 +00:00
peter
0c7e53bb81
* fixed compile of powerpc,sparc,arm
2004-11-11 19:31:33 +00:00
florian
239db4ba9d
* marked o* registers as volatile
2004-11-07 00:33:45 +00:00
peter
c95a859f0a
* generic tlocation
...
* move tlocation to cgutils
2004-10-31 21:45:02 +00:00
florian
a684d2669d
* fixed jump table for sparc
2004-10-31 14:24:47 +00:00
florian
3a06b4f0fd
* jmp table code generation for case statement on sparc
2004-10-30 22:01:11 +00:00
florian
7eccede56f
* initial revision, not yet enabled
2004-10-30 17:50:53 +00:00
florian
e04b172854
* fixed generic optimizer
...
* enabled generic optimizer for sparc
2004-10-30 15:21:37 +00:00
peter
5ec6609d11
* add saved_standard_registers
2004-10-25 17:04:51 +00:00
peter
705868e816
* remove saveregister calling convention
2004-10-24 20:01:08 +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
39805b678a
* fixed currency to float conversion
2004-10-15 22:54:53 +00:00
peter
d6bffaf5c6
* fixed sparc compile
...
* fixed float regvar loading
2004-10-10 20:51:46 +00:00
peter
434475be33
* concatcopy_unaligned maps by default to concatcopy, sparc will
...
override it with call to fpc_move
2004-10-10 20:31:48 +00:00
florian
30873fc9a8
* fixed generation of refs wiht large offsets, code still broken though
2004-10-05 21:29:29 +00:00
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
peter
ae8e74b45b
* cleanup and first sparc implementation
2003-07-06 17:44:12 +00:00
Jonas Maebe
70a5d1e4c2
* create_paraloc_info() is now called separately for the caller and
...
callee info
* fixed ppc cycle
2003-07-05 20:11:41 +00:00
peter
1e47d6ffe0
* delay slot NOPs and comments added
...
* a_loadaddr_ref_reg fixed and optimized to reuse passed register
if it is not used by the ref
2003-07-03 21:09:53 +00:00
peter
b7d99ec934
* paraloc splitted in callerparaloc,calleeparaloc
...
* sparc calling convention updates
2003-07-02 22:18:04 +00:00
peter
c642c454a2
* freeintparaloc
2003-06-17 16:36:59 +00:00
peter
f50aba2839
* a_loadaddr_ref_reg fixed
2003-06-17 16:35:56 +00:00
peter
6ce3721d8b
* JMP_BUF_SIZE changed to 4 to remove Alloctemp warnings
2003-06-17 16:35:42 +00:00
Jonas Maebe
404d344d92
* lots of newra fixes (need getfuncretparaloc implementation for i386)!
...
* renamed all_intregisters to volatile_intregisters and made it
processor dependent
2003-06-17 16:34:44 +00:00
peter
e6e43724c3
* freeintparaloc added
2003-06-17 16:34:19 +00:00
Jonas Maebe
d29c96896f
* fixed newra cycle for x86
...
* added constants for indicating source and destination operands of the
"move reg,reg" instruction to aasmcpu (and use those in rgobj)
2003-06-14 14:53:50 +00:00
peter
0dceec9a64
* current_procdef removed, use current_procinfo.procdef instead
2003-06-13 21:19:30 +00:00
peter
65e2afbd58
* supreg_name added
2003-06-13 21:08:30 +00:00
Jonas Maebe
4db662b6d0
* fixed small LOC_(C)FPUREGISTER bug
2003-06-13 17:05:24 +00:00
mazen
b39a9919a2
- unused temp var r removed in GetExplicitRegisterInt function
...
* some case added for var and fauncions naming
2003-06-12 22:47:52 +00:00
peter
93138a616d
* updates like the powerpc
2003-06-12 21:11:44 +00:00
Jonas Maebe
709e6da4fa
- removed ALL_INTREGISTERS (only the one in rgobj is valid)
2003-06-12 19:11:34 +00:00
peter
a0b9306652
* newra compiles for sparc
2003-06-12 16:43:07 +00:00
mazen
1e7fc22124
* fix compile problem related to modification
...
of the declareation of GetIntParaLoc in the
ancestor's declaration
2003-06-09 21:44:14 +00:00
mazen
d204c70f35
- making TOldRegister only declared for compatibility and
...
no more used in cpubase
2003-06-04 21:00:54 +00:00
mazen
4af28e59cc
+ added size of destination in code gen methods
...
+ making g_overflowcheck declaration same as
ancestor's method declaration
2003-06-04 20:59:37 +00:00
Jonas Maebe
6f3e16298a
* function results can now also be regvars
...
- removed tprocinfo.return_offset, never use it again since it's invalid
if the result is a regvar
2003-06-02 21:42:05 +00:00
peter
230a14ff68
* getregisterfpu size parameter added
...
* op_const_reg size parameter added
* sparc updates
2003-06-01 21:38:06 +00:00
peter
7b3095fe27
* reference fixes
2003-06-01 01:04:35 +00:00
peter
e03a8f8f69
* FMOVs fixed
2003-06-01 01:03:53 +00:00
peter
0106a4a537
* remove unsupported combinations
...
* reg_ref_reg only allowed for refs_lo,refs_hi
2003-06-01 01:03:41 +00:00
peter
1e7ecac976
* FUNCTION_RESULT64_LOW/HIGH_REG added for int64 results
2003-05-31 15:05:28 +00:00