aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1996-11-08 18:55:41 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1996-11-08 18:55:41 -0500
commit9b04c6a896b81889fb94e7878cef705b1ef716c4 (patch)
tree056d3cc366b66adf7ccee3eaaad2cc6172b6ec4d /gcc
parentb61b64100a3be5e98039b4f8dc8cd192a17b0da0 (diff)
downloadgcc-9b04c6a896b81889fb94e7878cef705b1ef716c4.zip
gcc-9b04c6a896b81889fb94e7878cef705b1ef716c4.tar.gz
gcc-9b04c6a896b81889fb94e7878cef705b1ef716c4.tar.bz2
(change_address): If MEMREF isn't changing, return the old one.
From-SVN: r13115
Diffstat (limited to 'gcc')
-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 337e973..66b5d22 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);