aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/struct-equiv.c6
2 files changed, 10 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a58022f..7951f9f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2005-12-14 J"orn Rennecke <joern.rennecke@st.com>
+
+ PR bootstrap/25397:
+
+ * struct-equiv.c (struct_equiv_init): Fix off-by-one error in clearing
+ of STACK_REGS bits.
+
+ * struct-euiv.c (rtx_equiv_p): Remove SUBREG case.
+
2005-12-14 Jakub Jelinek <jakub@redhat.com>
PR target/25254
diff --git a/gcc/struct-equiv.c b/gcc/struct-equiv.c
index 60f146f..3e6ba5d 100644
--- a/gcc/struct-equiv.c
+++ b/gcc/struct-equiv.c
@@ -367,10 +367,6 @@ rtx_equiv_p (rtx *xp, rtx y, int rvalue, struct equiv_info *info)
/* ??? could extend to allow CONST_INT inputs. */
switch (code)
{
- case SUBREG:
- gcc_assert (!reload_completed
- || !info->live_update);
- break;
case REG:
{
unsigned x_regno = REGNO (x);
@@ -1001,7 +997,7 @@ struct_equiv_init (int mode, struct equiv_info *info)
these regs are not necessarily all dead - we swap random bogosity
against constant bogosity. However, clearing these bits at
least makes the regsets comparable. */
- for (rn = FIRST_STACK_REG; rn < LAST_STACK_REG; rn++)
+ for (rn = FIRST_STACK_REG; rn <= LAST_STACK_REG; rn++)
{
CLEAR_REGNO_REG_SET (info->x_block->il.rtl->global_live_at_end, rn);
CLEAR_REGNO_REG_SET (info->y_block->il.rtl->global_live_at_end, rn);