Commit Graph

275 Commits

Author SHA1 Message Date
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
Jonas Maebe
ead9de924c * added missing initialization of rg.usedint{in,by}proc
* ppc now also saves/restores used fpu registers
  * ncgcal doesn't add used registers to usedby/inproc anymore, except for
    i386
2003-05-28 23:58:18 +00:00
florian
a8eb2ab740 * started to fix and clean up the sparc port 2003-05-28 23:18:31 +00:00
Jonas Maebe
1bb8852335 * fixed register numbering bug 2003-05-25 14:32:42 +00:00
Jonas Maebe
4ca3d9a2e9 * fixed shr of 64 bit values by non-immediate value 2003-05-24 19:15:29 +00:00
Jonas Maebe
517e16dae7 * fixed endian problem with tlocation.value/valueqword fields 2003-05-24 16:02:01 +00:00
Jonas Maebe
df5e0bbfc6 * fsqrt is an optional instruction in the ppc architecture and isn't
implemented by any current ppc afaik, so use the generic sqrt routine
    instead (adapted so it works with compilerproc)
2003-05-24 13:39:32 +00:00
Jonas Maebe
ee71991a7f * don't save callee-save registers in the caller as well (the ppc code
that we generate is slow enough as it is without resorting to doing
    double work :)
2003-05-24 13:38:04 +00:00
Jonas Maebe
54cacc63a5 * fixed integer typeconversion problems 2003-05-24 11:59:42 +00:00
Jonas Maebe
5cfedffb9e * added some missing paralocation size settings 2003-05-24 11:48:40 +00:00
Jonas Maebe
d321a5aa3d * fixed framepointer storage: it's now always stored at r1+12, which is
a place in the link area reserved for compiler use.
2003-05-24 11:47:27 +00:00
Jonas Maebe
74301b9544 * fixed support for nested procedures and more parameters than those
which fit in registers (untested/probably not working: calling a
    nested procedure from a deeper nested procedure)
2003-05-23 18:51:26 +00:00
peter
5f6de7eb1f * inherite from tcgprocinfo 2003-05-22 21:34:11 +00:00
florian
9de6468186 + basic darwin support added 2003-05-20 23:54:00 +00:00
florian
999b859bc8 * fixed calling sequence for subroutines using the aix abi 2003-05-19 12:15:28 +00:00
florian
b1b16c8f09 + added abi field to tsysteminfo 2003-05-18 15:15:59 +00:00
Jonas Maebe
624819ccb8 * fixed para/localst calculations (note to self: don't commit at
extremely late/early hours :)
2003-05-17 14:05:30 +00:00
Jonas Maebe
9055529171 * workaround for nested procedures until Peter fixes it properly :) 2003-05-16 23:15:51 +00:00
Jonas Maebe
d816c6a8c6 * powerpc nested procedure fixes, should work completely now if all
local variables of the parent procedure are declared before the
    nested procedures are declared
2003-05-16 20:00:39 +00:00
Jonas Maebe
66792ee44e * adapted for Peter's regvar fixes 2003-05-16 16:26:05 +00:00
florian
137395876d * fixed last commit, changing lastsaveintreg to r31 caused some strange problems 2003-05-15 22:14:42 +00:00