From 0ba9b9e6bff8387b7b72d6e2be5aa125a675e05e Mon Sep 17 00:00:00 2001 From: "J\"orn Rennecke" Date: Fri, 5 Mar 1999 15:07:56 +0000 Subject: [PATCH] reload.c (find_reloads_subreg_address): Actually create the USE for the register, not the new memory location. * reload.c (find_reloads_subreg_address): Actually create the USE for the register, not the new memory location. From-SVN: r25605 --- gcc/ChangeLog | 5 +++++ gcc/reload.c | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 968ea5ec57a..c4231bde4ff 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Thu Feb 25 21:52:54 1999 J"orn Rennecke + + * reload.c (find_reloads_subreg_address): Actually create the USE + for the register, not the new memory location. + Fri Mar 5 21:41:07 1999 J"orn Rennecke * reload1.c (emit_reload_insns): If pseudo that can't be replaced diff --git a/gcc/reload.c b/gcc/reload.c index 66b8de5cc68..e424d74554a 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -5658,14 +5658,15 @@ find_reloads_subreg_address (x, force_replace, opnum, type, } XEXP (tem, 0) = plus_constant (XEXP (tem, 0), offset); PUT_MODE (tem, GET_MODE (x)); - x = tem; - find_reloads_address (GET_MODE (x), &x, XEXP (x, 0), &XEXP (x, 0), - opnum, ADDR_TYPE (type), ind_levels, insn); + find_reloads_address (GET_MODE (tem), &tem, XEXP (tem, 0), + &XEXP (tem, 0), opnum, ADDR_TYPE (type), + ind_levels, insn); /* If this is not a toplevel operand, find_reloads doesn't see this substitution. We have to emit a USE of the pseudo so that delete_output_reload can see it. */ if (replace_reloads && recog_operand[opnum] != x) emit_insn_before (gen_rtx_USE (VOIDmode, SUBREG_REG (x)), insn); + x = tem; } } } -- 2.30.2