mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-15 09:33:39 +00:00
Always assume a function may have calls because the printer may add `bl' to get
the PC in a code sequence for global variables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14506 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
14d8c7a6a0
commit
ce76db9083
@ -187,7 +187,10 @@ void PowerPCRegisterInfo::emitPrologue(MachineFunction &MF) const {
|
|||||||
// Get the number of bytes to allocate from the FrameInfo
|
// Get the number of bytes to allocate from the FrameInfo
|
||||||
unsigned NumBytes = MFI->getStackSize();
|
unsigned NumBytes = MFI->getStackSize();
|
||||||
|
|
||||||
if (MFI->hasCalls()) {
|
// FIXME: the assembly printer inserts "calls" aka branch-and-link to get the
|
||||||
|
// PC address. We may not know about those calls at this time, so be
|
||||||
|
// conservative.
|
||||||
|
if (MFI->hasCalls() || true) {
|
||||||
// When we have no frame pointer, we reserve argument space for call sites
|
// When we have no frame pointer, we reserve argument space for call sites
|
||||||
// in the function immediately on entry to the current function. This
|
// in the function immediately on entry to the current function. This
|
||||||
// eliminates the need for add/sub brackets around call sites.
|
// eliminates the need for add/sub brackets around call sites.
|
||||||
@ -235,7 +238,10 @@ void PowerPCRegisterInfo::emitEpilogue(MachineFunction &MF,
|
|||||||
MBB.insert(MBBI, MI);
|
MBB.insert(MBBI, MI);
|
||||||
|
|
||||||
// If we have calls, restore the LR value before we branch to it
|
// If we have calls, restore the LR value before we branch to it
|
||||||
if (MFI->hasCalls()) {
|
// FIXME: the assembly printer inserts "calls" aka branch-and-link to get the
|
||||||
|
// PC address. We may not know about those calls at this time, so be
|
||||||
|
// conservative.
|
||||||
|
if (MFI->hasCalls() || true) {
|
||||||
// Read old LR from stack into R0
|
// Read old LR from stack into R0
|
||||||
MI = BuildMI(PPC32::LWZ, 2, PPC32::R0).addSImm(8).addReg(PPC32::R1);
|
MI = BuildMI(PPC32::LWZ, 2, PPC32::R0).addSImm(8).addReg(PPC32::R1);
|
||||||
MBB.insert(MBBI, MI);
|
MBB.insert(MBBI, MI);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user