Commit 2599dcc7 by Jim Wilson Committed by Jim Wilson

Fix alpha loop unrolling abort.

	* unroll.c (calculate_giv_inc): Handle increment with code PLUS.

From-SVN: r15004
parent 4f122a21
Sat Aug 30 22:54:26 1997 Jim Wilson <wilson@cygnus.com>
* unroll.c (calculate_giv_inc): Handle increment with code PLUS.
Sat Aug 30 10:49:46 1997 David Edelsohn <edelsohn@mhpcc.edu>
* rs6000.md: Make DF fused-add operations pay attention to
......
......@@ -1495,10 +1495,11 @@ calculate_giv_inc (pattern, src_insn, regno)
if (GET_CODE (increment) == LO_SUM)
increment = XEXP (increment, 1);
else if (GET_CODE (increment) == IOR
|| GET_CODE (increment) == ASHIFT)
|| GET_CODE (increment) == ASHIFT
|| GET_CODE (increment) == PLUS)
{
/* The rs6000 port loads some constants with IOR.
The alpha port loads some constants with ASHIFT. */
The alpha port loads some constants with ASHIFT and PLUS. */
rtx second_part = XEXP (increment, 1);
enum rtx_code code = GET_CODE (increment);
......@@ -1513,6 +1514,8 @@ calculate_giv_inc (pattern, src_insn, regno)
if (code == IOR)
increment = GEN_INT (INTVAL (increment) | INTVAL (second_part));
else if (code == PLUS)
increment = GEN_INT (INTVAL (increment) + INTVAL (second_part));
else
increment = GEN_INT (INTVAL (increment) << INTVAL (second_part));
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment