mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-14 14:24:05 +00:00
Teach frame lowering to ignore debug values after the terminators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123399 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@ -497,7 +497,8 @@ void PPCFrameLowering::emitPrologue(MachineFunction &MF) const {
|
||||
|
||||
void PPCFrameLowering::emitEpilogue(MachineFunction &MF,
|
||||
MachineBasicBlock &MBB) const {
|
||||
MachineBasicBlock::iterator MBBI = prior(MBB.end());
|
||||
MachineBasicBlock::iterator MBBI = MBB.getLastNonDebugInstr();
|
||||
assert(MBBI != MBB.end() && "Returning block has no terminator");
|
||||
const PPCInstrInfo &TII =
|
||||
*static_cast<const PPCInstrInfo*>(MF.getTarget().getInstrInfo());
|
||||
|
||||
@ -676,29 +677,29 @@ void PPCFrameLowering::emitEpilogue(MachineFunction &MF,
|
||||
.addReg(TmpReg);
|
||||
}
|
||||
} else if (RetOpcode == PPC::TCRETURNdi) {
|
||||
MBBI = prior(MBB.end());
|
||||
MBBI = MBB.getLastNonDebugInstr();
|
||||
MachineOperand &JumpTarget = MBBI->getOperand(0);
|
||||
BuildMI(MBB, MBBI, dl, TII.get(PPC::TAILB)).
|
||||
addGlobalAddress(JumpTarget.getGlobal(), JumpTarget.getOffset());
|
||||
} else if (RetOpcode == PPC::TCRETURNri) {
|
||||
MBBI = prior(MBB.end());
|
||||
MBBI = MBB.getLastNonDebugInstr();
|
||||
assert(MBBI->getOperand(0).isReg() && "Expecting register operand.");
|
||||
BuildMI(MBB, MBBI, dl, TII.get(PPC::TAILBCTR));
|
||||
} else if (RetOpcode == PPC::TCRETURNai) {
|
||||
MBBI = prior(MBB.end());
|
||||
MBBI = MBB.getLastNonDebugInstr();
|
||||
MachineOperand &JumpTarget = MBBI->getOperand(0);
|
||||
BuildMI(MBB, MBBI, dl, TII.get(PPC::TAILBA)).addImm(JumpTarget.getImm());
|
||||
} else if (RetOpcode == PPC::TCRETURNdi8) {
|
||||
MBBI = prior(MBB.end());
|
||||
MBBI = MBB.getLastNonDebugInstr();
|
||||
MachineOperand &JumpTarget = MBBI->getOperand(0);
|
||||
BuildMI(MBB, MBBI, dl, TII.get(PPC::TAILB8)).
|
||||
addGlobalAddress(JumpTarget.getGlobal(), JumpTarget.getOffset());
|
||||
} else if (RetOpcode == PPC::TCRETURNri8) {
|
||||
MBBI = prior(MBB.end());
|
||||
MBBI = MBB.getLastNonDebugInstr();
|
||||
assert(MBBI->getOperand(0).isReg() && "Expecting register operand.");
|
||||
BuildMI(MBB, MBBI, dl, TII.get(PPC::TAILBCTR8));
|
||||
} else if (RetOpcode == PPC::TCRETURNai8) {
|
||||
MBBI = prior(MBB.end());
|
||||
MBBI = MBB.getLastNonDebugInstr();
|
||||
MachineOperand &JumpTarget = MBBI->getOperand(0);
|
||||
BuildMI(MBB, MBBI, dl, TII.get(PPC::TAILBA8)).addImm(JumpTarget.getImm());
|
||||
}
|
||||
|
Reference in New Issue
Block a user