Commit Graph

458 Commits

Author SHA1 Message Date
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
peter
790e125329 * register fixes 2003-05-31 01:00:51 +00:00
peter
414bd5fa22 * more sparc cleanup
* accumulator removed, splitted in function_return_reg (called) and
    function_result_reg (caller)
2003-05-30 23:57:08 +00:00
florian
a8eb2ab740 * started to fix and clean up the sparc port 2003-05-28 23:18:31 +00:00
mazen
d0249adf22 + RegEnum2Number to ease handling register pairs
* changed convert_register_to_enum to use above
  array
2003-05-26 22:08:42 +00:00
mazen
a6880bcaa4 * added 64 bit value support to fix a problem in RTL 2003-05-26 22:04:57 +00:00
mazen
11f582061e * mnemonic of A_LDF is ld, ldf does not exist! 2003-05-26 21:31:27 +00:00
florian
995f7e0f11 * fix some small flaws which prevent sparc linux system unit from compiling
* some reformatting done
2003-05-23 22:33:48 +00:00
florian
89c93b12c4 * fixed sparc compiler compilation 2003-05-23 21:10:50 +00:00
florian
1770c1db0f * fixed sparc compilation partially 2003-05-22 16:11:22 +00:00
mazen
5d902c46cb * fixed generated code for compare instructions 2003-05-07 15:05:37 +00:00
mazen
518e7109a5 * invalid genrated code for CASE statement fixed 2003-05-07 15:04:30 +00:00
mazen
be8d4b2e26 - unused units removed from uses clause
- unused variables removed from implemntation declarations
2003-05-07 11:55:34 +00:00
mazen
e1c306879a - removed unused code 2003-05-07 11:45:02 +00:00
mazen
60e724a520 - method CheckNonCommutativeOpcode removed as not used 2003-05-07 11:28:26 +00:00
mazen
7f9fb59960 * adding emit_compare trying fixing compare bugs 2003-05-06 21:37:58 +00:00
mazen
a75a96c9b3 * A_BI changed to A_BL 2003-05-06 20:27:43 +00:00
mazen
6b490e7de4 * Invalid genrated code : A_JMPL changed to A_BA 2003-05-06 20:25:20 +00:00
mazen
de34248121 * A_BI ==> A_BL (bi ==> bl) instructions renamed 2003-05-06 20:23:44 +00:00
mazen
47ba6c2c4e * fixed a bug in a_load_const_reg related to max 13bit value limit
for immediat value ==> use of A_SETHI for greater values
2003-05-06 15:02:40 +00:00
mazen
986aa300a8 - non used code removed to bring up with powerpc changes 2003-05-06 15:00:36 +00:00
mazen
54eb17b3ff - non used constants OT_* removed
* some keywords moved lower case
2003-05-06 14:58:46 +00:00
mazen
d3a37744e4 * comment changed to ;# instead of ##
* .bss section changed to .section ".bss"
2003-05-06 14:55:27 +00:00
mazen
ace3595b4f * TOldRegister isnow just an alias for TCpuRegister
* TCpuRegister is used to define cpu register set physically available
+ CpuRegs array to easially create correspondence between TCpuRegister and TRegister
2003-04-29 12:03:52 +00:00
mazen
e3431c55d9 * fixed bug of output generated assembler for a_cmp_const_ref_label 2003-04-29 11:58:21 +00:00
mazen
ca247392ff + This file is used to define all cpu registers physically available 2003-04-29 11:53:38 +00:00
mazen
03a19b6668 * signification of ths faile has changed.
* It was used to declare the cpu registers physically available
* Now, it is used to define the register allocators paris (enum,number)
2003-04-29 11:52:52 +00:00
mazen
087d28fbcb * test of invalid opcode/operand combination gives internal error 2003-04-29 11:06:15 +00:00
mazen
12b5bae421 * instruction are moved lowercase to allow using old assmeblers 2003-04-29 10:00:31 +00:00
mazen
04e19cce0d - InternalError removed from TSparcCallNode.push_framepointer as it is called by common coplier code. 2003-04-28 09:49:58 +00:00
mazen
c475df7735 + max_scratch_regs variable added because requested by common compiler code 2003-04-28 09:46:30 +00:00
mazen
fad91e6369 + NOP after conditional jump instruction to prevent delay slot execution 2003-04-28 09:44:42 +00:00
mazen
5e741c4ca2 * Debug message in SetCondition more explicit. 2003-04-28 09:40:47 +00:00
peter
60978ba89c * aktprocdef renamed to current_procdef
* procinfo renamed to current_procinfo
  * procinfo will now be stored in current_module so it can be
    cleaned up properly
  * gen_main_procsym changed to create_main_proc and release_main_proc
    to also generate a tprocinfo structure
  * fixed unit implicit initfinal
