From d685192a58d4c198633bd0e69cfe0a114576e98a Mon Sep 17 00:00:00 2001 From: Matthew Wahab Date: Fri, 27 Nov 2015 15:25:08 +0000 Subject: [AArch64] Add ARMv8.2 instructions BFC and REV64. ARMv8.2 adds two new instructions: BFC as an alias for BFM and REV64 as an alias for REV. This patch set adds support for these to binutils, enabled when the -march=armv8.2-a is given. It depends on the support for an instruction being its preferred form which was added in an earlier patch. This patch adds the alias BFC , #, # as the preferred form for BFM when the source is a zero register and the conditions for using the BFI form are met (in other words, BFC is the preferred form for BFI , , #, # when the is a zero register). gas/testsuite/ 2015-11-27 Matthew Wahab * gas/aarch64/alias-2.d: New. * gas/aarch64/alias-2.s: New. include/opcode/ 2015-11-27 Matthew Wahab * aarch64.h (aarch64_op): Add OP_BFC. opcodes/ 2015-11-27 Matthew Wahab * aarch64-asm-2.c: Regenerate. * aarch64-asm.c (convert_bfc_to_bfm): New. (convert_to_real): Add case for OP_BFC. * aarch64-dis-2.c: Regenerate. * aarch64-dis.c: (convert_bfm_to_bfc): New. (convert_to_alias): Add case for OP_BFC. * aarch64-opc-2.c: Regenerate. * aarch64-opc.c (operand_general_constraint_met_p): Weaken assert to allow width operand in three-operand instructions. * aarch64-tbl.h (QL_BF1): New. (aarch64_feature_v8_2): New. (ARMV8_2): New. (aarch64_opcode_table): Add "bfc". Change-Id: I6efe318b2538ba11f0caece7c6d70957441c872b --- include/opcode/ChangeLog | 4 ++++ include/opcode/aarch64.h | 1 + 2 files changed, 5 insertions(+) (limited to 'include') diff --git a/include/opcode/ChangeLog b/include/opcode/ChangeLog index 57200d6..ff6504a 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,5 +1,9 @@ 2015-11-27 Matthew Wahab + * aarch64.h (aarch64_op): Add OP_BFC. + +2015-11-27 Matthew Wahab + * aarch64.h (AARCH64_FEATURE_F16): New. (AARCH64_ARCH_V8_2): Add AARCH64_FEATURE_F16 to ARMv8.2 features. diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index cc16f6f..f1658bc 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -438,6 +438,7 @@ enum aarch64_op OP_SBFX, OP_SBFIZ, OP_BFI, + OP_BFC, /* ARMv8.2. */ OP_UBFIZ, OP_UXTB, OP_UXTH, -- cgit v1.1