diff options
| author | Chris Lattner <sabre@nondot.org> | 2002-12-17 03:15:26 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2002-12-17 03:15:26 +0000 |
| commit | 3bbe7cc51dd402871d206ca3fb77f84240e0c100 (patch) | |
| tree | 308d388e796b55741201ea5e215fab0c49374108 | |
| parent | 14322cd3375c675309c14b7a2f95aef22c5eae25 (diff) | |
Round number of bytes allocated on the stack up to a multiple of 4 so that the
stack remains aligned
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5095 91177308-0d34-0410-b5e6-96231b3b80d8
| -rw-r--r-- | lib/Target/X86/X86RegisterInfo.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/Target/X86/X86RegisterInfo.cpp b/lib/Target/X86/X86RegisterInfo.cpp index fc87a02e3b..909a79cee7 100644 --- a/lib/Target/X86/X86RegisterInfo.cpp +++ b/lib/Target/X86/X86RegisterInfo.cpp @@ -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); } |
