mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-08 18:31:23 +00:00
Encode the total stack if there isn't a frame.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145969 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
57a3cd2f32
commit
581ac2723c
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user