aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1992-10-28 17:03:55 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1992-10-28 17:03:55 -0500
commit3c80f7ed512d0f3c1a57e8fab76fbd53c8dd12b7 (patch)
tree3eb4ba88518ce6e6e95addfb4ab1f1aa6574b951
parent56358f7f029a384610300e16dcdc2c72492002bc (diff)
downloadgcc-3c80f7ed512d0f3c1a57e8fab76fbd53c8dd12b7.zip
gcc-3c80f7ed512d0f3c1a57e8fab76fbd53c8dd12b7.tar.gz
gcc-3c80f7ed512d0f3c1a57e8fab76fbd53c8dd12b7.tar.bz2
(find_reloads_address): When copying memref after we've made recursive
calls on it, copy any replacements we made. From-SVN: r2642
-rw-r--r--gcc/reload.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c
index f5afa5f..2fc4f44 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -253,6 +253,7 @@ static int hard_reg_set_here_p ();
/* static rtx forget_volatility (); */
static rtx subst_reg_equivs ();
static rtx subst_indexed_address ();
+void copy_replacements ();
rtx find_equiv_reg ();
static int find_inc_amount ();
@@ -3636,6 +3637,7 @@ find_reloads_address (mode, memrefloc, ad, loc, operand, ind_levels)
{
rtx oldref = *memrefloc;
*memrefloc = copy_rtx (*memrefloc);
+ copy_replacements (tem, XEXP (*memrefloc, 0));
loc = &XEXP (*memrefloc, 0);
if (operand == oldref)
operand = *memrefloc;