aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKazuhiro Inaoka <inaoka.kazuhiro@renesas.com>2004-01-08 16:19:00 +0000
committerNick Clifton <nickc@gcc.gnu.org>2004-01-08 16:19:00 +0000
commitcb1f9d03d51c94ce12f6202a6809462b21ffb8b1 (patch)
treee3701b9094f0847b4053325939c9df128f47049f
parent53b8fe3ef6f8a38d2047a29031ad918908e8b702 (diff)
downloadgcc-cb1f9d03d51c94ce12f6202a6809462b21ffb8b1.zip
gcc-cb1f9d03d51c94ce12f6202a6809462b21ffb8b1.tar.gz
gcc-cb1f9d03d51c94ce12f6202a6809462b21ffb8b1.tar.bz2
(ASM_OUTPUT_ALIGNED_BSS): Actually emit variables in the appropriate bss section.
From-SVN: r75552
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/m32r/m32r.h26
2 files changed, 18 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 026920a..a413b38 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/m32r/m32r.h b/gcc/config/m32r/m32r.h
index bc7f0d4..d2483e2 100644
--- a/gcc/config/m32r/m32r.h
+++ b/gcc/config/m32r/m32r.h
@@ -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)
/* Debugging information. */