From 1e6f4800fc01c7957d0688158385aba3bf5ce8de Mon Sep 17 00:00:00 2001 From: Matthew Wahab Date: Fri, 11 Dec 2015 10:22:40 +0000 Subject: [AArch64][Patch 5/5] Add instruction PSB CSYNC The Statistical Profile Extension adds the instruction PSB CSYNC as an alias for the HINT #17 instruction. This patch adds the instruction to binutils as a HINT alias that takes an operand. A new operand type, AARCH64_OPND_BARRIER_PSB, is added to represent the operand to PSB. A parser for the operand type is added to the assembler and a printer to the disassembler. The operand name "csync" is added to the list of HINT options with HINT number #17. Encoding and decoding of the operand is handled by the ins_hint/ext_hint functions added in the preceding patches. gas/ 2015-12-11 Matthew Wahab * config/tc-aarch64.c (aarch64_hint_opt_hsh): New. (parse_barrier_psb): New. (parse_operands): Add case for AARCH64_OPND_BARRIER_PSB. (md_begin): Set up aarch64_hint_opt_hsh. gas/testsuite/ 2015-12-11 Matthew Wahab * gas/aarch64/system-2.d: Enable the statistical profiling extension. Update the expected output. * gas/aarch64/system-2.s: Add tests for PSB CSYNC. * gas/aarch64/system.d: Update the expected output. include/opcode/ 2015-12-11 Matthew Wahab * aarch64.h (aarch64_opnd): Add AARCH64_OPND_BARRIER_PSB. * aarch64-asm-2.c: Regenerate. * aarch64-dis-2.c: Regenerate. * aarch64-opc-2.c: Regenerate. * aarch64-opc.c (aarch64_hint_options): Add "csync". (aarch64_print_operands): Handle AARCH64_OPND_BARRIER_PSB. * aarch64-tbl.h (aarch64_feature_stat_profile): New. (STAT_PROFILE): New. (aarch64_opcode_table): Add "psb". (AARCH64_OPERANDS): Add "BARRIER_PSB". Change-Id: I5ffb672d26a8b15b48785478d359350a9b70ca09 --- include/opcode/ChangeLog | 13 +++++++++++++ include/opcode/aarch64.h | 1 + 2 files changed, 14 insertions(+) (limited to 'include/opcode') diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 603bdb9..f307a2a 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,5 +1,18 @@ 2015-12-11 Matthew Wahab + * aarch64.h (aarch64_opnd): Add AARCH64_OPND_BARRIER_PSB. + * aarch64-asm-2.c: Regenerate. + * aarch64-dis-2.c: Regenerate. + * aarch64-opc-2.c: Regenerate. + * aarch64-opc.c (aarch64_hint_options): Add "csync". + (aarch64_print_operands): Handle AARCH64_OPND_BARRIER_PSB. + * aarch64-tbl.h (aarch64_feature_stat_profile): New. + (STAT_PROFILE): New. + (aarch64_opcode_table): Add "psb". + (AARCH64_OPERANDS): Add "BARRIER_PSB". + +2015-12-11 Matthew Wahab + * aarch64.h (aarch64_hint_options): Declare. (aarch64_opnd_info): Add field hint_option. diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index 70486c9..b8a2c01 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -237,6 +237,7 @@ enum aarch64_opnd AARCH64_OPND_BARRIER, /* Barrier operand. */ AARCH64_OPND_BARRIER_ISB, /* Barrier operand for ISB. */ AARCH64_OPND_PRFOP, /* Prefetch operation. */ + AARCH64_OPND_BARRIER_PSB, /* Barrier operand for PSB. */ }; /* Qualifier constrains an operand. It either specifies a variant of an -- cgit v1.1