From: Richard Stallman Date: Tue, 22 Sep 1992 07:13:24 +0000 (+0000) Subject: (choose_reload_regs): When setting reg_has_output_reload, X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=372e033b8f9c7b7f5f38313a8638570908b90b1f;p=gcc.git (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 --- diff --git a/gcc/reload1.c b/gcc/reload1.c index 1b322bbee0d..a6d95efb842 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -4634,12 +4634,18 @@ choose_reload_regs (insn, avoid_return_reg) && reload_reg_rtx[r] != 0) { 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) + reg_has_output_reload[nregno + nr] = 1; + + if (i >= 0) { - reg_has_output_reload[nregno + nr] = 1; - if (i >= 0) + nr = HARD_REGNO_NREGS (spill_regs[i], reload_mode[r]); + while (--nr >= 0) SET_HARD_REG_BIT (reg_is_output_reload, spill_regs[i] + nr); }