Changes in directory llvm/lib/Target/ARM:
ARMRegisterInfo.cpp updated: 1.55 -> 1.56 --- Log message: bugfix: SP isn't resetted when function has FP and there is no spills. --- Diffs of the changes: (+3 -2) ARMRegisterInfo.cpp | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) Index: llvm/lib/Target/ARM/ARMRegisterInfo.cpp diff -u llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.55 llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.56 --- llvm/lib/Target/ARM/ARMRegisterInfo.cpp:1.55 Fri Feb 2 15:08:39 2007 +++ llvm/lib/Target/ARM/ARMRegisterInfo.cpp Fri Feb 2 17:08:40 2007 @@ -1140,10 +1140,11 @@ if (STI.isTargetDarwin() || hasFP(MF)) { NumBytes = AFI->getFramePtrSpillOffset() - NumBytes; // Reset SP based on frame pointer only if the stack frame extends beyond - // frame pointer stack slot. + // frame pointer stack slot or target is ELF and the function has FP. if (AFI->getGPRCalleeSavedArea2Size() || AFI->getDPRCalleeSavedAreaSize() || - AFI->getDPRCalleeSavedAreaOffset()) + AFI->getDPRCalleeSavedAreaOffset()|| + hasFP(MF)) if (NumBytes) BuildMI(MBB, MBBI, TII.get(ARM::SUBri), ARM::SP).addReg(FramePtr) .addImm(NumBytes); _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits