diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 1998-07-09 10:29:03 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 1998-07-09 11:29:03 +0100 |
commit | 91d7e7acb18710023a59c44e2e817c02a4981808 (patch) | |
tree | bf7692a96aea2b675910f908e67952e0063a9885 | |
parent | 9da4652288c52297d6bbbd3d205c295f4814878e (diff) | |
download | gcc-91d7e7acb18710023a59c44e2e817c02a4981808.zip gcc-91d7e7acb18710023a59c44e2e817c02a4981808.tar.gz gcc-91d7e7acb18710023a59c44e2e817c02a4981808.tar.bz2 |
reload1.c (choose_reload_regs): If using an equivalence from find_equiv_reg and reg_reloaded_valid is not set...
* reload1.c (choose_reload_regs): If using an equivalence from
find_equiv_reg and reg_reloaded_valid is not set for this register,
clear the associated spill_reg_store.
From-SVN: r21035
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/reload1.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a373deb..6d81369 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +Thu Jul 9 18:24:56 1998 J"orn Rennecke <amylaar@cygnus.co.uk> + + * reload1.c (choose_reload_regs): If using an equivalence from + find_equiv_reg and reg_reloaded_valid is not set for this register, + clear the associated spill_reg_store. + Thu Jul 9 18:12:49 1998 J"orn Rennecke <amylaar@cygnus.co.uk> * reload1.c (emit_reload_insns): If an output reload copies only diff --git a/gcc/reload1.c b/gcc/reload1.c index b115a94..3b1fd56 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -5861,6 +5861,12 @@ choose_reload_regs (insn, avoid_return_reg) reload_reg_rtx[r] = equiv; reload_inherited[r] = 1; + /* If reg_reloaded_valid is not set for this register, + there might be a stale spill_reg_store lying around. + We must clear it, since otherwise emit_reload_insns + might delete the store. */ + if (! TEST_HARD_REG_BIT (reg_reloaded_valid, regno)) + spill_reg_store[regno] = NULL_RTX; /* If any of the hard registers in EQUIV are spill registers, mark them as in use for this insn. */ for (k = 0; k < nr; k++) |