Prevent emission of "a.lign 0" directives
authornickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Feb 2000 18:22:10 +0000 (18:22 +0000)
committernickc <nickc@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 18 Feb 2000 18:22:10 +0000 (18:22 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@32052 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/arm/elf.h
gcc/config/arm/thumb.h

index ec11780..db5b0a8 100644 (file)
@@ -1,3 +1,11 @@
+2000-02-18  Nick Clifton  <nickc@cygnus.com>
+
+       * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate
+       anything for an alignment of zero.
+
+       * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate
+       anything for an alignment of zero.
+
 2000-02-18  Martin von Loewis  <loewis@informatik.hu-berlin.de>
 
        * gcc.texi (Bug Reporting): Refer to bugs.html.
index 71b36d2..9b62020 100644 (file)
@@ -356,8 +356,14 @@ dtors_section ()                                                   \
    not defined, the default value is `BIGGEST_ALIGNMENT'.  */
 #define MAX_OFILE_ALIGNMENT (32768 * 8)
 
-/* Align output to a power of two.  */
-#define ASM_OUTPUT_ALIGN(STREAM, POWER)  \
-  fprintf (STREAM, "\t.align\t%d\n", POWER)
+/* Align output to a power of two.  Note ".align 0" is redundant,
+   and also GAS will treat it as ".align 2" which we do not want.  */
+#define ASM_OUTPUT_ALIGN(STREAM, POWER)                        \
+  do                                                   \
+    {                                                  \
+      if ((POWER) > 0)                                 \
+       fprintf (STREAM, "\t.align\t%d\n", POWER);      \
+    }                                                  \
+  while (0)
 
 #include "arm/aout.h"
index ab89828..2366e14 100644 (file)
@@ -139,13 +139,18 @@ extern int target_flags;
 #define ASM_OUTPUT_SKIP(STREAM, NBYTES)  \
   fprintf ((STREAM), "\t.space\t%u\n", (NBYTES))
 
-/* This is how to output an assembler line
-   that says to advance the location counter
-   to a multiple of 2**LOG bytes.  */
-#define ASM_OUTPUT_ALIGN(STREAM,LOG)                                   \
-{                                                                      \
-  fprintf (STREAM, "\t.align\t%d\n", (LOG));                           \
-}
+/* This is how to output an assembler line that says to advance the
+   location counter to a multiple of 2**LOG bytes.  Advancing to the
+   nearest 1 byte boundary is redundant, and anyway the assembler would
+   treat it as meaning "advance to nearest 4 byte boundary", which we do
+   not want.  */
+#define ASM_OUTPUT_ALIGN(STREAM,LOG)                   \
+  do                                                   \
+    {                                                  \
+      if ((LOG) > 0)                                   \
+       fprintf (STREAM, "\t.align\t%d\n", LOG);        \
+    }                                                  \
+  while (0)
 
 /* Output a common block */
 #define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED)                 \