public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCH] Remove ASM_OUTPUT_BSS macro.
@ 2011-04-06 18:58 Anatoly Sokolov
  2011-04-07  8:54 ` Richard Guenther
  0 siblings, 1 reply; 2+ messages in thread
From: Anatoly Sokolov @ 2011-04-06 18:58 UTC (permalink / raw)
  To: gcc-patches

Hi.

 No one back end does not use ASM_OUTPUT_BSS macro now, this patch remove it. 
The GCC have more flexible ASM_OUTPUT_ALIGNED_BSS macro.

  The patch has been bootstrapped on and regression tested on
x86_64-unknown-linux-gnu for c.

  OK to install?

        * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
        (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
        * doc/tm.texi: Regenerate.
        * system.h (ASM_OUTPUT_BSS): Poison.
        * varasm.c (asm_output_bss): Remove function.
        (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
        
        * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
        * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
        * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
        * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
        Likewise.
        * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
        Likewise.
        * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
        Likewise.
        * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.


Index: gcc/doc/tm.texi
===================================================================
--- gcc/doc/tm.texi     (revision 172058)
+++ gcc/doc/tm.texi     (working copy)
@@ -6821,8 +6821,8 @@
 @defmac BSS_SECTION_ASM_OP
 If defined, a C expression whose value is a string, including spacing,
 containing the assembler operation to identify the following data as
-uninitialized global data.  If not defined, and neither
-@code{ASM_OUTPUT_BSS} nor @code{ASM_OUTPUT_ALIGNED_BSS} are defined,
+uninitialized global data.  If not defined, and 
+@code{ASM_OUTPUT_ALIGNED_BSS} not defined,
 uninitialized global data will be output in the data section if
 @option{-fno-common} is passed, otherwise @code{ASM_OUTPUT_COMMON} will be
 used.
@@ -7598,20 +7598,19 @@
 the variable's decl in order to chose what to output.
 @end defmac
 
-@defmac ASM_OUTPUT_BSS (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{rounded})
+@defmac ASM_OUTPUT_ALIGNED_BSS (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{alignment})
 A C statement (sans semicolon) to output to the stdio stream
 @var{stream} the assembler definition of uninitialized global @var{decl} named
-@var{name} whose size is @var{size} bytes.  The variable @var{rounded}
-is the size rounded up to whatever alignment the caller wants.
+@var{name} whose size is @var{size} bytes.  The variable @var{alignment}
+is the alignment specified as the number of bits.
 
-Try to use function @code{asm_output_bss} defined in @file{varasm.c} when
-defining this macro.  If unable, use the expression
+Try to use function @code{asm_output_aligned_bss} defined in file
+@file{varasm.c} when defining this macro.  If unable, use the expression
 @code{assemble_name (@var{stream}, @var{name})} to output the name itself;
 before and after that, output the additional assembler syntax for defining
 the name, and a newline.
 
-There are two ways of handling global BSS@.  One is to define either
-this macro or its aligned counterpart, @code{ASM_OUTPUT_ALIGNED_BSS}.
+There are two ways of handling global BSS@.  One is to define this macro.
 The other is to have @code{TARGET_ASM_SELECT_SECTION} return a
 switchable BSS section (@pxref{TARGET_HAVE_SWITCHABLE_BSS_SECTIONS}).
 You do not need to do both.
@@ -7623,17 +7622,6 @@
 common in order to save space in the object file.
 @end defmac
 
-@defmac ASM_OUTPUT_ALIGNED_BSS (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{alignment})
-Like @code{ASM_OUTPUT_BSS} except takes the required alignment as a
-separate, explicit argument.  If you define this macro, it is used in
-place of @code{ASM_OUTPUT_BSS}, and gives you more flexibility in
-handling the required alignment of the variable.  The alignment is specified
-as the number of bits.
-
-Try to use function @code{asm_output_aligned_bss} defined in file
-@file{varasm.c} when defining this macro.
-@end defmac
-
 @defmac ASM_OUTPUT_LOCAL (@var{stream}, @var{name}, @var{size}, @var{rounded})
 A C statement (sans semicolon) to output to the stdio stream
 @var{stream} the assembler definition of a local-common-label named
Index: gcc/doc/tm.texi.in
===================================================================
--- gcc/doc/tm.texi.in  (revision 172058)
+++ gcc/doc/tm.texi.in  (working copy)
@@ -6799,8 +6799,8 @@
 @defmac BSS_SECTION_ASM_OP
 If defined, a C expression whose value is a string, including spacing,
 containing the assembler operation to identify the following data as
-uninitialized global data.  If not defined, and neither
-@code{ASM_OUTPUT_BSS} nor @code{ASM_OUTPUT_ALIGNED_BSS} are defined,
+uninitialized global data.  If not defined, and 
+@code{ASM_OUTPUT_ALIGNED_BSS} not defined,
 uninitialized global data will be output in the data section if
 @option{-fno-common} is passed, otherwise @code{ASM_OUTPUT_COMMON} will be
 used.
@@ -7564,20 +7564,19 @@
 the variable's decl in order to chose what to output.
 @end defmac
 
-@defmac ASM_OUTPUT_BSS (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{rounded})
+@defmac ASM_OUTPUT_ALIGNED_BSS (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{alignment})
 A C statement (sans semicolon) to output to the stdio stream
 @var{stream} the assembler definition of uninitialized global @var{decl} named
-@var{name} whose size is @var{size} bytes.  The variable @var{rounded}
-is the size rounded up to whatever alignment the caller wants.
+@var{name} whose size is @var{size} bytes.  The variable @var{alignment}
+is the alignment specified as the number of bits.
 
-Try to use function @code{asm_output_bss} defined in @file{varasm.c} when
-defining this macro.  If unable, use the expression
+Try to use function @code{asm_output_aligned_bss} defined in file
+@file{varasm.c} when defining this macro.  If unable, use the expression
 @code{assemble_name (@var{stream}, @var{name})} to output the name itself;
 before and after that, output the additional assembler syntax for defining
 the name, and a newline.
 
-There are two ways of handling global BSS@.  One is to define either
-this macro or its aligned counterpart, @code{ASM_OUTPUT_ALIGNED_BSS}.
+There are two ways of handling global BSS@.  One is to define this macro.
 The other is to have @code{TARGET_ASM_SELECT_SECTION} return a
 switchable BSS section (@pxref{TARGET_HAVE_SWITCHABLE_BSS_SECTIONS}).
 You do not need to do both.
@@ -7589,17 +7588,6 @@
 common in order to save space in the object file.
 @end defmac
 
-@defmac ASM_OUTPUT_ALIGNED_BSS (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{alignment})
-Like @code{ASM_OUTPUT_BSS} except takes the required alignment as a
-separate, explicit argument.  If you define this macro, it is used in
-place of @code{ASM_OUTPUT_BSS}, and gives you more flexibility in
-handling the required alignment of the variable.  The alignment is specified
-as the number of bits.
-
-Try to use function @code{asm_output_aligned_bss} defined in file
-@file{varasm.c} when defining this macro.
-@end defmac
-
 @defmac ASM_OUTPUT_LOCAL (@var{stream}, @var{name}, @var{size}, @var{rounded})
 A C statement (sans semicolon) to output to the stdio stream
 @var{stream} the assembler definition of a local-common-label named
Index: gcc/varasm.c
===================================================================
--- gcc/varasm.c        (revision 172058)
+++ gcc/varasm.c        (working copy)
@@ -121,10 +121,6 @@
 static void globalize_decl (tree);
 static bool decl_readonly_section_1 (enum section_category);
 #ifdef BSS_SECTION_ASM_OP
-#ifdef ASM_OUTPUT_BSS
-static void asm_output_bss (FILE *, tree, const char *,
-                           unsigned HOST_WIDE_INT, unsigned HOST_WIDE_INT);
-#endif
 #ifdef ASM_OUTPUT_ALIGNED_BSS
 static void asm_output_aligned_bss (FILE *, tree, const char *,
                                    unsigned HOST_WIDE_INT, int)
@@ -427,34 +423,6 @@
 
 #ifdef BSS_SECTION_ASM_OP
 
-#ifdef ASM_OUTPUT_BSS
-
-/* Utility function for ASM_OUTPUT_BSS for targets to use if
-   they don't support alignments in .bss.
-   ??? It is believed that this function will work in most cases so such
-   support is localized here.  */
-
-static void ATTRIBUTE_UNUSED
-asm_output_bss (FILE *file, tree decl ATTRIBUTE_UNUSED,
-               const char *name,
-               unsigned HOST_WIDE_INT size ATTRIBUTE_UNUSED,
-               unsigned HOST_WIDE_INT rounded)
-{
-  gcc_assert (strcmp (XSTR (XEXP (DECL_RTL (decl), 0), 0), name) == 0);
-  targetm.asm_out.globalize_decl_name (file, decl);
-  switch_to_section (bss_section);
-#ifdef ASM_DECLARE_OBJECT_NAME
-  last_assemble_variable_decl = decl;
-  ASM_DECLARE_OBJECT_NAME (file, name, decl);
-#else
-  /* Standard thing is just output label for the object.  */
-  ASM_OUTPUT_LABEL (file, name);
-#endif /* ASM_DECLARE_OBJECT_NAME */
-  ASM_OUTPUT_SKIP (file, rounded ? rounded : 1);
-}
-
-#endif
-
 #ifdef ASM_OUTPUT_ALIGNED_BSS
 
 /* Utility function for targets to use in implementing
@@ -1795,7 +1763,7 @@
 
 /* A noswitch_section_callback for bss_noswitch_section.  */
 
-#if defined ASM_OUTPUT_ALIGNED_BSS || defined ASM_OUTPUT_BSS
+#if defined ASM_OUTPUT_ALIGNED_BSS
 static bool
 emit_bss (tree decl ATTRIBUTE_UNUSED,
          const char *name ATTRIBUTE_UNUSED,
@@ -1805,9 +1773,6 @@
 #if defined ASM_OUTPUT_ALIGNED_BSS
   ASM_OUTPUT_ALIGNED_BSS (asm_out_file, decl, name, size, DECL_ALIGN (decl));
   return true;
-#else
-  ASM_OUTPUT_BSS (asm_out_file, decl, name, size, rounded);
-  return false;
 #endif
 }
 #endif
@@ -6004,7 +5969,7 @@
   comm_section = get_noswitch_section (SECTION_WRITE | SECTION_BSS
                                       | SECTION_COMMON, emit_common);
 
-#if defined ASM_OUTPUT_ALIGNED_BSS || defined ASM_OUTPUT_BSS
+#if defined ASM_OUTPUT_ALIGNED_BSS
   bss_noswitch_section = get_noswitch_section (SECTION_WRITE | SECTION_BSS,
                                               emit_bss);
 #endif
Index: gcc/system.h
===================================================================
--- gcc/system.h        (revision 172058)
+++ gcc/system.h        (working copy)
@@ -830,7 +830,7 @@
        FUNCTION_ARG_BOUNDARY MUST_USE_SJLJ_EXCEPTIONS US_SOFTWARE_GOFAST  \
        USING_SVR4_H SVR4_ASM_SPEC FUNCTION_ARG FUNCTION_ARG_ADVANCE       \
        FUNCTION_INCOMING_ARG IRA_COVER_CLASSES TARGET_VERSION             \
-       MACHINE_TYPE TARGET_HAS_TARGETCM
+       MACHINE_TYPE TARGET_HAS_TARGETCM ASM_OUTPUT_BSS
 
 /* Hooks that are no longer used.  */
  #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE  \
Index: gcc/config/frv/frv.h
===================================================================
--- gcc/config/frv/frv.h        (revision 172058)
+++ gcc/config/frv/frv.h        (working copy)
@@ -1574,13 +1574,6 @@
    `".data"' is right.  */
 #define DATA_SECTION_ASM_OP "\t.data"
 
