diff options
author | Paul Brook <paul@codesourcery.com> | 2004-07-15 01:07:53 +0000 |
---|---|---|
committer | Paul Brook <paul@codesourcery.com> | 2004-07-15 01:07:53 +0000 |
commit | bc1c60156c860195b2ea90738f8e301397533a67 (patch) | |
tree | e24df3cf9d27a024b85f7ea213204bbe313c63a0 /gcc/final.c | |
parent | 0e36b22269159450d4240f41ff23573049bd2858 (diff) |
* dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO
to TARGET_UNWIND_INFO.
* except.c (output_function_exception_table): Ditto.
* except.h: Ditto.
* opts.c (decode_options): Ditto.
* passes.c (rest_of_handle_final): Ditto.
* final.c (final_start_function): Ditto.
(final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with
target hook.
* targhooks.h (default_unwind_emit): Declare.
* targhooks.c (default_unwind_emit): New function.
* target-def.h: Define and use TARGET_UNWIND_EMIT.
* target.h (struct gcc_target): Add unwind_emit.
* config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define.
* config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO.
Remove IA64_UNWIND_EMIT.
* doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO.
git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@84734 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/final.c')
-rw-r--r-- | gcc/final.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/gcc/final.c b/gcc/final.c index 412d0faae7f..fccb8464526 100644 --- a/gcc/final.c +++ b/gcc/final.c @@ -1347,7 +1347,7 @@ final_start_function (rtx first ATTRIBUTE_UNUSED, FILE *file, (*debug_hooks->begin_prologue) (last_linenum, last_filename); -#if defined (DWARF2_UNWIND_INFO) || defined (IA64_UNWIND_INFO) +#if defined (DWARF2_UNWIND_INFO) || defined (TARGET_UNWIND_INFO) if (write_symbols != DWARF2_DEBUG && write_symbols != VMS_AND_DWARF2_DEBUG) dwarf2out_begin_prologue (0, NULL); #endif @@ -1732,9 +1732,10 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED, && !scan_ahead_for_unlikely_executed_note (insn)) text_section (); -#ifdef IA64_UNWIND_INFO - IA64_UNWIND_EMIT (asm_out_file, insn); +#ifdef TARGET_UNWIND_INFO + targetm.asm_out.unwind_emit (asm_out_file, insn); #endif + if (flag_debug_asm) fprintf (asm_out_file, "\t%s basic block %d\n", ASM_COMMENT_START, NOTE_BASIC_BLOCK (insn)->index); @@ -2525,11 +2526,14 @@ final_scan_insn (rtx insn, FILE *file, int optimize ATTRIBUTE_UNUSED, if (prescan > 0) break; -#ifdef IA64_UNWIND_INFO - IA64_UNWIND_EMIT (asm_out_file, insn); +#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 - /* Output assembler code from the template. */ + /* Output assembler code from the template. */ output_asm_insn (template, recog_data.operand); /* If necessary, report the effect that the instruction has on |