aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/pa
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 /gcc/config/pa
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
Diffstat (limited to 'gcc/config/pa')
-rw-r--r--gcc/config/pa/pa.c1
1 files changed, 1 insertions, 0 deletions
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)
{