Treat floating point ST1 the same as ST0 when lowering for a call result
authorMon P Wang <wangmp@apple.com>
Thu, 21 Aug 2008 19:54:16 +0000 (19:54 +0000)
committerMon P Wang <wangmp@apple.com>
Thu, 21 Aug 2008 19:54:16 +0000 (19:54 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55135 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86ISelLowering.cpp

index 9a77c8e61c6edb48c8df86a718ef5c9340fd164a..fdc461894d6a4db16dc504e510941872a811c79a 100644 (file)
@@ -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;
     }