Fix off-by-one error when encoding the stack size for a frameless stack.
authorBill Wendling <isanbard@gmail.com>
Wed, 7 Dec 2011 07:49:49 +0000 (07:49 +0000)
committerBill Wendling <isanbard@gmail.com>
Wed, 7 Dec 2011 07:49:49 +0000 (07:49 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146029 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86FrameLowering.cpp

index 158acc90c107fc4967055118153715851e3a0343..c0e86cad642d817a10ff01549e329f93e072e320 100644 (file)
@@ -561,7 +561,7 @@ uint32_t X86FrameLowering::getCompactUnwindEncoding(MachineFunction &MF) const {
     CompactUnwindEncoding |= (StackAdjust & 0xFF) << 16;
     CompactUnwindEncoding |= RegEnc & 0x7FFF;
   } else {
-    uint32_t TotalStackSize = StackAdjust + StackSize;
+    uint32_t TotalStackSize = StackAdjust + StackSize + 1;
     if ((TotalStackSize & 0xFF) == TotalStackSize) {
       // Frameless stack with a small stack size.
       CompactUnwindEncoding |= 0x02000000;