]> gcc.gnu.org Git - gcc.git/commitdiff
flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with constant offset.
authorRichard Earnshaw <rearnsha@arm.com>
Wed, 15 Jan 2003 16:06:47 +0000 (16:06 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Wed, 15 Jan 2003 16:06:47 +0000 (16:06 +0000)
* flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with
constant offset.

From-SVN: r61333

gcc/ChangeLog
gcc/flow.c

index 282d7187e65e2124d399708e1e7928a761815365..e9c5d2cab64a9ef6e52711609a0773e8dc94c99e 100644 (file)
@@ -1,3 +1,8 @@
+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.
index d543ba44e8ad49f0b138f3e1886da7991f8759f1..0d3107624ece5ec143abc315a305e21745350202 100644 (file)
@@ -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),
This page took 0.080064 seconds and 5 git commands to generate.