mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-04 01:43:06 +00:00
Don't hard code the offset of the saved R31 in functions with frame pointers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15990 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
ad38e9615f
commit
1f4a132599
@ -278,12 +278,13 @@ void PPC32RegisterInfo::emitEpilogue(MachineFunction &MF,
|
||||
|
||||
// Get the number of bytes allocated from the FrameInfo...
|
||||
unsigned NumBytes = MFI->getStackSize();
|
||||
unsigned GPRSize = getSpillSize(PPC::R31);
|
||||
|
||||
if (NumBytes != 0) {
|
||||
if (hasFP(MF)) {
|
||||
MI = BuildMI(PPC::OR, 2, PPC::R1).addReg(PPC::R31).addReg(PPC::R31);
|
||||
MBB.insert(MBBI, MI);
|
||||
MI = BuildMI(PPC::LWZ, 2, PPC::R31).addSImm(4).addReg(PPC::R31);
|
||||
MI = BuildMI(PPC::LWZ, 2, PPC::R31).addSImm(GPRSize).addReg(PPC::R31);
|
||||
MBB.insert(MBBI, MI);
|
||||
}
|
||||
MI = BuildMI(PPC::LWZ, 2, PPC::R1).addSImm(0).addReg(PPC::R1);
|
||||
|
Loading…
Reference in New Issue
Block a user