summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/reload.c2
-rw-r--r--gcc/reload.h1
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;