summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2007-01-29 22:57:48 +0000
committerNate Begeman <natebegeman@mac.com>2007-01-29 22:57:48 +0000
commite3b09fbbb04af77f8d9cde3e258fd3e34b83fe6e (patch)
tree983c1febffb54356a878e664f09f14fea9443cd1 /llvm
parent52726f5837a4c9d92dac6240a4d532edff4baedb (diff)
downloadbcm5719-llvm-e3b09fbbb04af77f8d9cde3e258fd3e34b83fe6e.tar.gz
bcm5719-llvm-e3b09fbbb04af77f8d9cde3e258fd3e34b83fe6e.zip
We'd still like to register allocate r2 on darwin before the callee-save
regs. llvm-svn: 33635
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/Target/PowerPC/PPCRegisterInfo.td12
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCRegisterInfo.td b/llvm/lib/Target/PowerPC/PPCRegisterInfo.td
index 1950d073169..b1040e92045 100644
--- a/llvm/lib/Target/PowerPC/PPCRegisterInfo.td
+++ b/llvm/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.
OpenPOWER on IntegriCloud