gcc/
* target.def (decl_end): New hook.
* varasm.c (assemble_variable_contents, assemble_constant_contents):
Use it.
* doc/tm.texi.in (TARGET_ASM_DECL_END): Add.
* doc/tm.texi: Regenerate.
------------------------------------------------------------------------
===================================================================
@@ -7575,6 +7575,11 @@ The default implementation of this hook
when the relevant string is @code{NULL}.
@end deftypefn
+@deftypefn {Target Hook} void TARGET_ASM_DECL_END (void)
+Define this hook if the target assembler requires a special marker to
+terminate an initialized variable declaration.
+@end deftypefn
+
@deftypefn {Target Hook} bool TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA (FILE *@var{file}, rtx @var{x})
A target hook to recognize @var{rtx} patterns that @code{output_addr_const}
can't deal with, and output assembly code to @var{file} corresponding to
===================================================================
@@ -5412,6 +5412,8 @@ It must not be modified by command-line
@hook TARGET_ASM_INTEGER
+@hook TARGET_ASM_DECL_END
+
@hook TARGET_ASM_OUTPUT_ADDR_CONST_EXTRA
@defmac ASM_OUTPUT_ASCII (@var{stream}, @var{ptr}, @var{len})
===================================================================
@@ -127,6 +127,15 @@ when the relevant string is @code{NULL}.
bool, (rtx x, unsigned int size, int aligned_p),
default_assemble_integer)
+/* Notify the backend that we have completed emitting the data for a
+ decl. */
+DEFHOOK
+(decl_end,
+ "Define this hook if the target assembler requires a special marker to\n\
+terminate an initialized variable declaration.",
+ void, (void),
+ hook_void_void)
+
/* Output code that will globalize a label. */
DEFHOOK
(globalize_label,
===================================================================
@@ -1945,6 +1945,7 @@ assemble_variable_contents (tree decl, c
else
/* Leave space for it. */
assemble_zeros (tree_to_uhwi (DECL_SIZE_UNIT (decl)));
+ targetm.asm_out.decl_end ();
}
}
@@ -3349,6 +3350,8 @@ assemble_constant_contents (tree exp, co
/* Output the value of EXP. */
output_constant (exp, size, align);
+
+ targetm.asm_out.decl_end ();
}
/* We must output the constant data referred to by SYMBOL; do so. */