Make sure stack manipulation refers to ESP the right number of times
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5086 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/X86/InstSelectSimple.cpp b/lib/Target/X86/InstSelectSimple.cpp
index dd93142..e35867d 100644
--- a/lib/Target/X86/InstSelectSimple.cpp
+++ b/lib/Target/X86/InstSelectSimple.cpp
@@ -1092,7 +1092,8 @@
unsigned int allocatedTypeWords = allocatedTypeSize / 4;
if (allocatedTypeSize % 4 != 0) { allocatedTypeWords++; }
// Subtract size from stack pointer, thereby allocating some space.
- BuildMI (BB, X86::SUBri32, 1, X86::ESP).addZImm (allocatedTypeWords * 4);
+ BuildMI(BB, X86::SUBri32, 2,
+ X86::ESP).addReg(X86::ESP).addZImm(allocatedTypeWords * 4);
// Put a pointer to the space into the result register, by copying
// the stack pointer.
BuildMI (BB, X86::MOVrr32, 1, getReg (I)).addReg (X86::ESP);