2003-04-27 11:21:32 +00:00
peter
a5e7f02527 * updated for removed lexlevel 2003-04-27 07:48:05 +00:00
peter
72ad478f97 * fix compile for ppc,sparc,m68k 2003-04-23 21:10:54 +00:00
peter
7ff85f0779 * fix sparc compile 2003-04-23 13:35:39 +00:00
florian
0284016ee9 * fixed several issues with powerpc
+ applied a patch from Jonas for nested function calls (PowerPC only)
  * ...
2003-04-23 12:35:34 +00:00
daniel
25059e21b6 + Implemented the actual register allocator
+ Scratch registers unavailable when new register allocator used
  + maybe_save/maybe_restore unavailable when new register allocator used
2003-04-22 10:09:34 +00:00
peter
6a16389f67 * moved generic code from n386cal to ncgcal, i386 now also
uses the generic ncgcal
2003-04-04 15:38:56 +00:00
mazen
2a961db56e * fixing an LD operation without refernce in loading address parameters 2003-03-16 20:45:45 +00:00
mazen
c30ebcb633 * remaking sparc rtl compile 2003-03-15 22:51:58 +00:00
mazen
a33dd56d81 * fixing index overflow in handling new registers arrays. 2003-03-10 21:59:54 +00:00
mazen
87c9ee49d9 * FirstReg <-- R_G0 instead of Low(TOldRegister)=R_NONE
* LastReg <-- R_L7 instead of High(R_ASR31)=High(TOldRegister)
* FirstReg..LastReg rplaced by TOldRegister in several arrays declarions
2003-02-26 22:06:27 +00:00
mazen
8cb2ac6714 * code re-aligned 2 spaces 2003-02-25 21:41:44 +00:00
daniel
86bcea6ef5 * Code generator converted to new register notation
- Horribily outdated todo.txt removed
2003-02-19 22:00:14 +00:00
mazen
ed1ba5dc1c * asm condition generation modified by TAiCpu.SetCondition 2003-02-18 22:00:20 +00:00
mazen
7b3662c508 + Load_left_right and clear_left_right implemented fixing test0001 register
allocation bug.
2003-02-13 21:15:18 +00:00
mazen
9ad1d0ffe2 * fixing bug related to errornous program main entry stack frame 2003-02-06 22:36:55 +00:00
mazen
8cb32a768b * making UNIT lower case. 2003-02-05 22:44:55 +00:00
mazen
92f035d47f * fixing run time errors related to unimplemented abstract methods in CG
+ giving empty emplementations for some RTL functions
2003-02-05 21:48:34 +00:00
mazen
a47b0fca03 * fixing internal errors related to notn when compiling RTL 2003-02-04 21:50:54 +00:00
carl
59d3edeec7 * Several bugfixes for m68k target (register alloc., opcode emission)
+ VIS target
  + Generic add more complete (still not verified)
