summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@intel.com>2019-09-18 01:57:46 +0000
committerCraig Topper <craig.topper@intel.com>2019-09-18 01:57:46 +0000
commit4a07336a886d6fa908ee19d72abe0ecb3732b377 (patch)
tree57c0f4808a308107a52e317302078def98dcd65e /llvm/lib/Target
parentd6cad39316359a8bebac830350b1d190ce9b0cee (diff)
downloadbcm5719-llvm-4a07336a886d6fa908ee19d72abe0ecb3732b377.tar.gz
bcm5719-llvm-4a07336a886d6fa908ee19d72abe0ecb3732b377.zip
[X86] Prevent assertion when calling a function that returns double with -mno-sse2 on x86-64.
As seen in the most recent updates to PR10498 llvm-svn: 372197
Diffstat (limited to 'llvm/lib/Target')
-rw-r--r--llvm/lib/Target/X86/X86ISelLowering.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
index 9c16c173523..f40e29b3cd4 100644
--- a/llvm/lib/Target/X86/X86ISelLowering.cpp
+++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
@@ -2900,6 +2900,10 @@ SDValue X86TargetLowering::LowerCallResult(
((Is64Bit || Ins[InsIndex].Flags.isInReg()) && !Subtarget.hasSSE1())) {
errorUnsupported(DAG, dl, "SSE register return with SSE disabled");
VA.convertToReg(X86::FP0); // Set reg to FP0, avoid hitting asserts.
+ } else if (CopyVT == MVT::f64 &&
+ (Is64Bit && !Subtarget.hasSSE2())) {
+ errorUnsupported(DAG, dl, "SSE2 register return with SSE2 disabled");
+ VA.convertToReg(X86::FP0); // Set reg to FP0, avoid hitting asserts.
}
// If we prefer to use the value in xmm registers, copy it out as f80 and
OpenPOWER on IntegriCloud