Commit efb84aa5 by Gavin Koch Committed by Jeff Law

unroll.c (calculate_giv_inc): Handle constant increment found in a MEM with an…

unroll.c (calculate_giv_inc): Handle constant increment found in a MEM with an appropriate REG_EQUAL note.

        * unroll.c (calculate_giv_inc): Handle constant increment found in
        a MEM with an appropriate REG_EQUAL note.

From-SVN: r17136
parent 864b83b9
......@@ -4,6 +4,9 @@ Thu Dec 18 14:51:12 1997 Jason Merrill <jason@yorick.cygnus.com>
Thu Dec 18 14:57:29 1997 Gavin Koch <gavin@cygnus.com>
* unroll.c (calculate_giv_inc): Handle constant increment found in
a MEM with an appropriate REG_EQUAL note.
* calls.c (expand_call): Implement LOAD_ARGS_REVERSED.
* dwarf2out.c (dwarf2out_frame_debug): Handle adjustments of the
......
......@@ -1490,6 +1490,16 @@ calculate_giv_inc (pattern, src_insn, regno)
one of the LO_SUM rtx. */
if (GET_CODE (increment) == LO_SUM)
increment = XEXP (increment, 1);
/* Some ports store large constants in memory and add a REG_EQUAL
note to the store insn. */
else if (GET_CODE (increment) == MEM)
{
rtx note = find_reg_note (src_insn, REG_EQUAL, 0);
if (note)
increment = XEXP (note, 0);
}
else if (GET_CODE (increment) == IOR
|| GET_CODE (increment) == ASHIFT
|| GET_CODE (increment) == PLUS)
......
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