mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-03-08 19:36:02 +00:00
SP relative offsets need to be adjusted by the local allocation size when
determining if they're likely to be in range of the SP when resolving frame references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@112624 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8480c2e314
commit
c1dc78de76
@ -1480,7 +1480,11 @@ needsFrameBaseReg(MachineInstr *MI, int64_t Offset) const {
|
|||||||
if (!AFI->isThumbFunction() || !AFI->isThumb1OnlyFunction())
|
if (!AFI->isThumbFunction() || !AFI->isThumb1OnlyFunction())
|
||||||
FPOffset -= 80;
|
FPOffset -= 80;
|
||||||
// Estimate an offset from the stack pointer.
|
// Estimate an offset from the stack pointer.
|
||||||
|
// The incoming offset is relating to the SP at the start of the function,
|
||||||
|
// but when we access the local it'll be relative to the SP after local
|
||||||
|
// allocation, so adjust our SP-relative offset by that allocation size.
|
||||||
Offset = -Offset;
|
Offset = -Offset;
|
||||||
|
Offset += MFI->getLocalFrameSize();
|
||||||
// Assume that we'll have at least some spill slots allocated.
|
// Assume that we'll have at least some spill slots allocated.
|
||||||
// FIXME: This is a total SWAG number. We should run some statistics
|
// FIXME: This is a total SWAG number. We should run some statistics
|
||||||
// and pick a real one.
|
// and pick a real one.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user