summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHal Finkel <hfinkel@anl.gov>2014-08-16 00:16:29 +0000
committerHal Finkel <hfinkel@anl.gov>2014-08-16 00:16:29 +0000
commitdda588cdc1f29afaf286d86a2e8a7f6457768cb6 (patch)
treef2215b09d488a32cd39e1e01fb93de17a8d7137a
parent4ec5d0d0e1bf454d83b534883e157db5a9b3938b (diff)
downloadbcm5719-llvm-dda588cdc1f29afaf286d86a2e8a7f6457768cb6.tar.gz
bcm5719-llvm-dda588cdc1f29afaf286d86a2e8a7f6457768cb6.zip
[PowerPC] Darwin byval arguments are not immutable
On PPC/Darwin, byval arguments occur at fixed stack offsets in the callee's frame, but are not immutable -- the pointer value is directly available to the higher-level code as the address of the argument, and the value of the byval argument can be modified at the IR level. This is necessary, but not sufficient, to fix PR20280. When PR20280 is fixed in a follow-up commit, its test case will cover this change. llvm-svn: 215793
-rw-r--r--llvm/lib/Target/PowerPC/PPCISelLowering.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
index 8d28d791972..42e724d3f1e 100644
--- a/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
+++ b/llvm/lib/Target/PowerPC/PPCISelLowering.cpp
@@ -3066,7 +3066,7 @@ PPCTargetLowering::LowerFormalArguments_Darwin(
CurArgOffset = CurArgOffset + (4 - ObjSize);
}
// The value of the object is its address.
- int FI = MFI->CreateFixedObject(ObjSize, CurArgOffset, true);
+ int FI = MFI->CreateFixedObject(ObjSize, CurArgOffset, false);
SDValue FIN = DAG.getFrameIndex(FI, PtrVT);
InVals.push_back(FIN);
if (ObjSize==1 || ObjSize==2) {
OpenPOWER on IntegriCloud