diff options
author | Richard Kenner <kenner@vlsi1.ultra.nyu.edu> | 1998-03-24 23:53:47 +0000 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 1998-03-24 16:53:47 -0700 |
commit | 428be70231dbdf34a131b9230d327fdd667487d4 (patch) | |
tree | 8237c610d1dfd26717bc1b38c2a38d9c2633ee55 | |
parent | d275726b338f876c210555d7eadf8c3d81bae6a5 (diff) | |
download | gcc-428be70231dbdf34a131b9230d327fdd667487d4.zip gcc-428be70231dbdf34a131b9230d327fdd667487d4.tar.gz gcc-428be70231dbdf34a131b9230d327fdd667487d4.tar.bz2 |
* pa.c (emit_move_sequence): If in reload, call find_replacement.
From-SVN: r18812
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/pa/pa.c | 10 |
2 files changed, 14 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8b72e52..1168dc0 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Wed Mar 25 00:57:26 1998 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> + + * pa.c (emit_move_sequence): If in reload, call find_replacement. + Tue Mar 24 10:44:11 1998 Nick Clifton <nickc@cygnus.com> * Makefile.in (gcov$(exeext)): Support .exe extension to gcov. diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c index 7174d8a..9c8fcc9 100644 --- a/gcc/config/pa/pa.c +++ b/gcc/config/pa/pa.c @@ -1074,6 +1074,7 @@ emit_move_sequence (operands, mode, scratch_reg) { register rtx operand0 = operands[0]; register rtx operand1 = operands[1]; + register rtx tem; if (reload_in_progress && GET_CODE (operand0) == REG && REGNO (operand0) >= FIRST_PSEUDO_REGISTER) @@ -1097,6 +1098,15 @@ emit_move_sequence (operands, mode, scratch_reg) operand1 = alter_subreg (operand1); } + if (reload_in_progress && GET_CODE (operand0) == MEM + && ((tem = find_replacement (&XEXP (operand0, 0))) + != XEXP (operand0, 0))) + operand0 = gen_rtx (MEM, GET_MODE (operand0), tem); + if (reload_in_progress && GET_CODE (operand1) == MEM + && ((tem = find_replacement (&XEXP (operand1, 0))) + != XEXP (operand1, 0))) + operand1 = gen_rtx (MEM, GET_MODE (operand1), tem); + /* Handle secondary reloads for loads/stores of FP registers from REG+D addresses where D does not fit in 5 bits, including (subreg (mem (addr))) cases. */ |