diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/reload.c | 2 | ||||
-rw-r--r-- | gcc/reload.h | 1 |
3 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index eaa8872e4c7..d743f29c813 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-12-07 J"orn Rennecke <joern.rennecke@st.com> + + * reload.h (reg_equiv_invariant): Declare. + * reload.c (refers_to_regno_for_reload_p): Allow R to be a pseudo + register also when reg_equiv_invariant[R] is set. + 2005-12-07 Richard Sandiford <richard@codesourcery.com> Andreas Tobler <a.tobler@schweiz.ch> diff --git a/gcc/reload.c b/gcc/reload.c index dc5d228c569..0f98694ef40 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -6223,7 +6223,7 @@ refers_to_regno_for_reload_p (unsigned int regno, unsigned int endregno, reg_equiv_memory_loc[r], (rtx*) 0); - gcc_assert (reg_equiv_constant[r]); + gcc_assert (reg_equiv_constant[r] || reg_equiv_invariant[r]); return 0; } diff --git a/gcc/reload.h b/gcc/reload.h index 2792e9a5fd9..a63010c630a 100644 --- a/gcc/reload.h +++ b/gcc/reload.h @@ -157,6 +157,7 @@ extern int n_reloads; extern GTY (()) struct varray_head_tag *reg_equiv_memory_loc_varray; extern rtx *reg_equiv_constant; +extern rtx *reg_equiv_invariant; extern rtx *reg_equiv_memory_loc; extern rtx *reg_equiv_address; extern rtx *reg_equiv_mem; |