maintaining stackpointer alignment. Perhaps it doesn't matter
authorAndrew Lenharth <andrewl@lenharth.org>
Wed, 25 Jan 2006 01:51:08 +0000 (01:51 +0000)
committerAndrew Lenharth <andrewl@lenharth.org>
Wed, 25 Jan 2006 01:51:08 +0000 (01:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25592 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/Alpha/AlphaRegisterInfo.cpp

index 1438073279c6dad27e7ee5f6753cf553f3931d95..fb93922aec51637a6d3a313faa6e798e694246d1 100644 (file)
@@ -257,6 +257,7 @@ AlphaRegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II) const {
         " for stack size: " << MF.getFrameInfo()->getStackSize() << "\n");
 
   if (Offset > IMM_HIGH || Offset < IMM_LOW) {
+    std::cerr << "Unconditionally using R28 for evil purposes\n";
     //so in this case, we need to use a temporary register, and move the original
     //inst off the SP/FP
     //fix up the old:
@@ -311,6 +312,9 @@ void AlphaRegisterInfo::emitPrologue(MachineFunction &MF) const {
   // Do we need to allocate space on the stack?
   if (NumBytes == 0) return;
 
+  unsigned Align = MF.getTarget().getFrameInfo()->getStackAlignment();
+  NumBytes = (NumBytes+Align-1)/Align*Align;
+
   // Update frame info to pretend that this is part of the stack...
   MFI->setStackSize(NumBytes);