From 5621a8432a5881b56b96a20f215bdd2b7ebe3a55 Mon Sep 17 00:00:00 2001 From: Andrew Pinski Date: Sat, 21 Jul 2012 08:39:13 +0000 Subject: [PATCH] mips.c (mips_get_unaligned_mem): Copy *op after calling adjust_address. 2012-07-21 Andrew Pinski * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling adjust_address. From-SVN: r189738 --- gcc/ChangeLog | 5 +++++ gcc/config/mips/mips.c | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 34c9ac6c7da..fec3d36a271 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2012-07-21 Andrew Pinski + + * config/mips/mips.c (mips_get_unaligned_mem): Copy *op after calling + adjust_address. + 2012-07-20 Maxim Kuvyrkov * 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 00360f7820b..498dc27797a 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 -- 2.30.2