2003-02-02 19:25:54 +00:00
mazen
0de4838d36 - internal errors rmoved from a_loar_reg_reg when reg sizes differs from 32 2003-01-22 22:30:03 +00:00
mazen
07a21319b9 * making math code in RTL compiling.
*NB : This does NOT mean necessary that it will generate correct code!
2003-01-22 20:45:15 +00:00
mazen
c3321868d5 * many stuff related to RTL fixed 2003-01-20 22:21:36 +00:00
mazen
17c27617bc * A_CMPrs --> A_FCMPs and A_CMPd --> A_FCMPd 2003-01-20 20:15:44 +00:00
daniel
7b2fd10fb4 * Converted some code in cgx86.pas to new register numbering 2003-01-09 20:40:59 +00:00
daniel
6e507ba483 * Added register conversion 2003-01-09 15:49:56 +00:00
daniel
55a161bbbf * Tregister changed into a record 2003-01-08 18:43:56 +00:00
mazen
c20be82919 * adding unequaln node support to sparc compiler 2003-01-07 22:03:40 +00:00
mazen
a3aea23c2e * fixing bugs related to load_reg_ref 2003-01-06 22:51:47 +00:00
mazen
215880afe8 * fixing several bugs compiling the RTL 2003-01-05 21:32:35 +00:00
mazen
c419956367 * warnings about FreeTemp already free fixed with appropriate registers handling 2003-01-05 20:39:53 +00:00
florian
b59b436130 * x86-64 compiles
+ very basic support for float128 type (x86-64 only)
2003-01-05 13:36:53 +00:00
mazen
9978ebc539 - unit cga no more used in sparc compiler. 2002-12-30 21:17:22 +00:00
mazen
33b405859b - many emitXXX removed from cga.pas in order to remove that file. 2002-12-25 20:59:49 +00:00
mazen
311508131a - some writeln(s) removed in compiler
+ many files added to RTL
* some errors fixed in RTL
2002-12-24 21:30:20 +00:00
mazen
8d888ccff0 * many internal errors related to unimplemented nodes are fixed 2002-12-22 19:26:31 +00:00
mazen
b9a1c74a71 + added shift support 2002-12-21 23:22:59 +00:00
mazen
00ee9f8063 + added support for the shift nodes
+ added debug output on screen with -an command line option
2002-12-21 23:21:47 +00:00
carl
3214bab118 * maxoperands -> max_operands (for portability in rautils.pas)
* fix some range-check errors with loadconst
  + add ncgadd unit to m68k
  * some bugfix of a_param_reg with LOC_CREFERENCE
2002-12-14 15:02:03 +00:00
florian
121ca40b39 * some variant <-> dyn. array stuff 2002-12-05 14:27:25 +00:00
mazen
3c658bda85 + ncpuinln node 2002-11-30 20:03:29 +00:00
mazen
eca8ef3436 * fixed support of nSparcInline 2002-11-25 19:21:49 +00:00
peter
f3fc72095f * splitted defbase in defutil,symutil,defcmp
* merged isconvertable and is_equal into compare_defs(_ext)
  * made operator search faster by walking the list only once
2002-11-25 17:43:16 +00:00
peter
a496dbe1ff * pass proccalloption to ret_in_xxx and push_xxx functions 2002-11-18 17:31:54 +00:00
mazen
41153e2b1a + return_result_reg and function_result_reg are now used, in all plateforms, to pass functions result between called function and its caller. See the explanation of each one 2002-11-17 17:49:08 +00:00
carl
64655be168 * memory optimization (3-4%) : cleanup of tai fields,
cleanup of tdef and tsym fields.
  * make it work for m68k