-/* If defined, a C expression whose value is a string containing the
-   assembler operation to identify the following data as
-   uninitialized global data.  If not defined, and neither
-   `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined,
-   uninitialized global data will be output in the data section if
-   `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
-   used.  */
 #define BSS_SECTION_ASM_OP "\t.section .bss,\"aw\""
 
 /* Short Data Support */
Index: gcc/config/i386/djgpp.h
===================================================================
--- gcc/config/i386/djgpp.h     (revision 172058)
+++ gcc/config/i386/djgpp.h     (working copy)
@@ -24,13 +24,6 @@
 /* Don't assume anything about the header files.  */
 #define NO_IMPLICIT_EXTERN_C
 
-/* If defined, a C expression whose value is a string containing the
-   assembler operation to identify the following data as
-   uninitialized global data.  If not defined, and neither
-   `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined,
-   uninitialized global data will be output in the data section if
-   `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
-   used.  */
 #undef BSS_SECTION_ASM_OP
 #define BSS_SECTION_ASM_OP "\t.section\t.bss"
 
Index: gcc/config/i386/i386elf.h
===================================================================
--- gcc/config/i386/i386elf.h   (revision 172058)
+++ gcc/config/i386/i386elf.h   (working copy)
@@ -100,24 +100,9 @@
 /* Switch into a generic section.  */
 #define TARGET_ASM_NAMED_SECTION  default_elf_asm_named_section
 
