From d766c52b7be15b3149b22cb6a32e6dec88f82b59 Mon Sep 17 00:00:00 2001 From: Jiong Wang Date: Thu, 19 Jan 2017 23:51:49 +0000 Subject: [PATCH] [AArch64] Add commandline support for -march=armv8.3-a 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 | 7 +++++++ gcc/config/aarch64/aarch64-arches.def | 1 + gcc/config/aarch64/aarch64.h | 8 ++++++++ gcc/doc/invoke.texi | 5 ++++- 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a50adfec17d..a1940791d9c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2017-01-19 Jiong Wang + + * 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 * config/rs6000/rs6000-cpus.def (ISA_3_0_MASKS_SERVER): Enable diff --git a/gcc/config/aarch64/aarch64-arches.def b/gcc/config/aarch64/aarch64-arches.def index 329d1b72b33..a92de658490 100644 --- a/gcc/config/aarch64/aarch64-arches.def +++ b/gcc/config/aarch64/aarch64-arches.def @@ -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 diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h index f6c18e84223..e4fb96fd037 100644 --- a/gcc/config/aarch64/aarch64.h +++ b/gcc/config/aarch64/aarch64.h @@ -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 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index a13a450b1ee..fab7b7348ec 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -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. -- 2.30.2