From: Matthew Wahab Date: Wed, 9 Dec 2015 13:10:59 +0000 (+0000) Subject: [AArch64] Add ARMv8.2 command line option and feature flag. X-Git-Tag: users/ARM/embedded-binutils-2_26-branch-2016q1~92 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ea8ed16aec5fc131dcbf19370b6019632f786aad;p=thirdparty%2Fbinutils-gdb.git [AArch64] Add ARMv8.2 command line option and feature flag. ARMv8.2 is an architectural extension of ARMv8. This patch adds an architecture feature macro for ARMv8.2 to the binutils AArch64 target with GAS command line option -march=armv8.2-a. gas/ 2015-12-09 Matthew Wahab * config/tc-aarch64.c (aarch64_archs): Add "armv8.2-a". * doc/c-aarch64.texi (-march): Likewise. include/opcode/ 2015-12-09 Matthew Wahab * aarch64.h (AARCH64_FEATURE_V8_2): New. (AARCH64_ARCH_V8_2): New. Change-Id: I79fb1b61cdd24acb1d55e29dfa84cfb86615603a --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 88c20d9bd34..07104826e1b 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2015-12-09 Matthew Wahab + + * config/tc-aarch64.c (aarch64_archs): Add "armv8.2-a". + * doc/c-aarch64.texi (-march): Likewise. + 2015-11-20 Nick Clifton * po/fr.po: Updated French translation. diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index e854b966f0b..0fd644392fd 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -7717,6 +7717,7 @@ static const struct aarch64_arch_option_table aarch64_archs[] = { {"all", AARCH64_ANY}, {"armv8-a", AARCH64_ARCH_V8}, {"armv8.1-a", AARCH64_ARCH_V8_1}, + {"armv8.2-a", AARCH64_ARCH_V8_2}, {NULL, AARCH64_ARCH_NONE} }; diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi index e7e6ba449bd..bfd41c31ef6 100644 --- a/gas/doc/c-aarch64.texi +++ b/gas/doc/c-aarch64.texi @@ -83,8 +83,8 @@ extensions. This option specifies the target architecture. The assembler will issue an error message if an attempt is made to assemble an instruction which will not execute on the target architecture. The -following architecture names are recognized: @code{armv8-a} and -@code{armv8.1-a}. +following architecture names are recognized: @code{armv8-a}, +@code{armv8.1-a} and @code{armv8.2-a}. If both @option{-mcpu} and @option{-march} are specified, the assembler will use the setting for @option{-mcpu}. If neither are diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 38a8e76c6cb..6201661c66b 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,8 @@ +2015-12-09 Matthew Wahab + + * aarch64.h (AARCH64_FEATURE_V8_2): New. + (AARCH64_ARCH_V8_2): New. + 2015-12-08 Matthew Wahab * aarch64.h (AARCH64_FEATURE_V8_1): New. diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index e30bb615520..9addf40d8c4 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -38,6 +38,7 @@ typedef uint32_t aarch64_insn; /* The following bitmasks control CPU features. */ #define AARCH64_FEATURE_V8 0x00000001 /* All processors. */ +#define AARCH64_FEATURE_V8_2 0x00000020 /* ARMv8.2 processors. */ #define AARCH64_FEATURE_CRYPTO 0x00010000 /* Crypto instructions. */ #define AARCH64_FEATURE_FP 0x00020000 /* FP instructions. */ #define AARCH64_FEATURE_SIMD 0x00040000 /* SIMD instructions. */ @@ -60,7 +61,14 @@ typedef uint32_t aarch64_insn; | AARCH64_FEATURE_PAN \ | AARCH64_FEATURE_LOR \ | AARCH64_FEATURE_RDMA) - +#define AARCH64_ARCH_V8_2 AARCH64_FEATURE (AARCH64_FEATURE_V8, \ + AARCH64_FEATURE_V8_2 \ + | AARCH64_FEATURE_FP \ + | AARCH64_FEATURE_SIMD \ + | AARCH64_FEATURE_LSE \ + | AARCH64_FEATURE_PAN \ + | AARCH64_FEATURE_LOR \ + | AARCH64_FEATURE_RDMA) #define AARCH64_ARCH_NONE AARCH64_FEATURE (0, 0) #define AARCH64_ANY AARCH64_FEATURE (-1, 0) /* Any basic core. */