OSDN Git Service

PR target/26459
authoramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Apr 2006 05:10:00 +0000 (05:10 +0000)
committeramodra <amodra@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 13 Apr 2006 05:10:00 +0000 (05:10 +0000)
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
optimize to lo_sum for DFmode if !TARGET_FPRS.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@112912 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 747c3b2..bae6229 100644 (file)
@@ -1,3 +1,9 @@
+2006-04-13  Alan Modra  <amodra@bigpond.net.au>
+
+       PR target/26459
+       * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
+       optimize to lo_sum for DFmode if !TARGET_FPRS.
+
 2006-04-12  Kazu Hirata  <kazu@codesourcery.com>
 
        * tree-ssa-alias.c (set_initial_properties, init_alias_info,
index 2bc0fd7..0c004a9 100644 (file)
@@ -3402,9 +3402,12 @@ rs6000_legitimize_reload_address (rtx x, enum machine_mode mode,
       && !flag_pic
 #endif
       /* Don't do this for TFmode, since the result isn't offsettable.
-        The same goes for DImode without 64-bit gprs.  */
+        The same goes for DImode without 64-bit gprs and DFmode
+        without fprs.  */
       && mode != TFmode
-      && (mode != DImode || TARGET_POWERPC64))
+      && (mode != DImode || TARGET_POWERPC64)
+      && (mode != DFmode || TARGET_POWERPC64
+         || (TARGET_FPRS && TARGET_HARD_FLOAT)))
     {
 #if TARGET_MACHO
       if (flag_pic)