2002-11-17 16:31:55 +00:00
florian
192199b9cc * made target_cpu_name lowercase 2002-11-16 20:07:57 +00:00
florian
41b608f1bb * fixed Cish syntax 2002-11-16 15:29:16 +00:00
mazen
37247e8cde * fixing return value variable address 2002-11-14 21:42:08 +00:00
mazen
f97aa452bd * SPARC calling mechanism almost OK (as in GCC./mppcsparc ) 2002-11-10 19:07:45 +00:00
mazen
3a78921639 * A_RET --> A_RETT (RET from Trap) 2002-11-10 17:49:14 +00:00
mazen
da271ad1ba *** empty log message *** 2002-11-06 15:34:00 +00:00
mazen
928e3c583b * op_reg_reg_reg don't need any more a TOpSize parameter 2002-11-06 11:31:24 +00:00
mazen
1097619459 *** empty log message *** 2002-11-05 16:15:00 +00:00
mazen
f170b21371 * parameter handling updated 2002-11-03 20:22:40 +00:00
mazen
1e23f14e4f * TOpSize values changed S_L --> S_SW 2002-10-28 20:59:17 +00:00
mazen
379fb9a4ff * TOpSize values changed S_L --> S_SW 2002-10-28 20:37:44 +00:00
mazen
510ad4c33b * bug of references name missing last character fixed 2002-10-25 19:37:53 +00:00
mazen
351c11d2a8 - cga.pas redueced to an empty unit 2002-10-22 13:43:01 +00:00
mazen
220be9c38f + op_raddr_reg and op_caddr_reg added to fix functions prologue 2002-10-20 19:01:38 +00:00
mazen
c8b64f79dc * carl's patch applied 2002-10-19 20:35:07 +00:00
mazen
a9431165fc * branch instructions are now contigous 2002-10-17 14:48:34 +00:00
mazen
38298e3548 * patch of Carl Eric added 2002-10-16 12:36:54 +00:00
mazen
e95fb0ff3a * sone coding style modified 2002-10-15 09:00:28 +00:00
carl
955ceeed0e - remove unused files 2002-10-14 16:30:39 +00:00
mazen
3a3b8a3dc4 * assembler output format fixed 2002-10-13 21:46:07 +00:00
mazen
5ed8dfb74c - logs removed 2002-10-13 19:47:34 +00:00
mazen
b845456453 * Get/Unget expilit registers to be re-examined 2002-10-12 19:03:23 +00:00
mazen
fcc5675528 *** empty log message *** 2002-10-11 13:35:14 +00:00
mazen
7bdf0e162b - no more used 2002-10-11 11:44:44 +00:00
mazen
f8ed725882 * tabs replaces by spaces 2002-10-10 20:23:57 +00:00
mazen
b44010f639 * Just to update repsitory 2002-10-10 19:57:51 +00:00
mazen
de41a87b82 * Internal error fixed, but usually i386 parameter model used 2002-10-10 15:10:39 +00:00
mazen
9a1a530331 * internal error bug fixes thanks to Florian, but parameters now are loaded as in i386 programs (like old gcc code generator\!) 2002-10-09 18:22:56 +00:00
mazen
34df2e8e09 just incase some one wolud help me debugging that\! 2002-10-09 13:52:19 +00:00
mazen
754077f199 * debugging register allocation 2002-10-08 21:02:22 +00:00
mazen
6bc783f5c2 *** empty log message *** 2002-10-08 17:17:03 +00:00
mazen
a15b375214 word alignement modified in g_stack_frame 2002-10-07 20:33:04 +00:00
mazen
3d9be081b9 * register allocation for parameters now done in cpupara, but InternalError(200109223) in cgcpu.pas:1053 is still not fixed du to location_force problem in ncgutils.pas:419 2002-10-04 21:57:42 +00:00
mazen
14bb0a51b4 + out registers allocator for the first 6 scalar parameters which must be passed into %o0..%o5 2002-10-02 22:20:28 +00:00
mazen
b5882415a3 + procedures exiting prologue added and stack frame now restored in the delay slot of the return (JMPL) instruction 2002-10-01 21:35:58 +00:00
mazen
b2c63fb6ca attinst.inc --> strinst.inc 2002-10-01 21:06:29 +00:00
mazen
807d2d4d63 attinst.inc --> strinst.inc 2002-10-01 21:06:29 +00:00
florian
0282138de4 * fixed log and id 2002-10-01 17:41:50 +00:00
mazen
3a70e9a021 * function epilogue modified to much SPARC ABIN 2002-09-30 21:07:13 +00:00
mazen
f83c707f71 * function prologue fixed 2002-09-30 19:12:14 +00:00
mazen
93164206b3 * cleanup made 2002-09-27 04:30:53 +00:00
mazen
a36f746c54 * some cleanup was made 2002-09-24 03:57:53 +00:00
mazen
4c607d6126 * a compile bug fixed 2002-09-21 10:22:43 +00:00
mazen
d78bf17c1d + call support 2002-09-19 20:24:41 +00:00
Jonas Maebe
a15d8cfe39 * a_load_reg_reg() now has two size parameters: source and dest. This
allows some optimizations on architectures that don't encode the
    register size in the register name.
2002-09-17 18:54:01 +00:00
carl
752beef0dd * cardinal -> longword 2002-09-07 20:40:23 +00:00
peter
dcd9e0107c * old logs removed and tabs fixed 2002-09-07 15:25:00 +00:00
mazen
2b9b0d86ed +generic register names commented 2002-09-03 07:41:00 +00:00
mazen
c7bf4df982 *call parameter handling is now based on the new param manager 2002-08-30 13:16:23 +00:00
mazen
12c3e9a760 ncgcall.pas moved to ncpucall.pas (I'd like ncpu* insteade of nsparc* since it
provides processor independent units naming)
2002-08-30 06:15:27 +00:00
mazen
dd411127f4 added support for SPARC processors 2002-08-29 11:02:36 +00:00