| 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.
|
|
|