Don't hard code the offset of the saved R31 in functions with frame pointers
authorNate Begeman <natebegeman@mac.com>
Sun, 22 Aug 2004 08:09:17 +0000 (08:09 +0000)
committerNate Begeman <natebegeman@mac.com>
Sun, 22 Aug 2004 08:09:17 +0000 (08:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15990 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/PowerPC/PPCRegisterInfo.cpp

index c881c8281e9fd2e82370d8cd54b7e490ea8a1955..b3a9da069ff28bfc04601081c4b33dba7f2ddde9 100644 (file)
@@ -278,12 +278,13 @@ void PPC32RegisterInfo::emitEpilogue(MachineFunction &MF,
   
   // Get the number of bytes allocated from the FrameInfo...
   unsigned NumBytes = MFI->getStackSize();
+  unsigned GPRSize = getSpillSize(PPC::R31);
 
   if (NumBytes != 0) {
     if (hasFP(MF)) {
       MI = BuildMI(PPC::OR, 2, PPC::R1).addReg(PPC::R31).addReg(PPC::R31);
       MBB.insert(MBBI, MI);
-      MI = BuildMI(PPC::LWZ, 2, PPC::R31).addSImm(4).addReg(PPC::R31);
+      MI = BuildMI(PPC::LWZ, 2, PPC::R31).addSImm(GPRSize).addReg(PPC::R31);
       MBB.insert(MBBI, MI);
     }
     MI = BuildMI(PPC::LWZ, 2, PPC::R1).addSImm(0).addReg(PPC::R1);