From: Jim Grosbach Date: Wed, 8 Sep 2010 19:55:28 +0000 (+0000) Subject: Fix errant fall-throughs causing the base pointer to be used when the frame X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=951f699afb0872bec605a3d0e84c41cddcadf7b4;p=oota-llvm.git Fix errant fall-throughs causing the base pointer to be used when the frame pointer was intended. rdar://8401980 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113394 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/ARM/ARMBaseRegisterInfo.cpp b/lib/Target/ARM/ARMBaseRegisterInfo.cpp index 7b4086875cc..d1f2ffd1376 100644 --- a/lib/Target/ARM/ARMBaseRegisterInfo.cpp +++ b/lib/Target/ARM/ARMBaseRegisterInfo.cpp @@ -1077,7 +1077,7 @@ ARMBaseRegisterInfo::ResolveFrameIndexReference(const MachineFunction &MF, // there are VLAs (and thus the SP isn't reliable as a base). if (isFixed || (MFI->hasVarSizedObjects() && !hasBasePointer(MF))) { FrameReg = getFrameRegister(MF); - Offset = FPOffset; + return FPOffset; } else if (MFI->hasVarSizedObjects()) { assert(hasBasePointer(MF) && "missing base pointer!"); // Use the base register since we have it. @@ -1087,12 +1087,12 @@ ARMBaseRegisterInfo::ResolveFrameIndexReference(const MachineFunction &MF, // out of range references. if (FPOffset >= -255 && FPOffset < 0) { FrameReg = getFrameRegister(MF); - Offset = FPOffset; + return FPOffset; } } else if (Offset > (FPOffset < 0 ? -FPOffset : FPOffset)) { // Otherwise, use SP or FP, whichever is closer to the stack slot. FrameReg = getFrameRegister(MF); - Offset = FPOffset; + return FPOffset; } } // Use the base pointer if we have one.