OSDN Git Service

* config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
authorhp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Sep 2007 23:17:50 +0000 (23:17 +0000)
committerhp <hp@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 5 Sep 2007 23:17:50 +0000 (23:17 +0000)
parts re-used for REG_FRAME_RELATED_EXPR.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128157 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 92a2ebd..068bf55 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 02c52b0..563c124 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));