OSDN Git Service

(ASM_OUTPUT_ALIGNED_BSS): Actually emit variables in the appropriate bss section.
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Jan 2004 16:19:00 +0000 (16:19 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 8 Jan 2004 16:19:00 +0000 (16:19 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@75552 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 026920a..a413b38 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 bc7f0d4..d2483e2 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.  */