Add a new asm hook to print the end of a variable definition.
authorBernd Schmidt <bernds@codesourcery.com>
Thu, 6 Nov 2014 17:19:48 +0000 (17:19 +0000)
committerBernd Schmidt <bernds@gcc.gnu.org>
Thu, 6 Nov 2014 17:19:48 +0000 (17:19 +0000)
* 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.

From-SVN: r217196

gcc/ChangeLog
gcc/doc/tm.texi
gcc/doc/tm.texi.in
gcc/target.def
gcc/varasm.c

index d8cbe9610ccd1a85049a2bc8f51e5ed4a0aa1c2f..1121f3e856414fbec14e8801727f18f80d541438 100644 (file)
@@ -1,3 +1,11 @@
+2014-11-06  Bernd Schmidt  <bernds@codesourcery.com>
+
+       * 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.
+
 2014-11-06  Renlin Li  <renlin.li@arm.com>
 
        * config/aarch64/aarch64.c (aarch64_architecture_version): New.
index 1bb31830ce1ab9b7645b5cbccc5c30e18dc5d16e..7af23e5247aa9d597ab4e914fe017dfa8c31b5c1 100644 (file)
@@ -7421,6 +7421,11 @@ The default implementation of this hook will use the
 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
index bf1595c6a2e4807c35530e3cfeb9b16f6a6921d5..f739fdfee91da5d992a5a040c46c677c223916d2 100644 (file)
@@ -5193,6 +5193,8 @@ It must not be modified by command-line option processing.
 
 @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})
index d460516ffe6e70e9a832ef5f09da3749fe96e48a..4c02c1113d1afb6b265f67a43cbcf4b6ed1340bc 100644 (file)
@@ -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,
index 40eeb5ed2c234f49b78eaf39b2f225c5179c65ae..8d857a4bc9a41dd01b5371975d9e3b20a856a0b8 100644 (file)
@@ -2041,6 +2041,7 @@ assemble_variable_contents (tree decl, const char *name,
       else
        /* Leave space for it.  */
        assemble_zeros (tree_to_uhwi (DECL_SIZE_UNIT (decl)));
+      targetm.asm_out.decl_end ();
     }
 }
 
@@ -3347,6 +3348,8 @@ assemble_constant_contents (tree exp, const char *label, unsigned int align)
 
   /* 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.  */