aarch64-arches.def: Add "armv8.1-a".
authorMatthew Wahab <matthew.wahab@arm.com>
Tue, 16 Jun 2015 13:38:37 +0000 (13:38 +0000)
committerMatthew Wahab <mwahab@gcc.gnu.org>
Tue, 16 Jun 2015 13:38:37 +0000 (13:38 +0000)
2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>

* config/aarch64/aarch64-arches.def: Add "armv8.1-a".
* config/aarch64/aarch64-options-extensions.def: Update "fP",
"simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
* gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
(AARCH64_FL_PAN): New.
(AARCH64_FL_LOR): New.
(AARCH64_FL_RDMA): New.
(AARCH64_FL_FOR_ARCH8_1): New.
* doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
-march. Add "lse", "pan", "lor", "rdma" to feature modifiers.

From-SVN: r224519

gcc/ChangeLog
gcc/config/aarch64/aarch64-arches.def
gcc/config/aarch64/aarch64-option-extensions.def
gcc/config/aarch64/aarch64.h
gcc/doc/invoke.texi

index d15ba870c6600a4d08232d17110a927765937f5f..a277a7ab2a227f66f6363b32591f21f0230328d9 100644 (file)
@@ -1,3 +1,16 @@
+2015-06-16  Matthew Wahab  <matthew.wahab@arm.com>
+
+       * config/aarch64/aarch64-arches.def: Add "armv8.1-a".
+       * config/aarch64/aarch64-options-extensions.def: Update "fP",
+       "simd" and "crypto".  Add "lse", "pan", "lor" and "rdma".
+       * gcc/config/aarch64/aarch64.h (AARCH64_FL_LSE): New.
+       (AARCH64_FL_PAN): New.
+       (AARCH64_FL_LOR): New.
+       (AARCH64_FL_RDMA): New.
+       (AARCH64_FL_FOR_ARCH8_1): New.
+       * doc/invoke.texi (AArch64 Options): Add "armv8.1-a" to
+       -march. Add "lse", "pan", "lor", "rdma" to feature modifiers.
+
 2015-06-16  Martin Liska  <mliska@suse.cz>
 
        * bitmap.c (dump_bitmap_statistics): Fix GNU coding style.
index bf4e185cda9c5dcc22a86828af3ca0e78a2f8b4b..abbfce66bfe99f29ee1897030360131757aefccf 100644 (file)
@@ -27,3 +27,4 @@
    the flags implied by the architecture.  */
 
 AARCH64_ARCH("armv8-a",              generic,       8,  AARCH64_FL_FOR_ARCH8)
+AARCH64_ARCH("armv8.1-a",     generic,      8,  AARCH64_FL_FOR_ARCH8_1)
index f296296e9dbb8e3e90397085785ddd8676f7cdbd..1762cc8d58fe0a9e7f40b95a753fd80150be65ed 100644 (file)
    AArch64, and therefore serves as a template for adding more CPUs in the
    future.  */
 
-AARCH64_OPT_EXTENSION("fp",    AARCH64_FL_FP,                          AARCH64_FL_FPSIMD | AARCH64_FL_CRYPTO, "fp")
-AARCH64_OPT_EXTENSION("simd",  AARCH64_FL_FPSIMD,                      AARCH64_FL_SIMD | AARCH64_FL_CRYPTO,   "asimd")
-AARCH64_OPT_EXTENSION("crypto",        AARCH64_FL_CRYPTO | AARCH64_FL_FPSIMD,  AARCH64_FL_CRYPTO,                     "aes pmull sha1 sha2")
+AARCH64_OPT_EXTENSION("fp",    AARCH64_FL_FP,                          AARCH64_FL_FPSIMD | AARCH64_FL_CRYPTO | AARCH64_FL_RDMA, "fp")
+AARCH64_OPT_EXTENSION("simd",  AARCH64_FL_FPSIMD,                      AARCH64_FL_SIMD | AARCH64_FL_CRYPTO | AARCH64_FL_RDMA,   "asimd")
+AARCH64_OPT_EXTENSION("crypto",        AARCH64_FL_CRYPTO | AARCH64_FL_FPSIMD,  AARCH64_FL_CRYPTO,   "aes pmull sha1 sha2")
 AARCH64_OPT_EXTENSION("crc",   AARCH64_FL_CRC,                         AARCH64_FL_CRC,                        "crc32")
