aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-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)
{