diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2018-10-02 10:20:08 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2018-10-02 10:20:08 +0000 |
commit | 5d11b4bf36d7fc16f634a9d508ab5cc2ec47ab8d (patch) | |
tree | b2895d7cee2222d91e45648b297a5aa552e19689 /gcc/reorg.c | |
parent | 0edf3afe139a9860ef530c9999841863e96e37e4 (diff) | |
download | gcc-5d11b4bf36d7fc16f634a9d508ab5cc2ec47ab8d.zip gcc-5d11b4bf36d7fc16f634a9d508ab5cc2ec47ab8d.tar.gz gcc-5d11b4bf36d7fc16f634a9d508ab5cc2ec47ab8d.tar.bz2 |
reorg.c (make_return_insns): Use emit_copy_of_insn_after for the insns in the delay slot and add_insn_after...
* reorg.c (make_return_insns): Use emit_copy_of_insn_after for the
insns in the delay slot and add_insn_after for the jump insn.
From-SVN: r264780
Diffstat (limited to 'gcc/reorg.c')
-rw-r--r-- | gcc/reorg.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/gcc/reorg.c b/gcc/reorg.c index f8a986c..2f0ed54 100644 --- a/gcc/reorg.c +++ b/gcc/reorg.c @@ -3638,18 +3638,13 @@ make_return_insns (rtx_insn *first) insns for its delay slots, if it needs some. */ if (ANY_RETURN_P (PATTERN (jump_insn))) { - rtx_insn *prev = PREV_INSN (insn); + rtx_insn *after = PREV_INSN (insn); delete_related_insns (insn); - for (i = 1; i < XVECLEN (pat, 0); i++) - { - rtx_insn *in_seq_insn = as_a<rtx_insn *> (XVECEXP (pat, 0, i)); - prev = emit_insn_after_setloc (PATTERN (in_seq_insn), prev, - INSN_LOCATION (in_seq_insn)); - } - - insn = emit_jump_insn_after_setloc (PATTERN (jump_insn), prev, - INSN_LOCATION (jump_insn)); + insn = jump_insn; + for (i = 1; i < pat->len (); i++) + after = emit_copy_of_insn_after (pat->insn (i), after); + add_insn_after (insn, after, NULL); emit_barrier_after (insn); if (slots) |