-/* If defined, a C expression whose value is a string containing the
-   assembler operation to identify the following data as
-   uninitialized global data.  If not defined, and neither
-   `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined,
-   uninitialized global data will be output in the data section if
-   `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
-   used.  */
 #undef BSS_SECTION_ASM_OP
 #define BSS_SECTION_ASM_OP "\t.section\t.bss"
 
-/* Like `ASM_OUTPUT_BSS' except takes the required alignment as a
-   separate, explicit argument.  If you define this macro, it is used
-   in place of `ASM_OUTPUT_BSS', and gives you more flexibility in
-   handling the required alignment of the variable.  The alignment is
-   specified as the number of bits.
-
-   Try to use function `asm_output_aligned_bss' defined in file
-   `varasm.c' when defining this macro.  */
 #undef ASM_OUTPUT_ALIGNED_BSS
 #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
   asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
Index: gcc/config/sh/sh.h
===================================================================
--- gcc/config/sh/sh.h  (revision 172058)
+++ gcc/config/sh/sh.h  (working copy)
@@ -2113,26 +2113,10 @@
 # endif
 #endif
 
-
-/* If defined, a C expression whose value is a string containing the
-   assembler operation to identify the following data as
-   uninitialized global data.  If not defined, and neither
-   `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined,
-   uninitialized global data will be output in the data section if
-   `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
-   used.  */
 #ifndef BSS_SECTION_ASM_OP
 #define BSS_SECTION_ASM_OP     "\t.section\t.bss"
 #endif
 
