aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMichael Eager <eager@eagercon.com>2009-05-04 15:48:59 +0000
committerMichael Eager <eager@gcc.gnu.org>2009-05-04 15:48:59 +0000
commitd083fbba4245e0e090e4cfa62583632c7edc217c (patch)
tree6f5a6dfa19e113c68c3cb361275283dd028915f3 /gcc
parentffef121932a2522684893c009a966d1cb43123e2 (diff)
downloadgcc-d083fbba4245e0e090e4cfa62583632c7edc217c.zip
gcc-d083fbba4245e0e090e4cfa62583632c7edc217c.tar.gz
gcc-d083fbba4245e0e090e4cfa62583632c7edc217c.tar.bz2
Add TARGET_SINGLE_FLOAT check.
From-SVN: r147104
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c3
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 075eae5..d634330 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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>
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index b6bc88b..c168b19 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -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)