diff options
author | Nate Begeman <natebegeman@mac.com> | 2007-01-29 22:57:48 +0000 |
---|---|---|
committer | Nate Begeman <natebegeman@mac.com> | 2007-01-29 22:57:48 +0000 |
commit | 1f259e9d7aa346861785c4a2a7e3220fec113706 (patch) | |
tree | b8ff89a3cc7bc045c3e9d1a5674e8bff3e46807a /lib/Target/PowerPC/PPCRegisterInfo.td | |
parent | 73c56243758d6ef2f35587cdc7ab0ab11767e47c (diff) | |
download | llvm-1f259e9d7aa346861785c4a2a7e3220fec113706.tar.gz llvm-1f259e9d7aa346861785c4a2a7e3220fec113706.tar.bz2 llvm-1f259e9d7aa346861785c4a2a7e3220fec113706.tar.xz |
We'd still like to register allocate r2 on darwin before the callee-save
regs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33635 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/PowerPC/PPCRegisterInfo.td')
-rw-r--r-- | lib/Target/PowerPC/PPCRegisterInfo.td | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/Target/PowerPC/PPCRegisterInfo.td b/lib/Target/PowerPC/PPCRegisterInfo.td index 1950d07316..b1040e9204 100644 --- a/lib/Target/PowerPC/PPCRegisterInfo.td +++ b/lib/Target/PowerPC/PPCRegisterInfo.td @@ -209,9 +209,9 @@ def VRSAVE: SPR<256, "VRsave">, DwarfRegNum<107>; // Allocate volatiles first // then nonvolatiles in reverse order since stmw/lmw save from rN to r31 def GPRC : RegisterClass<"PPC", [i32], 32, - [R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, + [R2, R3, R4, R5, R6, R7, R8, R9, R10, R11, R12, R30, R29, R28, R27, R26, R25, R24, R23, R22, R21, R20, R19, R18, R17, - R16, R15, R14, R2, R13, R31, R0, R1, LR]> + R16, R15, R14, R13, R31, R0, R1, LR]> { let MethodProtos = [{ iterator allocation_order_begin(const MachineFunction &MF) const; @@ -220,14 +220,14 @@ def GPRC : RegisterClass<"PPC", [i32], 32, let MethodBodies = [{ GPRCClass::iterator GPRCClass::allocation_order_begin(const MachineFunction &MF) const { + // In Linux, r2 is reserved for the OS. + if (!MF.getTarget().getSubtarget<PPCSubtarget>().isDarwin()) + return begin()+1; + return begin(); } GPRCClass::iterator GPRCClass::allocation_order_end(const MachineFunction &MF) const { - // In Linux, r2 is reserved for the OS. - if (!MF.getTarget().getSubtarget<PPCSubtarget>().isDarwin()) - return end()-6; - // On PPC64, r13 is the thread pointer. Never allocate this register. // Note that this is overconservative, as it also prevents allocation of // R31 when the FP is not needed. |