diff options
author | hp <hp@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-09-05 23:17:50 +0000 |
---|---|---|
committer | hp <hp@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-09-05 23:17:50 +0000 |
commit | 5ea3a30191fdf08cfb1aed64ad35598f6e16c9a2 (patch) | |
tree | bfd23d126b6c3a25eae3f83548547d8af38dd00c /gcc/config/cris | |
parent | 94324bd1e1b5da605f646acc3438ee9cf2410b5a (diff) | |
download | gcc-5ea3a30191fdf08cfb1aed64ad35598f6e16c9a2.tar.gz |
* config/cris/cris.c (cris_emit_movem_store): Call copy_rtx on
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
Diffstat (limited to 'gcc/config/cris')
-rw-r--r-- | gcc/config/cris/cris.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c index 02c52b02394..563c1242742 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)); |