aboutsummaryrefslogtreecommitdiff
path: root/opcodes/aarch64-opc-2.c
diff options
context:
space:
mode:
authorMatthew Wahab <matthew.wahab@arm.com>2015-11-27 15:25:08 +0000
committerMatthew Wahab <matthew.wahab@arm.com>2015-11-27 15:28:42 +0000
commitd685192a58d4c198633bd0e69cfe0a114576e98a (patch)
tree8b57e30467eb5a4d74ddf557c3822dd8f1016070 /opcodes/aarch64-opc-2.c
parente19616610d7327664f99215a69cb326682742dc3 (diff)
downloadgdb-d685192a58d4c198633bd0e69cfe0a114576e98a.zip
gdb-d685192a58d4c198633bd0e69cfe0a114576e98a.tar.gz
gdb-d685192a58d4c198633bd0e69cfe0a114576e98a.tar.bz2
[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 <Rd>, #<imm>, #<width> 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 <Rd>, <Rs>, #<imm>, #<width> when the <Rs> is a zero register). gas/testsuite/ 2015-11-27 Matthew Wahab <matthew.wahab@arm.com> * gas/aarch64/alias-2.d: New. * gas/aarch64/alias-2.s: New. include/opcode/ 2015-11-27 Matthew Wahab <matthew.wahab@arm.com> * aarch64.h (aarch64_op): Add OP_BFC. opcodes/ 2015-11-27 Matthew Wahab <matthew.wahab@arm.com> * 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
Diffstat (limited to 'opcodes/aarch64-opc-2.c')
-rw-r--r--opcodes/aarch64-opc-2.c55
1 files changed, 28 insertions, 27 deletions
diff --git a/opcodes/aarch64-opc-2.c b/opcodes/aarch64-opc-2.c
index 20b8ae8..485a3f5 100644
--- a/opcodes/aarch64-opc-2.c
+++ b/opcodes/aarch64-opc-2.c
@@ -121,69 +121,70 @@ const struct aarch64_operand aarch64_operands[] =
static const unsigned op_enum_table [] =
{
0,
- 668,
669,
670,
- 673,
+ 671,
674,
675,
676,
677,
- 671,
- 672,
678,
+ 672,
+ 673,
679,
- 701,
+ 680,
702,
703,
- 706,
+ 704,
707,
708,
709,
710,
- 704,
- 705,
711,
+ 705,
+ 706,
712,
- 755,
+ 713,
756,
757,
758,
+ 759,
12,
- 518,
519,
- 950,
- 952,
- 954,
- 762,
- 953,
+ 520,
951,
+ 953,
+ 955,
+ 763,
+ 954,
+ 952,
261,
507,
+ 518,
517,
- 516,
- 760,
- 513,
- 510,
+ 761,
+ 514,
+ 511,
503,
502,
509,
- 512,
- 514,
+ 510,
+ 513,
515,
- 770,
- 534,
- 537,
- 540,
+ 516,
+ 771,
535,
538,
- 634,
+ 541,
+ 536,
+ 539,
+ 635,
162,
163,
164,
165,
426,
- 603,
+ 604,
318,
320,
340,