aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1998-07-06 22:53:34 +0000
committerJeff Law <law@gcc.gnu.org>1998-07-06 16:53:34 -0600
commit6186ed06d2f4294816b5514bb01383d7dc2b2045 (patch)
treec85be3c0128c21f521e65f94c04b2ed93230a614
parent979e20e973b8ca7ccc0e9065d1e99149af7efaae (diff)
downloadgcc-6186ed06d2f4294816b5514bb01383d7dc2b2045.zip
gcc-6186ed06d2f4294816b5514bb01383d7dc2b2045.tar.gz
gcc-6186ed06d2f4294816b5514bb01383d7dc2b2045.tar.bz2
flow.c (find_auto_inc): Clear UNCHANGING bit of register that is changed.
* flow.c (find_auto_inc): Clear UNCHANGING bit of register that is changed. From-SVN: r20974
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/flow.c4
2 files changed, 7 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 47fdf7a..b47a532 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/flow.c b/gcc/flow.c
index 43ea11d..aecd1b0 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -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 ();