aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Modra <amodra@bigpond.net.au>2004-12-23 07:34:45 +0000
committerAlan Modra <amodra@gcc.gnu.org>2004-12-23 18:04:45 +1030
commit5e5f01b969fcc0449e7826dae1343f10bfca69e8 (patch)
treefaa909129a4acc0471590f15cb4f7c168e7b7302
parentad4f9e7ebb58d2530243b3d77bfe5265dfdf0693 (diff)
downloadgcc-5e5f01b969fcc0449e7826dae1343f10bfca69e8.zip
gcc-5e5f01b969fcc0449e7826dae1343f10bfca69e8.tar.gz
gcc-5e5f01b969fcc0449e7826dae1343f10bfca69e8.tar.bz2
re PR target/18751 (ICE in expr.c:5083, profiledbootstrap)
PR target/18751 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return false for anything larger than 32 bits in 32-bit code. From-SVN: r92535
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 722a951..7ea6815 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2004-12-23 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/18751
+ * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return
+ false for anything larger than 32 bits in 32-bit code.
+
2004-12-22 Richard Henderson <rth@redhat.com>
* config/i386/i386.md (btsq, btrq, btcq): Fix modes.
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 8bedc58..f0c44a6 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -3324,7 +3324,8 @@ legitimate_lo_sum_address_p (enum machine_mode mode, rtx x, int strict)
return false;
if (GET_MODE_NUNITS (mode) != 1)
return false;
- if (GET_MODE_BITSIZE (mode) > 64)
+ if (GET_MODE_BITSIZE (mode) > 64
+ || (GET_MODE_BITSIZE (mode) > 32 && !TARGET_POWERPC64))
return false;
return CONSTANT_P (x);