diff options
author | Richard Stallman <rms@gnu.org> | 1992-10-18 00:49:34 +0000 |
---|---|---|
committer | Richard Stallman <rms@gnu.org> | 1992-10-18 00:49:34 +0000 |
commit | ca3e4a2f2dba408a1706736ff1ec9cb8942edb38 (patch) | |
tree | db762797e3a7a47d9d0279d8dd5363b25947b535 /gcc | |
parent | 4006fe4f1b0fcddfbae1ef7f6ab096266f94a961 (diff) | |
download | gcc-ca3e4a2f2dba408a1706736ff1ec9cb8942edb38.zip gcc-ca3e4a2f2dba408a1706736ff1ec9cb8942edb38.tar.gz gcc-ca3e4a2f2dba408a1706736ff1ec9cb8942edb38.tar.bz2 |
(find_reloads_address): Redo last change: copy the mem
in the same way it's usually done.
From-SVN: r2503
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/reload.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index befe84e..f5afa5f 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -3633,7 +3633,13 @@ find_reloads_address (mode, memrefloc, ad, loc, operand, ind_levels) /* 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); + { + rtx oldref = *memrefloc; + *memrefloc = copy_rtx (*memrefloc); + loc = &XEXP (*memrefloc, 0); + if (operand == oldref) + operand = *memrefloc; + } /* Check similar cases as for indirect addresses as above except that we can allow pseudos and a MEM since they should have been |