diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a58022f12efbe8f11c65e66ff691a3686d60d153..7951f9f367e0d4611b1f7ebc43e246bff6c8695a 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 60f146f9a56ff44a3662fa467098193dabe34ad8..3e6ba5deaba950797c728533e50e308dcfcada69 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);