summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-15 16:06:47 +0000
committerrearnsha <rearnsha@138bc75d-0d04-0410-961f-82ee72b054a4>2003-01-15 16:06:47 +0000
commite74772463a441a7796c8e82f9aacc74044bef9e5 (patch)
treec03a9ef5ffc689f4abb8e2a3be1aaaa700b19b42
parentae5d4a757a0f175e50aaf0fce6d6a3c6955c4a15 (diff)
downloadppe42-gcc-e74772463a441a7796c8e82f9aacc74044bef9e5.tar.gz
ppe42-gcc-e74772463a441a7796c8e82f9aacc74044bef9e5.zip
* flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with
constant offset. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61333 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/flow.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 282d7187e65..e9c5d2cab64 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,10 @@
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.
(HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define.
(ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses.
diff --git a/gcc/flow.c b/gcc/flow.c
index d543ba44e8a..0d3107624ec 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -3525,6 +3525,12 @@ find_auto_inc (pbi, x, insn)
addr,
inc_val)),
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
&& ! reg_set_between_p (inc_val, PREV_INSN (insn),
OpenPOWER on IntegriCloud