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
olle
c6f4df63e6
+ cleaning up in proc entry and exit, now calc_stack_frame always is used.
2003-08-18 11:50:55 +00:00
olle
4c5827fbee
+ added asm directive ALIGNING OFF to avoid unexpected aligning by the assembler
2003-08-18 11:47:15 +00:00
daniel
0263254289
* Now -sr works...
2003-08-17 21:11:00 +00:00
daniel
63e1b70931
* Notranslation changed into -sr functionality
2003-08-17 20:47:47 +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
Jonas Maebe
48bc5d09e0
* fixed compilation of ppc compiler with -dnewra
2003-08-17 16:53:19 +00:00
Jonas Maebe
ddcab79323
* set correct localsymtable fixup already in handle_body_start instead
...
of in after_pass1, as it's necessary to get the correct offsets for
the calleeside paralocs (and those are now setup in the generic
handle_body_start)
2003-08-16 14:26:44 +00:00
peter
52c73e80d1
* start of sparc support for newra
2003-08-11 21:18:20 +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
Jonas Maebe
2a3c6e0de5
* fixed conversion from signed value to floats if the compiler is
...
compiled with a 1.0.x compiler
2003-08-09 15:28:29 +00:00
Jonas Maebe
b1a903fd4d
* fixed bug in load_fpu_location found by Olle
2003-08-08 19:01:02 +00:00
olle
c2fe8dbd99
* merged macos entry/exit code generation into the general one.
2003-08-08 15:49:24 +00:00
Jonas Maebe
a3cb0d2002
* don't use rg.getregisterint() anymore in g_stackframe_entry_*, because
...
the register colouring has already occurred then, use a hard-coded
register instead
2003-07-23 11:02:23 +00:00
Jonas Maebe
356ee447ba
* "lastsaveintreg" is RS_R31 instead of RS_R27 with -dnewra, because
...
there are no scratch regs anymore
2003-07-23 11:00:09 +00:00
Jonas Maebe
5ab3ea0af5
- disabled some debugging code
2003-07-23 10:58:06 +00:00
Jonas Maebe
d73acd12f6
* fixed newra bug due to the fact that we sometimes need a temp reg
...
when loading/storing to memory (base+index+offset is not possible)
and because a reference is often freed before it is last used, this
temp register was soemtimes the same as one of the reference regs
2003-07-20 20:39:20 +00:00
Jonas Maebe
af61f830d0
* fixed bug in g_concatcopy with -dnewra
2003-07-20 16:15:58 +00:00
peter
1b633246b9
* sparc fixes
2003-07-08 21:23:24 +00:00
Jonas Maebe
d514f33ce4
* committed wrong file previously :(
2003-07-06 21:26:06 +00:00
Jonas Maebe
1846337739
* fixed ppc compiler
2003-07-06 20:25:03 +00:00
Jonas Maebe
117d6934a1
+ first spill_registers implementation, most likely still very buggy
2003-07-06 15:29:06 +00:00
Jonas Maebe
2763f461ce
* VOLATILE_REGISTERS was wrong (it was more or less the inverted set
...
of what it had to be :/ )
2003-07-06 15:28:24 +00:00
Jonas Maebe
cc6a8fbe91
* make sure all registers except r0 are handled by the register
...
allocator for -dnewra
2003-07-06 15:27:44 +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
b7d99ec934
* paraloc splitted in callerparaloc,calleeparaloc
...
* sparc calling convention updates
2003-07-02 22:18:04 +00:00
olle
280c8655e5
* macos: fixes of loading-code
2003-06-18 10:12:36 +00:00
Jonas Maebe
9b645eef82
- removed allocparaloc/freeparaloc, generic ones are ok now
2003-06-17 17:27:08 +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
Jonas Maebe
642d0f923b
* ppc compiles with -dnewra, haven't tried to compile anything with it
...
yet though
2003-06-14 22:32:43 +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
Jonas Maebe
a5a186799a
+ added supreg_name function
2003-06-13 17:44:44 +00:00
Jonas Maebe
c0a35f3cab
* fixed bugs in case the left node was a LOC_(C)REFERENCE
2003-06-13 17:03:38 +00:00
Jonas Maebe
7ca760912b
* tcginnode.pass_2 doesn't call a helper anymore in any case
...
* fixed ungetregisterfpu compilation problems
2003-06-12 22:09:54 +00:00
Jonas Maebe
709e6da4fa
- removed ALL_INTREGISTERS (only the one in rgobj is valid)
2003-06-12 19:11:34 +00:00
Jonas Maebe
55509b199b
* (de)allocation of registers for parameters is now performed properly
...
(and checked on the ppc)
- removed obsolete allocation of all parameter registers at the start
of a procedure (and deallocation at the end)
2003-06-09 14:54:26 +00:00
Jonas Maebe
68b629fd16
* fixed small bug where a location was set to LOC_CREGISTER instead of
...
LOC_REGISTER
2003-06-08 18:20:02 +00:00
Jonas Maebe
d32d1a711e
- removed duplicate identifier
2003-06-08 18:19:27 +00:00
Jonas Maebe
98c3c2489e
* zero paraloc tregisters, so that the alignment bytes are 0 (otherwise
...
the crc of the ppu files can change between interface and
implementation)
2003-06-08 10:52:01 +00:00
Jonas Maebe
edb2179730
+ added freeintparaloc
...
* ppc get/freeintparaloc now check whether the parameter regs are
properly allocated/deallocated (and get an extra list para)
* ppc a_call_* now internalerrors if pi_do_call is not yet set
* fixed lot of missing pi_do_call's
2003-06-07 18:57:04 +00:00
Jonas Maebe
eb066d3b32
* calculate localsize also in g_return_from_proc since it's now called
...
before g_stackframe_entry (still have to fix macos)
* compilation fixes (cycle doesn't work yet though)
2003-06-04 11:58:58 +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
Jonas Maebe
abc1c5bf2f
* fix for bug in fixref that Peter found during the Sparc conversion
2003-06-01 13:42:18 +00:00
peter
1e7ecac976
* FUNCTION_RESULT64_LOW/HIGH_REG added for int64 results
2003-05-31 15:05:28 +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
marco
1daf2ca476
* register skipping (aligning) for int64 parameters, sys V abi only.
2003-05-30 23:45:49 +00:00
marco
a73b98ea9f
* getfuncretparaloc now uses r3 for highdword and r4 for lo. Doesn't work tho
2003-05-30 22:54:19 +00:00
marco
152b525419
* committed fix that swaps int64 parameters hi and lo.
2003-05-30 22:35:03 +00:00
Jonas Maebe
fefdcc6331
* fixed bug with intregvars
...
* locapara.loc can also be LOC_CFPUREGISTER -> also fixed
rcgppc.a_param_ref, which previously got bogus size values
2003-05-30 18:52:10 +00:00
Jonas Maebe
d321606bc5
* changed scratchregs from r28-r30 to r29-r31
...
* made sure the regvar registers don't overlap with the scratchregs
anymore
2003-05-30 18:49:59 +00:00
Jonas Maebe
413030a90d
* fixed problem where sometimes no register was allocated for the result
...
of an addnode when using regvars
2003-05-30 18:49:14 +00:00
Jonas Maebe
c70f75f1b7
* compile with -dppc603 to not use unaligned float loads in move() and
...
g_concatcopy, because the 603 and 604 take an exception for those
(and netbsd doesn't even handle those in the kernel). There are
still some of those left that could cause problems though (e.g.
in the set helpers)
2003-05-29 21:17:27 +00:00
Jonas Maebe
05a3d71c88
* also free temps in g_concatcopy if delsource is true
2003-05-29 10:06:09 +00:00