aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@nrc-cnrc.gc.ca>2006-11-19 18:24:21 +0000
committerJohn David Anglin <danglin@gcc.gnu.org>2006-11-19 18:24:21 +0000
commit0eab7815089fe868b55e502c69d61d97346535af (patch)
tree2083ca962d25d616af831936b2c25d709d59bdd0
parent8637bc38c450dcc06582a231938af2db6c48b7c3 (diff)
downloadgcc-0eab7815089fe868b55e502c69d61d97346535af.zip
gcc-0eab7815089fe868b55e502c69d61d97346535af.tar.gz
gcc-0eab7815089fe868b55e502c69d61d97346535af.tar.bz2
re PR target/29114 (ICE when cross-compiling glibc for hppa on a 64bit host)
PR target/29114 * pa.c (emit_move_sequence): Don't split constants with PLUS for modes larger than BITS_PER_WORD. From-SVN: r118993
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/pa/pa.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f2aafc1..4af29a5 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,9 @@
+2006-11-19 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
+
+ PR target/29114
+ * pa.c (emit_move_sequence): Don't split constants with PLUS for modes
+ larger than BITS_PER_WORD.
+
2006-11-18 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
PR fortran/27885
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 48b8ca4..7c5f6f3 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -1893,6 +1893,7 @@ emit_move_sequence (rtx *operands, enum machine_mode mode, rtx scratch_reg)
because PLUS uses an 11-bit immediate and the insn sequence
generated is not as efficient as the one using HIGH/LO_SUM. */
if (GET_CODE (operand1) == CONST_INT
+ && GET_MODE_BITSIZE (mode) <= BITS_PER_WORD
&& GET_MODE_BITSIZE (mode) <= HOST_BITS_PER_WIDE_INT
&& !insert)
{