aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2006-04-13 05:10:00 +0000
committerAlan Modra <amodra@gcc.gnu.org>2006-04-13 14:40:00 +0930
commit7b5d92b270ef6b7a55f4b337ee52777e53695807 (patch)
tree716bd94131fe74d958e731b3bf88cad812791772 /gcc
parent17362e6720dbcc0c1cc9527b1eb14d4ba365a1de (diff)
downloadgcc-7b5d92b270ef6b7a55f4b337ee52777e53695807.zip
gcc-7b5d92b270ef6b7a55f4b337ee52777e53695807.tar.gz
gcc-7b5d92b270ef6b7a55f4b337ee52777e53695807.tar.bz2
re PR target/26459 (gcc fails to build on powerpc e500-double targets)
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
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c7
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 747c3b2..bae6229 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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,
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 2bc0fd7..0c004a9 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -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)