]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cris.c (cris_emit_movem_store): Call copy_rtx on parts re-used for REG_FRAME_RELATED_...
authorHans-Peter Nilsson <hp@axis.com>
Wed, 5 Sep 2007 23:17:50 +0000 (23:17 +0000)
committerHans-Peter Nilsson <hp@gcc.gnu.org>
Wed, 5 Sep 2007 23:17:50 +0000 (23:17 +0000)
* config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
parts re-used for REG_FRAME_RELATED_EXPR.

From-SVN: r128157

gcc/ChangeLog
gcc/config/cris/cris.c

index 92a2ebda6ae1ef8034ad04749117584b634c3dff..068bf5545efa3867cf5b3352499b3cdde2baa67d 100644 (file)
@@ -1,3 +1,8 @@
+2007-09-06  Hans-Peter Nilsson  <hp@axis.com>
+
+       * config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
+       parts re-used for REG_FRAME_RELATED_EXPR.
+
 2007-09-05  Janis Johnson  <janis187@us.ibm.com>
 
        * optabs.c (expand_float): Convert unsigned integer as signed only
index 02c52b02394080f9704a4b9347817a39ff1d29e9..563c1242742425432ffebfb6f347c263a0f011e3 100644 (file)
@@ -3147,10 +3147,11 @@ cris_emit_movem_store (rtx dest, rtx nregs_rtx, int increment,
       if (increment != 0)
        {
          rtx seq = gen_rtx_SEQUENCE (VOIDmode, rtvec_alloc (nregs + 1));
-         XVECEXP (seq, 0, 0) = XVECEXP (PATTERN (insn), 0, 0);
+         XVECEXP (seq, 0, 0) = copy_rtx (XVECEXP (PATTERN (insn), 0, 0));
          for (i = 1; i < nregs; i++)
-           XVECEXP (seq, 0, i) = XVECEXP (PATTERN (insn), 0, i + 1);
-         XVECEXP (seq, 0, nregs) = XVECEXP (PATTERN (insn), 0, 1);
+           XVECEXP (seq, 0, i)
+             = copy_rtx (XVECEXP (PATTERN (insn), 0, i + 1));
+         XVECEXP (seq, 0, nregs) = copy_rtx (XVECEXP (PATTERN (insn), 0, 1));
          REG_NOTES (insn)
            = gen_rtx_EXPR_LIST (REG_FRAME_RELATED_EXPR, seq,
                                 REG_NOTES (insn));