+Tue Aug 26 18:50:32 1997 Jim Wilson <wilson@cygnus.com>
+
+ * 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
[(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. */