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 075eae529575263da26356d2092469d8664f621f..d634330de3d094faff457f32f2add2f01b1f9156 100644 (file)
@@ -1,3 +1,8 @@
+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.
index b6bc88b0a69b6e401e892aba21c6a1d3836f4c9c..c168b19935d2784face6c118cf530a3b49bb3376 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)