Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Unified Diff: src/IceTargetLoweringARM32.cpp

Issue 1361803002: Subzero: Improve handling of alloca instructions of constant size. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Apply x86-32 changes to x86-64 Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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.

Powered by Google App Engine
This is Rietveld 408576698