summaryrefslogtreecommitdiff
path: root/gcc/emit-rtl.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1996-11-08 23:55:41 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1996-11-08 23:55:41 +0000
commite8976cd79d68eeee0362077b9836af68f1d163dc (patch)
tree056d3cc366b66adf7ccee3eaaad2cc6172b6ec4d /gcc/emit-rtl.c
parent3dcd0a6ba09fbf1b3f3860320320aee9155827d2 (diff)
downloadgcc-e8976cd79d68eeee0362077b9836af68f1d163dc.tar.gz
(change_address): If MEMREF isn't changing, return the old one.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@13115 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r--gcc/emit-rtl.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 337e9732f52..66b5d22696e 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -1376,6 +1376,9 @@ change_address (memref, mode, addr)
else
addr = memory_address (mode, addr);
+ if (rtx_equal_p (addr, XEXP (memref, 0)) && mode == GET_MODE (memref))
+ return memref;
+
new = gen_rtx (MEM, mode, addr);
MEM_VOLATILE_P (new) = MEM_VOLATILE_P (memref);
RTX_UNCHANGING_P (new) = RTX_UNCHANGING_P (memref);