.p2align support is present in all x86 assemblers on released Darwin systems.
This “fixes” most of the remaining alignment-related fails in i386.exp

tested on x86_64-darwin16, x86_64-linux-gnu,

applied to mainline,
thanks
Iain

gcc/

2019-05-31  Iain Sandoe  <i...@sandoe.co.uk>

        * config/i386/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.

diff --git a/gcc/config/i386/darwin.h b/gcc/config/i386/darwin.h
index 1128428330..46fa329f62 100644
--- a/gcc/config/i386/darwin.h
+++ b/gcc/config/i386/darwin.h
@@ -223,6 +223,18 @@ extern int darwin_emit_branch_islands;
       }                                                                   \
   } while (0)
 
+#ifdef HAVE_GAS_MAX_SKIP_P2ALIGN
+#define ASM_OUTPUT_MAX_SKIP_ALIGN(FILE,LOG,MAX_SKIP)                    \
+  do {                                                                  \
+    if ((LOG) != 0) {                                                   \
+      if ((MAX_SKIP) == 0 || (MAX_SKIP) >= (1 << (LOG)) - 1)            \
+        fprintf ((FILE), "\t.p2align %d\n", (LOG));                     \
+      else                                                              \
+        fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP));     \
+    }                                                                   \
+  } while (0)
+#endif
+
 /* Darwin x86 assemblers support the .ident directive.  */
 
 #undef TARGET_ASM_OUTPUT_IDENT
-- 
2.17.1


Reply via email to