diff options
author | J"orn Rennecke <amylaar@cygnus.co.uk> | 1999-03-05 15:07:56 +0000 |
---|---|---|
committer | Joern Rennecke <amylaar@gcc.gnu.org> | 1999-03-05 15:07:56 +0000 |
commit | 0ba9b9e6bff8387b7b72d6e2be5aa125a675e05e (patch) | |
tree | 169abfd813700309a8fbf3ada8154535276e97ea /gcc/reload.c | |
parent | d62dab419ae48694fd0395486af7db60c9b2ac87 (diff) | |
download | gcc-0ba9b9e6bff8387b7b72d6e2be5aa125a675e05e.zip gcc-0ba9b9e6bff8387b7b72d6e2be5aa125a675e05e.tar.gz gcc-0ba9b9e6bff8387b7b72d6e2be5aa125a675e05e.tar.bz2 |
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
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 66b8de5..e424d74 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; } } } |