Commit dddb7af4 by Sam Tebbs Committed by Sam Tebbs

[PATCH 1/3][GCC] Add new target hook asm_post_cfi_startproc

2018-12-14  Sam Tebbs  <sam.tebbs@arm.com>

	* doc/tm.texi (TARGET_ASM_POST_CFI_STARTPROC): Define.
	* doc/tm.texi.in (TARGET_ASM_POST_CFI_STARTPROC): Define.
	* dwarf2out.c (dwarf2out_do_cfi_startproc): Trigger the hook.
	* hooks.c (hook_void_FILEptr_tree): Define.
	* hooks.h (hook_void_FILEptr_tree): Define.
	* target.def (post_cfi_startproc): Define.

From-SVN: r267135
parent b0aba46c
2018-12-14 Sam Tebbs <sam.tebbs@arm.com>
* doc/tm.texi (TARGET_ASM_POST_CFI_STARTPROC): Define.
* doc/tm.texi.in (TARGET_ASM_POST_CFI_STARTPROC): Define.
* dwarf2out.c (dwarf2out_do_cfi_startproc): Trigger the hook.
* hooks.c (hook_void_FILEptr_tree): Define.
* hooks.h (hook_void_FILEptr_tree): Define.
* target.def (post_cfi_startproc): Define.
2018-12-14 Tom de Vries <tdevries@suse.de>
* lto-cgraph.c (verify_node_partition): New function.
......@@ -9422,6 +9422,15 @@ If this macro is not defined, nothing special is output at the end of
the jump-table.
@end defmac
@deftypefn {Target Hook} void TARGET_ASM_POST_CFI_STARTPROC (FILE *@var{}, @var{tree})
This target hook is used to emit assembly strings required by the target
after the .cfi_startproc directive. The first argument is the file stream to
write the strings to and the second argument is the function's declaration. The
expected use is to add more .cfi_* directives.
The default is to not output any assembly strings.
@end deftypefn
@deftypefn {Target Hook} void TARGET_ASM_EMIT_UNWIND_LABEL (FILE *@var{stream}, tree @var{decl}, int @var{for_eh}, int @var{empty})
This target hook emits a label at the beginning of each FDE@. It
should be defined on targets where FDEs need special labels, and it
......
......@@ -6429,6 +6429,8 @@ If this macro is not defined, nothing special is output at the end of
the jump-table.
@end defmac
@hook TARGET_ASM_POST_CFI_STARTPROC
@hook TARGET_ASM_EMIT_UNWIND_LABEL
@hook TARGET_ASM_EMIT_EXCEPT_TABLE_LABEL
......
......@@ -969,6 +969,8 @@ dwarf2out_do_cfi_startproc (bool second)
fprintf (asm_out_file, "\t.cfi_startproc\n");
targetm.asm_out.post_cfi_startproc (asm_out_file, current_function_decl);
/* .cfi_personality and .cfi_lsda are only relevant to DWARF2
eh unwinders. */
if (targetm_common.except_unwind_info (&global_options) != UI_DWARF2)
......
......@@ -277,6 +277,11 @@ hook_void_tree (tree)
}
void
hook_void_FILEptr_tree (FILE *, tree)
{
}
void
hook_void_rtx_tree (rtx, tree)
{
}
......
......@@ -82,6 +82,7 @@ extern void hook_void_FILEptr_constcharptr_const_tree (FILE *, const char *,
const_tree);
extern bool hook_bool_FILEptr_rtx_false (FILE *, rtx);
extern void hook_void_rtx_tree (rtx, tree);
extern void hook_void_FILEptr_tree (FILE *, tree);
extern void hook_void_tree (tree);
extern void hook_void_tree_treeptr (tree, tree *);
extern void hook_void_int_int (int, int);
......
......@@ -93,6 +93,17 @@ when the relevant string is @code{NULL}.",
bool, (rtx x, unsigned int size, int aligned_p),
default_assemble_integer)
/* Assembly strings required after the .cfi_startproc label. */
DEFHOOK
(post_cfi_startproc,
"This target hook is used to emit assembly strings required by the target\n\
after the .cfi_startproc directive. The first argument is the file stream to\n\
write the strings to and the second argument is the function\'s declaration.\n\
\n\
The default is to not output any assembly strings.",
void, (FILE *, tree),
hook_void_FILEptr_tree)
/* Notify the backend that we have completed emitting the data for a
decl. */
DEFHOOK
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment