diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/iq2000/iq2000.c | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 099805d..d68f161 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2017-04-07 Jeff Law <law@redhat.com> + + * config/iq2000/iq2000.c (final_prescan_insn): Do not separate a + CALL and NOTE_INSN_CALL_ARG_LOCATION. + 2017-04-07 Martin Liska <mliska@suse.cz> PR target/79889 diff --git a/gcc/config/iq2000/iq2000.c b/gcc/config/iq2000/iq2000.c index 7e1ba00..99abd76 100644 --- a/gcc/config/iq2000/iq2000.c +++ b/gcc/config/iq2000/iq2000.c @@ -1540,8 +1540,13 @@ final_prescan_insn (rtx_insn *insn, rtx opvec[] ATTRIBUTE_UNUSED, || (GET_CODE (PATTERN (insn)) == RETURN)) && NEXT_INSN (PREV_INSN (insn)) == insn) { - rtx_insn *nop_insn = emit_insn_after (gen_nop (), insn); + rtx_insn *tmp = insn; + while (NEXT_INSN (tmp) + && NOTE_P (NEXT_INSN (tmp)) + && NOTE_KIND (NEXT_INSN (tmp)) == NOTE_INSN_CALL_ARG_LOCATION) + tmp = NEXT_INSN (tmp); + rtx_insn *nop_insn = emit_insn_after (gen_nop (), tmp); INSN_ADDRESSES_NEW (nop_insn, -1); } |