aboutsummaryrefslogtreecommitdiff
path: root/gcc/reload.c
diff options
context:
space:
mode:
authorJ"orn Rennecke <amylaar@cygnus.co.uk>1999-03-05 15:07:56 +0000
committerJoern Rennecke <amylaar@gcc.gnu.org>1999-03-05 15:07:56 +0000
commit0ba9b9e6bff8387b7b72d6e2be5aa125a675e05e (patch)
tree169abfd813700309a8fbf3ada8154535276e97ea /gcc/reload.c
parentd62dab419ae48694fd0395486af7db60c9b2ac87 (diff)
downloadgcc-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.c7
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;
}
}
}