-/* Like `ASM_OUTPUT_BSS' except takes the required alignment as a
-   separate, explicit argument.  If you define this macro, it is used
-   in place of `ASM_OUTPUT_BSS', and gives you more flexibility in
-   handling the required alignment of the variable.  The alignment is
-   specified as the number of bits.
-
-   Try to use function `asm_output_aligned_bss' defined in file
-   `varasm.c' when defining this macro.  */
 #ifndef ASM_OUTPUT_ALIGNED_BSS
 #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
   asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
Index: gcc/config/fr30/fr30.h
===================================================================
--- gcc/config/fr30/fr30.h      (revision 172058)
+++ gcc/config/fr30/fr30.h      (working copy)
@@ -702,13 +702,6 @@
    `".data"' is right.  */
 #define DATA_SECTION_ASM_OP "\t.data"
 
-/* If defined, a C expression whose value is a string containing the
-   assembler operation to identify the following data as
-   uninitialized global data.  If not defined, and neither
-   `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined,
-   uninitialized global data will be output in the data section if
-   `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
-   used.  */
 #define BSS_SECTION_ASM_OP "\t.section .bss"
 
 /*}}}*/ \f
Index: gcc/config/m68k/m68kelf.h
===================================================================
--- gcc/config/m68k/m68kelf.h   (revision 172058)
+++ gcc/config/m68k/m68kelf.h   (working copy)
@@ -139,25 +139,10 @@
 #undef	STARTFILE_SPEC
 #define STARTFILE_SPEC "crtbegin.o%s"
 
-/* If defined, a C expression whose value is a string containing the
-   assembler operation to identify the following data as
-   uninitialized global data.  If not defined, and neither
-   `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined,
-   uninitialized global data will be output in the data section if
-   `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
-   used.  */
 #ifndef BSS_SECTION_ASM_OP
 #define BSS_SECTION_ASM_OP     "\t.section\t.bss"
 #endif
 
-/* Like `ASM_OUTPUT_BSS' except takes the required alignment as a
-   separate, explicit argument.  If you define this macro, it is used
-   in place of `ASM_OUTPUT_BSS', and gives you more flexibility in
-   handling the required alignment of the variable.  The alignment is
-   specified as the number of bits.
-
-   Try to use function `asm_output_aligned_bss' defined in file
-   `varasm.c' when defining this macro.  */
 #ifndef ASM_OUTPUT_ALIGNED_BSS
 #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
   asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
Index: gcc/config/m68k/netbsd-elf.h
===================================================================
--- gcc/config/m68k/netbsd-elf.h        (revision 172058)
+++ gcc/config/m68k/netbsd-elf.h        (working copy)
@@ -171,15 +171,6 @@
 #define BSS_SECTION_ASM_OP     ".section\t.bss"
 
 
-/* Like `ASM_OUTPUT_BSS' except takes the required alignment as a
-   separate, explicit argument.  If you define this macro, it is used
-   in place of `ASM_OUTPUT_BSS', and gives you more flexibility in
-   handling the required alignment of the variable.  The alignment is
-   specified as the number of bits.
-
-   Try to use function `asm_output_aligned_bss' defined in file
-   `varasm.c' when defining this macro.  */
-
 #undef ASM_OUTPUT_ALIGNED_BSS
 #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN)          \
   asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)


Anatoly.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] Remove ASM_OUTPUT_BSS macro.
  2011-04-06 18:58 [PATCH] Remove ASM_OUTPUT_BSS macro Anatoly Sokolov
@ 2011-04-07  8:54 ` Richard Guenther
  0 siblings, 0 replies; 2+ messages in thread
From: Richard Guenther @ 2011-04-07  8:54 UTC (permalink / raw)
  To: Anatoly Sokolov; +Cc: gcc-patches

2011/4/6 Anatoly Sokolov <aesok@post.ru>:
> Hi.
>
>  No one back end does not use ASM_OUTPUT_BSS macro now, this patch remove it.
> The GCC have more flexible ASM_OUTPUT_ALIGNED_BSS macro.
>
>  The patch has been bootstrapped on and regression tested on
> x86_64-unknown-linux-gnu for c.
>
>  OK to install?

Ok.

Thanks,
Richard.

