forked from OSchip/llvm-project
Round number of bytes allocated on the stack up to a multiple of 4 so that the
stack remains aligned llvm-svn: 5095
This commit is contained in:
parent
d9c6f2a6d3
commit
eaf58b03b2
|
@ -113,10 +113,13 @@ const unsigned* X86RegisterInfo::getCallerSaveRegs() const {
|
|||
}
|
||||
|
||||
void X86RegisterInfo::emitPrologue(MachineFunction &MF,
|
||||
unsigned numBytes) const {
|
||||
unsigned NumBytes) const {
|
||||
MachineBasicBlock &MBB = MF.front(); // Prolog goes in entry BB
|
||||
MachineBasicBlock::iterator MBBI = MBB.begin();
|
||||
|
||||
// Round stack allocation up to a nice alignment to keep the stack aligned
|
||||
NumBytes = (NumBytes + 3) & ~3;
|
||||
|
||||
// PUSH ebp
|
||||
MachineInstr *MI = BuildMI(X86::PUSHr32, 1).addReg(X86::EBP);
|
||||
MBBI = ++MBB.insert(MBBI, MI);
|
||||
|
@ -126,7 +129,7 @@ void X86RegisterInfo::emitPrologue(MachineFunction &MF,
|
|||
MBBI = ++MBB.insert(MBBI, MI);
|
||||
|
||||
// adjust stack pointer: ESP -= numbytes
|
||||
MI = BuildMI(X86::SUBri32, 2, X86::ESP).addReg(X86::ESP).addZImm(numBytes);
|
||||
MI = BuildMI(X86::SUBri32, 2, X86::ESP).addReg(X86::ESP).addZImm(NumBytes);
|
||||
MBBI = ++MBB.insert(MBBI, MI);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue