diff options
author | Michael Kuperstein <michael.m.kuperstein@intel.com> | 2015-10-25 08:14:05 +0000 |
---|---|---|
committer | Michael Kuperstein <michael.m.kuperstein@intel.com> | 2015-10-25 08:14:05 +0000 |
commit | eaa16005af8f47597f3e8d5ed75f5e8fcd0c8bc5 (patch) | |
tree | b79835256aa09fff0cc23cf7d27db31974235784 /llvm/lib/CodeGen | |
parent | fe897623f3b050693df0cd2a234ca6dcfbd4878b (diff) | |
download | bcm5719-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.cpp | 3 |
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), |