[gcc(refs/vendors/AWS/heads/Arm64/gcc-7-branch)] add armv8.4-a architecture

Sebastian Pop spop@gcc.gnu.org
Tue Oct 27 15:04:36 GMT 2020


https://gcc.gnu.org/g:685f02d71543d7eda773ac7297635dc7ffd7ffa5

commit 685f02d71543d7eda773ac7297635dc7ffd7ffa5
Author: Michael Collison <michael.collison@arm.com>
Date:   Thu Jan 11 06:04:17 2018 +0000

    add armv8.4-a architecture
    
    2018-01-10  Michael Collison  <michael.collison@arm.com>
    
            * config/aarch64/aarch64-arches.def (armv8.4-a): New architecture.
            * config/aarch64/aarch64.h (AARCH64_ISA_V8_4): New ISA flag.
            (AARCH64_FL_FOR_ARCH8_4): New.
            (AARCH64_FL_V8_4): New flag.
            (doc/invoke.texi): Document new armv8.4-a option.
    
    (cherry picked from commit 27086ea39f16addb987edb4719afb7cd9b01800c)

Diff:
---
 gcc/config/aarch64/aarch64-arches.def | 1 +
 gcc/config/aarch64/aarch64.h          | 5 +++++
 gcc/doc/invoke.texi                   | 6 +++++-
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/gcc/config/aarch64/aarch64-arches.def b/gcc/config/aarch64/aarch64-arches.def
index a92de658490..e6d7e6b32ef 100644
--- a/gcc/config/aarch64/aarch64-arches.def
+++ b/gcc/config/aarch64/aarch64-arches.def
@@ -34,5 +34,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)
+AARCH64_ARCH("armv8.4-a",     generic,	     8_4A,	8,  AARCH64_FL_FOR_ARCH8_4)
 
 #undef AARCH64_ARCH
diff --git a/gcc/config/aarch64/aarch64.h b/gcc/config/aarch64/aarch64.h
index 70a24646832..c64f28c7091 100644
--- a/gcc/config/aarch64/aarch64.h
+++ b/gcc/config/aarch64/aarch64.h
@@ -145,6 +145,8 @@ extern unsigned aarch64_architecture_version;
 #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.  */
+/* ARMv8.4-A architecture extensions.  */
+#define AARCH64_FL_V8_4	      (1 << 15)  /* Has ARMv8.4-A features.  */
 
 /* Has FP and SIMD.  */
 #define AARCH64_FL_FPSIMD     (AARCH64_FL_FP | AARCH64_FL_SIMD)
@@ -160,6 +162,8 @@ extern unsigned aarch64_architecture_version;
   (AARCH64_FL_FOR_ARCH8_1 | AARCH64_FL_V8_2)
 #define AARCH64_FL_FOR_ARCH8_3			\
   (AARCH64_FL_FOR_ARCH8_2 | AARCH64_FL_V8_3)
+#define AARCH64_FL_FOR_ARCH8_4			\
+  (AARCH64_FL_FOR_ARCH8_3 | AARCH64_FL_V8_4)
 
 /* Macros to test ISA flags.  */
 
@@ -172,6 +176,7 @@ extern unsigned aarch64_architecture_version;
 #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)
+#define AARCH64_ISA_V8_4	   (aarch64_isa_flags & AARCH64_FL_V8_4)
 
 /* Crypto is an optional extension to AdvSIMD.  */
 #define TARGET_CRYPTO (TARGET_SIMD && AARCH64_ISA_CRYPTO)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 060b47f37e5..e4adf4b2ea1 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -13976,7 +13976,11 @@ 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}, @samp{armv8.3-a} or @var{native}.
+@samp{armv8.1-a}, @samp{armv8.2-a}, @samp{armv8.3-a} or @samp{armv8.4-a}
+or @var{native}.
+
+The value @samp{armv8.4-a} implies @samp{armv8.3-a} and enables compiler
+support for the ARMv8.4-A architecture extensions.
 
 The value @samp{armv8.3-a} implies @samp{armv8.2-a} and enables compiler
 support for the ARMv8.3-A architecture extensions.


More information about the Gcc-cvs mailing list