aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload1.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1994-03-10 15:32:26 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1994-03-10 15:32:26 -0500
commit36281332fcb18c598b0616294b48d4a579314813 (patch)
tree10d53386883c8bc2cc5bebb023f7c2d46a26c26c /gcc/reload1.c
parenteadbc96110328dd5ccab01c9e4dfb478aa0a1c6b (diff)
downloadgcc-36281332fcb18c598b0616294b48d4a579314813.zip
gcc-36281332fcb18c598b0616294b48d4a579314813.tar.gz
gcc-36281332fcb18c598b0616294b48d4a579314813.tar.bz2
(emit_reload_insns): When clearing reg_last_reload_reg, clear all hard
regs in reload_out. From-SVN: r6741
Diffstat (limited to 'gcc/reload1.c')
-rw-r--r--gcc/reload1.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/reload1.c b/gcc/reload1.c
index 5a95d44..fb98835 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -6449,7 +6449,10 @@ emit_reload_insns (insn)
if (i < 0 && reload_out[r] != 0 && GET_CODE (reload_out[r]) == REG)
{
register int nregno = REGNO (reload_out[r]);
- reg_last_reload_reg[nregno] = 0;
+ int num_regs = HARD_REGNO_NREGS (nregno, GET_MODE (reload_out[r]));
+
+ while (num_regs-- > 0)
+ reg_last_reload_reg[nregno + num_regs] = 0;
}
}
}