diff options
| -rw-r--r-- | gcc/ChangeLog | 4 | ||||
| -rw-r--r-- | gcc/unroll.c | 13 |
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 |
