Commit 89c4b810 by Richard Earnshaw Committed by Richard Earnshaw

flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with constant offset.

* flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with
constant offset.

From-SVN: r61333
parent 3cd45774
2003-01-15 Richard Earnshaw <rearnsha@arm.com> 2003-01-15 Richard Earnshaw <rearnsha@arm.com>
* flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with
constant offset.
2003-01-15 Richard Earnshaw <rearnsha@arm.com>
* arm.h (HAVE_PRE_MODIFY_DISP, HAVE_PRE_MODIFY_REG): Define. * arm.h (HAVE_PRE_MODIFY_DISP, HAVE_PRE_MODIFY_REG): Define.
(HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define. (HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define.
(ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses. (ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses.
......
...@@ -3525,6 +3525,12 @@ find_auto_inc (pbi, x, insn) ...@@ -3525,6 +3525,12 @@ find_auto_inc (pbi, x, insn)
addr, addr,
inc_val)), inc_val)),
insn, x, incr, addr); insn, x, incr, addr);
else if (HAVE_PRE_MODIFY_DISP && offset == INTVAL (inc_val))
attempt_auto_inc (pbi, gen_rtx_PRE_MODIFY (Pmode, addr,
gen_rtx_PLUS (Pmode,
addr,
inc_val)),
insn, x, incr, addr);
} }
else if (GET_CODE (inc_val) == REG else if (GET_CODE (inc_val) == REG
&& ! reg_set_between_p (inc_val, PREV_INSN (insn), && ! reg_set_between_p (inc_val, PREV_INSN (insn),
......
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