From c8a6db6fa0b06b978e5b63593a6b0cb3300ad259 Mon Sep 17 00:00:00 2001 From: Matthew Wahab Date: Thu, 10 Dec 2015 14:05:01 +0000 Subject: [AArch64][PATCH 1/2] Add support for RAS instruction ESB. The ARMv8.2 RAS extension adds a new barrier instruction ESB as an alias and the preferred form of HINT 16. This patch adds an architectural feature flag for the RAS extension and includes it in the features selected enabled by -march=armv8.2-a. It also adds the ESB instruction, making it available whenever the RAS feature is enabled. Because ESB is the preferred form and because the target architecture isn't available to the disassembler, HINT 16 will be disassembled as ESB even when the target has no support for the RAS extension. gas/testsuite/ 2015-12-10 Matthew Wahab * gas/aarch64/system-2.d: New. * gas/aarch64/system-2.s: New. * gas/aarch64/system.d: Adjust expected output for HINT 16. include/opcode/ 2015-12-10 Matthew Wahab * aarch64.h (AARCH64_FEATURE_RAS): New. (AARCH64_ARCH_V8_2): Add AARCH64_FEATURE_RAS. opcodes/ 2015-12-10 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-tbl.h (aarch64_feature_ras): New. (RAS): New. (aarch64_opcode_table): Add "esb". Change-Id: Id4713917da15cca3b977284f43febd1c9b3d9faf --- include/opcode/ChangeLog | 5 +++++ include/opcode/aarch64.h | 2 ++ 2 files changed, 7 insertions(+) (limited to 'include') diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 9dc6c1b..d99ddde 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,5 +1,10 @@ 2015-12-10 Matthew Wahab + * aarch64.h (AARCH64_FEATURE_RAS): New. + (AARCH64_ARCH_V8_2): Add AARCH64_FEATURE_RAS. + +2015-12-10 Matthew Wahab + * aarch64.h (AARCH64_FEATURE_F16): Fix clash with AARCH64_FEATURE_V8_1. (AARCH64_ARCH_V8_1): Add AARCH64_FEATURE_CRC. diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index 6654be3..51e9faa 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -49,6 +49,7 @@ typedef uint32_t aarch64_insn; #define AARCH64_FEATURE_RDMA 0x00800000 /* v8.1 SIMD instructions. */ #define AARCH64_FEATURE_V8_1 0x01000000 /* v8.1 features. */ #define AARCH64_FEATURE_F16 0x02000000 /* v8.2 FP16 instructions. */ +#define AARCH64_FEATURE_RAS 0x04000000 /* RAS Extensions. */ /* Architectures are the sum of the base and extensions. */ #define AARCH64_ARCH_V8 AARCH64_FEATURE (AARCH64_FEATURE_V8, \ @@ -66,6 +67,7 @@ typedef uint32_t aarch64_insn; #define AARCH64_ARCH_V8_2 AARCH64_FEATURE (AARCH64_FEATURE_V8, \ AARCH64_FEATURE_V8_2 \ | AARCH64_FEATURE_F16 \ + | AARCH64_FEATURE_RAS \ | AARCH64_FEATURE_FP \ | AARCH64_FEATURE_SIMD \ | AARCH64_FEATURE_CRC \ -- cgit v1.1