summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorMichael Kuperstein <michael.m.kuperstein@intel.com>2015-10-25 08:14:05 +0000
committerMichael Kuperstein <michael.m.kuperstein@intel.com>2015-10-25 08:14:05 +0000
commiteaa16005af8f47597f3e8d5ed75f5e8fcd0c8bc5 (patch)
treeb79835256aa09fff0cc23cf7d27db31974235784 /llvm/lib/CodeGen
parentfe897623f3b050693df0cd2a234ca6dcfbd4878b (diff)
downloadbcm5719-llvm-eaa16005af8f47597f3e8d5ed75f5e8fcd0c8bc5.tar.gz
bcm5719-llvm-eaa16005af8f47597f3e8d5ed75f5e8fcd0c8bc5.zip
[X86] Use correct calling convention for MCU psABI libcalls
When using the MCU psABI, compiler-generated library calls should pass some parameters in-register. However, since inreg marking for x86 is currently done by the front end, it will not be applied to backend-generated calls. This is a workaround for PR3997, which describes a similar issue for -mregparm. Differential Revision: http://reviews.llvm.org/D13977 llvm-svn: 251223
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
index 158e861c1ef..21935cdd469 100644
--- a/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
@@ -100,6 +100,9 @@ TargetLowering::makeLibCall(SelectionDAG &DAG,
Entry.isZExt = !shouldSignExtendTypeInLibCall(Op.getValueType(), isSigned);
Args.push_back(Entry);
}
+
+ markInRegArguments(DAG, Args);
+
if (LC == RTLIB::UNKNOWN_LIBCALL)
report_fatal_error("Unsupported library call operation!");
SDValue Callee = DAG.getExternalSymbol(getLibcallName(LC),
OpenPOWER on IntegriCloud