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:
Brian Gaeke 2004-10-10 19:57:21 +00:00
parent 9f0cecd438
commit 85c08351ce
2 changed files with 16 additions and 12 deletions

View File

@ -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

View File

@ -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