OSDN Git Service

Fix a reload inheritance problem
authorcrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 18 Sep 2000 17:00:07 +0000 (17:00 +0000)
committercrux <crux@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 18 Sep 2000 17:00:07 +0000 (17:00 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36497 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/reload1.c

index ae81594..cfa07d8 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 3305f9f..c556265 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,