fix Allocas. Really. I mean it this time.
authorAndrew Lenharth <andrewl@lenharth.org>
Thu, 24 Feb 2005 18:36:32 +0000 (18:36 +0000)
committerAndrew Lenharth <andrewl@lenharth.org>
Thu, 24 Feb 2005 18:36:32 +0000 (18:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20306 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Alpha/AlphaRegisterInfo.cpp

index fa8f36b57443292e2f64af3e988fdd09e60d15fe..7428151279134b8d49ffc00ec6a72333475e80a2 100644 (file)
@@ -220,7 +220,8 @@ void AlphaRegisterInfo::emitPrologue(MachineFunction &MF) const {
     // brackets around call sites.
     //If there is a frame pointer, then we don't do this
     NumBytes += MFI->getMaxCallFrameSize();
-    std::cerr << "Added " << MFI->getMaxCallFrameSize() << " to the stack due to calls\n";
+    DEBUG(std::cerr << "Added " << MFI->getMaxCallFrameSize() 
+          << " to the stack due to calls\n");
   }
 
   if (FP)
@@ -274,6 +275,10 @@ void AlphaRegisterInfo::emitEpilogue(MachineFunction &MF,
   //now if we need to, restore the old FP
   if (FP)
   {
+    //copy the FP into the SP (discards allocas)
+    MI=BuildMI(Alpha::BIS, 2, Alpha::R30).addReg(Alpha::R15).addReg(Alpha::R15);
+    MBB.insert(MBBI, MI);
+    //restore the FP
     MI=BuildMI(Alpha::LDQ, 2, Alpha::R15).addImm(0).addReg(Alpha::R15);
     MBB.insert(MBBI, MI);
   }