From: Kai Tietz Date: Thu, 8 Jul 2010 18:07:52 +0000 (+0000) Subject: final.c (final_scan_insn): Replace TARGET_UNWIND_INFO macro check by unwind_emit... X-Git-Tag: releases/gcc-4.6.0~5785 X-Git-Url: https://gcc.gnu.org/git/?a=commitdiff_plain;h=2784ed9c44fce2d6649fda97d31dc98e4b065b9a;p=gcc.git final.c (final_scan_insn): Replace TARGET_UNWIND_INFO macro check by unwind_emit hook NULL check. 2010-07-08 Kai Tietz * final.c (final_scan_insn): Replace TARGET_UNWIND_INFO macro check by unwind_emit hook NULL check. * targhooks.c (default_unwind_emit): Removed. * targhooks.h (default_unwind_emit): Likewise. * target.def (unwind_emit): Set default value to NULL. From-SVN: r161972 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 531729ce9224..b0b53615965a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2010-07-08 Kai Tietz + * final.c (final_scan_insn): Replace + TARGET_UNWIND_INFO macro check by unwind_emit + hook NULL check. + * targhooks.c (default_unwind_emit): Removed. + * targhooks.h (default_unwind_emit): Likewise. + * target.def (unwind_emit): Set default value to NULL. + * config/i386/i386-protos.h (ix86_asm_output_function_label): New prototype. * config/i386/i386.c (ix86_function_ms_hook_prologue): Check diff --git a/gcc/final.c b/gcc/final.c index 2bb897dc10b6..fd597ac713d5 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -1850,9 +1850,8 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED, break; case NOTE_INSN_BASIC_BLOCK: -#ifdef TARGET_UNWIND_INFO - targetm.asm_out.unwind_emit (asm_out_file, insn); -#endif + if (targetm.asm_out.unwind_emit) + targetm.asm_out.unwind_emit (asm_out_file, insn); if (flag_debug_asm) fprintf (asm_out_file, "\t%s basic block %d\n", @@ -2659,12 +2658,11 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED, return new_rtx; } -#ifdef TARGET_UNWIND_INFO /* ??? 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. */ - targetm.asm_out.unwind_emit (asm_out_file, insn); -#endif + if (targetm.asm_out.unwind_emit) + targetm.asm_out.unwind_emit (asm_out_file, insn); if (CALL_P (insn)) { diff --git a/gcc/target.def b/gcc/target.def index 3eb52a6fe546..583e78b48b61 100644 --- a/gcc/target.def +++ b/gcc/target.def @@ -150,7 +150,7 @@ DEFHOOK (unwind_emit, "", void, (FILE *stream, rtx insn), - default_unwind_emit) + NULL) /* Output an internal label. */ DEFHOOK diff --git a/gcc/targhooks.c b/gcc/targhooks.c index f501cb9b5c24..22077f8c437e 100644 --- a/gcc/targhooks.c +++ b/gcc/targhooks.c @@ -316,16 +316,6 @@ hook_callee_copies_named (CUMULATIVE_ARGS *ca ATTRIBUTE_UNUSED, return named; } -/* Emit any directives required to unwind this instruction. */ - -void -default_unwind_emit (FILE * stream ATTRIBUTE_UNUSED, - rtx insn ATTRIBUTE_UNUSED) -{ - /* Should never happen. */ - gcc_unreachable (); -} - /* Emit to STREAM the assembler syntax for insn operand X. */ void diff --git a/gcc/targhooks.h b/gcc/targhooks.h index eb4b547aad0c..23393b462554 100644 --- a/gcc/targhooks.h +++ b/gcc/targhooks.h @@ -62,7 +62,6 @@ extern bool hook_pass_by_reference_must_pass_in_stack extern bool hook_callee_copies_named (CUMULATIVE_ARGS *ca, enum machine_mode, const_tree, bool); -extern void default_unwind_emit (FILE *, rtx); extern void default_print_operand (FILE *, rtx, int); extern void default_print_operand_address (FILE *, rtx); extern bool default_print_operand_punct_valid_p (unsigned char);