(ASM_OUTPUT_ALIGNED_BSS): Actually emit variables in the appropriate bss section.
authorKazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
Thu, 8 Jan 2004 16:19:00 +0000 (16:19 +0000)
committerNick Clifton <nickc@gcc.gnu.org>
Thu, 8 Jan 2004 16:19:00 +0000 (16:19 +0000)
From-SVN: r75552

gcc/ChangeLog
gcc/config/m32r/m32r.h

index 026920a80408bfd6ab528288e054f2827e275e6d..a413b38149d4d2e4cc338363662f0be23b427112 100644 (file)
@@ -1,3 +1,8 @@
+2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
+
+       * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
+       variables in the appropriate bss section.
+
 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
 
        * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
index bc7f0d4a56194b98ebb361a6f8fdaadd50f1f2be..d2483e24d73d3d1f61bcc335a3584068b6b1b86d 100644 (file)
@@ -1748,19 +1748,19 @@ extern char m32r_punct_chars[256];
     }                                                                  \
   while (0)
 
-/* 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.
-
-   For the M32R we need sbss support.  */
-
-#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN)  \
-  do                                                           \
-    {                                                          \
-      ASM_OUTPUT_ALIGNED_COMMON (FILE, NAME, SIZE, ALIGN);     \
-    }                                                          \
+#define ASM_OUTPUT_ALIGNED_BSS(FILE, DECL, NAME, SIZE, ALIGN)          \
+  do                                                                   \
+    {                                                                  \
+      if (! TARGET_SDATA_NONE                                          \
+          && (SIZE) > 0 && (SIZE) <= g_switch_value)                   \
+        named_section (0, ".sbss", 0);                                 \
+      else                                                             \
+        bss_section ();                                                        \
+      ASM_OUTPUT_ALIGN (FILE, floor_log2 (ALIGN / BITS_PER_UNIT));     \
+      last_assemble_variable_decl = DECL;                              \
+      ASM_DECLARE_OBJECT_NAME (FILE, NAME, DECL);                      \
+      ASM_OUTPUT_SKIP (FILE, SIZE ? SIZE : 1);                         \
+    }                                                                  \
   while (0)
 \f
 /* Debugging information.  */