[AArch64] Add commandline support for -march=armv8.3-a
authorJiong Wang <jiong.wang@arm.com>
Thu, 19 Jan 2017 23:51:49 +0000 (23:51 +0000)
committerJiong Wang <jiwang@gcc.gnu.org>
Thu, 19 Jan 2017 23:51:49 +0000 (23:51 +0000)
gcc/
* config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
* config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
* doc/invoke.texi (AArch64 Options): Document "armv8.3-a".

From-SVN: r244663

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

index a50adfec17d23206669d42a386fa7ff1b07350ed..a1940791d9c65221cbbc475d57c451ca60c95a16 100644 (file)
@@ -1,3 +1,10 @@
+2017-01-19  Jiong Wang  <jiong.wang@arm.com>
+
+       * config/aarch64/aarch64-arches.def: New entry for "armv8.3-a".
+       * config/aarch64/aarch64.h (AARCH64_FL_V8_3, AARCH64_FL_FOR_ARCH8_3,
+       AARCH64_ISA_V8_3, TARGET_ARMV8_3): New.
+       * doc/invoke.texi (AArch64 Options): Document "armv8.3-a".
+
 2017-01-19  Michael Meissner  <meissner@linux.vnet.ibm.com>
 
        * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable
index 329d1b72b3368ce3059a2bc9efba9cd4927f2f3c..a92de658490b7ad240f79fc0d25b6b9dbf5ba760 100644 (file)
@@ -33,5 +33,6 @@
 AARCH64_ARCH("armv8-a",              generic,       8A,        8,  AARCH64_FL_FOR_ARCH8)
 AARCH64_ARCH("armv8.1-a",     generic,      8_1A,      8,  AARCH64_FL_FOR_ARCH8_1)
 AARCH64_ARCH("armv8.2-a",     generic,      8_2A,      8,  AARCH64_FL_FOR_ARCH8_2)
+AARCH64_ARCH("armv8.3-a",     generic,      8_3A,      8,  AARCH64_FL_FOR_ARCH8_3)
 
 #undef AARCH64_ARCH
index f6c18e84223be49e3efd516e2a1eed222bf8d7de..e4fb96fd0376a7b2993e216f83dd9ac8d4c7c6e1 100644 (file)
@@ -138,6 +138,8 @@ extern unsigned aarch64_architecture_version;
 /* ARMv8.2-A architecture extensions.  */
 #define AARCH64_FL_V8_2              (1 << 8)  /* Has ARMv8.2-A features.  */
 #define AARCH64_FL_F16       (1 << 9)  /* Has ARMv8.2-A FP16 extensions.  */
+/* ARMv8.3-A architecture extensions.  */
+#define AARCH64_FL_V8_3              (1 << 10)  /* Has ARMv8.3-A features.  */
 
 /* Has FP and SIMD.  */
 #define AARCH64_FL_FPSIMD     (AARCH64_FL_FP | AARCH64_FL_SIMD)
@@ -151,6 +153,8 @@ extern unsigned aarch64_architecture_version;
   (AARCH64_FL_FOR_ARCH8 | AARCH64_FL_LSE | AARCH64_FL_CRC | AARCH64_FL_V8_1)
 #define AARCH64_FL_FOR_ARCH8_2                 \
   (AARCH64_FL_FOR_ARCH8_1 | AARCH64_FL_V8_2)
+#define AARCH64_FL_FOR_ARCH8_3                 \
+  (AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_V8_3)
 
 /* Macros to test ISA flags.  */
 
@@ -162,6 +166,7 @@ extern unsigned aarch64_architecture_version;
 #define AARCH64_ISA_RDMA          (aarch64_isa_flags & AARCH64_FL_V8_1)
 #define AARCH64_ISA_V8_2          (aarch64_isa_flags & AARCH64_FL_V8_2)
 #define AARCH64_ISA_F16                   (aarch64_isa_flags & AARCH64_FL_F16)
+#define AARCH64_ISA_V8_3          (aarch64_isa_flags & AARCH64_FL_V8_3)
 
 /* Crypto is an optional extension to AdvSIMD.  */
 #define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO)
@@ -176,6 +181,9 @@ extern unsigned aarch64_architecture_version;
 #define TARGET_FP_F16INST (TARGET_FLOAT && AARCH64_ISA_F16)
 #define TARGET_SIMD_F16INST (TARGET_SIMD && AARCH64_ISA_F16)
 
+/* ARMv8.3-A features.  */
+#define TARGET_ARMV8_3 (AARCH64_ISA_V8_3)
+
 /* Make sure this is always defined so we don't have to check for ifdefs
    but rather use normal ifs.  */
 #ifndef TARGET_FIX_ERR_A53_835769_DEFAULT
index a13a450b1ee25c7f1e1ec1ca286fb90d7c184107..fab7b7348ecb3266f573b1ff64da227768744033 100644 (file)
@@ -14010,7 +14010,10 @@ more feature modifiers.  This option has the form
 @option{-march=@var{arch}@r{@{}+@r{[}no@r{]}@var{feature}@r{@}*}}.
 
 The permissible values for @var{arch} are @samp{armv8-a},
-@samp{armv8.1-a}, @samp{armv8.2-a} or @var{native}.
+@samp{armv8.1-a}, @samp{armv8.2-a}, @samp{armv8.3-a} or @var{native}.
+
+The value @samp{armv8.3-a} implies @samp{armv8.2-a} and enables compiler
+support for the ARMv8.3-A architecture extensions.
 
 The value @samp{armv8.2-a} implies @samp{armv8.1-a} and enables compiler
 support for the ARMv8.2-A architecture extensions.