OSDN Git Service

Use .lcomm where we can
authormeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Jun 1996 19:04:21 +0000 (19:04 +0000)
committermeissner <meissner@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 10 Jun 1996 19:04:21 +0000 (19:04 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@12265 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/rs6000/sol2.h
gcc/config/rs6000/sysv4.h

index ac64a7b..11eff6d 100644 (file)
@@ -84,9 +84,6 @@ do {                                                                  \
 
 #define        ASM_STABN_OP    ".stabd"
 
-#undef SKIP_ASM_OP
-#define        SKIP_ASM_OP     ".skip"
-
 #undef  ASM_OUTPUT_SOURCE_LINE
 #define ASM_OUTPUT_SOURCE_LINE(file, line)                             \
 do                                                                     \
index b2b4c23..3106785 100644 (file)
@@ -658,17 +658,32 @@ extern int rs6000_pic_labelno;
 #define LOCAL_ASM_OP   ".local"
 #endif
 
+#ifndef LCOMM_ASM_OP
+#define LCOMM_ASM_OP   ".lcomm"
+#endif
+
 #undef ASM_OUTPUT_ALIGNED_LOCAL
 #define ASM_OUTPUT_ALIGNED_LOCAL(FILE, NAME, SIZE, ALIGN)              \
 do {                                                                   \
   if (TARGET_SDATA && (SIZE) > 0 && (SIZE) <= g_switch_value)          \
-    sbss_section ();                                                   \
+    {                                                                  \
+      sbss_section ();                                                 \
+      ASM_OUTPUT_ALIGN (FILE, exact_log2 (ALIGN / BITS_PER_UNIT));     \
+      ASM_OUTPUT_LABEL (FILE, NAME);                                   \
+      ASM_OUTPUT_SKIP (FILE, SIZE);                                    \
+      if (!flag_inhibit_size_directive && (SIZE) > 0)                  \
+       {                                                               \
+         fprintf (FILE, "\t%s\t ", SIZE_ASM_OP);                       \
+         assemble_name (FILE, NAME);                                   \
+         fprintf (FILE, ",%d\n",  SIZE);                               \
+       }                                                               \
+    }                                                                  \
   else                                                                 \
-    bss_section ();                                                    \
-                                                                       \
-  ASM_OUTPUT_ALIGN (FILE, exact_log2 (ALIGN / BITS_PER_UNIT));         \
-  ASM_OUTPUT_LABEL (FILE, NAME);                                       \
-  ASM_OUTPUT_SKIP (FILE, SIZE);                                                \
+    {                                                                  \
+      fprintf (FILE, "\t%s\t", LCOMM_ASM_OP);                          \
+      assemble_name ((FILE), (NAME));                                  \
+      fprintf ((FILE), ",%u,%u\n", (SIZE), (ALIGN) / BITS_PER_UNIT);   \
+    }                                                                  \
 } while (0)
 
 /* Describe how to emit unitialized external linkage items  */