re PR target/26459 (gcc fails to build on powerpc e500-double targets)
authorAlan Modra <amodra@bigpond.net.au>
Thu, 13 Apr 2006 05:10:00 +0000 (05:10 +0000)
committerAlan Modra <amodra@gcc.gnu.org>
Thu, 13 Apr 2006 05:10:00 +0000 (14:40 +0930)
PR target/26459
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
optimize to lo_sum for DFmode if !TARGET_FPRS.

From-SVN: r112912

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

index 747c3b2c4d7a5c6d3f6cb9edfac4fd5b47aa6f36..bae62293f8a41a9fabd20d283424997cc33820c6 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 2bc0fd7ebcd2d03a8bc723b188c0e79dfcddeccf..0c004a9826230fc0f4a16aa25f0443f48a85759b 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)