diff options
author | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-06-26 21:19:02 +0000 |
---|---|---|
committer | rms <rms@138bc75d-0d04-0410-961f-82ee72b054a4> | 1993-06-26 21:19:02 +0000 |
commit | 40c41113ef2fb596695c200a18ac0dff56a25497 (patch) | |
tree | e337c36dc4338ce5f034bdfc59067b79e4aca62a /gcc/reload.c | |
parent | 37690010d56a8d8dd869330f05d5072420489141 (diff) | |
download | gcc-40c41113ef2fb596695c200a18ac0dff56a25497.tar.gz |
(find_reloads): When merging reloads again after they have
been changed, do check reload_reg_class and reload_nocombine.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4762 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 868c96780fc..2a0026c4a0f 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -3506,7 +3506,9 @@ find_reloads (insn, replace, ind_levels, live_known, reload_reg_p) for (j = 0; j < n_reloads; j++) if (i != j && reload_in[j] != 0 && reload_out[j] == 0 && reload_when_needed[j] == reload_when_needed[i] - && MATCHES (reload_in[i], reload_in[j])) + && MATCHES (reload_in[i], reload_in[j]) + && reload_reg_class[i] == reload_reg_class[j] + && !reload_nocombine[i] && !reload_nocombine[j]) { reload_opnum[i] = MIN (reload_opnum[i], reload_opnum[j]); transfer_replacements (i, j); |