* target.h (struct gcc_target): Add code_end hook.
* target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
if not yet defined.
(TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
* toplev.c (compile_file): Call targetm.asm_out.code_end
hook before unwind info/debug info output.
* config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
* config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
(TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
* config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
(TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
* config/i386/i386.c (ix86_file_end): Renamed to...
(ix86_code_end): ... this. Make static. Don't call
file_end_indicate_exec_stack. Emit unwind info using
final_start_function/final_end_function.
(darwin_x86_file_end): Remove.
(TARGET_ASM_CODE_END): Define.
* config/i386/i386.h (TARGET_ASM_FILE_END,
NEED_INDICATE_EXEC_STACK): Don't define.
* config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
(TARGET_ASM_FILE_END): Define to darwin_file_end.
* config/i386/i386-protos.h (ix86_file_end): Remove prototype.
* doc/tm.texi (TARGET_ASM_CODE_END): Document.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157707
138bc75d-0d04-0410-961f-
82ee72b054a4
2010-03-24 Jakub Jelinek <jakub@redhat.com>
+ PR debug/43293
+ * target.h (struct gcc_target): Add code_end hook.
+ * target-def.h (TARGET_ASM_CODE_END): Define to hook_void_void
+ if not yet defined.
+ (TARGET_ASM_OUT): Add TARGET_ASM_CODE_END.
+ * toplev.c (compile_file): Call targetm.asm_out.code_end
+ hook before unwind info/debug info output.
+ * config/i386/winnt.c (i386_pe_file_end): Don't call ix86_file_end.
+ * config/i386/linux.h (NEED_INDICATE_EXEC_STACK): Don't define.
+ (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
+ * config/i386/linux64.h (NEED_INDICATE_EXEC_STACK): Don't define.
+ (TARGET_ASM_FILE_END): Define to file_end_indicate_exec_stack.
+ * config/i386/i386.c (ix86_file_end): Renamed to...
+ (ix86_code_end): ... this. Make static. Don't call
+ file_end_indicate_exec_stack. Emit unwind info using
+ final_start_function/final_end_function.
+ (darwin_x86_file_end): Remove.
+ (TARGET_ASM_CODE_END): Define.
+ * config/i386/i386.h (TARGET_ASM_FILE_END,
+ NEED_INDICATE_EXEC_STACK): Don't define.
+ * config/i386/darwin.h (darwin_x86_file_end): Remove prototype.
+ (TARGET_ASM_FILE_END): Define to darwin_file_end.
+ * config/i386/i386-protos.h (ix86_file_end): Remove prototype.
+ * doc/tm.texi (TARGET_ASM_CODE_END): Document.
+
PR target/43498
* config/i386/i386.c (x86_output_mi_thunk): Call final_start_function
at the beginning and final_end_function at the end.
DECL_INITIAL (decl) = make_node (BLOCK);
current_function_decl = decl;
init_function_start (decl);
- first_function_block_is_cold = false;
/* Make sure unwind info is emitted for the thunk if needed. */
final_start_function (emit_barrier (), asm_out_file, 1);
this function.
@end deftypefun
-@deftypefn {Target Hook} void TARGET_ASM_LTO_START (void)
-Output to @code{asm_out_file} any text which the assembler expects
-to find at the start of an LTO section. The default is to output
-nothing.
-@end deftypefn
-
-@deftypefn {Target Hook} void TARGET_ASM_LTO_END (void)
-Output to @code{asm_out_file} any text which the assembler expects
-to find at the end of an LTO section. The default is to output
-nothing.
-@end deftypefn
-
@deftypefn {Target Hook} void TARGET_ASM_CODE_END (void)
Output to @code{asm_out_file} any text which is needed before emitting
unwind info and debug info at the end of a file. Some targets emit
#define TARGET_ASM_FILE_END hook_void_void
#endif
-#ifndef TARGET_ASM_LTO_START
-#define TARGET_ASM_LTO_START hook_void_void
-#endif
-
-#ifndef TARGET_ASM_LTO_END
-#define TARGET_ASM_LTO_END hook_void_void
-#endif
-
#ifndef TARGET_ASM_CODE_END
#define TARGET_ASM_CODE_END hook_void_void
#endif
TARGET_ASM_CAN_OUTPUT_MI_THUNK, \
TARGET_ASM_FILE_START, \
TARGET_ASM_FILE_END, \
- TARGET_ASM_LTO_START, \
- TARGET_ASM_LTO_END, \
TARGET_ASM_CODE_END, \
TARGET_ASM_EXTERNAL_LIBCALL, \
TARGET_ASM_MARK_DECL_PRESERVED, \
translation unit. */
void (*file_end) (void);
- /* Output any boilerplate text needed at the beginning of an
- LTO output stream. */
- void (*lto_start) (void);
-
- /* Output any boilerplate text needed at the end of an
- LTO output stream. */
- void (*lto_end) (void);
-
/* Output any boilerplace text needed at the end of a
translation unit before debug and unwind info is emitted. */
void (*code_end) (void);