aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1995-06-11 15:07:41 -0400
committerRichard Kenner <kenner@gcc.gnu.org>1995-06-11 15:07:41 -0400
commitc7093272e0b5e2489b95efa035d220682c1c5bfe (patch)
treed5417d5d7541e331f778011c893316c8467847b0
parentcb64e62696c73fa9b5e6c503d51568c15fd789a4 (diff)
downloadgcc-c7093272e0b5e2489b95efa035d220682c1c5bfe.zip
gcc-c7093272e0b5e2489b95efa035d220682c1c5bfe.tar.gz
gcc-c7093272e0b5e2489b95efa035d220682c1c5bfe.tar.bz2
(emit_reload_insns): Don't call HARD_REGNO_NREGS on psuedo when
clearing reg_last_reload_reg. From-SVN: r9928
-rw-r--r--gcc/reload1.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 887123e..006ad7a 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -6624,10 +6624,15 @@ emit_reload_insns (insn)
if (i < 0 && reload_out[r] != 0 && GET_CODE (reload_out[r]) == REG)
{
register int nregno = REGNO (reload_out[r]);
- int num_regs = HARD_REGNO_NREGS (nregno, GET_MODE (reload_out[r]));
+ if (nregno >= FIRST_PSEUDO_REGISTER)
+ reg_last_reload_reg[nregno] = 0;
+ else
+ {
+ int num_regs = HARD_REGNO_NREGS (nregno,GET_MODE (reload_out[r]));
- while (num_regs-- > 0)
- reg_last_reload_reg[nregno + num_regs] = 0;
+ while (num_regs-- > 0)
+ reg_last_reload_reg[nregno + num_regs] = 0;
+ }
}
}
}