aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>1998-03-24 23:53:47 +0000
committerJeff Law <law@gcc.gnu.org>1998-03-24 16:53:47 -0700
commit428be70231dbdf34a131b9230d327fdd667487d4 (patch)
tree8237c610d1dfd26717bc1b38c2a38d9c2633ee55
parentd275726b338f876c210555d7eadf8c3d81bae6a5 (diff)
downloadgcc-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/ChangeLog4
-rw-r--r--gcc/config/pa/pa.c10
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. */