]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
flow.c (find_auto_inc): Clear UNCHANGING bit of register that is changed.
authorJ"orn Rennecke <amylaar@cygnus.co.uk>
Mon, 6 Jul 1998 22:53:34 +0000 (22:53 +0000)
committerJeff Law <law@gcc.gnu.org>
Mon, 6 Jul 1998 22:53:34 +0000 (16:53 -0600)
        * flow.c (find_auto_inc): Clear UNCHANGING bit of register that is
        changed.

From-SVN: r20974

gcc/ChangeLog
gcc/flow.c

index 47fdf7a4f92870b9c166891b186df6ddcdf9410d..b47a5327d56b10a89e8b96e97b514427ad1c43e1 100644 (file)
@@ -13,6 +13,9 @@ Mon Jul  6 22:50:48 1998  Jason Merrill  <jason@yorick.cygnus.com>
 
 Mon Jul  6 22:47:55 1998  J"orn Rennecke <amylaar@cygnus.co.uk>
 
+       * flow.c (find_auto_inc): Clear UNCHANGING bit of register that is
+       changed.
+
        * reload1.c (reload_reg_free_before_p): RELOAD_FOR_OPADDR_ADDR
        precedes RELOAD_FOR_OUTADDR_ADDRESS.
 
index 43ea11d8adc0fe000a4123ffb55cd03e1d5e4e68..aecd1b0d89eb176dfbd2af3b5dad3c9ac36dcf09 100644 (file)
@@ -2386,6 +2386,10 @@ find_auto_inc (needed, x, insn)
                 Then fall into the usual case.  */
              rtx insns, temp;
 
+             /* Since q is now changed, clear its UNCHANGING bit.  Otherwise,
+                we would confuse alias.c when this pseudo ends up in a stack
+                slot.  */
+             RTX_UNCHANGING_P (q) = 0;
              start_sequence ();
              emit_move_insn (q, addr);
              insns = get_insns ();