Add TARGET_SINGLE_FLOAT check.
authorMichael Eager <eager@eagercon.com>
Mon, 4 May 2009 15:48:59 +0000 (15:48 +0000)
committerMichael Eager <eager@gcc.gnu.org>
Mon, 4 May 2009 15:48:59 +0000 (15:48 +0000)
From-SVN: r147104

gcc/ChangeLog
gcc/config/rs6000/rs6000.c

index 075eae5..d634330 100644 (file)
@@ -1,5 +1,10 @@
 2009-05-04  Michael Eager <eager@eagercon.com>
 
+       * config/rs6000/rs6000.c (rs6000_libcall_value): Add
+       TARGET_SINGLE_FLOAT check.
+
+2009-05-04  Michael Eager <eager@eagercon.com>
+
        * config/rs6000/xilinx.h: Add CPP_SPEC for -mxilinx-fpu options.
 
 2009-05-04  Michael Eager <eager@eagercon.com>
index b6bc88b..c168b19 100644 (file)
@@ -22630,7 +22630,8 @@ rs6000_libcall_value (enum machine_mode mode)
     /* _Decimal128 must use an even/odd register pair.  */
     regno = (mode == TDmode) ? FP_ARG_RETURN + 1 : FP_ARG_RETURN;
   else if (SCALAR_FLOAT_MODE_P (mode)
-          && TARGET_HARD_FLOAT && TARGET_FPRS)
+          && TARGET_HARD_FLOAT && TARGET_FPRS
+           && ((TARGET_SINGLE_FLOAT && mode == SFmode) || TARGET_DOUBLE_FLOAT))
     regno = FP_ARG_RETURN;
   else if (ALTIVEC_VECTOR_MODE (mode)
           && TARGET_ALTIVEC && TARGET_ALTIVEC_ABI)