mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-04-13 15:37:24 +00:00
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
This commit is contained in:
parent
d357d747de
commit
951f699afb
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user