mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-29 10:25:12 +00:00
Simplify
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50158 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -278,6 +278,20 @@ bool X86RegisterInfo::hasReservedCallFrame(MachineFunction &MF) const {
|
|||||||
return !MF.getFrameInfo()->hasVarSizedObjects();
|
return !MF.getFrameInfo()->hasVarSizedObjects();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int
|
||||||
|
X86RegisterInfo::getFrameIndexOffset(MachineFunction &MF, int FI) const {
|
||||||
|
int Offset = MF.getFrameInfo()->getObjectOffset(FI) + SlotSize;
|
||||||
|
if (!hasFP(MF))
|
||||||
|
return Offset + MF.getFrameInfo()->getStackSize();
|
||||||
|
|
||||||
|
Offset += SlotSize; // Skip the saved EBP
|
||||||
|
// Skip the RETADDR move area
|
||||||
|
X86MachineFunctionInfo *X86FI = MF.getInfo<X86MachineFunctionInfo>();
|
||||||
|
int TailCallReturnAddrDelta = X86FI->getTCReturnAddrDelta();
|
||||||
|
if (TailCallReturnAddrDelta < 0) Offset -= TailCallReturnAddrDelta;
|
||||||
|
return Offset;
|
||||||
|
}
|
||||||
|
|
||||||
void X86RegisterInfo::
|
void X86RegisterInfo::
|
||||||
eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
|
eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
|
||||||
MachineBasicBlock::iterator I) const {
|
MachineBasicBlock::iterator I) const {
|
||||||
@@ -349,18 +363,8 @@ void X86RegisterInfo::eliminateFrameIndex(MachineBasicBlock::iterator II,
|
|||||||
MI.getOperand(i).ChangeToRegister(hasFP(MF) ? FramePtr : StackPtr, false);
|
MI.getOperand(i).ChangeToRegister(hasFP(MF) ? FramePtr : StackPtr, false);
|
||||||
|
|
||||||
// Now add the frame object offset to the offset from EBP.
|
// Now add the frame object offset to the offset from EBP.
|
||||||
int64_t Offset = MF.getFrameInfo()->getObjectOffset(FrameIndex) +
|
int64_t Offset = getFrameIndexOffset(MF, FrameIndex) +
|
||||||
MI.getOperand(i+3).getImm()+SlotSize;
|
MI.getOperand(i+3).getImm();
|
||||||
|
|
||||||
if (!hasFP(MF))
|
|
||||||
Offset += MF.getFrameInfo()->getStackSize();
|
|
||||||
else {
|
|
||||||
Offset += SlotSize; // Skip the saved EBP
|
|
||||||
// Skip the RETADDR move area
|
|
||||||
X86MachineFunctionInfo *X86FI = MF.getInfo<X86MachineFunctionInfo>();
|
|
||||||
int TailCallReturnAddrDelta = X86FI->getTCReturnAddrDelta();
|
|
||||||
if (TailCallReturnAddrDelta < 0) Offset -= TailCallReturnAddrDelta;
|
|
||||||
}
|
|
||||||
|
|
||||||
MI.getOperand(i+3).ChangeToImmediate(Offset);
|
MI.getOperand(i+3).ChangeToImmediate(Offset);
|
||||||
}
|
}
|
||||||
@@ -842,20 +846,6 @@ unsigned X86RegisterInfo::getFrameRegister(MachineFunction &MF) const {
|
|||||||
return hasFP(MF) ? FramePtr : StackPtr;
|
return hasFP(MF) ? FramePtr : StackPtr;
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
X86RegisterInfo::getFrameIndexOffset(MachineFunction &MF, int FI) const {
|
|
||||||
int Offset = MF.getFrameInfo()->getObjectOffset(FI) + SlotSize;
|
|
||||||
if (!hasFP(MF))
|
|
||||||
return Offset + MF.getFrameInfo()->getStackSize();
|
|
||||||
|
|
||||||
Offset += SlotSize; // Skip the saved EBP
|
|
||||||
// Skip the RETADDR move area
|
|
||||||
X86MachineFunctionInfo *X86FI = MF.getInfo<X86MachineFunctionInfo>();
|
|
||||||
int TailCallReturnAddrDelta = X86FI->getTCReturnAddrDelta();
|
|
||||||
if (TailCallReturnAddrDelta < 0) Offset -= TailCallReturnAddrDelta;
|
|
||||||
return Offset;
|
|
||||||
}
|
|
||||||
|
|
||||||
void X86RegisterInfo::getInitialFrameState(std::vector<MachineMove> &Moves)
|
void X86RegisterInfo::getInitialFrameState(std::vector<MachineMove> &Moves)
|
||||||
const {
|
const {
|
||||||
// Calculate amount of bytes used for return address storing
|
// Calculate amount of bytes used for return address storing
|
||||||
|
Reference in New Issue
Block a user