aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@cavium.com>2012-07-21 08:39:13 +0000
committerAndrew Pinski <pinskia@gcc.gnu.org>2012-07-21 01:39:13 -0700
commit5621a8432a5881b56b96a20f215bdd2b7ebe3a55 (patch)
tree632eec063ea9fe6df630f0e4445f9bf4f2d02a57
parent3622ef30cb6b1e46742519307056cad8b0787294 (diff)
downloadgcc-5621a8432a5881b56b96a20f215bdd2b7ebe3a55.zip
gcc-5621a8432a5881b56b96a20f215bdd2b7ebe3a55.tar.gz
gcc-5621a8432a5881b56b96a20f215bdd2b7ebe3a55.tar.bz2
mips.c (mips_get_unaligned_mem): Copy *op after calling adjust_address.
2012-07-21 Andrew Pinski <apinski@cavium.com> * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling adjust_address. From-SVN: r189738
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/mips/mips.c7
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 34c9ac6..fec3d36 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-21 Andrew Pinski <apinski@cavium.com>
+
+ * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling
+ adjust_address.
+
2012-07-20 Maxim Kuvyrkov <maxim@codesourcery.com>
* config/mips/mips.md (define_attr sync_*): Move before "type".
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 00360f7..498dc27 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -7217,9 +7217,10 @@ mips_get_unaligned_mem (rtx *op, HOST_WIDE_INT width, HOST_WIDE_INT bitpos,
if (MEM_ALIGN (*op) >= width)
return false;
- /* Adjust *OP to refer to the whole field. This also has the effect
- of legitimizing *OP's address for BLKmode, possibly simplifying it. */
- *op = adjust_address (*op, BLKmode, 0);
+ /* Create a copy of *OP that refers to the whole field. This also has
+ the effect of legitimizing *OP's address for BLKmode, possibly
+ simplifying it. */
+ *op = copy_rtx (adjust_address (*op, BLKmode, 0));
set_mem_size (*op, width / BITS_PER_UNIT);
/* Get references to both ends of the field. We deliberately don't