diff options
Diffstat (limited to 'gcc/final.c')
-rw-r--r-- | gcc/final.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/final.c b/gcc/final.c index 73c6069..06ebc17 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -2655,7 +2655,8 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED, /* ??? This will put the directives in the wrong place if get_insn_template outputs assembly directly. However calling it before get_insn_template breaks if the insns is split. */ - if (targetm.asm_out.unwind_emit) + if (targetm.asm_out.unwind_emit_before_insn + && targetm.asm_out.unwind_emit) targetm.asm_out.unwind_emit (asm_out_file, insn); if (CALL_P (insn)) @@ -2713,6 +2714,10 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED, dwarf2out_frame_debug (insn, true); #endif + if (!targetm.asm_out.unwind_emit_before_insn + && targetm.asm_out.unwind_emit) + targetm.asm_out.unwind_emit (asm_out_file, insn); + current_output_insn = debug_insn = 0; } } |