diff options
| author | Bill Wendling <isanbard@gmail.com> | 2011-12-06 21:34:01 +0000 |
|---|---|---|
| committer | Bill Wendling <isanbard@gmail.com> | 2011-12-06 21:34:01 +0000 |
| commit | 5a173cd367a1dc8eb82ab54586eb7b258fd12252 (patch) | |
| tree | ccaa75f8040d0c727f4a1bebc546987d7a1fdc21 /llvm/lib | |
| parent | a73c0c99eab697059ded3b9e317a7791caea4079 (diff) | |
| download | bcm5719-llvm-5a173cd367a1dc8eb82ab54586eb7b258fd12252.tar.gz bcm5719-llvm-5a173cd367a1dc8eb82ab54586eb7b258fd12252.zip | |
Encode the total stack if there isn't a frame.
llvm-svn: 145969
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/X86/X86FrameLowering.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86FrameLowering.cpp b/llvm/lib/Target/X86/X86FrameLowering.cpp index 5bf8132db29..6e2b3df7a4a 100644 --- a/llvm/lib/Target/X86/X86FrameLowering.cpp +++ b/llvm/lib/Target/X86/X86FrameLowering.cpp @@ -564,12 +564,13 @@ uint32_t X86FrameLowering::getCompactUnwindEncoding(MachineFunction &MF) const { CompactUnwindEncoding |= (StackAdjust & 0xFF) << 16; CompactUnwindEncoding |= RegEnc & 0x7FFF; } else { - if ((StackSize & 0xFF) == StackSize) { + uint32_t TotalStackSize = StackAdjust + StackSize; + if ((TotalStackSize & 0xFF) == TotalStackSize) { // Frameless stack with a small stack size. CompactUnwindEncoding |= 0x02000000; // Encode the stack size. - CompactUnwindEncoding |= (StackSize & 0xFF) << 16; + CompactUnwindEncoding |= (TotalStackSize & 0xFF) << 16; } else { if ((StackAdjust & 0x7) != StackAdjust) // The extra stack adjustments are too big for us to handle. |

