diff options
author | Richard Stallman <rms@gnu.org> | 1992-10-06 00:19:55 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-10-06 00:19:55 +0000 |
commit | d25554549b6ea81d76a3cc920ff20ec915585f96 (patch) | |
tree | 8cbf0280ea108f5be345b52f04ba8b45c941014c | |
parent | 026380ff6beed08353f631ac2e974fbf23547ca1 (diff) | |
download | gcc-d25554549b6ea81d76a3cc920ff20ec915585f96.zip gcc-d25554549b6ea81d76a3cc920ff20ec915585f96.tar.gz gcc-d25554549b6ea81d76a3cc920ff20ec915585f96.tar.bz2 |
(find_reloads_address): If tem != ad, then create a new
mem to hold it and store it back into memrefloc.
From-SVN: r2330
-rw-r--r-- | gcc/reload.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index b5f844b..459939b 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -3618,6 +3618,12 @@ find_reloads_address (mode, memrefloc, ad, loc, operand, ind_levels) tem = ad; find_reloads_address (GET_MODE (ad), &tem, XEXP (ad, 0), &XEXP (ad, 0), operand, ind_levels == 0 ? 0 : ind_levels - 1); + + /* If tem was changed, then we must create a new memory reference to + hold it and store it back into memrefloc. */ + if (tem != ad && memrefloc) + *memrefloc = gen_rtx (MEM, GET_MODE (*memrefloc), tem); + /* Check similar cases as for indirect addresses as above except that we can allow pseudos and a MEM since they should have been taken care of above. */ |