OSDN Git Service

2010-07-08 Kai Tietz <kai.tietz@onevision.com>
authorktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Jul 2010 18:07:52 +0000 (18:07 +0000)
committerktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Jul 2010 18:07:52 +0000 (18:07 +0000)
* 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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161972 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/final.c
gcc/target.def
gcc/targhooks.c
gcc/targhooks.h

index 531729c..b0b5361 100644 (file)
@@ -1,5 +1,12 @@
 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
index 2bb897d..fd597ac 100644 (file)
@@ -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))
          {
index 3eb52a6..583e78b 100644 (file)
@@ -150,7 +150,7 @@ DEFHOOK
 (unwind_emit,
  "",
  void, (FILE *stream, rtx insn),
default_unwind_emit)
NULL)
 
 /* Output an internal label.  */
 DEFHOOK
index f501cb9..22077f8 100644 (file)
@@ -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
index eb4b547..23393b4 100644 (file)
@@ -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);