This is the mail archive of the
binutils-cvs@sourceware.org
mailing list for the binutils project.
[binutils-gdb] [AArch64] Add ARMv8.2 instructions BFC and REV64.
- From: Matthew Wahab <mwahab at sourceware dot org>
- To: bfd-cvs at sourceware dot org
- Date: 27 Nov 2015 15:29:08 -0000
- Subject: [binutils-gdb] [AArch64] Add ARMv8.2 instructions BFC and REV64.
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=d685192a58d4c198633bd0e69cfe0a114576e98a
commit d685192a58d4c198633bd0e69cfe0a114576e98a
Author: Matthew Wahab <matthew.wahab@arm.com>
Date: Fri Nov 27 15:25:08 2015 +0000
[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
Diff:
---
gas/testsuite/ChangeLog | 5 +
gas/testsuite/gas/aarch64/alias-2.d | 98 ++++
gas/testsuite/gas/aarch64/alias-2.s | 31 +
include/opcode/ChangeLog | 4 +
include/opcode/aarch64.h | 1 +
opcodes/ChangeLog | 16 +
opcodes/aarch64-asm-2.c | 571 +++++++++---------
opcodes/aarch64-asm.c | 34 ++
opcodes/aarch64-dis-2.c | 1097 ++++++++++++++++++-----------------
opcodes/aarch64-dis.c | 41 ++
opcodes/aarch64-opc-2.c | 55 +-
opcodes/aarch64-opc.c | 2 +-
opcodes/aarch64-tbl.h | 12 +
13 files changed, 1106 insertions(+), 861 deletions(-)
diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog
index faf5282..29e501a 100644
--- a/gas/testsuite/ChangeLog
+++ b/gas/testsuite/ChangeLog
@@ -1,5 +1,10 @@
2015-11-27 Matthew Wahab <matthew.wahab@arm.com>
+ * gas/aarch64/alias-2.d: New.
+ * gas/aarch64/alias-2.s: New.
+
+2015-11-27 Matthew Wahab <matthew.wahab@arm.com>
+
* gas/aarch64/sysreg-2.d: New.
* gas/aarch64/sysreg-2.s: New.
diff --git a/gas/testsuite/gas/aarch64/alias-2.d b/gas/testsuite/gas/aarch64/alias-2.d
new file mode 100644
index 0000000..92ed58f
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/alias-2.d
@@ -0,0 +1,98 @@
+#objdump: -dr
+#as: -march=armv8.2-a
+
+.*: file format .*
+
+Disassembly of section \.text:
+
+0000000000000000 <.*>:
+ [0-9a-f]+: b34107e0 bfxil x0, xzr, #1, #1
+ [0-9a-f]+: b3410420 bfxil x0, x1, #1, #1
+ [0-9a-f]+: b341043f bfxil xzr, x1, #1, #1
+ [0-9a-f]+: b34107ff bfxil xzr, xzr, #1, #1
+ [0-9a-f]+: b34123e0 bfxil x0, xzr, #1, #8
+ [0-9a-f]+: b3412020 bfxil x0, x1, #1, #8
+ [0-9a-f]+: b341203f bfxil xzr, x1, #1, #8
+ [0-9a-f]+: b34123ff bfxil xzr, xzr, #1, #8
+ [0-9a-f]+: b3413fe0 bfxil x0, xzr, #1, #15
+ [0-9a-f]+: b3413c20 bfxil x0, x1, #1, #15
+ [0-9a-f]+: b3413c3f bfxil xzr, x1, #1, #15
+ [0-9a-f]+: b3413fff bfxil xzr, xzr, #1, #15
+ [0-9a-f]+: b35007e0 bfc x0, #48, #2
+ [0-9a-f]+: b3500420 bfi x0, x1, #48, #2
+ [0-9a-f]+: b350043f bfi xzr, x1, #48, #2
+ [0-9a-f]+: b35007ff bfc xzr, #48, #2
+ [0-9a-f]+: b35023e0 bfc x0, #48, #9
+ [0-9a-f]+: b3502020 bfi x0, x1, #48, #9
+ [0-9a-f]+: b350203f bfi xzr, x1, #48, #9
+ [0-9a-f]+: b35023ff bfc xzr, #48, #9
+ [0-9a-f]+: b3503fe0 bfc x0, #48, #16
+ [0-9a-f]+: b3503c20 bfi x0, x1, #48, #16
+ [0-9a-f]+: b3503c3f bfi xzr, x1, #48, #16
+ [0-9a-f]+: b3503fff bfc xzr, #48, #16
+ [0-9a-f]+: b35f07e0 bfc x0, #33, #2
+ [0-9a-f]+: b35f0420 bfi x0, x1, #33, #2
+ [0-9a-f]+: b35f043f bfi xzr, x1, #33, #2
+ [0-9a-f]+: b35f07ff bfc xzr, #33, #2
+ [0-9a-f]+: b35f23e0 bfc x0, #33, #9
+ [0-9a-f]+: b35f2020 bfi x0, x1, #33, #9
+ [0-9a-f]+: b35f203f bfi xzr, x1, #33, #9
+ [0-9a-f]+: b35f23ff bfc xzr, #33, #9
+ [0-9a-f]+: b35f3fe0 bfc x0, #33, #16
+ [0-9a-f]+: b35f3c20 bfi x0, x1, #33, #16
+ [0-9a-f]+: b35f3c3f bfi xzr, x1, #33, #16
+ [0-9a-f]+: b35f3fff bfc xzr, #33, #16
+ [0-9a-f]+: b37f03e0 bfc x0, #1, #1
+ [0-9a-f]+: b37f0020 bfi x0, x1, #1, #1
+ [0-9a-f]+: b37f003f bfi xzr, x1, #1, #1
+ [0-9a-f]+: b37f03ff bfc xzr, #1, #1
+ [0-9a-f]+: b37f1fe0 bfc x0, #1, #8
+ [0-9a-f]+: b37f1c20 bfi x0, x1, #1, #8
+ [0-9a-f]+: b37f1c3f bfi xzr, x1, #1, #8
+ [0-9a-f]+: b37f1fff bfc xzr, #1, #8
+ [0-9a-f]+: b37f3be0 bfc x0, #1, #15
+ [0-9a-f]+: b37f3820 bfi x0, x1, #1, #15
+ [0-9a-f]+: b37f383f bfi xzr, x1, #1, #15
+ [0-9a-f]+: b37f3bff bfc xzr, #1, #15
+ [0-9a-f]+: b37003e0 bfc x0, #16, #1
+ [0-9a-f]+: b3700020 bfi x0, x1, #16, #1
+ [0-9a-f]+: b370003f bfi xzr, x1, #16, #1
+ [0-9a-f]+: b37003ff bfc xzr, #16, #1
+ [0-9a-f]+: b3701fe0 bfc x0, #16, #8
+ [0-9a-f]+: b3701c20 bfi x0, x1, #16, #8
+ [0-9a-f]+: b3701c3f bfi xzr, x1, #16, #8
+ [0-9a-f]+: b3701fff bfc xzr, #16, #8
+ [0-9a-f]+: b3703be0 bfc x0, #16, #15
+ [0-9a-f]+: b3703820 bfi x0, x1, #16, #15
+ [0-9a-f]+: b370383f bfi xzr, x1, #16, #15
+ [0-9a-f]+: b3703bff bfc xzr, #16, #15
+ [0-9a-f]+: b36103e0 bfc x0, #31, #1
+ [0-9a-f]+: b3610020 bfi x0, x1, #31, #1
+ [0-9a-f]+: b361003f bfi xzr, x1, #31, #1
+ [0-9a-f]+: b36103ff bfc xzr, #31, #1
+ [0-9a-f]+: b3611fe0 bfc x0, #31, #8
+ [0-9a-f]+: b3611c20 bfi x0, x1, #31, #8
+ [0-9a-f]+: b3611c3f bfi xzr, x1, #31, #8
+ [0-9a-f]+: b3611fff bfc xzr, #31, #8
+ [0-9a-f]+: b3613be0 bfc x0, #31, #15
+ [0-9a-f]+: b3613820 bfi x0, x1, #31, #15
+ [0-9a-f]+: b361383f bfi xzr, x1, #31, #15
+ [0-9a-f]+: b3613bff bfc xzr, #31, #15
+ [0-9a-f]+: b34003e0 bfxil x0, xzr, #0, #1
+ [0-9a-f]+: b36103ff bfc xzr, #31, #1
+ [0-9a-f]+: b3401fe0 bfxil x0, xzr, #0, #8
+ [0-9a-f]+: b3611fff bfc xzr, #31, #8
+ [0-9a-f]+: b3403be0 bfxil x0, xzr, #0, #15
+ [0-9a-f]+: b3613bff bfc xzr, #31, #15
+ [0-9a-f]+: b34003e0 bfxil x0, xzr, #0, #1
+ [0-9a-f]+: b36103ff bfc xzr, #31, #1
+ [0-9a-f]+: b3401fe0 bfxil x0, xzr, #0, #8
+ [0-9a-f]+: b3611fff bfc xzr, #31, #8
+ [0-9a-f]+: b3403be0 bfxil x0, xzr, #0, #15
+ [0-9a-f]+: b3613bff bfc xzr, #31, #15
+ [0-9a-f]+: b34003e0 bfxil x0, xzr, #0, #1
+ [0-9a-f]+: b36103ff bfc xzr, #31, #1
+ [0-9a-f]+: b3401fe0 bfxil x0, xzr, #0, #8
+ [0-9a-f]+: b3611fff bfc xzr, #31, #8
+ [0-9a-f]+: b3403be0 bfxil x0, xzr, #0, #15
+ [0-9a-f]+: b3613bff bfc xzr, #31, #15
diff --git a/gas/testsuite/gas/aarch64/alias-2.s b/gas/testsuite/gas/aarch64/alias-2.s
new file mode 100644
index 0000000..d952c97
--- /dev/null
+++ b/gas/testsuite/gas/aarch64/alias-2.s
@@ -0,0 +1,31 @@
+/* alias-2.s Test file for ARMv8.2 AArch64 instructions aliases or disassembly
+ preference. */
+
+ /* <bfm> [Xd|xzr], [xzr|<Xr>], <imm>, <width> */
+ .macro bfm_inst op imm width
+ \op x0, xzr, #\imm, #\width
+ \op x0, x1, #\imm, #\width
+ \op xzr, x1, #\imm, #\width
+ \op xzr, xzr, #\imm, #\width
+ .endm
+
+ /* bfc [Xd|xzr], <imm>, <width> */
+ .macro bfc_inst imm width
+ bfc x0, #\imm, #\width
+ bfc xzr, #\imm, #\width
+ .endm
+
+.text
+ .irp op, bfm, bfi
+ .irp imm, 1, 16, 31
+ .irp width, 1, 8, 15
+ bfm_inst \op, \imm, \width
+ .endr
+ .endr
+ .endr
+
+ .irp imm, 1, 16, 31
+ .irp width, 1, 8, 15
+ bfc_inst \imm, \width
+ .endr
+ .endr
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 <matthew.wahab@arm.com>
+ * aarch64.h (aarch64_op): Add OP_BFC.
+
+2015-11-27 Matthew Wahab <matthew.wahab@arm.com>
+
* 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,
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog
index 62eec66..bf34f8d 100644
--- a/opcodes/ChangeLog
+++ b/opcodes/ChangeLog
@@ -1,6 +1,22 @@
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".
+
+2015-11-27 Matthew Wahab <matthew.wahab@arm.com>
+
+ * aarch64-asm-2.c: Regenerate.
* aarch64-dis-2.c: Regenerate.
* aarch64-dis.c: Weaken assert.
* aarch64-gen.c: Include the instruction in the list of its
diff --git a/opcodes/aarch64-asm-2.c b/opcodes/aarch64-asm-2.c
index 8989fa8..83f8a8e 100644
--- a/opcodes/aarch64-asm-2.c
+++ b/opcodes/aarch64-asm-2.c
@@ -120,318 +120,319 @@ aarch64_find_real_opcode (const aarch64_opcode *opcode)
case 501: /* sbfm */
value = 501; /* --> sbfm. */
break;
- case 510: /* bfxil */
+ case 510: /* bfc */
+ case 511: /* bfxil */
case 509: /* bfi */
case 508: /* bfm */
value = 508; /* --> bfm. */
break;
- case 515: /* uxth */
- case 514: /* uxtb */
- case 517: /* lsr */
- case 516: /* lsl */
- case 513: /* ubfx */
- case 512: /* ubfiz */
- case 511: /* ubfm */
- value = 511; /* --> ubfm. */
- break;
- case 535: /* cset */
- case 534: /* cinc */
- case 533: /* csinc */
- value = 533; /* --> csinc. */
- break;
- case 538: /* csetm */
- case 537: /* cinv */
- case 536: /* csinv */
- value = 536; /* --> csinv. */
- break;
- case 540: /* cneg */
- case 539: /* csneg */
- value = 539; /* --> csneg. */
- break;
- case 565: /* lsl */
- case 564: /* lslv */
- value = 564; /* --> lslv. */
- break;
- case 567: /* lsr */
- case 566: /* lsrv */
- value = 566; /* --> lsrv. */
- break;
- case 569: /* asr */
- case 568: /* asrv */
- value = 568; /* --> asrv. */
- break;
- case 571: /* ror */
- case 570: /* rorv */
- value = 570; /* --> rorv. */
- break;
- case 581: /* mul */
- case 580: /* madd */
- value = 580; /* --> madd. */
- break;
- case 583: /* mneg */
- case 582: /* msub */
- value = 582; /* --> msub. */
- break;
- case 585: /* smull */
- case 584: /* smaddl */
- value = 584; /* --> smaddl. */
- break;
- case 587: /* smnegl */
- case 586: /* smsubl */
- value = 586; /* --> smsubl. */
- break;
- case 590: /* umull */
- case 589: /* umaddl */
- value = 589; /* --> umaddl. */
- break;
- case 592: /* umnegl */
- case 591: /* umsubl */
- value = 591; /* --> umsubl. */
- break;
- case 603: /* ror */
- case 602: /* extr */
- value = 602; /* --> extr. */
- break;
- case 760: /* bic */
- case 759: /* and */
- value = 759; /* --> and. */
- break;
- case 762: /* mov */
- case 761: /* orr */
- value = 761; /* --> orr. */
- break;
- case 765: /* tst */
- case 764: /* ands */
- value = 764; /* --> ands. */
- break;
- case 770: /* uxtw */
- case 769: /* mov */
- case 768: /* orr */
- value = 768; /* --> orr. */
- break;
- case 772: /* mvn */
- case 771: /* orn */
- value = 771; /* --> orn. */
- break;
- case 776: /* tst */
- case 775: /* ands */
- value = 775; /* --> ands. */
- break;
- case 902: /* staddb */
- case 806: /* ldaddb */
- value = 806; /* --> ldaddb. */
- break;
- case 903: /* staddh */
- case 807: /* ldaddh */
- value = 807; /* --> ldaddh. */
- break;
- case 904: /* stadd */
- case 808: /* ldadd */
- value = 808; /* --> ldadd. */
- break;
- case 905: /* staddlb */
- case 810: /* ldaddlb */
- value = 810; /* --> ldaddlb. */
+ case 516: /* uxth */
+ case 515: /* uxtb */
+ case 518: /* lsr */
+ case 517: /* lsl */
+ case 514: /* ubfx */
+ case 513: /* ubfiz */
+ case 512: /* ubfm */
+ value = 512; /* --> ubfm. */
+ break;
+ case 536: /* cset */
+ case 535: /* cinc */
+ case 534: /* csinc */
+ value = 534; /* --> csinc. */
+ break;
+ case 539: /* csetm */
+ case 538: /* cinv */
+ case 537: /* csinv */
+ value = 537; /* --> csinv. */
+ break;
+ case 541: /* cneg */
+ case 540: /* csneg */
+ value = 540; /* --> csneg. */
+ break;
+ case 566: /* lsl */
+ case 565: /* lslv */
+ value = 565; /* --> lslv. */
+ break;
+ case 568: /* lsr */
+ case 567: /* lsrv */
+ value = 567; /* --> lsrv. */
+ break;
+ case 570: /* asr */
+ case 569: /* asrv */
+ value = 569; /* --> asrv. */
+ break;
+ case 572: /* ror */
+ case 571: /* rorv */
+ value = 571; /* --> rorv. */
+ break;
+ case 582: /* mul */
+ case 581: /* madd */
+ value = 581; /* --> madd. */
+ break;
+ case 584: /* mneg */
+ case 583: /* msub */
+ value = 583; /* --> msub. */
+ break;
+ case 586: /* smull */
+ case 585: /* smaddl */
+ value = 585; /* --> smaddl. */
+ break;
+ case 588: /* smnegl */
+ case 587: /* smsubl */
+ value = 587; /* --> smsubl. */
+ break;
+ case 591: /* umull */
+ case 590: /* umaddl */
+ value = 590; /* --> umaddl. */
+ break;
+ case 593: /* umnegl */
+ case 592: /* umsubl */
+ value = 592; /* --> umsubl. */
+ break;
+ case 604: /* ror */
+ case 603: /* extr */
+ value = 603; /* --> extr. */
+ break;
+ case 761: /* bic */
+ case 760: /* and */
+ value = 760; /* --> and. */
+ break;
+ case 763: /* mov */
+ case 762: /* orr */
+ value = 762; /* --> orr. */
+ break;
+ case 766: /* tst */
+ case 765: /* ands */
+ value = 765; /* --> ands. */
+ break;
+ case 771: /* uxtw */
+ case 770: /* mov */
+ case 769: /* orr */
+ value = 769; /* --> orr. */
+ break;
+ case 773: /* mvn */
+ case 772: /* orn */
+ value = 772; /* --> orn. */
+ break;
+ case 777: /* tst */
+ case 776: /* ands */
+ value = 776; /* --> ands. */
+ break;
+ case 903: /* staddb */
+ case 807: /* ldaddb */
+ value = 807; /* --> ldaddb. */
+ break;
+ case 904: /* staddh */
+ case 808: /* ldaddh */
+ value = 808; /* --> ldaddh. */
+ break;
+ case 905: /* stadd */
+ case 809: /* ldadd */
+ value = 809; /* --> ldadd. */
+ break;
+ case 906: /* staddlb */
+ case 811: /* ldaddlb */
+ value = 811; /* --> ldaddlb. */
break;
- case 906: /* staddlh */
- case 813: /* ldaddlh */
- value = 813; /* --> ldaddlh. */
+ case 907: /* staddlh */
+ case 814: /* ldaddlh */
+ value = 814; /* --> ldaddlh. */
break;
- case 907: /* staddl */
- case 816: /* ldaddl */
- value = 816; /* --> ldaddl. */
+ case 908: /* staddl */
+ case 817: /* ldaddl */
+ value = 817; /* --> ldaddl. */
break;
- case 908: /* stclrb */
- case 818: /* ldclrb */
- value = 818; /* --> ldclrb. */
+ case 909: /* stclrb */
+ case 819: /* ldclrb */
+ value = 819; /* --> ldclrb. */
break;
- case 909: /* stclrh */
- case 819: /* ldclrh */
- value = 819; /* --> ldclrh. */
+ case 910: /* stclrh */
+ case 820: /* ldclrh */
+ value = 820; /* --> ldclrh. */
break;
- case 910: /* stclr */
- case 820: /* ldclr */
- value = 820; /* --> ldclr. */
+ case 911: /* stclr */
+ case 821: /* ldclr */
+ value = 821; /* --> ldclr. */
break;
- case 911: /* stclrlb */
- case 822: /* ldclrlb */
- value = 822; /* --> ldclrlb. */
+ case 912: /* stclrlb */
+ case 823: /* ldclrlb */
+ value = 823; /* --> ldclrlb. */
break;
- case 912: /* stclrlh */
- case 825: /* ldclrlh */
- value = 825; /* --> ldclrlh. */
+ case 913: /* stclrlh */
+ case 826: /* ldclrlh */
+ value = 826; /* --> ldclrlh. */
break;
- case 913: /* stclrl */
- case 828: /* ldclrl */
- value = 828; /* --> ldclrl. */
+ case 914: /* stclrl */
+ case 829: /* ldclrl */
+ value = 829; /* --> ldclrl. */
break;
- case 914: /* steorb */
- case 830: /* ldeorb */
- value = 830; /* --> ldeorb. */
+ case 915: /* steorb */
+ case 831: /* ldeorb */
+ value = 831; /* --> ldeorb. */
break;
- case 915: /* steorh */
- case 831: /* ldeorh */
- value = 831; /* --> ldeorh. */
+ case 916: /* steorh */
+ case 832: /* ldeorh */
+ value = 832; /* --> ldeorh. */
break;
- case 916: /* steor */
- case 832: /* ldeor */
- value = 832; /* --> ldeor. */
+ case 917: /* steor */
+ case 833: /* ldeor */
+ value = 833; /* --> ldeor. */
break;
- case 917: /* steorlb */
- case 834: /* ldeorlb */
- value = 834; /* --> ldeorlb. */
+ case 918: /* steorlb */
+ case 835: /* ldeorlb */
+ value = 835; /* --> ldeorlb. */
break;
- case 918: /* steorlh */
- case 837: /* ldeorlh */
- value = 837; /* --> ldeorlh. */
+ case 919: /* steorlh */
+ case 838: /* ldeorlh */
+ value = 838; /* --> ldeorlh. */
break;
- case 919: /* steorl */
- case 840: /* ldeorl */
- value = 840; /* --> ldeorl. */
+ case 920: /* steorl */
+ case 841: /* ldeorl */
+ value = 841; /* --> ldeorl. */
break;
- case 920: /* stsetb */
- case 842: /* ldsetb */
- value = 842; /* --> ldsetb. */
+ case 921: /* stsetb */
+ case 843: /* ldsetb */
+ value = 843; /* --> ldsetb. */
break;
- case 921: /* stseth */
- case 843: /* ldseth */
- value = 843; /* --> ldseth. */
+ case 922: /* stseth */
+ case 844: /* ldseth */
+ value = 844; /* --> ldseth. */
break;
- case 922: /* stset */
- case 844: /* ldset */
- value = 844; /* --> ldset. */
+ case 923: /* stset */
+ case 845: /* ldset */
+ value = 845; /* --> ldset. */
break;
- case 923: /* stsetlb */
- case 846: /* ldsetlb */
- value = 846; /* --> ldsetlb. */
+ case 924: /* stsetlb */
+ case 847: /* ldsetlb */
+ value = 847; /* --> ldsetlb. */
break;
- case 924: /* stsetlh */
- case 849: /* ldsetlh */
- value = 849; /* --> ldsetlh. */
+ case 925: /* stsetlh */
+ case 850: /* ldsetlh */
+ value = 850; /* --> ldsetlh. */
break;
- case 925: /* stsetl */
- case 852: /* ldsetl */
- value = 852; /* --> ldsetl. */
+ case 926: /* stsetl */
+ case 853: /* ldsetl */
+ value = 853; /* --> ldsetl. */
break;
- case 926: /* stsmaxb */
- case 854: /* ldsmaxb */
- value = 854; /* --> ldsmaxb. */
+ case 927: /* stsmaxb */
+ case 855: /* ldsmaxb */
+ value = 855; /* --> ldsmaxb. */
break;
- case 927: /* stsmaxh */
- case 855: /* ldsmaxh */
- value = 855; /* --> ldsmaxh. */
+ case 928: /* stsmaxh */
+ case 856: /* ldsmaxh */
+ value = 856; /* --> ldsmaxh. */
break;
- case 928: /* stsmax */
- case 856: /* ldsmax */
- value = 856; /* --> ldsmax. */
- break;
- case 929: /* stsmaxlb */
- case 858: /* ldsmaxlb */
- value = 858; /* --> ldsmaxlb. */
- break;
- case 930: /* stsmaxlh */
- case 861: /* ldsmaxlh */
- value = 861; /* --> ldsmaxlh. */
- break;
- case 931: /* stsmaxl */
- case 864: /* ldsmaxl */
- value = 864; /* --> ldsmaxl. */
- break;
- case 932: /* stsminb */
- case 866: /* ldsminb */
- value = 866; /* --> ldsminb. */
- break;
- case 933: /* stsminh */
- case 867: /* ldsminh */
- value = 867; /* --> ldsminh. */
- break;
- case 934: /* stsmin */
- case 868: /* ldsmin */
- value = 868; /* --> ldsmin. */
- break;
- case 935: /* stsminlb */
- case 870: /* ldsminlb */
- value = 870; /* --> ldsminlb. */
- break;
- case 936: /* stsminlh */
- case 873: /* ldsminlh */
- value = 873; /* --> ldsminlh. */
- break;
- case 937: /* stsminl */
- case 876: /* ldsminl */
- value = 876; /* --> ldsminl. */
- break;
- case 938: /* stumaxb */
- case 878: /* ldumaxb */
- value = 878; /* --> ldumaxb. */
- break;
- case 939: /* stumaxh */
- case 879: /* ldumaxh */
- value = 879; /* --> ldumaxh. */
- break;
- case 940: /* stumax */
- case 880: /* ldumax */
- value = 880; /* --> ldumax. */
- break;
- case 941: /* stumaxlb */
- case 882: /* ldumaxlb */
- value = 882; /* --> ldumaxlb. */
- break;
- case 942: /* stumaxlh */
- case 885: /* ldumaxlh */
- value = 885; /* --> ldumaxlh. */
- break;
- case 943: /* stumaxl */
- case 888: /* ldumaxl */
- value = 888; /* --> ldumaxl. */
- break;
- case 944: /* stuminb */
- case 890: /* lduminb */
- value = 890; /* --> lduminb. */
- break;
- case 945: /* stuminh */
- case 891: /* lduminh */
- value = 891; /* --> lduminh. */
- break;
- case 946: /* stumin */
- case 892: /* ldumin */
- value = 892; /* --> ldumin. */
- break;
- case 947: /* stuminlb */
- case 894: /* lduminlb */
- value = 894; /* --> lduminlb. */
- break;
- case 948: /* stuminlh */
- case 897: /* lduminlh */
- value = 897; /* --> lduminlh. */
- break;
- case 949: /* stuminl */
- case 900: /* lduminl */
- value = 900; /* --> lduminl. */
- break;
- case 951: /* mov */
- case 950: /* movn */
- value = 950; /* --> movn. */
- break;
- case 953: /* mov */
- case 952: /* movz */
- value = 952; /* --> movz. */
- break;
- case 964: /* sevl */
- case 963: /* sev */
- case 962: /* wfi */
- case 961: /* wfe */
- case 960: /* yield */
- case 959: /* nop */
- case 958: /* hint */
- value = 958; /* --> hint. */
- break;
- case 973: /* tlbi */
- case 972: /* ic */
- case 971: /* dc */
- case 970: /* at */
- case 969: /* sys */
- value = 969; /* --> sys. */
+ case 929: /* stsmax */
+ case 857: /* ldsmax */
+ value = 857; /* --> ldsmax. */
+ break;
+ case 930: /* stsmaxlb */
+ case 859: /* ldsmaxlb */
+ value = 859; /* --> ldsmaxlb. */
+ break;
+ case 931: /* stsmaxlh */
+ case 862: /* ldsmaxlh */
+ value = 862; /* --> ldsmaxlh. */
+ break;
+ case 932: /* stsmaxl */
+ case 865: /* ldsmaxl */
+ value = 865; /* --> ldsmaxl. */
+ break;
+ case 933: /* stsminb */
+ case 867: /* ldsminb */
+ value = 867; /* --> ldsminb. */
+ break;
+ case 934: /* stsminh */
+ case 868: /* ldsminh */
+ value = 868; /* --> ldsminh. */
+ break;
+ case 935: /* stsmin */
+ case 869: /* ldsmin */
+ value = 869; /* --> ldsmin. */
+ break;
+ case 936: /* stsminlb */
+ case 871: /* ldsminlb */
+ value = 871; /* --> ldsminlb. */
+ break;
+ case 937: /* stsminlh */
+ case 874: /* ldsminlh */
+ value = 874; /* --> ldsminlh. */
+ break;
+ case 938: /* stsminl */
+ case 877: /* ldsminl */
+ value = 877; /* --> ldsminl. */
+ break;
+ case 939: /* stumaxb */
+ case 879: /* ldumaxb */
+ value = 879; /* --> ldumaxb. */
+ break;
+ case 940: /* stumaxh */
+ case 880: /* ldumaxh */
+ value = 880; /* --> ldumaxh. */
+ break;
+ case 941: /* stumax */
+ case 881: /* ldumax */
+ value = 881; /* --> ldumax. */
+ break;
+ case 942: /* stumaxlb */
+ case 883: /* ldumaxlb */
+ value = 883; /* --> ldumaxlb. */
+ break;
+ case 943: /* stumaxlh */
+ case 886: /* ldumaxlh */
+ value = 886; /* --> ldumaxlh. */
+ break;
+ case 944: /* stumaxl */
+ case 889: /* ldumaxl */
+ value = 889; /* --> ldumaxl. */
+ break;
+ case 945: /* stuminb */
+ case 891: /* lduminb */
+ value = 891; /* --> lduminb. */
+ break;
+ case 946: /* stuminh */
+ case 892: /* lduminh */
+ value = 892; /* --> lduminh. */
+ break;
+ case 947: /* stumin */
+ case 893: /* ldumin */
+ value = 893; /* --> ldumin. */
+ break;
+ case 948: /* stuminlb */
+ case 895: /* lduminlb */
+ value = 895; /* --> lduminlb. */
+ break;
+ case 949: /* stuminlh */
+ case 898: /* lduminlh */
+ value = 898; /* --> lduminlh. */
+ break;
+ case 950: /* stuminl */
+ case 901: /* lduminl */
+ value = 901; /* --> lduminl. */
+ break;
+ case 952: /* mov */
+ case 951: /* movn */
+ value = 951; /* --> movn. */
+ break;
+ case 954: /* mov */
+ case 953: /* movz */
+ value = 953; /* --> movz. */
+ break;
+ case 965: /* sevl */
+ case 964: /* sev */
+ case 963: /* wfi */
+ case 962: /* wfe */
+ case 961: /* yield */
+ case 960: /* nop */
+ case 959: /* hint */
+ value = 959; /* --> hint. */
+ break;
+ case 974: /* tlbi */
+ case 973: /* ic */
+ case 972: /* dc */
+ case 971: /* at */
+ case 970: /* sys */
+ value = 970; /* --> sys. */
break;
default: return NULL;
}
diff --git a/opcodes/aarch64-asm.c b/opcodes/aarch64-asm.c
index 9689440..ef64501 100644
--- a/opcodes/aarch64-asm.c
+++ b/opcodes/aarch64-asm.c
@@ -1039,6 +1039,37 @@ convert_bfi_to_bfm (aarch64_inst *inst)
}
/* The instruction written:
+ BFC <Xd>, #<lsb>, #<width>
+ is equivalent to:
+ BFM <Xd>, XZR, #((64-<lsb>)&0x3f), #(<width>-1). */
+
+static void
+convert_bfc_to_bfm (aarch64_inst *inst)
+{
+ int64_t lsb, width;
+
+ /* Insert XZR. */
+ copy_operand_info (inst, 3, 2);
+ copy_operand_info (inst, 2, 1);
+ copy_operand_info (inst, 2, 0);
+ inst->operands[1].reg.regno = 0x1f;
+
+ /* Convert the immedate operand. */
+ lsb = inst->operands[2].imm.value;
+ width = inst->operands[3].imm.value;
+ if (inst->operands[2].qualifier == AARCH64_OPND_QLF_imm_0_31)
+ {
+ inst->operands[2].imm.value = (32 - lsb) & 0x1f;
+ inst->operands[3].imm.value = width - 1;
+ }
+ else
+ {
+ inst->operands[2].imm.value = (64 - lsb) & 0x3f;
+ inst->operands[3].imm.value = width - 1;
+ }
+}
+
+/* The instruction written:
LSL <Xd>, <Xn>, #<shift>
is equivalent to:
UBFM <Xd>, <Xn>, #((64-<shift>)&0x3f), #(63-<shift>). */
@@ -1171,6 +1202,9 @@ convert_to_real (aarch64_inst *inst, const aarch64_opcode *real)
case OP_UBFIZ:
convert_bfi_to_bfm (inst);
break;
+ case OP_BFC:
+ convert_bfc_to_bfm (inst);
+ break;
case OP_MOV_V:
convert_mov_to_orr (inst);
break;
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c
index d83bae0..f46f737 100644
--- a/opcodes/aarch64-dis-2.c
+++ b/opcodes/aarch64-dis-2.c
@@ -40,7 +40,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxxxx0000xxx0
adr. */
- return 955;
+ return 956;
}
else
{
@@ -48,7 +48,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxxxx0000xxx1
adrp. */
- return 956;
+ return 957;
}
}
else
@@ -115,7 +115,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx000x0010000
stxrb. */
- return 713;
+ return 714;
}
else
{
@@ -123,7 +123,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx000x0010010
stxrh. */
- return 719;
+ return 720;
}
}
else
@@ -132,7 +132,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx000x00100x1
stxr. */
- return 725;
+ return 726;
}
}
else
@@ -143,7 +143,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx100x00100x0
casp. */
- return 790;
+ return 791;
}
else
{
@@ -151,7 +151,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx100x00100x1
stxp. */
- return 727;
+ return 728;
}
}
}
@@ -167,7 +167,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx000x0010000
stlxrb. */
- return 714;
+ return 715;
}
else
{
@@ -175,7 +175,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx000x0010010
stlxrh. */
- return 720;
+ return 721;
}
}
else
@@ -184,7 +184,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx000x00100x1
stlxr. */
- return 726;
+ return 727;
}
}
else
@@ -195,7 +195,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx100x00100x0
caspl. */
- return 792;
+ return 793;
}
else
{
@@ -203,7 +203,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx100x00100x1
stlxp. */
- return 728;
+ return 729;
}
}
}
@@ -214,7 +214,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxx00x00101xx
stnp. */
- return 741;
+ return 742;
}
}
else
@@ -231,7 +231,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx001x00100x0
stllrb. */
- return 739;
+ return 740;
}
else
{
@@ -239,7 +239,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx001x00100x1
stllr. */
- return 738;
+ return 739;
}
}
else
@@ -252,7 +252,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx101x0010000
casb. */
- return 778;
+ return 779;
}
else
{
@@ -260,7 +260,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx101x0010010
cash. */
- return 779;
+ return 780;
}
}
else
@@ -269,7 +269,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx101x00100x1
cas. */
- return 780;
+ return 781;
}
}
}
@@ -285,7 +285,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx001x0010000
stlrb. */
- return 717;
+ return 718;
}
else
{
@@ -293,7 +293,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx001x0010010
stlrh. */
- return 723;
+ return 724;
}
}
else
@@ -302,7 +302,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx001x00100x1
stlr. */
- return 733;
+ return 734;
}
}
else
@@ -315,7 +315,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx101x0010000
caslb. */
- return 782;
+ return 783;
}
else
{
@@ -323,7 +323,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx101x0010010
caslh. */
- return 785;
+ return 786;
}
}
else
@@ -332,7 +332,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx101x00100x1
casl. */
- return 788;
+ return 789;
}
}
}
@@ -343,7 +343,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxx01x00101xx
stp. */
- return 750;
+ return 751;
}
}
}
@@ -365,7 +365,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx010x0010000
ldxrb. */
- return 715;
+ return 716;
}
else
{
@@ -373,7 +373,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx010x0010010
ldxrh. */
- return 721;
+ return 722;
}
}
else
@@ -382,7 +382,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx010x00100x1
ldxr. */
- return 729;
+ return 730;
}
}
else
@@ -393,7 +393,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx110x00100x0
caspa. */
- return 791;
+ return 792;
}
else
{
@@ -401,7 +401,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx110x00100x1
ldxp. */
- return 731;
+ return 732;
}
}
}
@@ -417,7 +417,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx010x0010000
ldaxrb. */
- return 716;
+ return 717;
}
else
{
@@ -425,7 +425,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx010x0010010
ldaxrh. */
- return 722;
+ return 723;
}
}
else
@@ -434,7 +434,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx010x00100x1
ldaxr. */
- return 730;
+ return 731;
}
}
else
@@ -445,7 +445,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx110x00100x0
caspal. */
- return 793;
+ return 794;
}
else
{
@@ -453,7 +453,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx110x00100x1
ldaxp. */
- return 732;
+ return 733;
}
}
}
@@ -466,7 +466,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxx10x001010x
ldnp. */
- return 742;
+ return 743;
}
else
{
@@ -474,7 +474,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxx10x001011x
ldpsw. */
- return 749;
+ return 750;
}
}
}
@@ -494,7 +494,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx011x0010000
ldlarb. */
- return 736;
+ return 737;
}
else
{
@@ -502,7 +502,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx011x0010010
ldlarh. */
- return 737;
+ return 738;
}
}
else
@@ -511,7 +511,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx011x00100x1
ldlar. */
- return 735;
+ return 736;
}
}
else
@@ -524,7 +524,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx111x0010000
casab. */
- return 781;
+ return 782;
}
else
{
@@ -532,7 +532,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx111x0010010
casah. */
- return 784;
+ return 785;
}
}
else
@@ -541,7 +541,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx0xxxxx111x00100x1
casa. */
- return 787;
+ return 788;
}
}
}
@@ -557,7 +557,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx011x0010000
ldarb. */
- return 718;
+ return 719;
}
else
{
@@ -565,7 +565,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx011x0010010
ldarh. */
- return 724;
+ return 725;
}
}
else
@@ -574,7 +574,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx011x00100x1
ldar. */
- return 734;
+ return 735;
}
}
else
@@ -587,7 +587,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx111x0010000
casalb. */
- return 783;
+ return 784;
}
else
{
@@ -595,7 +595,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx111x0010010
casalh. */
- return 786;
+ return 787;
}
}
else
@@ -604,7 +604,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxx1xxxxx111x00100x1
casal. */
- return 789;
+ return 790;
}
}
}
@@ -617,7 +617,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxx11x001010x
ldp. */
- return 751;
+ return 752;
}
else
{
@@ -625,7 +625,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxx11x001011x
ldpsw. */
- return 754;
+ return 755;
}
}
}
@@ -643,7 +643,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxxxx000110x0
ldr. */
- return 755;
+ return 756;
}
else
{
@@ -653,7 +653,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxxxx00011001
ldrsw. */
- return 757;
+ return 758;
}
else
{
@@ -661,7 +661,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxxxxxxxxxxxxxxxx00011011
prfm. */
- return 758;
+ return 759;
}
}
}
@@ -685,7 +685,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00xxxxxxxxx00000011100
sturb. */
- return 701;
+ return 702;
}
else
{
@@ -693,7 +693,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00xxxxxxxxx00000011110
sturh. */
- return 706;
+ return 707;
}
}
else
@@ -702,7 +702,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00xxxxxxxxx000000111x1
stur. */
- return 709;
+ return 710;
}
}
else
@@ -715,7 +715,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00xxxxxxxxx01000011100
ldurb. */
- return 702;
+ return 703;
}
else
{
@@ -723,7 +723,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00xxxxxxxxx01000011110
ldurh. */
- return 707;
+ return 708;
}
}
else
@@ -732,7 +732,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00xxxxxxxxx010000111x1
ldur. */
- return 710;
+ return 711;
}
}
}
@@ -746,7 +746,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00xxxxxxxxx0x100011100
ldursb. */
- return 703;
+ return 704;
}
else
{
@@ -754,7 +754,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00xxxxxxxxx0x100011101
ldursw. */
- return 711;
+ return 712;
}
}
else
@@ -765,7 +765,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00xxxxxxxxx0x100011110
ldursh. */
- return 708;
+ return 709;
}
else
{
@@ -773,7 +773,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00xxxxxxxxx0x100011111
prfum. */
- return 712;
+ return 713;
}
}
}
@@ -800,7 +800,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx10000011100
ldaddb. */
- return 806;
+ return 807;
}
else
{
@@ -808,7 +808,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx10000011110
ldaddh. */
- return 807;
+ return 808;
}
}
else
@@ -817,7 +817,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx100000111x1
ldadd. */
- return 808;
+ return 809;
}
}
else
@@ -830,7 +830,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx10100011100
ldaddab. */
- return 809;
+ return 810;
}
else
{
@@ -838,7 +838,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx10100011110
ldaddah. */
- return 812;
+ return 813;
}
}
else
@@ -847,7 +847,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx101000111x1
ldadda. */
- return 815;
+ return 816;
}
}
}
@@ -863,7 +863,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx11000011100
ldaddlb. */
- return 810;
+ return 811;
}
else
{
@@ -871,7 +871,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx11000011110
ldaddlh. */
- return 813;
+ return 814;
}
}
else
@@ -880,7 +880,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx110000111x1
ldaddl. */
- return 816;
+ return 817;
}
}
else
@@ -893,7 +893,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx11100011100
ldaddalb. */
- return 811;
+ return 812;
}
else
{
@@ -901,7 +901,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx11100011110
ldaddalh. */
- return 814;
+ return 815;
}
}
else
@@ -910,7 +910,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000000xxxxx111000111x1
ldaddal. */
- return 817;
+ return 818;
}
}
}
@@ -929,7 +929,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx10000011100
swpb. */
- return 794;
+ return 795;
}
else
{
@@ -937,7 +937,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx10000011110
swph. */
- return 795;
+ return 796;
}
}
else
@@ -946,7 +946,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx100000111x1
swp. */
- return 796;
+ return 797;
}
}
else
@@ -959,7 +959,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx10100011100
swpab. */
- return 797;
+ return 798;
}
else
{
@@ -967,7 +967,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx10100011110
swpah. */
- return 800;
+ return 801;
}
}
else
@@ -976,7 +976,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx101000111x1
swpa. */
- return 803;
+ return 804;
}
}
}
@@ -992,7 +992,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx11000011100
swplb. */
- return 798;
+ return 799;
}
else
{
@@ -1000,7 +1000,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx11000011110
swplh. */
- return 801;
+ return 802;
}
}
else
@@ -1009,7 +1009,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx110000111x1
swpl. */
- return 804;
+ return 805;
}
}
else
@@ -1022,7 +1022,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx11100011100
swpalb. */
- return 799;
+ return 800;
}
else
{
@@ -1030,7 +1030,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx11100011110
swpalh. */
- return 802;
+ return 803;
}
}
else
@@ -1039,7 +1039,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx000001xxxxx111000111x1
swpal. */
- return 805;
+ return 806;
}
}
}
@@ -1059,7 +1059,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00001xxxxxx10000011100
ldsmaxb. */
- return 854;
+ return 855;
}
else
{
@@ -1067,7 +1067,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00001xxxxxx10000011110
ldsmaxh. */
- return 855;
+ return 856;
}
}
else
@@ -1076,7 +1076,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00001xxxxxx100000111x1
ldsmax. */
- return 856;
+ return 857;
}
}
else
@@ -1089,7 +1089,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00001xxxxxx10100011100
ldsmaxab. */
- return 857;
+ return 858;
}
else
{
@@ -1097,7 +1097,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00001xxxxxx10100011110
ldsmaxah. */
- return 860;
+ return 861;
}
}
else
@@ -1106,7 +1106,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00001xxxxxx101000111x1
ldsmaxa. */
- return 863;
+ return 864;
}
}
}
@@ -1122,7 +1122,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00001xxxxxx11000011100
ldsmaxlb. */
- return 858;
+ return 859;
}
else
{
@@ -1130,7 +1130,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00001xxxxxx11000011110
ldsmaxlh. */
- return 861;
+ return 862;
}
}
else
@@ -1139,7 +1139,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00001xxxxxx110000111x1
ldsmaxl. */
- return 864;
+ return 865;
}
}
else
@@ -1152,7 +1152,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00001xxxxxx11100011100
ldsmaxalb. */
- return 859;
+ return 860;
}
else
{
@@ -1160,7 +1160,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00001xxxxxx11100011110
ldsmaxalh. */
- return 862;
+ return 863;
}
}
else
@@ -1169,7 +1169,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00001xxxxxx111000111x1
ldsmaxal. */
- return 865;
+ return 866;
}
}
}
@@ -1191,7 +1191,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx10000011100
ldeorb. */
- return 830;
+ return 831;
}
else
{
@@ -1199,7 +1199,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx10000011110
ldeorh. */
- return 831;
+ return 832;
}
}
else
@@ -1208,7 +1208,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx100000111x1
ldeor. */
- return 832;
+ return 833;
}
}
else
@@ -1221,7 +1221,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx10100011100
ldeorab. */
- return 833;
+ return 834;
}
else
{
@@ -1229,7 +1229,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx10100011110
ldeorah. */
- return 836;
+ return 837;
}
}
else
@@ -1238,7 +1238,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx101000111x1
ldeora. */
- return 839;
+ return 840;
}
}
}
@@ -1254,7 +1254,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx11000011100
ldeorlb. */
- return 834;
+ return 835;
}
else
{
@@ -1262,7 +1262,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx11000011110
ldeorlh. */
- return 837;
+ return 838;
}
}
else
@@ -1271,7 +1271,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx110000111x1
ldeorl. */
- return 840;
+ return 841;
}
}
else
@@ -1284,7 +1284,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx11100011100
ldeoralb. */
- return 835;
+ return 836;
}
else
{
@@ -1292,7 +1292,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx11100011110
ldeoralh. */
- return 838;
+ return 839;
}
}
else
@@ -1301,7 +1301,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00010xxxxxx111000111x1
ldeoral. */
- return 841;
+ return 842;
}
}
}
@@ -1320,7 +1320,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx10000011100
ldumaxb. */
- return 878;
+ return 879;
}
else
{
@@ -1328,7 +1328,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx10000011110
ldumaxh. */
- return 879;
+ return 880;
}
}
else
@@ -1337,7 +1337,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx100000111x1
ldumax. */
- return 880;
+ return 881;
}
}
else
@@ -1350,7 +1350,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx10100011100
ldumaxab. */
- return 881;
+ return 882;
}
else
{
@@ -1358,7 +1358,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx10100011110
ldumaxah. */
- return 884;
+ return 885;
}
}
else
@@ -1367,7 +1367,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx101000111x1
ldumaxa. */
- return 887;
+ return 888;
}
}
}
@@ -1383,7 +1383,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx11000011100
ldumaxlb. */
- return 882;
+ return 883;
}
else
{
@@ -1391,7 +1391,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx11000011110
ldumaxlh. */
- return 885;
+ return 886;
}
}
else
@@ -1400,7 +1400,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx110000111x1
ldumaxl. */
- return 888;
+ return 889;
}
}
else
@@ -1413,7 +1413,7 @@ aarch64_opcode_lookup_1 (uint32_t word)
10987654321098765432109876543210
xxxxxxxxxx00011xxxxxx11100011100
ldumaxalb. */
- [...]
[diff truncated at 100000 bytes]