diff options
author | Matthew Wahab <matthew.wahab@arm.com> | 2015-11-27 15:25:08 +0000 |
---|---|---|
committer | Matthew Wahab <matthew.wahab@arm.com> | 2015-11-27 15:28:42 +0000 |
commit | d685192a58d4c198633bd0e69cfe0a114576e98a (patch) | |
tree | 8b57e30467eb5a4d74ddf557c3822dd8f1016070 /opcodes/aarch64-opc-2.c | |
parent | e19616610d7327664f99215a69cb326682742dc3 (diff) | |
download | gdb-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.c | 55 |
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, |