diff options
author | Jim Wilson <wilson@cygnus.com> | 1997-08-27 00:49:59 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1997-08-26 18:49:59 -0600 |
commit | fc79eafee87732b11aaecce4b057d8ec7cd8df82 (patch) | |
tree | c1a55d5fe940646959452d8b4f78e982f92386d6 /gcc/reload.c | |
parent | c5da853fcd93707cd7ef1543bcbace7d12c72f30 (diff) | |
download | gcc-fc79eafee87732b11aaecce4b057d8ec7cd8df82.zip gcc-fc79eafee87732b11aaecce4b057d8ec7cd8df82.tar.gz gcc-fc79eafee87732b11aaecce4b057d8ec7cd8df82.tar.bz2 |
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
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 13 |
1 files changed, 12 insertions, 1 deletions
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. */ |