[Darwin,X86] We have .p2align, so declare its use.

Message ID CB68BB9D-9987-46FC-AF37-D86EB7C3B10F@sandoe.co.uk
State New
Headers show
Series
  • [Darwin,X86] We have .p2align, so declare its use.
Related show

Commit Message

Iain Sandoe May 31, 2019, 7:29 a.m.
.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  <iain@sandoe.co.uk>

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

-- 
2.17.1

Patch

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