From fc79eafee87732b11aaecce4b057d8ec7cd8df82 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Wed, 27 Aug 1997 00:49:59 +0000 Subject: [PATCH] reload.c (find_reloads, case '0'): Reject matching a non-offsettable address where an offsettable address is required. * reload.c (find_reloads, case '0'): Reject matching a non-offsettable address where an offsettable address is required. Fixes 68k bootstrap problem. From-SVN: r14948 --- gcc/ChangeLog | 5 +++++ gcc/reload.c | 13 ++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 296e59e..9f556ba 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Tue Aug 26 18:50:32 1997 Jim Wilson + + * reload.c (find_reloads, case '0'): Reject matching a non-offsettable + address where an offsettable address is required. + Tue Aug 26 17:54:56 1997 Michael P. Hayes (michaelh@ongaonga.chch.cri.nz> * loop.c (check_final_value): Don't miss a biv increment in a diff --git a/gcc/reload.c b/gcc/reload.c index efd4aca..c3100c5 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -2865,7 +2865,18 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p) [(i == commutative || i == commutative + 1) ? 2*commutative + 1 - i : i]) : operands_match[c][i]) - win = this_alternative_win[c]; + { + /* If we are matching a non-offsettable address where an + offsettable address was expected, then we must reject + this combination, because we can't reload it. */ + if (this_alternative_offmemok[c] + && GET_CODE (recog_operand[c]) == MEM + && this_alternative[c] == (int) NO_REGS + && ! this_alternative_win[c]) + bad = 1; + + win = this_alternative_win[c]; + } else { /* Operands don't match. */ -- 2.7.4