From 88f0ea342dc6eb3d93a29895febdebe3e425a048 Mon Sep 17 00:00:00 2001 From: Matthew Wahab Date: Thu, 4 Jun 2015 11:14:07 +0100 Subject: [PATCH] [AArch64] Add support for ARMv8.1 command line option --- gas/ChangeLog | 6 ++++++ gas/NEWS | 4 ++++ gas/config/tc-aarch64.c | 1 + gas/doc/c-aarch64.texi | 3 ++- include/opcode/ChangeLog | 4 ++++ include/opcode/aarch64.h | 9 +++++++++ 6 files changed, 26 insertions(+), 1 deletion(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 96c1b32..7424cf8 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2015-06-04 Matthew Wahab + + * NEWS: Mention ARMv8.1 support in the Aarch64 port. + * config/tc-aarch64.c (aarch64_arch_option_table): Add "armv8.1-a". + * doc/c-aarch64.texi (-march): Add "armv8.1-a". + 2015-06-04 Renlin Li * config/tc-arm.c (arm_init_frag): Use frag's thumb_mode information diff --git a/gas/NEWS b/gas/NEWS index 02a434c..986325d 100644 --- a/gas/NEWS +++ b/gas/NEWS @@ -2,6 +2,10 @@ Changes in 2.26: +* Support for the ARMv8.1 architecture has been added to the Aarch64 port. + Support for the individual ARMv8.1 Adv.SIMD, LOR and PAN architecture + extensions has also been added to the Aarch64 port. + * Support for the ARMv8.1 architecture has been added to the ARM port. Support for the individual ARMv8.1 Adv.SIMD and PAN architecture extensions has also been added to the ARM port. diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 26df2f2..e95d5f6 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -7383,6 +7383,7 @@ struct aarch64_arch_option_table static const struct aarch64_arch_option_table aarch64_archs[] = { {"all", AARCH64_ANY}, {"armv8-a", AARCH64_ARCH_V8}, + {"armv8.1-a", AARCH64_ARCH_V8_1}, {NULL, AARCH64_ARCH_NONE} }; diff --git a/gas/doc/c-aarch64.texi b/gas/doc/c-aarch64.texi index 43c1a36..0fe3a84 100644 --- a/gas/doc/c-aarch64.texi +++ b/gas/doc/c-aarch64.texi @@ -81,7 +81,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 -only value for @var{architecture} is @code{armv8-a}. +following architecture names are recognized: @code{armv8-a} and +@code{armv8.1-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 8a57fac..0caabd5 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,7 @@ +2015-06-04 Matthew Wahab + + * aarch64.h (AARCH64_V8_1): New. + 2015-06-03 Matthew Wahab * arm.h (FPU_ARCH_CRYPTO_NEON_VFP_ARMV8_1): New. diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index c47f9dd..dcf0fef 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -47,6 +47,15 @@ typedef uint32_t aarch64_insn; #define AARCH64_ARCH_V8 AARCH64_FEATURE (AARCH64_FEATURE_V8, \ AARCH64_FEATURE_FP \ | AARCH64_FEATURE_SIMD) +#define AARCH64_ARCH_V8_1 AARCH64_FEATURE (AARCH64_FEATURE_V8, \ + 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. */ -- 2.7.4