aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorMichael Eager <eager@eagercon.com>2009-05-04 15:57:46 +0000
committerMichael Eager <eager@gcc.gnu.org>2009-05-04 15:57:46 +0000
commit960c5c791a8cf2314f09eb925cf8b48af2c9d662 (patch)
tree7da32a6c180e25ea1b76ea2d22ac321009a98ded /gcc
parentd083fbba4245e0e090e4cfa62583632c7edc217c (diff)
downloadgcc-960c5c791a8cf2314f09eb925cf8b48af2c9d662.zip
gcc-960c5c791a8cf2314f09eb925cf8b48af2c9d662.tar.gz
gcc-960c5c791a8cf2314f09eb925cf8b48af2c9d662.tar.bz2
Allow address for DImode/DFmode only if double-precision FP regs.
From-SVN: r147105
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/rs6000.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d634330..e2bba67 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
2009-05-04 Michael Eager <eager@eagercon.com>
+ * config/rs6000/rs6000.c (rs6000_legitimate_address): Allow
+ address for DImode/DFmode only if double-precision FP regs.
+
+2009-05-04 Michael Eager <eager@eagercon.com>
+
* config/rs6000/rs6000.c (rs6000_libcall_value): Add
TARGET_SINGLE_FLOAT check.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index c168b19..4e23043 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -4458,7 +4458,7 @@ rs6000_legitimate_address (enum machine_mode mode, rtx x, int reg_ok_strict)
if (mode != TImode
&& mode != TFmode
&& mode != TDmode
- && ((TARGET_HARD_FLOAT && TARGET_FPRS)
+ && ((TARGET_HARD_FLOAT && TARGET_FPRS && TARGET_DOUBLE_FLOAT)
|| TARGET_POWERPC64
|| (mode != DFmode && mode != DDmode)
|| (TARGET_E500_DOUBLE && mode != DDmode))