(choose_reload_regs): When setting reg_has_output_reload,

loop over multiple regs only for hard reg.  Set reg_is_output_reload
in separate loop.

From-SVN: r2204
This commit is contained in:
Richard Stallman 1992-09-22 07:13:24 +00:00
parent 4323a0e11e
commit 372e033b8f

View File

@ -4634,12 +4634,18 @@ choose_reload_regs (insn, avoid_return_reg)
&& reload_reg_rtx[r] != 0) && reload_reg_rtx[r] != 0)
{ {
register int nregno = REGNO (reload_out[r]); register int nregno = REGNO (reload_out[r]);
int nr = HARD_REGNO_NREGS (nregno, reload_mode[r]); int nr = 1;
if (nregno < FIRST_PSEUDO_REGISTER)
nr = HARD_REGNO_NREGS (nregno, reload_mode[r]);
while (--nr >= 0) while (--nr >= 0)
reg_has_output_reload[nregno + nr] = 1;
if (i >= 0)
{ {
reg_has_output_reload[nregno + nr] = 1; nr = HARD_REGNO_NREGS (spill_regs[i], reload_mode[r]);
if (i >= 0) while (--nr >= 0)
SET_HARD_REG_BIT (reg_is_output_reload, spill_regs[i] + nr); SET_HARD_REG_BIT (reg_is_output_reload, spill_regs[i] + nr);
} }