Fix a reload inheritance problem
authorBernd Schmidt <bernds@redhat.co.uk>
Mon, 18 Sep 2000 17:00:07 +0000 (17:00 +0000)
committerBernd Schmidt <crux@gcc.gnu.org>
Mon, 18 Sep 2000 17:00:07 +0000 (17:00 +0000)
From-SVN: r36497

gcc/ChangeLog
gcc/reload1.c

index ae8159445177f423dc9db5100b11cd615772cbb5..cfa07d86a71645a13ada58c53c377fe24aa7371a 100644 (file)
@@ -1,3 +1,8 @@
+2000-09-18  Bernd Schmidt  <bernds@redhat.co.uk>
+
+       * reload1.c (forget_old_reloads_1): If a hard reg is stored, clear
+       its entry in spill_reg_store.
+
 2000-09-18  Alexandre Oliva  <aoliva@redhat.com>
 
        * config/sh/sh.c (sh_expand_prologue): Mark GOTaddr2picreg as
index 3305f9f9109f4eac713bdea69c95eb422a824f04..c556265f3126a2dfb1fae12dd88a1469c103486f 100644 (file)
@@ -4017,7 +4017,10 @@ forget_old_reloads_1 (x, ignored, data)
           reload reg in the current instruction.  */
        if (n_reloads == 0
            || ! TEST_HARD_REG_BIT (reg_is_output_reload, regno + i))
-         CLEAR_HARD_REG_BIT (reg_reloaded_valid, regno + i);
+         {
+           CLEAR_HARD_REG_BIT (reg_reloaded_valid, regno + i);
+           spill_reg_store[regno + i] = 0;
+         }
     }
 
   /* Since value of X has changed,