summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authoreager <eager@138bc75d-0d04-0410-961f-82ee72b054a4>2009-05-04 15:57:46 +0000
committereager <eager@138bc75d-0d04-0410-961f-82ee72b054a4>2009-05-04 15:57:46 +0000
commitc440daea3c9ab8fcebb25371e6808c93abfecf98 (patch)
tree7da32a6c180e25ea1b76ea2d22ac321009a98ded /gcc
parent498670de76b1945da9556563a9e5f488d122c600 (diff)
downloadgcc-c440daea3c9ab8fcebb25371e6808c93abfecf98.tar.gz
Allow address for DImode/DFmode only if double-precision FP regs.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147105 138bc75d-0d04-0410-961f-82ee72b054a4
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 d634330de3d..e2bba67ec2f 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 c168b19935d..4e230439098 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))