diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 5f2dd83..73a3de2 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -7361,6 +7361,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 83bbee5..282f107 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/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. */