From 2c9ce2effc5b3946371d14fe7ae093d6ac1bc112 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Sat, 3 Apr 1993 17:39:33 -0500 Subject: [PATCH] (emit_reload_insns): Don't update the status of a register from an input reload if it also has an output reload. From-SVN: r3994 --- gcc/reload1.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/gcc/reload1.c b/gcc/reload1.c index e6302c211cd..bcbd68f5916 100644 --- a/gcc/reload1.c +++ b/gcc/reload1.c @@ -6148,11 +6148,15 @@ emit_reload_insns (insn) } } - /* Maybe the spill reg contains a copy of reload_in. */ + /* Maybe the spill reg contains a copy of reload_in. Only do + something if there will not be an output reload for + the register being reloaded. */ else if (reload_out[r] == 0 && reload_in[r] != 0 - && (GET_CODE (reload_in[r]) == REG - || GET_CODE (reload_in_reg[r]) == REG)) + && ((GET_CODE (reload_in[r]) == REG + && ! reg_has_output_reload[REGNO (reload_in[r])] + || (GET_CODE (reload_in_reg[r]) == REG + && ! reg_has_output_reload[REGNO (reload_in_reg[r])])))) { register int nregno; int nnr; -- 2.30.2