Correct PPC FRAMEADDR lowering using a pseudo-register
[oota-llvm.git] / lib / Target / PowerPC / PPCRegisterInfo.cpp
index bd7d285431bb5c74eb304da818441ad6a94a7ca5..9b860062e80608c183b01b720175eb282903afc4 100644 (file)
@@ -114,6 +114,11 @@ BitVector PPCRegisterInfo::getReservedRegs(const MachineFunction &MF) const {
   // when used in instructions that treat r0 as the constant 0.
   Reserved.set(PPC::ZERO);
 
+  // The FP register is also not really a register, but is the representation
+  // of the frame pointer register used by ISD::FRAMEADDR.
+  Reserved.set(PPC::FP);
+  Reserved.set(PPC::FP8);
+
   Reserved.set(PPC::R0);
   Reserved.set(PPC::R1);
   Reserved.set(PPC::LR);