Index: src/IceTargetLoweringARM32.cpp |
diff --git a/src/IceTargetLoweringARM32.cpp b/src/IceTargetLoweringARM32.cpp |
index d61d93cf0430b57ff316dd2ab95ce07b48f33acf..01d36495b3b26610b05580804b8d37c34d56d489 100644 |
--- a/src/IceTargetLoweringARM32.cpp |
+++ b/src/IceTargetLoweringARM32.cpp |
@@ -576,12 +576,15 @@ void TargetARM32::lowerArguments() { |
// to copy Arg into its assigned register if applicable. |
void TargetARM32::finishArgumentLowering(Variable *Arg, Variable *FramePtr, |
size_t BasicFrameOffset, |
+ size_t StackAdjBytes, |
size_t &InArgsSizeBytes) { |
if (auto *Arg64On32 = llvm::dyn_cast<Variable64On32>(Arg)) { |
Variable *Lo = Arg64On32->getLo(); |
Variable *Hi = Arg64On32->getHi(); |
- finishArgumentLowering(Lo, FramePtr, BasicFrameOffset, InArgsSizeBytes); |
- finishArgumentLowering(Hi, FramePtr, BasicFrameOffset, InArgsSizeBytes); |
+ finishArgumentLowering(Lo, FramePtr, BasicFrameOffset, StackAdjBytes, |
+ InArgsSizeBytes); |
+ finishArgumentLowering(Hi, FramePtr, BasicFrameOffset, StackAdjBytes, |
+ InArgsSizeBytes); |
return; |
} |
Type Ty = Arg->getType(); |
@@ -777,8 +780,11 @@ void TargetARM32::addProlog(CfgNode *Node) { |
int32_t DummyReg; |
InRegs = CC.I32InReg(&DummyReg); |
} |
- if (!InRegs) |
- finishArgumentLowering(Arg, FramePtr, BasicFrameOffset, InArgsSizeBytes); |
+ if (!InRegs) { |
+ constexpr size_t StackAdjBytes = 0; |
+ finishArgumentLowering(Arg, FramePtr, BasicFrameOffset, StackAdjBytes, |
+ InArgsSizeBytes); |
+ } |
} |
// Fill in stack offsets for locals. |