aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/unroll.c13
2 files changed, 12 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 8946a18..613c2bf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Sat Dec 18 18:30:20 1999 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * unroll.c (copy_loop_body): Don't treat a REG like a PLUS.
+
1999-12-18 10:42 -0800 Zack Weinberg <zack@wolery.cumb.org>
* objc/objc-parse.c: Regenerate. This file must be rebuilt
diff --git a/gcc/unroll.c b/gcc/unroll.c
index 94451e1..6135b85 100644
--- a/gcc/unroll.c
+++ b/gcc/unroll.c
@@ -1812,11 +1812,14 @@ copy_loop_body (copy_start, copy_end, map, exit_label, last_iteration,
value = plus_constant (tv->dest_reg,
tv->const_adjust);
- /* The constant could be too large for an add
- immediate, so can't directly emit an insn
- here. */
- emit_unrolled_add (dest_reg, XEXP (value, 0),
- XEXP (value, 1));
+ if (GET_CODE (value) == PLUS)
+ {
+ /* The constant could be too large for an add
+ immediate, so can't directly emit an insn
+ here. */
+ emit_unrolled_add (dest_reg, XEXP (value, 0),
+ XEXP (value, 1));
+ }
}
/* Reset the giv to be just the register again, in case