diff options
author | Richard Kenner <kenner@gcc.gnu.org> | 1992-10-28 17:03:55 -0500 |
---|---|---|
committer | Richard Kenner <kenner@gcc.gnu.org> | 1992-10-28 17:03:55 -0500 |
commit | 3c80f7ed512d0f3c1a57e8fab76fbd53c8dd12b7 (patch) | |
tree | 3eb4ba88518ce6e6e95addfb4ab1f1aa6574b951 | |
parent | 56358f7f029a384610300e16dcdc2c72492002bc (diff) | |
download | gcc-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.c | 2 |
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; |