summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/PowerPC/PPCRegisterInfo.td
diff options
context:
space:
mode:
authorAnton Korobeynikov <asl@math.spbu.ru>2010-12-18 19:53:14 +0000
committerAnton Korobeynikov <asl@math.spbu.ru>2010-12-18 19:53:14 +0000
commit3eb4fedecf5381eec25ca2c31bcced031dbd3358 (patch)
tree4224b56ed05787db23feb4b57a9814a0ca613120 /llvm/lib/Target/PowerPC/PPCRegisterInfo.td
parent4b4f3557de18d2565d09286348b0a03d67f9a18e (diff)
downloadbcm5719-llvm-3eb4fedecf5381eec25ca2c31bcced031dbd3358.tar.gz
bcm5719-llvm-3eb4fedecf5381eec25ca2c31bcced031dbd3358.zip
Restore the behavior of frame lowering before my refactoring.
It turns out that ppc backend has really weird interdependencies over different hooks and all stuff is fragile wrt small changes. This should fix PR8749 llvm-svn: 122155
Diffstat (limited to 'llvm/lib/Target/PowerPC/PPCRegisterInfo.td')
-rw-r--r--llvm/lib/Target/PowerPC/PPCRegisterInfo.td10
1 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCRegisterInfo.td b/llvm/lib/Target/PowerPC/PPCRegisterInfo.td
index 2fbd41bd84a..879f26700c6 100644
--- a/llvm/lib/Target/PowerPC/PPCRegisterInfo.td
+++ b/llvm/lib/Target/PowerPC/PPCRegisterInfo.td
@@ -301,12 +301,13 @@ def GPRC : RegisterClass<"PPC", [i32], 32,
// When using the 32-bit SVR4 ABI, r13 is reserved for the Small Data Area
// pointer.
const PPCSubtarget &Subtarget = MF.getTarget().getSubtarget<PPCSubtarget>();
- const TargetFrameInfo *TFI = MF.getTarget().getFrameInfo();
+ const PPCFrameInfo *PPCFI =
+ static_cast<const PPCFrameInfo*>(MF.getTarget().getFrameInfo());
if (Subtarget.isPPC64() || Subtarget.isSVR4ABI())
return end()-5; // don't allocate R13, R31, R0, R1, LR
- if (TFI->hasFP(MF))
+ if (PPCFI->needsFP(MF))
return end()-4; // don't allocate R31, R0, R1, LR
else
return end()-3; // don't allocate R0, R1, LR
@@ -331,8 +332,9 @@ def G8RC : RegisterClass<"PPC", [i64], 64,
}
G8RCClass::iterator
G8RCClass::allocation_order_end(const MachineFunction &MF) const {
- const TargetFrameInfo *TFI = MF.getTarget().getFrameInfo();
- if (TFI->hasFP(MF))
+ const PPCFrameInfo *PPCFI =
+ static_cast<const PPCFrameInfo*>(MF.getTarget().getFrameInfo());
+ if (PPCFI->needsFP(MF))
return end()-5;
else
return end()-4;
OpenPOWER on IntegriCloud