aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMon P Wang <wangmp@apple.com>2008-08-21 19:54:16 +0000
committerMon P Wang <wangmp@apple.com>2008-08-21 19:54:16 +0000
commit7e66510a2e24720af187a7aed4c1e9112a823183 (patch)
tree483c1fd7112b75a1f5ed79b65f7dce7aa4d49b21
parentc8d3a620921740175f500311edeb75ea8666cf27 (diff)
Treat floating point ST1 the same as ST0 when lowering for a call result
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55135 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/X86ISelLowering.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/Target/X86/X86ISelLowering.cpp b/lib/Target/X86/X86ISelLowering.cpp
index 9a77c8e61c..fdc461894d 100644
--- a/lib/Target/X86/X86ISelLowering.cpp
+++ b/lib/Target/X86/X86ISelLowering.cpp
@@ -969,7 +969,8 @@ LowerCallResult(SDValue Chain, SDValue InFlag, SDNode *TheCall,
// If this is a call to a function that returns an fp value on the floating
// point stack, but where we prefer to use the value in xmm registers, copy
// it out as F80 and use a truncate to move it from fp stack reg to xmm reg.
- if (RVLocs[i].getLocReg() == X86::ST0 &&
+ if ((RVLocs[i].getLocReg() == X86::ST0 ||
+ RVLocs[i].getLocReg() == X86::ST1) &&
isScalarFPTypeInSSEReg(RVLocs[i].getValVT())) {
CopyVT = MVT::f80;
}