aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Schmidt <bernds@redhat.co.uk>2000-09-18 17:00:07 +0000
committerBernd Schmidt <crux@gcc.gnu.org>2000-09-18 17:00:07 +0000
commit5d77a50c775b519712b4a0480a37db58dd9907aa (patch)
treeaf353e0b2b18392f55ccdb0968a169b23e429774 /gcc
parent40fc375d0af62c9f990bc147f280d6eecdef9d80 (diff)
downloadgcc-5d77a50c775b519712b4a0480a37db58dd9907aa.zip
gcc-5d77a50c775b519712b4a0480a37db58dd9907aa.tar.gz
gcc-5d77a50c775b519712b4a0480a37db58dd9907aa.tar.bz2
Fix a reload inheritance problem
From-SVN: r36497
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/reload1.c5
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index ae81594..cfa07d8 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 3305f9f..c556265 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -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,