aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog3
-rw-r--r--gcc/reload1.c1
2 files changed, 4 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 40a88ef..879827b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,8 @@
2001-03-01 Bernd Schmidt <bernds@redhat.com>
+ * reload1.c (eliminate_regs_in_insn): Restrict the special case
+ code not to try to optimize adds with anything but a REG destination.
+
* sched-int.h (struct haifa_insn_data): Add new member priority_known.
(INSN_PRIORITY_KNOWN): New accessor macro.
* haifa-sched.c (priority): Use it instead of testing priority against
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 13d609e..077c410 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -3016,6 +3016,7 @@ eliminate_regs_in_insn (insn, replace)
currently support: a single set with the source being a PLUS of an
eliminable register and a constant. */
if (old_set
+ && GET_CODE (SET_DEST (old_set)) == REG
&& GET_CODE (SET_SRC (old_set)) == PLUS
&& GET_CODE (XEXP (SET_SRC (old_set), 0)) == REG
&& GET_CODE (XEXP (SET_SRC (old_set), 1)) == CONST_INT