mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-22 10:33:23 +00:00
Implement eliminateCallFramePseudoInstr().
Wrap a long comment line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16883 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9f0cecd438
commit
85c08351ce
@ -77,10 +77,12 @@ void SparcV8RegisterInfo::copyRegToReg(MachineBasicBlock &MBB,
|
||||
void SparcV8RegisterInfo::
|
||||
eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
|
||||
MachineBasicBlock::iterator I) const {
|
||||
std::cerr
|
||||
<< "Sorry, I don't know how to eliminate call frame pseudo instrs yet, in\n"
|
||||
<< __FUNCTION__ << " at " << __FILE__ << ":" << __LINE__ << "\n";
|
||||
abort();
|
||||
MachineInstr &MI = *I;
|
||||
int size = MI.getOperand (0).getImmedValue ();
|
||||
if (MI.getOpcode () == V8::ADJCALLSTACKDOWN)
|
||||
size = -size;
|
||||
BuildMI (MBB, I, V8::ADDri, 2, V8::SP).addReg (V8::SP).addSImm (size);
|
||||
MBB.erase (I);
|
||||
}
|
||||
|
||||
void
|
||||
@ -115,8 +117,8 @@ void SparcV8RegisterInfo::emitPrologue(MachineFunction &MF) const {
|
||||
// Get the number of bytes to allocate from the FrameInfo
|
||||
int NumBytes = (int) MFI->getStackSize();
|
||||
|
||||
// Emit the correct save instruction based on the number of bytes in the frame.
|
||||
// Minimum stack frame size according to V8 ABI is:
|
||||
// Emit the correct save instruction based on the number of bytes in
|
||||
// the frame. Minimum stack frame size according to V8 ABI is:
|
||||
// 16 words for register window spill
|
||||
// 1 word for address of returned aggregate-value
|
||||
// + 6 words for passing parameters on the stack
|
||||
|
@ -77,10 +77,12 @@ void SparcV8RegisterInfo::copyRegToReg(MachineBasicBlock &MBB,
|
||||
void SparcV8RegisterInfo::
|
||||
eliminateCallFramePseudoInstr(MachineFunction &MF, MachineBasicBlock &MBB,
|
||||
MachineBasicBlock::iterator I) const {
|
||||
std::cerr
|
||||
<< "Sorry, I don't know how to eliminate call frame pseudo instrs yet, in\n"
|
||||
<< __FUNCTION__ << " at " << __FILE__ << ":" << __LINE__ << "\n";
|
||||
abort();
|
||||
MachineInstr &MI = *I;
|
||||
int size = MI.getOperand (0).getImmedValue ();
|
||||
if (MI.getOpcode () == V8::ADJCALLSTACKDOWN)
|
||||
size = -size;
|
||||
BuildMI (MBB, I, V8::ADDri, 2, V8::SP).addReg (V8::SP).addSImm (size);
|
||||
MBB.erase (I);
|
||||
}
|
||||
|
||||
void
|
||||
@ -115,8 +117,8 @@ void SparcV8RegisterInfo::emitPrologue(MachineFunction &MF) const {
|
||||
// Get the number of bytes to allocate from the FrameInfo
|
||||
int NumBytes = (int) MFI->getStackSize();
|
||||
|
||||
// Emit the correct save instruction based on the number of bytes in the frame.
|
||||
// Minimum stack frame size according to V8 ABI is:
|
||||
// Emit the correct save instruction based on the number of bytes in
|
||||
// the frame. Minimum stack frame size according to V8 ABI is:
|
||||
// 16 words for register window spill
|
||||
// 1 word for address of returned aggregate-value
|
||||
// + 6 words for passing parameters on the stack
|
||||
|
Loading…
x
Reference in New Issue
Block a user