summaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1993-06-26 21:19:02 +0000
committerrms <rms@138bc75d-0d04-0410-961f-82ee72b054a4>1993-06-26 21:19:02 +0000
commit40c41113ef2fb596695c200a18ac0dff56a25497 (patch)
treee337c36dc4338ce5f034bdfc59067b79e4aca62a /gcc/reload.c
parent37690010d56a8d8dd869330f05d5072420489141 (diff)
downloadgcc-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.c4
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);