2010-07-08 Kai Tietz <kai.tietz@onevision.com>
+ * 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
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",
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))
{
(unwind_emit,
"",
void, (FILE *stream, rtx insn),
- default_unwind_emit)
+ NULL)
/* Output an internal label. */
DEFHOOK
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
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);