| Index: src/IceTargetLoweringARM32.cpp
|
| diff --git a/src/IceTargetLoweringARM32.cpp b/src/IceTargetLoweringARM32.cpp
|
| index 7eb4e8ad446f540ef10a4f12aa9d8c6cb4a29e33..64141091a7f3615df5ae3cfe12dcf4457e7b3d90 100644
|
| --- a/src/IceTargetLoweringARM32.cpp
|
| +++ b/src/IceTargetLoweringARM32.cpp
|
| @@ -849,13 +849,13 @@ void TargetARM32::addProlog(CfgNode *Node) {
|
| GlobalsSize + LocalsSlotsPaddingBytes;
|
|
|
| // Adds the out args space to the stack, and align SP if necessary.
|
| - if (!NeedsStackAlignment) {
|
| - SpillAreaSizeBytes += MaxOutArgsSizeBytes;
|
| - } else {
|
| + if (NeedsStackAlignment) {
|
| uint32_t StackOffset = PreservedRegsSizeBytes;
|
| uint32_t StackSize = applyStackAlignment(StackOffset + SpillAreaSizeBytes);
|
| StackSize = applyStackAlignment(StackSize + MaxOutArgsSizeBytes);
|
| SpillAreaSizeBytes = StackSize - StackOffset;
|
| + } else {
|
| + SpillAreaSizeBytes += MaxOutArgsSizeBytes;
|
| }
|
|
|
| // Combine fixed alloca with SpillAreaSize.
|
|
|