+AARCH64_OPT_EXTENSION("lse",   AARCH64_FL_LSE,                         AARCH64_FL_LSE,                        "lse")
+AARCH64_OPT_EXTENSION("pan",   AARCH64_FL_PAN,         AARCH64_FL_PAN,         "pan")
+AARCH64_OPT_EXTENSION("lor",   AARCH64_FL_LOR,         AARCH64_FL_LOR,         "lor")
+AARCH64_OPT_EXTENSION("rdma",  AARCH64_FL_RDMA | AARCH64_FL_FPSIMD,    AARCH64_FL_RDMA,        "rdma")
index 25b9927ab3cd95e125abc1877db53b2d2307241b..a22c6e40b5e8d59e753852570df4670ded51e24e 100644 (file)
@@ -201,6 +201,11 @@ extern unsigned aarch64_architecture_version;
 #define AARCH64_FL_CRC        (1 << 3) /* Has CRC.  */
 /* Has static dispatch of FMA.  */
 #define AARCH64_FL_USE_FMA_STEERING_PASS (1 << 4)
+/* ARMv8.1 architecture extensions.  */
+#define AARCH64_FL_LSE       (1 << 5)  /* Has Large System Extensions.  */
+#define AARCH64_FL_PAN       (1 << 6)  /* Has Privileged Access Never.  */
+#define AARCH64_FL_LOR       (1 << 7)  /* Has Limited Ordering regions.  */
+#define AARCH64_FL_RDMA              (1 << 8)  /* Has ARMv8.1 Adv.SIMD.  */
 
 /* Has FP and SIMD.  */
 #define AARCH64_FL_FPSIMD     (AARCH64_FL_FP | AARCH64_FL_SIMD)
@@ -210,6 +215,9 @@ extern unsigned aarch64_architecture_version;
 
 /* Architecture flags that effect instruction selection.  */
 #define AARCH64_FL_FOR_ARCH8       (AARCH64_FL_FPSIMD)
+#define AARCH64_FL_FOR_ARCH8_1                        \
+  (AARCH64_FL_FOR_ARCH8 | AARCH64_FL_LSE | AARCH64_FL_PAN \
+   | AARCH64_FL_LOR | AARCH64_FL_RDMA)
 
 /* Macros to test ISA flags.  */
 extern unsigned long aarch64_isa_flags;
index 431ca57ff5f4a10d3c6419769916d0594d304763..d8e982c3aa338819df3785696c493a66c1f5b674 100644 (file)
@@ -12427,7 +12427,7 @@ corresponding flag to the linker.
 Specify the name of the target architecture, optionally suffixed by one or
 more feature modifiers.  This option has the form
 @option{-march=@var{arch}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}, where the
-only permissible value for @var{arch} is @samp{armv8-a}.
+permissible values for @var{arch} are @samp{armv8-a} or @samp{armv8.1-a}.
 The permissible values for @var{feature} are documented in the sub-section
 below.  Additionally on native AArch64 GNU/Linux systems the value
 @samp{native} is available.  This option causes the compiler to pick the
@@ -12512,6 +12512,14 @@ Enable floating-point instructions.
 Enable Advanced SIMD instructions.  This implies floating-point instructions
 are enabled.  This is the default for all current possible values for options
 @option{-march} and @option{-mcpu=}.
+@item lse
+Enable Large System Extension instructions.
+@item pan
+Enable Privileged Access Never support.
+@item lor
+Enable Limited Ordering Regions support.
+@item rdma
+Enable ARMv8.1 Advanced SIMD instructions.
 @end table
 
 @node Adapteva Epiphany Options