summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorBill Wendling <isanbard@gmail.com>2011-12-06 21:34:01 +0000
committerBill Wendling <isanbard@gmail.com>2011-12-06 21:34:01 +0000
commit5a173cd367a1dc8eb82ab54586eb7b258fd12252 (patch)
treeccaa75f8040d0c727f4a1bebc546987d7a1fdc21 /llvm/lib
parenta73c0c99eab697059ded3b9e317a7791caea4079 (diff)
downloadbcm5719-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.cpp5
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.
OpenPOWER on IntegriCloud