>        * doc/tm.texi.in (ASM_OUTPUT_BSS): Remove documentation.
>        (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): Update documentation.
>        * doc/tm.texi: Regenerate.
>        * system.h (ASM_OUTPUT_BSS): Poison.
>        * varasm.c (asm_output_bss): Remove function.
>        (emit_bss, init_varasm_once): Don't use ASM_OUTPUT_BSS macro.
>
>        * config/frv/frv.h (BSS_SECTION_ASM_OP): Remove comment.
>        * config/frv/fr30.h (BSS_SECTION_ASM_OP): Likewise.
>        * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Likewise.
>        * config/i386/i386elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
>        Likewise.
>        * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
>        Likewise.
>        * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS):
>        Likewise.
>        * config/m68k/netbsd-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
>
>
> Index: gcc/doc/tm.texi
> ===================================================================
> --- gcc/doc/tm.texi     (revision 172058)
> +++ gcc/doc/tm.texi     (working copy)
> @@ -6821,8 +6821,8 @@
>  @defmac BSS_SECTION_ASM_OP
>  If defined, a C expression whose value is a string, including spacing,
>  containing the assembler operation to identify the following data as
> -uninitialized global data.  If not defined, and neither
> -@code{ASM_OUTPUT_BSS} nor @code{ASM_OUTPUT_ALIGNED_BSS} are defined,
> +uninitialized global data.  If not defined, and
> +@code{ASM_OUTPUT_ALIGNED_BSS} not defined,
>  uninitialized global data will be output in the data section if
>  @option{-fno-common} is passed, otherwise @code{ASM_OUTPUT_COMMON} will be
>  used.
> @@ -7598,20 +7598,19 @@
>  the variable's decl in order to chose what to output.
>  @end defmac
>
> -@defmac ASM_OUTPUT_BSS (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{rounded})
> +@defmac ASM_OUTPUT_ALIGNED_BSS (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{alignment})
>  A C statement (sans semicolon) to output to the stdio stream
>  @var{stream} the assembler definition of uninitialized global @var{decl} named
> -@var{name} whose size is @var{size} bytes.  The variable @var{rounded}
> -is the size rounded up to whatever alignment the caller wants.
> +@var{name} whose size is @var{size} bytes.  The variable @var{alignment}
> +is the alignment specified as the number of bits.
>
> -Try to use function @code{asm_output_bss} defined in @file{varasm.c} when
> -defining this macro.  If unable, use the expression
> +Try to use function @code{asm_output_aligned_bss} defined in file
> +@file{varasm.c} when defining this macro.  If unable, use the expression
>  @code{assemble_name (@var{stream}, @var{name})} to output the name itself;
>  before and after that, output the additional assembler syntax for defining
>  the name, and a newline.
>
> -There are two ways of handling global BSS@.  One is to define either
> -this macro or its aligned counterpart, @code{ASM_OUTPUT_ALIGNED_BSS}.
> +There are two ways of handling global BSS@.  One is to define this macro.
>  The other is to have @code{TARGET_ASM_SELECT_SECTION} return a
>  switchable BSS section (@pxref{TARGET_HAVE_SWITCHABLE_BSS_SECTIONS}).
>  You do not need to do both.
> @@ -7623,17 +7622,6 @@
>  common in order to save space in the object file.
>  @end defmac
>
> -@defmac ASM_OUTPUT_ALIGNED_BSS (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{alignment})
> -Like @code{ASM_OUTPUT_BSS} except takes the required alignment as a
> -separate, explicit argument.  If you define this macro, it is used in
> -place of @code{ASM_OUTPUT_BSS}, and gives you more flexibility in
> -handling the required alignment of the variable.  The alignment is specified
> -as the number of bits.
> -
> -Try to use function @code{asm_output_aligned_bss} defined in file
> -@file{varasm.c} when defining this macro.
> -@end defmac
> -
>  @defmac ASM_OUTPUT_LOCAL (@var{stream}, @var{name}, @var{size}, @var{rounded})
>  A C statement (sans semicolon) to output to the stdio stream
>  @var{stream} the assembler definition of a local-common-label named
> Index: gcc/doc/tm.texi.in
> ===================================================================
> --- gcc/doc/tm.texi.in  (revision 172058)
> +++ gcc/doc/tm.texi.in  (working copy)
> @@ -6799,8 +6799,8 @@
>  @defmac BSS_SECTION_ASM_OP
>  If defined, a C expression whose value is a string, including spacing,
>  containing the assembler operation to identify the following data as
> -uninitialized global data.  If not defined, and neither
> -@code{ASM_OUTPUT_BSS} nor @code{ASM_OUTPUT_ALIGNED_BSS} are defined,
> +uninitialized global data.  If not defined, and
> +@code{ASM_OUTPUT_ALIGNED_BSS} not defined,
>  uninitialized global data will be output in the data section if
>  @option{-fno-common} is passed, otherwise @code{ASM_OUTPUT_COMMON} will be
>  used.
> @@ -7564,20 +7564,19 @@
>  the variable's decl in order to chose what to output.
>  @end defmac
>
> -@defmac ASM_OUTPUT_BSS (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{rounded})
> +@defmac ASM_OUTPUT_ALIGNED_BSS (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{alignment})
>  A C statement (sans semicolon) to output to the stdio stream
>  @var{stream} the assembler definition of uninitialized global @var{decl} named
> -@var{name} whose size is @var{size} bytes.  The variable @var{rounded}
> -is the size rounded up to whatever alignment the caller wants.
> +@var{name} whose size is @var{size} bytes.  The variable @var{alignment}
> +is the alignment specified as the number of bits.
>
> -Try to use function @code{asm_output_bss} defined in @file{varasm.c} when
> -defining this macro.  If unable, use the expression
> +Try to use function @code{asm_output_aligned_bss} defined in file
> +@file{varasm.c} when defining this macro.  If unable, use the expression
>  @code{assemble_name (@var{stream}, @var{name})} to output the name itself;
>  before and after that, output the additional assembler syntax for defining
>  the name, and a newline.
>
> -There are two ways of handling global BSS@.  One is to define either
> -this macro or its aligned counterpart, @code{ASM_OUTPUT_ALIGNED_BSS}.
> +There are two ways of handling global BSS@.  One is to define this macro.
>  The other is to have @code{TARGET_ASM_SELECT_SECTION} return a
>  switchable BSS section (@pxref{TARGET_HAVE_SWITCHABLE_BSS_SECTIONS}).
>  You do not need to do both.
> @@ -7589,17 +7588,6 @@
>  common in order to save space in the object file.
>  @end defmac
>
> -@defmac ASM_OUTPUT_ALIGNED_BSS (@var{stream}, @var{decl}, @var{name}, @var{size}, @var{alignment})
> -Like @code{ASM_OUTPUT_BSS} except takes the required alignment as a
> -separate, explicit argument.  If you define this macro, it is used in
> -place of @code{ASM_OUTPUT_BSS}, and gives you more flexibility in
> -handling the required alignment of the variable.  The alignment is specified
> -as the number of bits.
> -
> -Try to use function @code{asm_output_aligned_bss} defined in file
> -@file{varasm.c} when defining this macro.
> -@end defmac
> -
>  @defmac ASM_OUTPUT_LOCAL (@var{stream}, @var{name}, @var{size}, @var{rounded})
>  A C statement (sans semicolon) to output to the stdio stream
>  @var{stream} the assembler definition of a local-common-label named
> Index: gcc/varasm.c
> ===================================================================
> --- gcc/varasm.c        (revision 172058)
> +++ gcc/varasm.c        (working copy)
> @@ -121,10 +121,6 @@
>  static void globalize_decl (tree);
>  static bool decl_readonly_section_1 (enum section_category);
>  #ifdef BSS_SECTION_ASM_OP
> -#ifdef ASM_OUTPUT_BSS
> -static void asm_output_bss (FILE *, tree, const char *,
> -                           unsigned HOST_WIDE_INT, unsigned HOST_WIDE_INT);
> -#endif
>  #ifdef ASM_OUTPUT_ALIGNED_BSS
>  static void asm_output_aligned_bss (FILE *, tree, const char *,
>                                    unsigned HOST_WIDE_INT, int)
> @@ -427,34 +423,6 @@
>
>  #ifdef BSS_SECTION_ASM_OP
>
> -#ifdef ASM_OUTPUT_BSS
> -
> -/* Utility function for ASM_OUTPUT_BSS for targets to use if
> -   they don't support alignments in .bss.
> -   ??? It is believed that this function will work in most cases so such
> -   support is localized here.  */
> -
> -static void ATTRIBUTE_UNUSED
> -asm_output_bss (FILE *file, tree decl ATTRIBUTE_UNUSED,
> -               const char *name,
> -               unsigned HOST_WIDE_INT size ATTRIBUTE_UNUSED,
> -               unsigned HOST_WIDE_INT rounded)
> -{
> -  gcc_assert (strcmp (XSTR (XEXP (DECL_RTL (decl), 0), 0), name) == 0);
> -  targetm.asm_out.globalize_decl_name (file, decl);
> -  switch_to_section (bss_section);
> -#ifdef ASM_DECLARE_OBJECT_NAME
> -  last_assemble_variable_decl = decl;
> -  ASM_DECLARE_OBJECT_NAME (file, name, decl);
> -#else
> -  /* Standard thing is just output label for the object.  */
> -  ASM_OUTPUT_LABEL (file, name);
> -#endif /* ASM_DECLARE_OBJECT_NAME */
> -  ASM_OUTPUT_SKIP (file, rounded ? rounded : 1);
> -}
> -
> -#endif
> -
>  #ifdef ASM_OUTPUT_ALIGNED_BSS
>
>  /* Utility function for targets to use in implementing
> @@ -1795,7 +1763,7 @@
>
>  /* A noswitch_section_callback for bss_noswitch_section.  */
>
> -#if defined ASM_OUTPUT_ALIGNED_BSS || defined ASM_OUTPUT_BSS
> +#if defined ASM_OUTPUT_ALIGNED_BSS
>  static bool
>  emit_bss (tree decl ATTRIBUTE_UNUSED,
>          const char *name ATTRIBUTE_UNUSED,
> @@ -1805,9 +1773,6 @@
>  #if defined ASM_OUTPUT_ALIGNED_BSS
>   ASM_OUTPUT_ALIGNED_BSS (asm_out_file, decl, name, size, DECL_ALIGN (decl));
>   return true;
> -#else
> -  ASM_OUTPUT_BSS (asm_out_file, decl, name, size, rounded);
> -  return false;
>  #endif
>  }
>  #endif
> @@ -6004,7 +5969,7 @@
>   comm_section = get_noswitch_section (SECTION_WRITE | SECTION_BSS
>                                       | SECTION_COMMON, emit_common);
>
> -#if defined ASM_OUTPUT_ALIGNED_BSS || defined ASM_OUTPUT_BSS
> +#if defined ASM_OUTPUT_ALIGNED_BSS
>   bss_noswitch_section = get_noswitch_section (SECTION_WRITE | SECTION_BSS,
>                                               emit_bss);
>  #endif
> Index: gcc/system.h
> ===================================================================
> --- gcc/system.h        (revision 172058)
> +++ gcc/system.h        (working copy)
> @@ -830,7 +830,7 @@
>        FUNCTION_ARG_BOUNDARY MUST_USE_SJLJ_EXCEPTIONS US_SOFTWARE_GOFAST  \
>        USING_SVR4_H SVR4_ASM_SPEC FUNCTION_ARG FUNCTION_ARG_ADVANCE       \
>        FUNCTION_INCOMING_ARG IRA_COVER_CLASSES TARGET_VERSION             \
> -       MACHINE_TYPE TARGET_HAS_TARGETCM
> +       MACHINE_TYPE TARGET_HAS_TARGETCM ASM_OUTPUT_BSS
>
>  /* Hooks that are no longer used.  */
>  #pragma GCC poison LANG_HOOKS_FUNCTION_MARK LANG_HOOKS_FUNCTION_FREE  \
> Index: gcc/config/frv/frv.h
> ===================================================================
> --- gcc/config/frv/frv.h        (revision 172058)
> +++ gcc/config/frv/frv.h        (working copy)
> @@ -1574,13 +1574,6 @@
>    `".data"' is right.  */
>  #define DATA_SECTION_ASM_OP "\t.data"
>
> -/* If defined, a C expression whose value is a string containing the
> -   assembler operation to identify the following data as
> -   uninitialized global data.  If not defined, and neither
> -   `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined,
> -   uninitialized global data will be output in the data section if
> -   `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
> -   used.  */
>  #define BSS_SECTION_ASM_OP "\t.section .bss,\"aw\""
>
>  /* Short Data Support */
> Index: gcc/config/i386/djgpp.h
> ===================================================================
> --- gcc/config/i386/djgpp.h     (revision 172058)
> +++ gcc/config/i386/djgpp.h     (working copy)
> @@ -24,13 +24,6 @@
>  /* Don't assume anything about the header files.  */
>  #define NO_IMPLICIT_EXTERN_C
>
> -/* If defined, a C expression whose value is a string containing the
> -   assembler operation to identify the following data as
> -   uninitialized global data.  If not defined, and neither
> -   `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined,
> -   uninitialized global data will be output in the data section if
> -   `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
> -   used.  */
>  #undef BSS_SECTION_ASM_OP
>  #define BSS_SECTION_ASM_OP "\t.section\t.bss"
>
> Index: gcc/config/i386/i386elf.h
> ===================================================================
> --- gcc/config/i386/i386elf.h   (revision 172058)
> +++ gcc/config/i386/i386elf.h   (working copy)
> @@ -100,24 +100,9 @@
>  /* Switch into a generic section.  */
>  #define TARGET_ASM_NAMED_SECTION  default_elf_asm_named_section
>
> -/* If defined, a C expression whose value is a string containing the
> -   assembler operation to identify the following data as
> -   uninitialized global data.  If not defined, and neither
> -   `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined,
> -   uninitialized global data will be output in the data section if
> -   `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
> -   used.  */
>  #undef BSS_SECTION_ASM_OP
>  #define BSS_SECTION_ASM_OP "\t.section\t.bss"
>
> -/* Like `ASM_OUTPUT_BSS' except takes the required alignment as a
> -   separate, explicit argument.  If you define this macro, it is used
> -   in place of `ASM_OUTPUT_BSS', and gives you more flexibility in
> -   handling the required alignment of the variable.  The alignment is
> -   specified as the number of bits.
> -
> -   Try to use function `asm_output_aligned_bss' defined in file
> -   `varasm.c' when defining this macro.  */
>  #undef ASM_OUTPUT_ALIGNED_BSS
>  #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
>   asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
> Index: gcc/config/sh/sh.h
> ===================================================================
> --- gcc/config/sh/sh.h  (revision 172058)
> +++ gcc/config/sh/sh.h  (working copy)
> @@ -2113,26 +2113,10 @@
>  # endif
>  #endif
>
> -
> -/* If defined, a C expression whose value is a string containing the
> -   assembler operation to identify the following data as
> -   uninitialized global data.  If not defined, and neither
> -   `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined,
> -   uninitialized global data will be output in the data section if
> -   `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
> -   used.  */
>  #ifndef BSS_SECTION_ASM_OP
>  #define BSS_SECTION_ASM_OP     "\t.section\t.bss"
>  #endif
>
> -/* Like `ASM_OUTPUT_BSS' except takes the required alignment as a
> -   separate, explicit argument.  If you define this macro, it is used
> -   in place of `ASM_OUTPUT_BSS', and gives you more flexibility in
> -   handling the required alignment of the variable.  The alignment is
> -   specified as the number of bits.
> -
> -   Try to use function `asm_output_aligned_bss' defined in file
> -   `varasm.c' when defining this macro.  */
>  #ifndef ASM_OUTPUT_ALIGNED_BSS
>  #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
>   asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
> Index: gcc/config/fr30/fr30.h
> ===================================================================
> --- gcc/config/fr30/fr30.h      (revision 172058)
> +++ gcc/config/fr30/fr30.h      (working copy)
> @@ -702,13 +702,6 @@
>    `".data"' is right.  */
>  #define DATA_SECTION_ASM_OP "\t.data"
>
> -/* If defined, a C expression whose value is a string containing the
> -   assembler operation to identify the following data as
> -   uninitialized global data.  If not defined, and neither
> -   `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined,
> -   uninitialized global data will be output in the data section if
> -   `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
> -   used.  */
>  #define BSS_SECTION_ASM_OP "\t.section .bss"
>
>  /*}}}*/
> Index: gcc/config/m68k/m68kelf.h
> ===================================================================
> --- gcc/config/m68k/m68kelf.h   (revision 172058)
> +++ gcc/config/m68k/m68kelf.h   (working copy)
> @@ -139,25 +139,10 @@
>  #undef STARTFILE_SPEC
>  #define STARTFILE_SPEC "crtbegin.o%s"
>
> -/* If defined, a C expression whose value is a string containing the
> -   assembler operation to identify the following data as
> -   uninitialized global data.  If not defined, and neither
> -   `ASM_OUTPUT_BSS' nor `ASM_OUTPUT_ALIGNED_BSS' are defined,
> -   uninitialized global data will be output in the data section if
> -   `-fno-common' is passed, otherwise `ASM_OUTPUT_COMMON' will be
> -   used.  */
>  #ifndef BSS_SECTION_ASM_OP
>  #define BSS_SECTION_ASM_OP     "\t.section\t.bss"
>  #endif
>
> -/* Like `ASM_OUTPUT_BSS' except takes the required alignment as a
> -   separate, explicit argument.  If you define this macro, it is used
> -   in place of `ASM_OUTPUT_BSS', and gives you more flexibility in
> -   handling the required alignment of the variable.  The alignment is
> -   specified as the number of bits.
> -
> -   Try to use function `asm_output_aligned_bss' defined in file
> -   `varasm.c' when defining this macro.  */
>  #ifndef ASM_OUTPUT_ALIGNED_BSS
>  #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN) \
>   asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
> Index: gcc/config/m68k/netbsd-elf.h
> ===================================================================
> --- gcc/config/m68k/netbsd-elf.h        (revision 172058)
> +++ gcc/config/m68k/netbsd-elf.h        (working copy)
> @@ -171,15 +171,6 @@
>  #define BSS_SECTION_ASM_OP     ".section\t.bss"
>
>
> -/* Like `ASM_OUTPUT_BSS' except takes the required alignment as a
> -   separate, explicit argument.  If you define this macro, it is used
> -   in place of `ASM_OUTPUT_BSS', and gives you more flexibility in
> -   handling the required alignment of the variable.  The alignment is
> -   specified as the number of bits.
> -
> -   Try to use function `asm_output_aligned_bss' defined in file
> -   `varasm.c' when defining this macro.  */
> -
>  #undef ASM_OUTPUT_ALIGNED_BSS
>  #define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN)          \
>   asm_output_aligned_bss (FILE, DECL, NAME, SIZE, ALIGN)
>
>
> Anatoly.
>
>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-04-07  8:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-06 18:58 [PATCH] Remove ASM_OUTPUT_BSS macro Anatoly Sokolov
2011-04-07  8:54 ` Richard Guenther

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).