aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/cris
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2007-09-05 23:17:50 +0000
committerHans-Peter Nilsson <hp@gcc.gnu.org>2007-09-05 23:17:50 +0000
commitdfc0fb23ed22f4b6b5696f674e90a8e048d953cf (patch)
treebfd23d126b6c3a25eae3f83548547d8af38dd00c /gcc/config/cris
parentbe677dc12a6e687d24d375089ae2025fcfad4c9c (diff)
downloadgcc-dfc0fb23ed22f4b6b5696f674e90a8e048d953cf.zip
gcc-dfc0fb23ed22f4b6b5696f674e90a8e048d953cf.tar.gz
gcc-dfc0fb23ed22f4b6b5696f674e90a8e048d953cf.tar.bz2
cris.c (cris_emit_movem_store): Call copy_rtx on parts re-used for REG_FRAME_RELATED_EXPR.
* config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on parts re-used for REG_FRAME_RELATED_EXPR. From-SVN: r128157
Diffstat (limited to 'gcc/config/cris')
-rw-r--r--gcc/config/cris/cris.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index 02c52b0..563c124 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -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));