* unroll.c (copy_loop_body): Don't treat a REG like a PLUS.

From-SVN: r31016
This commit is contained in:
J"orn Rennecke 1999-12-18 19:59:24 +00:00 committed by Joern Rennecke
parent 0cc6d0ac18
commit 3f0aabf20a
2 changed files with 12 additions and 5 deletions

View File

@ -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> 1999-12-18 10:42 -0800 Zack Weinberg <zack@wolery.cumb.org>
* objc/objc-parse.c: Regenerate. This file must be rebuilt * objc/objc-parse.c: Regenerate. This file must be rebuilt

View File

@ -1812,12 +1812,15 @@ copy_loop_body (copy_start, copy_end, map, exit_label, last_iteration,
value = plus_constant (tv->dest_reg, value = plus_constant (tv->dest_reg,
tv->const_adjust); tv->const_adjust);
if (GET_CODE (value) == PLUS)
{
/* The constant could be too large for an add /* The constant could be too large for an add
immediate, so can't directly emit an insn immediate, so can't directly emit an insn
here. */ here. */
emit_unrolled_add (dest_reg, XEXP (value, 0), emit_unrolled_add (dest_reg, XEXP (value, 0),
XEXP (value, 1)); XEXP (value, 1));
} }
}
/* Reset the giv to be just the register again, in case /* Reset the giv to be just the register again, in case
it is used after the set we have just emitted. it is used after the set we have just emitted.