From d685192a58d4c198633bd0e69cfe0a114576e98a Mon Sep 17 00:00:00 2001 From: Matthew Wahab Date: Fri, 27 Nov 2015 15:25:08 +0000 Subject: [PATCH] [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 --- 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(-) create mode 100644 gas/testsuite/gas/aarch64/alias-2.d create mode 100644 gas/testsuite/gas/aarch64/alias-2.s diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index faf5282f36..29e501a793 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2015-11-27 Matthew Wahab + + * gas/aarch64/alias-2.d: New. + * gas/aarch64/alias-2.s: New. + 2015-11-27 Matthew Wahab * gas/aarch64/sysreg-2.d: New. diff --git a/gas/testsuite/gas/aarch64/alias-2.d b/gas/testsuite/gas/aarch64/alias-2.d new file mode 100644 index 0000000000..92ed58fcf4 --- /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 0000000000..d952c9732d --- /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. */ + + /* [Xd|xzr], [xzr|], , */ + .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], , */ + .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 57200d652e..ff6504a045 100644 --- a/include/opcode/ChangeLog +++ b/include/opcode/ChangeLog @@ -1,3 +1,7 @@ +2015-11-27 Matthew Wahab + + * aarch64.h (aarch64_op): Add OP_BFC. + 2015-11-27 Matthew Wahab * aarch64.h (AARCH64_FEATURE_F16): New. diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index cc16f6f702..f1658bc55e 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 62eec666c4..bf34f8db8e 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,19 @@ +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". + 2015-11-27 Matthew Wahab * aarch64-asm-2.c: Regenerate. diff --git a/opcodes/aarch64-asm-2.c b/opcodes/aarch64-asm-2.c index 8989fa8abb..83f8a8e963 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 968944004b..ef645014cb 100644 --- a/opcodes/aarch64-asm.c +++ b/opcodes/aarch64-asm.c @@ -1038,6 +1038,37 @@ convert_bfi_to_bfm (aarch64_inst *inst) } } +/* The instruction written: + BFC , #, # + is equivalent to: + BFM , XZR, #((64-)&0x3f), #(-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 , , # is equivalent to: @@ -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 d83bae039e..f46f737eb3 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. */ - return 883; + return 884; } else { @@ -1421,7 +1421,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00011xxxxxx11100011110 ldumaxalh. */ - return 886; + return 887; } } else @@ -1430,7 +1430,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00011xxxxxx111000111x1 ldumaxal. */ - return 889; + return 890; } } } @@ -1455,7 +1455,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00100xxxxxx10000011100 ldclrb. */ - return 818; + return 819; } else { @@ -1463,7 +1463,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00100xxxxxx10000011110 ldclrh. */ - return 819; + return 820; } } else @@ -1472,7 +1472,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00100xxxxxx100000111x1 ldclr. */ - return 820; + return 821; } } else @@ -1485,7 +1485,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00100xxxxxx10100011100 ldclrab. */ - return 821; + return 822; } else { @@ -1493,7 +1493,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00100xxxxxx10100011110 ldclrah. */ - return 824; + return 825; } } else @@ -1502,7 +1502,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00100xxxxxx101000111x1 ldclra. */ - return 827; + return 828; } } } @@ -1518,7 +1518,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00100xxxxxx11000011100 ldclrlb. */ - return 822; + return 823; } else { @@ -1526,7 +1526,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00100xxxxxx11000011110 ldclrlh. */ - return 825; + return 826; } } else @@ -1535,7 +1535,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00100xxxxxx110000111x1 ldclrl. */ - return 828; + return 829; } } else @@ -1548,7 +1548,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00100xxxxxx11100011100 ldclralb. */ - return 823; + return 824; } else { @@ -1556,7 +1556,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00100xxxxxx11100011110 ldclralh. */ - return 826; + return 827; } } else @@ -1565,7 +1565,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00100xxxxxx111000111x1 ldclral. */ - return 829; + return 830; } } } @@ -1584,7 +1584,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00101xxxxxx10000011100 ldsminb. */ - return 866; + return 867; } else { @@ -1592,7 +1592,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00101xxxxxx10000011110 ldsminh. */ - return 867; + return 868; } } else @@ -1601,7 +1601,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00101xxxxxx100000111x1 ldsmin. */ - return 868; + return 869; } } else @@ -1614,7 +1614,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00101xxxxxx10100011100 ldsminab. */ - return 869; + return 870; } else { @@ -1622,7 +1622,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00101xxxxxx10100011110 ldsminah. */ - return 872; + return 873; } } else @@ -1631,7 +1631,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00101xxxxxx101000111x1 ldsmina. */ - return 875; + return 876; } } } @@ -1647,7 +1647,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00101xxxxxx11000011100 ldsminlb. */ - return 870; + return 871; } else { @@ -1655,7 +1655,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00101xxxxxx11000011110 ldsminlh. */ - return 873; + return 874; } } else @@ -1664,7 +1664,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00101xxxxxx110000111x1 ldsminl. */ - return 876; + return 877; } } else @@ -1677,7 +1677,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00101xxxxxx11100011100 ldsminalb. */ - return 871; + return 872; } else { @@ -1685,7 +1685,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00101xxxxxx11100011110 ldsminalh. */ - return 874; + return 875; } } else @@ -1694,7 +1694,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00101xxxxxx111000111x1 ldsminal. */ - return 877; + return 878; } } } @@ -1716,7 +1716,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00110xxxxxx10000011100 ldsetb. */ - return 842; + return 843; } else { @@ -1724,7 +1724,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00110xxxxxx10000011110 ldseth. */ - return 843; + return 844; } } else @@ -1733,7 +1733,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00110xxxxxx100000111x1 ldset. */ - return 844; + return 845; } } else @@ -1746,7 +1746,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00110xxxxxx10100011100 ldsetab. */ - return 845; + return 846; } else { @@ -1754,7 +1754,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00110xxxxxx10100011110 ldsetah. */ - return 848; + return 849; } } else @@ -1763,7 +1763,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00110xxxxxx101000111x1 ldseta. */ - return 851; + return 852; } } } @@ -1779,7 +1779,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00110xxxxxx11000011100 ldsetlb. */ - return 846; + return 847; } else { @@ -1787,7 +1787,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00110xxxxxx11000011110 ldsetlh. */ - return 849; + return 850; } } else @@ -1796,7 +1796,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00110xxxxxx110000111x1 ldsetl. */ - return 852; + return 853; } } else @@ -1809,7 +1809,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00110xxxxxx11100011100 ldsetalb. */ - return 847; + return 848; } else { @@ -1817,7 +1817,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00110xxxxxx11100011110 ldsetalh. */ - return 850; + return 851; } } else @@ -1826,7 +1826,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00110xxxxxx111000111x1 ldsetal. */ - return 853; + return 854; } } } @@ -1845,7 +1845,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00111xxxxxx10000011100 lduminb. */ - return 890; + return 891; } else { @@ -1853,7 +1853,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00111xxxxxx10000011110 lduminh. */ - return 891; + return 892; } } else @@ -1862,7 +1862,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00111xxxxxx100000111x1 ldumin. */ - return 892; + return 893; } } else @@ -1875,7 +1875,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00111xxxxxx10100011100 lduminab. */ - return 893; + return 894; } else { @@ -1883,7 +1883,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00111xxxxxx10100011110 lduminah. */ - return 896; + return 897; } } else @@ -1892,7 +1892,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00111xxxxxx101000111x1 ldumina. */ - return 899; + return 900; } } } @@ -1908,7 +1908,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00111xxxxxx11000011100 lduminlb. */ - return 894; + return 895; } else { @@ -1916,7 +1916,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00111xxxxxx11000011110 lduminlh. */ - return 897; + return 898; } } else @@ -1925,7 +1925,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00111xxxxxx110000111x1 lduminl. */ - return 900; + return 901; } } else @@ -1938,7 +1938,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00111xxxxxx11100011100 lduminalb. */ - return 895; + return 896; } else { @@ -1946,7 +1946,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00111xxxxxx11100011110 lduminalh. */ - return 898; + return 899; } } else @@ -1955,7 +1955,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00111xxxxxx111000111x1 lduminal. */ - return 901; + return 902; } } } @@ -1980,7 +1980,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx00000011100 sttrb. */ - return 692; + return 693; } else { @@ -1988,7 +1988,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx00000011110 sttrh. */ - return 695; + return 696; } } else @@ -1997,7 +1997,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx000000111x1 sttr. */ - return 698; + return 699; } } else @@ -2010,7 +2010,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx01000011100 ldtrb. */ - return 693; + return 694; } else { @@ -2018,7 +2018,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx01000011110 ldtrh. */ - return 696; + return 697; } } else @@ -2027,7 +2027,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx010000111x1 ldtr. */ - return 699; + return 700; } } } @@ -2041,7 +2041,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx0x100011100 ldtrsb. */ - return 694; + return 695; } else { @@ -2049,7 +2049,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx0x100011101 ldtrsw. */ - return 700; + return 701; } } else @@ -2058,7 +2058,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx0x10001111x ldtrsh. */ - return 697; + return 698; } } } @@ -2076,7 +2076,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx10000011100 strb. */ - return 680; + return 681; } else { @@ -2084,7 +2084,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx10000011110 strh. */ - return 685; + return 686; } } else @@ -2093,7 +2093,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx100000111x1 str. */ - return 688; + return 689; } } else @@ -2106,7 +2106,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx11000011100 ldrb. */ - return 681; + return 682; } else { @@ -2114,7 +2114,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx11000011110 ldrh. */ - return 686; + return 687; } } else @@ -2123,7 +2123,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx110000111x1 ldr. */ - return 689; + return 690; } } } @@ -2137,7 +2137,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx1x100011100 ldrsb. */ - return 682; + return 683; } else { @@ -2145,7 +2145,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx1x100011101 ldrsw. */ - return 690; + return 691; } } else @@ -2156,7 +2156,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx1x100011110 ldrsh. */ - return 687; + return 688; } else { @@ -2164,7 +2164,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx1x100011111 prfm. */ - return 691; + return 692; } } } @@ -2185,7 +2185,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1xxxxxxxxxxx0000011100 strb. */ - return 657; + return 658; } else { @@ -2193,7 +2193,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1xxxxxxxxxxx0000011110 strh. */ - return 662; + return 663; } } else @@ -2202,7 +2202,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1xxxxxxxxxxx00000111x1 str. */ - return 665; + return 666; } } else @@ -2215,7 +2215,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1xxxxxxxxxxx1000011100 ldrb. */ - return 658; + return 659; } else { @@ -2223,7 +2223,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1xxxxxxxxxxx1000011110 ldrh. */ - return 663; + return 664; } } else @@ -2232,7 +2232,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1xxxxxxxxxxx10000111x1 ldr. */ - return 666; + return 667; } } } @@ -2246,7 +2246,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1xxxxxxxxxxxx100011100 ldrsb. */ - return 659; + return 660; } else { @@ -2254,7 +2254,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1xxxxxxxxxxxx100011101 ldrsw. */ - return 667; + return 668; } } else @@ -2263,7 +2263,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1xxxxxxxxxxxx10001111x ldrsh. */ - return 664; + return 665; } } } @@ -2283,7 +2283,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx0010011x00 strb. */ - return 668; + return 669; } else { @@ -2291,7 +2291,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx0010011x10 strh. */ - return 673; + return 674; } } else @@ -2300,7 +2300,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx0010011xx1 str. */ - return 676; + return 677; } } else @@ -2313,7 +2313,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx1010011x00 ldrb. */ - return 669; + return 670; } else { @@ -2321,7 +2321,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx1010011x10 ldrh. */ - return 674; + return 675; } } else @@ -2330,7 +2330,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx1010011xx1 ldr. */ - return 677; + return 678; } } } @@ -2344,7 +2344,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx110011x00 ldrsb. */ - return 670; + return 671; } else { @@ -2352,7 +2352,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx110011x01 ldrsw. */ - return 678; + return 679; } } else @@ -2363,7 +2363,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx110011x10 ldrsh. */ - return 675; + return 676; } else { @@ -2371,7 +2371,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx110011x11 prfm. */ - return 679; + return 680; } } } @@ -2395,7 +2395,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx00100x00x and. */ - return 759; + return 760; } else { @@ -2403,7 +2403,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx00100x01x eor. */ - return 763; + return 764; } } else @@ -2414,7 +2414,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx00100x10x orr. */ - return 761; + return 762; } else { @@ -2422,7 +2422,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx00100x11x ands. */ - return 764; + return 765; } } } @@ -2436,7 +2436,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx10100x00x movn. */ - return 950; + return 951; } else { @@ -2444,7 +2444,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx10100x01x movz. */ - return 952; + return 953; } } else @@ -2453,7 +2453,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx10100x1xx movk. */ - return 954; + return 955; } } } @@ -2471,7 +2471,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx0xx0101000x and. */ - return 766; + return 767; } else { @@ -2479,7 +2479,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx0xx0101001x eor. */ - return 773; + return 774; } } else @@ -2490,7 +2490,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx0xx0101010x orr. */ - return 768; + return 769; } else { @@ -2498,7 +2498,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx0xx0101011x ands. */ - return 775; + return 776; } } } @@ -2559,7 +2559,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00xxxxxxxxx00101011x0x csel. */ - return 532; + return 533; } else { @@ -2567,7 +2567,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00xxxxxxxxx00101011x1x csinv. */ - return 536; + return 537; } } } @@ -2581,7 +2581,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00xxxxxxxxx01001011x0x ccmn. */ - return 530; + return 531; } else { @@ -2589,7 +2589,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00xxxxxxxxx01001011x1x ccmp. */ - return 531; + return 532; } } else @@ -2604,7 +2604,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00000xxxxxx01101011xxx rbit. */ - return 555; + return 556; } else { @@ -2612,7 +2612,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00001xxxxxx01101011xxx crc32b. */ - return 572; + return 573; } } else @@ -2621,7 +2621,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0001xxxxxxx01101011xxx lslv. */ - return 564; + return 565; } } else @@ -2632,7 +2632,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx001x0xxxxxx01101011xxx clz. */ - return 559; + return 560; } else { @@ -2640,7 +2640,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx001x1xxxxxx01101011xxx crc32cb. */ - return 576; + return 577; } } } @@ -2656,7 +2656,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx0x001011x0x ccmn. */ - return 528; + return 529; } else { @@ -2664,7 +2664,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxx0x001011x1x ccmp. */ - return 529; + return 530; } } else @@ -2681,7 +2681,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01000xxxxxx0x101011x0x udiv. */ - return 562; + return 563; } else { @@ -2691,7 +2691,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01000xxxxxx0x101011x10 rev. */ - return 557; + return 558; } else { @@ -2699,7 +2699,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01000xxxxxx0x101011x11 rev32. */ - return 561; + return 562; } } } @@ -2709,7 +2709,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01001xxxxxx0x101011xxx crc32w. */ - return 574; + return 575; } } else @@ -2718,7 +2718,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0101xxxxxxx0x101011xxx asrv. */ - return 568; + return 569; } } else @@ -2727,7 +2727,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx011xxxxxxxx0x101011xxx crc32cw. */ - return 578; + return 579; } } } @@ -2744,7 +2744,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx10xxxxxxxxx00x01011x0x csinc. */ - return 533; + return 534; } else { @@ -2752,7 +2752,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx10xxxxxxxxx00x01011x1x csneg. */ - return 539; + return 540; } } else @@ -2767,7 +2767,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx10000xxxxxx01x01011xxx rev16. */ - return 556; + return 557; } else { @@ -2775,7 +2775,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx10001xxxxxx01x01011xxx crc32h. */ - return 573; + return 574; } } else @@ -2784,7 +2784,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1001xxxxxxx01x01011xxx lsrv. */ - return 566; + return 567; } } else @@ -2795,7 +2795,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx101x0xxxxxx01x01011xxx cls. */ - return 560; + return 561; } else { @@ -2803,7 +2803,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx101x1xxxxxx01x01011xxx crc32ch. */ - return 577; + return 578; } } } @@ -2822,7 +2822,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx11000xxxxxx0xx01011x0x sdiv. */ - return 563; + return 564; } else { @@ -2830,7 +2830,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx11000xxxxxx0xx01011x1x rev. */ - return 558; + return 559; } } else @@ -2839,7 +2839,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx11001xxxxxx0xx01011xxx crc32x. */ - return 575; + return 576; } } else @@ -2848,7 +2848,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1101xxxxxxx0xx01011xxx rorv. */ - return 570; + return 571; } } else @@ -2857,7 +2857,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx111xxxxxxxx0xx01011xxx crc32cx. */ - return 579; + return 580; } } } @@ -2873,7 +2873,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx1xx0101x00x bic. */ - return 767; + return 768; } else { @@ -2881,7 +2881,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx1xx0101x01x eon. */ - return 774; + return 775; } } else @@ -2892,7 +2892,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx1xx0101x10x orn. */ - return 771; + return 772; } else { @@ -2900,7 +2900,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx1xx0101x11x bics. */ - return 777; + return 778; } } } @@ -2928,7 +2928,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx01100x01x ubfm. */ - return 511; + return 512; } } else @@ -2946,7 +2946,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxx11100xxxx extr. */ - return 602; + return 603; } } else @@ -3004,7 +3004,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxx0xxxxx00x11011xxx madd. */ - return 580; + return 581; } else { @@ -3014,7 +3014,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxx0xxxxx01011011xxx smulh. */ - return 588; + return 589; } else { @@ -3022,7 +3022,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxx0xxxxx01111011xxx umulh. */ - return 593; + return 594; } } } @@ -3032,7 +3032,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxx1xxxxx0xx11011xxx msub. */ - return 582; + return 583; } } } @@ -3089,7 +3089,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxx0xxxxx1x011011xxx smaddl. */ - return 584; + return 585; } else { @@ -3097,7 +3097,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxx1xxxxx1x011011xxx smsubl. */ - return 586; + return 587; } } } @@ -3109,7 +3109,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxx0xxxxx1x11101xxxx umaddl. */ - return 589; + return 590; } else { @@ -3117,7 +3117,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxx1xxxxx1x11101xxxx umsubl. */ - return 591; + return 592; } } } @@ -3139,7 +3139,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxxxxx10x000 b. */ - return 518; + return 519; } else { @@ -3147,7 +3147,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxxxxx10x001 bl. */ - return 519; + return 520; } } else @@ -3162,7 +3162,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxxx0010x010 b.c. */ - return 527; + return 528; } else { @@ -3176,7 +3176,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00xxxxxxxxxxxxxxxxxxx0xx0010x011 hlt. */ - return 598; + return 599; } else { @@ -3184,7 +3184,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00xxxxxxxxxxxxxxxxxxx1xx0010x011 brk. */ - return 597; + return 598; } } else @@ -3195,7 +3195,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01xxxxxxxxxxxxxxxxxxx0xx0010x011 hvc. */ - return 595; + return 596; } else { @@ -3203,7 +3203,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01xxxxxxxxxxxxxxxxxxx1xx0010x011 dcps2. */ - return 600; + return 601; } } } @@ -3217,7 +3217,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 10xxxxxxxxxxxxxxxxxxx0xx0010x011 svc. */ - return 594; + return 595; } else { @@ -3225,7 +3225,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 10xxxxxxxxxxxxxxxxxxx1xx0010x011 dcps1. */ - return 599; + return 600; } } else @@ -3236,7 +3236,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 11xxxxxxxxxxxxxxxxxxx0xx0010x011 smc. */ - return 596; + return 597; } else { @@ -3244,7 +3244,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 11xxxxxxxxxxxxxxxxxxx1xx0010x011 dcps3. */ - return 601; + return 602; } } } @@ -3262,7 +3262,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx0000110x01x br. */ - return 520; + return 521; } else { @@ -3270,7 +3270,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx0010110x01x eret. */ - return 523; + return 524; } } else @@ -3279,7 +3279,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx01x0110x01x ret. */ - return 522; + return 523; } } else @@ -3290,7 +3290,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx1x00110x01x blr. */ - return 521; + return 522; } else { @@ -3298,7 +3298,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx1x10110x01x drps. */ - return 524; + return 525; } } } @@ -3311,7 +3311,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx0xx1x10x01x msr. */ - return 957; + return 958; } else { @@ -3319,7 +3319,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxx1xx1x10x01x sysl. */ - return 975; + return 976; } } } @@ -3334,7 +3334,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxxx0010x1xx cbz. */ - return 525; + return 526; } else { @@ -3342,7 +3342,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxxx0110x1xx tbz. */ - return 977; + return 978; } } else @@ -3353,7 +3353,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxxx1010x1xx cbnz. */ - return 526; + return 527; } else { @@ -3361,7 +3361,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxxx1110x1xx tbnz. */ - return 978; + return 979; } } } @@ -3392,7 +3392,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx00001101xx stnp. */ - return 743; + return 744; } } else @@ -3444,7 +3444,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx00101101xx stp. */ - return 747; + return 748; } } } @@ -3508,7 +3508,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx01x01101xx stp. */ - return 752; + return 753; } } } @@ -3532,7 +3532,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx10001101xx ldnp. */ - return 744; + return 745; } } else @@ -3584,7 +3584,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx10101101xx ldp. */ - return 748; + return 749; } } } @@ -3648,7 +3648,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx11x01101xx ldp. */ - return 753; + return 754; } } } @@ -3663,7 +3663,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxxxx001110xx ldr. */ - return 756; + return 757; } else { @@ -3677,7 +3677,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00xxxxxxxxxx0x001111xx stur. */ - return 704; + return 705; } else { @@ -3685,7 +3685,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00xxxxxxxxxx1x001111xx ldur. */ - return 705; + return 706; } } else @@ -3696,7 +3696,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxxx0x001111xx str. */ - return 683; + return 684; } else { @@ -3704,7 +3704,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx01xxxxxxxxxx1x001111xx ldr. */ - return 684; + return 685; } } } @@ -3716,7 +3716,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1xxxxxxxxxxx0x001111xx str. */ - return 660; + return 661; } else { @@ -3724,7 +3724,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx1xxxxxxxxxxx1x001111xx ldr. */ - return 661; + return 662; } } } @@ -3737,7 +3737,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx0x10111xxx str. */ - return 671; + return 672; } else { @@ -3745,7 +3745,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxxxxxxxx1x10111xxx ldr. */ - return 672; + return 673; } } } @@ -3954,7 +3954,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxx00xxx0xx0111100x fcvtzs. */ - return 606; + return 607; } else { @@ -3962,7 +3962,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxx01xxx0xx0111100x scvtf. */ - return 604; + return 605; } } else @@ -3973,7 +3973,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxx10xxx0xx0111100x fcvtzu. */ - return 607; + return 608; } else { @@ -3981,7 +3981,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxxx11xxx0xx0111100x ucvtf. */ - return 605; + return 606; } } } @@ -3999,7 +3999,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0x000xxxxxx0xx0111101x sha1c. */ - return 548; + return 549; } else { @@ -4007,7 +4007,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0x001xxxxxx0xx0111101x sha256h. */ - return 552; + return 553; } } else @@ -4018,7 +4018,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0x010xxxxxx0xx0111101x sha1m. */ - return 550; + return 551; } else { @@ -4026,7 +4026,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0x011xxxxxx0xx0111101x sha256su1. */ - return 554; + return 555; } } } @@ -4040,7 +4040,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0x100xxxxxx0xx0111101x sha1p. */ - return 549; + return 550; } else { @@ -4048,7 +4048,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0x101xxxxxx0xx0111101x sha256h2. */ - return 553; + return 554; } } else @@ -4057,7 +4057,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0x11xxxxxxx0xx0111101x sha1su0. */ - return 551; + return 552; } } } @@ -4163,7 +4163,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000000000001xx01111xxx fcvtns. */ - return 608; + return 609; } else { @@ -4171,7 +4171,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000000000011xx01111xxx fcvtms. */ - return 618; + return 619; } } else @@ -4182,7 +4182,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000000000101xx01111xxx fcvtps. */ - return 616; + return 617; } else { @@ -4190,7 +4190,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000000000111xx01111xxx fcvtzs. */ - return 620; + return 621; } } } @@ -4200,7 +4200,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000000001xx1xx01111xxx fcvtas. */ - return 612; + return 613; } } else @@ -4211,7 +4211,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000000010xx1xx01111xxx scvtf. */ - return 610; + return 611; } else { @@ -4221,7 +4221,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0000000110x1xx01111xxx fmov. */ - return 614; + return 615; } else { @@ -4229,7 +4229,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0000000111x1xx01111xxx fmov. */ - return 622; + return 623; } } } @@ -4248,7 +4248,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000000100001xx01111xxx fcvtnu. */ - return 609; + return 610; } else { @@ -4256,7 +4256,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000000100011xx01111xxx fcvtmu. */ - return 619; + return 620; } } else @@ -4267,7 +4267,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000000100101xx01111xxx fcvtpu. */ - return 617; + return 618; } else { @@ -4275,7 +4275,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000000100111xx01111xxx fcvtzu. */ - return 621; + return 622; } } } @@ -4285,7 +4285,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000000101xx1xx01111xxx fcvtau. */ - return 613; + return 614; } } else @@ -4296,7 +4296,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000000110xx1xx01111xxx ucvtf. */ - return 611; + return 612; } else { @@ -4306,7 +4306,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0000001110x1xx01111xxx fmov. */ - return 615; + return 616; } else { @@ -4314,7 +4314,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0000001111x1xx01111xxx fmov. */ - return 623; + return 624; } } } @@ -4464,7 +4464,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000010000xx1xx01111xxx fmov. */ - return 630; + return 631; } else { @@ -4472,7 +4472,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000010001xx1xx01111xxx frintn. */ - return 635; + return 636; } } else @@ -4483,7 +4483,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000010100xx1xx01111xxx fneg. */ - return 632; + return 633; } else { @@ -4491,7 +4491,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000010101xx1xx01111xxx frintm. */ - return 637; + return 638; } } } @@ -4505,7 +4505,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000011000xx1xx01111xxx fabs. */ - return 631; + return 632; } else { @@ -4513,7 +4513,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000011001xx1xx01111xxx frintp. */ - return 636; + return 637; } } else @@ -4524,7 +4524,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000011100xx1xx01111xxx fsqrt. */ - return 633; + return 634; } else { @@ -4532,7 +4532,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000011101xx1xx01111xxx frintz. */ - return 638; + return 639; } } } @@ -4545,7 +4545,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx00001xx10xx1xx01111xxx fcvt. */ - return 634; + return 635; } else { @@ -4557,7 +4557,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000010011xx1xx01111xxx frinta. */ - return 639; + return 640; } else { @@ -4565,7 +4565,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000010111xx1xx01111xxx frintx. */ - return 640; + return 641; } } else @@ -4574,7 +4574,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx000011x11xx1xx01111xxx frinti. */ - return 641; + return 642; } } } @@ -4638,7 +4638,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx00xxxxx000100xxxxx1xx01111xxx fcmp. */ - return 626; + return 627; } else { @@ -4646,7 +4646,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx01xxxxx000100xxxxx1xx01111xxx fcmpe. */ - return 627; + return 628; } } else @@ -4657,7 +4657,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx10xxxxx000100xxxxx1xx01111xxx fcmp. */ - return 628; + return 629; } else { @@ -4665,7 +4665,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11xxxxx000100xxxxx1xx01111xxx fcmpe. */ - return 629; + return 630; } } } @@ -5048,7 +5048,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx001xxxxxxxx1xx01111x0x fmov. */ - return 655; + return 656; } else { @@ -5120,7 +5120,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx010000xxxxx1xx01111x0x fmul. */ - return 642; + return 643; } else { @@ -5128,7 +5128,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx010000xxxxx1xx01111x1x sha1h. */ - return 545; + return 546; } } } @@ -5196,7 +5196,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx010001xxxxx1xx0111100x fnmul. */ - return 650; + return 651; } else { @@ -5251,7 +5251,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0100100xx1x1xx01110xxx aese. */ - return 541; + return 542; } } else @@ -5306,7 +5306,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx010010xxxxx1xx0111100x fmax. */ - return 646; + return 647; } else { @@ -5559,7 +5559,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx010100xxxxx1xx0111100x fadd. */ - return 644; + return 645; } else { @@ -5567,7 +5567,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx010100xxxxx1xx0111101x sha256su0. */ - return 547; + return 548; } } else @@ -5765,7 +5765,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0101100xx1x1xx01110xxx aesmc. */ - return 543; + return 544; } } else @@ -5818,7 +5818,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx010110xxxxx1xx011110xx fmaxnm. */ - return 648; + return 649; } else { @@ -5876,7 +5876,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx011000xxxxx1xx01111x0x fdiv. */ - return 643; + return 644; } else { @@ -5884,7 +5884,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx011000xxxxx1xx01111x1x sha1su1. */ - return 546; + return 547; } } } @@ -6016,7 +6016,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx011010xxx1x1xx01110xxx aesd. */ - return 542; + return 543; } } else @@ -6025,7 +6025,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx011010xxxxx1xx01111xxx fmin. */ - return 647; + return 648; } } else @@ -6249,7 +6249,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx011100xxxxx1xx0111100x fsub. */ - return 645; + return 646; } else { @@ -6455,7 +6455,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx0111100xx1x1xx01110xxx aesimc. */ - return 544; + return 545; } } else @@ -6488,7 +6488,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx011110xxxxx1xx0111100x fminnm. */ - return 649; + return 650; } else { @@ -7041,7 +7041,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxx0xxxxx10xxxxxxxxx1xx0111100x fccmp. */ - return 624; + return 625; } else { @@ -7049,7 +7049,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxx1xxxxx10xxxxxxxxx1xx0111100x fccmpe. */ - return 625; + return 626; } } else @@ -7630,7 +7630,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxx11xxxxxxxxx1xx0111100x fcsel. */ - return 656; + return 657; } else { @@ -8052,7 +8052,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxx0xxxxx0xx1111100x fmadd. */ - return 651; + return 652; } else { @@ -8060,7 +8060,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxx0xxxxx1xx1111100x fnmadd. */ - return 653; + return 654; } } else @@ -8632,7 +8632,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxx1xxxxx0xx1111100x fmsub. */ - return 652; + return 653; } else { @@ -8640,7 +8640,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxxxxxxxxxxxxx1xxxxx1xx1111100x fnmsub. */ - return 654; + return 655; } } else @@ -8850,22 +8850,22 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) int value; switch (key) { - case 741: value = 745; break; /* stnp --> stp. */ - case 745: return NULL; /* stp --> NULL. */ - case 739: value = 740; break; /* stllrb --> stllrh. */ - case 740: return NULL; /* stllrh --> NULL. */ - case 742: value = 746; break; /* ldnp --> ldp. */ - case 746: return NULL; /* ldp --> NULL. */ - case 957: value = 958; break; /* msr --> hint. */ - case 958: value = 965; break; /* hint --> clrex. */ - case 965: value = 966; break; /* clrex --> dsb. */ - case 966: value = 967; break; /* dsb --> dmb. */ - case 967: value = 968; break; /* dmb --> isb. */ - case 968: value = 969; break; /* isb --> sys. */ - case 969: value = 974; break; /* sys --> msr. */ - case 974: return NULL; /* msr --> NULL. */ - case 975: value = 976; break; /* sysl --> mrs. */ - case 976: return NULL; /* mrs --> NULL. */ + case 742: value = 746; break; /* stnp --> stp. */ + case 746: return NULL; /* stp --> NULL. */ + case 740: value = 741; break; /* stllrb --> stllrh. */ + case 741: return NULL; /* stllrh --> NULL. */ + case 743: value = 747; break; /* ldnp --> ldp. */ + case 747: return NULL; /* ldp --> NULL. */ + case 958: value = 959; break; /* msr --> hint. */ + case 959: value = 966; break; /* hint --> clrex. */ + case 966: value = 967; break; /* clrex --> dsb. */ + case 967: value = 968; break; /* dsb --> dmb. */ + case 968: value = 969; break; /* dmb --> isb. */ + case 969: value = 970; break; /* isb --> sys. */ + case 970: value = 975; break; /* sys --> msr. */ + case 975: return NULL; /* msr --> NULL. */ + case 976: value = 977; break; /* sysl --> mrs. */ + case 977: return NULL; /* mrs --> NULL. */ case 361: value = 362; break; /* st4 --> st1. */ case 362: value = 363; break; /* st1 --> st2. */ case 363: value = 364; break; /* st2 --> st3. */ @@ -8972,80 +8972,80 @@ aarch64_find_alias_opcode (const aarch64_opcode *opcode) case 341: value = 342; break; /* ushll2 --> uxtl2. */ case 436: value = 437; break; /* dup --> mov. */ case 501: value = 506; break; /* sbfm --> sxtw. */ - case 508: value = 510; break; /* bfm --> bfxil. */ - case 511: value = 515; break; /* ubfm --> uxth. */ - case 533: value = 535; break; /* csinc --> cset. */ - case 536: value = 538; break; /* csinv --> csetm. */ - case 539: value = 540; break; /* csneg --> cneg. */ - case 564: value = 565; break; /* lslv --> lsl. */ - case 566: value = 567; break; /* lsrv --> lsr. */ - case 568: value = 569; break; /* asrv --> asr. */ - case 570: value = 571; break; /* rorv --> ror. */ - case 580: value = 581; break; /* madd --> mul. */ - case 582: value = 583; break; /* msub --> mneg. */ - case 584: value = 585; break; /* smaddl --> smull. */ - case 586: value = 587; break; /* smsubl --> smnegl. */ - case 589: value = 590; break; /* umaddl --> umull. */ - case 591: value = 592; break; /* umsubl --> umnegl. */ - case 602: value = 603; break; /* extr --> ror. */ - case 759: value = 760; break; /* and --> bic. */ - case 761: value = 762; break; /* orr --> mov. */ - case 764: value = 765; break; /* ands --> tst. */ - case 768: value = 770; break; /* orr --> uxtw. */ - case 771: value = 772; break; /* orn --> mvn. */ - case 775: value = 776; break; /* ands --> tst. */ - case 806: value = 902; break; /* ldaddb --> staddb. */ - case 807: value = 903; break; /* ldaddh --> staddh. */ - case 808: value = 904; break; /* ldadd --> stadd. */ - case 810: value = 905; break; /* ldaddlb --> staddlb. */ - case 813: value = 906; break; /* ldaddlh --> staddlh. */ - case 816: value = 907; break; /* ldaddl --> staddl. */ - case 818: value = 908; break; /* ldclrb --> stclrb. */ - case 819: value = 909; break; /* ldclrh --> stclrh. */ - case 820: value = 910; break; /* ldclr --> stclr. */ - case 822: value = 911; break; /* ldclrlb --> stclrlb. */ - case 825: value = 912; break; /* ldclrlh --> stclrlh. */ - case 828: value = 913; break; /* ldclrl --> stclrl. */ - case 830: value = 914; break; /* ldeorb --> steorb. */ - case 831: value = 915; break; /* ldeorh --> steorh. */ - case 832: value = 916; break; /* ldeor --> steor. */ - case 834: value = 917; break; /* ldeorlb --> steorlb. */ - case 837: value = 918; break; /* ldeorlh --> steorlh. */ - case 840: value = 919; break; /* ldeorl --> steorl. */ - case 842: value = 920; break; /* ldsetb --> stsetb. */ - case 843: value = 921; break; /* ldseth --> stseth. */ - case 844: value = 922; break; /* ldset --> stset. */ - case 846: value = 923; break; /* ldsetlb --> stsetlb. */ - case 849: value = 924; break; /* ldsetlh --> stsetlh. */ - case 852: value = 925; break; /* ldsetl --> stsetl. */ - case 854: value = 926; break; /* ldsmaxb --> stsmaxb. */ - case 855: value = 927; break; /* ldsmaxh --> stsmaxh. */ - case 856: value = 928; break; /* ldsmax --> stsmax. */ - case 858: value = 929; break; /* ldsmaxlb --> stsmaxlb. */ - case 861: value = 930; break; /* ldsmaxlh --> stsmaxlh. */ - case 864: value = 931; break; /* ldsmaxl --> stsmaxl. */ - case 866: value = 932; break; /* ldsminb --> stsminb. */ - case 867: value = 933; break; /* ldsminh --> stsminh. */ - case 868: value = 934; break; /* ldsmin --> stsmin. */ - case 870: value = 935; break; /* ldsminlb --> stsminlb. */ - case 873: value = 936; break; /* ldsminlh --> stsminlh. */ - case 876: value = 937; break; /* ldsminl --> stsminl. */ - case 878: value = 938; break; /* ldumaxb --> stumaxb. */ - case 879: value = 939; break; /* ldumaxh --> stumaxh. */ - case 880: value = 940; break; /* ldumax --> stumax. */ - case 882: value = 941; break; /* ldumaxlb --> stumaxlb. */ - case 885: value = 942; break; /* ldumaxlh --> stumaxlh. */ - case 888: value = 943; break; /* ldumaxl --> stumaxl. */ - case 890: value = 944; break; /* lduminb --> stuminb. */ - case 891: value = 945; break; /* lduminh --> stuminh. */ - case 892: value = 946; break; /* ldumin --> stumin. */ - case 894: value = 947; break; /* lduminlb --> stuminlb. */ - case 897: value = 948; break; /* lduminlh --> stuminlh. */ - case 900: value = 949; break; /* lduminl --> stuminl. */ - case 950: value = 951; break; /* movn --> mov. */ - case 952: value = 953; break; /* movz --> mov. */ - case 958: value = 964; break; /* hint --> sevl. */ - case 969: value = 973; break; /* sys --> tlbi. */ + case 508: value = 510; break; /* bfm --> bfc. */ + case 512: value = 516; break; /* ubfm --> uxth. */ + case 534: value = 536; break; /* csinc --> cset. */ + case 537: value = 539; break; /* csinv --> csetm. */ + case 540: value = 541; break; /* csneg --> cneg. */ + case 565: value = 566; break; /* lslv --> lsl. */ + case 567: value = 568; break; /* lsrv --> lsr. */ + case 569: value = 570; break; /* asrv --> asr. */ + case 571: value = 572; break; /* rorv --> ror. */ + case 581: value = 582; break; /* madd --> mul. */ + case 583: value = 584; break; /* msub --> mneg. */ + case 585: value = 586; break; /* smaddl --> smull. */ + case 587: value = 588; break; /* smsubl --> smnegl. */ + case 590: value = 591; break; /* umaddl --> umull. */ + case 592: value = 593; break; /* umsubl --> umnegl. */ + case 603: value = 604; break; /* extr --> ror. */ + case 760: value = 761; break; /* and --> bic. */ + case 762: value = 763; break; /* orr --> mov. */ + case 765: value = 766; break; /* ands --> tst. */ + case 769: value = 771; break; /* orr --> uxtw. */ + case 772: value = 773; break; /* orn --> mvn. */ + case 776: value = 777; break; /* ands --> tst. */ + case 807: value = 903; break; /* ldaddb --> staddb. */ + case 808: value = 904; break; /* ldaddh --> staddh. */ + case 809: value = 905; break; /* ldadd --> stadd. */ + case 811: value = 906; break; /* ldaddlb --> staddlb. */ + case 814: value = 907; break; /* ldaddlh --> staddlh. */ + case 817: value = 908; break; /* ldaddl --> staddl. */ + case 819: value = 909; break; /* ldclrb --> stclrb. */ + case 820: value = 910; break; /* ldclrh --> stclrh. */ + case 821: value = 911; break; /* ldclr --> stclr. */ + case 823: value = 912; break; /* ldclrlb --> stclrlb. */ + case 826: value = 913; break; /* ldclrlh --> stclrlh. */ + case 829: value = 914; break; /* ldclrl --> stclrl. */ + case 831: value = 915; break; /* ldeorb --> steorb. */ + case 832: value = 916; break; /* ldeorh --> steorh. */ + case 833: value = 917; break; /* ldeor --> steor. */ + case 835: value = 918; break; /* ldeorlb --> steorlb. */ + case 838: value = 919; break; /* ldeorlh --> steorlh. */ + case 841: value = 920; break; /* ldeorl --> steorl. */ + case 843: value = 921; break; /* ldsetb --> stsetb. */ + case 844: value = 922; break; /* ldseth --> stseth. */ + case 845: value = 923; break; /* ldset --> stset. */ + case 847: value = 924; break; /* ldsetlb --> stsetlb. */ + case 850: value = 925; break; /* ldsetlh --> stsetlh. */ + case 853: value = 926; break; /* ldsetl --> stsetl. */ + case 855: value = 927; break; /* ldsmaxb --> stsmaxb. */ + case 856: value = 928; break; /* ldsmaxh --> stsmaxh. */ + case 857: value = 929; break; /* ldsmax --> stsmax. */ + case 859: value = 930; break; /* ldsmaxlb --> stsmaxlb. */ + case 862: value = 931; break; /* ldsmaxlh --> stsmaxlh. */ + case 865: value = 932; break; /* ldsmaxl --> stsmaxl. */ + case 867: value = 933; break; /* ldsminb --> stsminb. */ + case 868: value = 934; break; /* ldsminh --> stsminh. */ + case 869: value = 935; break; /* ldsmin --> stsmin. */ + case 871: value = 936; break; /* ldsminlb --> stsminlb. */ + case 874: value = 937; break; /* ldsminlh --> stsminlh. */ + case 877: value = 938; break; /* ldsminl --> stsminl. */ + case 879: value = 939; break; /* ldumaxb --> stumaxb. */ + case 880: value = 940; break; /* ldumaxh --> stumaxh. */ + case 881: value = 941; break; /* ldumax --> stumax. */ + case 883: value = 942; break; /* ldumaxlb --> stumaxlb. */ + case 886: value = 943; break; /* ldumaxlh --> stumaxlh. */ + case 889: value = 944; break; /* ldumaxl --> stumaxl. */ + case 891: value = 945; break; /* lduminb --> stuminb. */ + case 892: value = 946; break; /* lduminh --> stuminh. */ + case 893: value = 947; break; /* ldumin --> stumin. */ + case 895: value = 948; break; /* lduminlb --> stuminlb. */ + case 898: value = 949; break; /* lduminlh --> stuminlh. */ + case 901: value = 950; break; /* lduminl --> stuminl. */ + case 951: value = 952; break; /* movn --> mov. */ + case 953: value = 954; break; /* movz --> mov. */ + case 959: value = 965; break; /* hint --> sevl. */ + case 970: value = 974; break; /* sys --> tlbi. */ default: return NULL; } @@ -9087,97 +9087,98 @@ aarch64_find_next_alias_opcode (const aarch64_opcode *opcode) case 507: value = 503; break; /* asr --> sbfx. */ case 503: value = 502; break; /* sbfx --> sbfiz. */ case 502: value = 501; break; /* sbfiz --> sbfm. */ - case 510: value = 509; break; /* bfxil --> bfi. */ + case 510: value = 511; break; /* bfc --> bfxil. */ + case 511: value = 509; break; /* bfxil --> bfi. */ case 509: value = 508; break; /* bfi --> bfm. */ - case 515: value = 514; break; /* uxth --> uxtb. */ - case 514: value = 517; break; /* uxtb --> lsr. */ - case 517: value = 516; break; /* lsr --> lsl. */ - case 516: value = 513; break; /* lsl --> ubfx. */ - case 513: value = 512; break; /* ubfx --> ubfiz. */ - case 512: value = 511; break; /* ubfiz --> ubfm. */ - case 535: value = 534; break; /* cset --> cinc. */ - case 534: value = 533; break; /* cinc --> csinc. */ - case 538: value = 537; break; /* csetm --> cinv. */ - case 537: value = 536; break; /* cinv --> csinv. */ - case 540: value = 539; break; /* cneg --> csneg. */ - case 565: value = 564; break; /* lsl --> lslv. */ - case 567: value = 566; break; /* lsr --> lsrv. */ - case 569: value = 568; break; /* asr --> asrv. */ - case 571: value = 570; break; /* ror --> rorv. */ - case 581: value = 580; break; /* mul --> madd. */ - case 583: value = 582; break; /* mneg --> msub. */ - case 585: value = 584; break; /* smull --> smaddl. */ - case 587: value = 586; break; /* smnegl --> smsubl. */ - case 590: value = 589; break; /* umull --> umaddl. */ - case 592: value = 591; break; /* umnegl --> umsubl. */ - case 603: value = 602; break; /* ror --> extr. */ - case 760: value = 759; break; /* bic --> and. */ - case 762: value = 761; break; /* mov --> orr. */ - case 765: value = 764; break; /* tst --> ands. */ - case 770: value = 769; break; /* uxtw --> mov. */ - case 769: value = 768; break; /* mov --> orr. */ - case 772: value = 771; break; /* mvn --> orn. */ - case 776: value = 775; break; /* tst --> ands. */ - case 902: value = 806; break; /* staddb --> ldaddb. */ - case 903: value = 807; break; /* staddh --> ldaddh. */ - case 904: value = 808; break; /* stadd --> ldadd. */ - case 905: value = 810; break; /* staddlb --> ldaddlb. */ - case 906: value = 813; break; /* staddlh --> ldaddlh. */ - case 907: value = 816; break; /* staddl --> ldaddl. */ - case 908: value = 818; break; /* stclrb --> ldclrb. */ - case 909: value = 819; break; /* stclrh --> ldclrh. */ - case 910: value = 820; break; /* stclr --> ldclr. */ - case 911: value = 822; break; /* stclrlb --> ldclrlb. */ - case 912: value = 825; break; /* stclrlh --> ldclrlh. */ - case 913: value = 828; break; /* stclrl --> ldclrl. */ - case 914: value = 830; break; /* steorb --> ldeorb. */ - case 915: value = 831; break; /* steorh --> ldeorh. */ - case 916: value = 832; break; /* steor --> ldeor. */ - case 917: value = 834; break; /* steorlb --> ldeorlb. */ - case 918: value = 837; break; /* steorlh --> ldeorlh. */ - case 919: value = 840; break; /* steorl --> ldeorl. */ - case 920: value = 842; break; /* stsetb --> ldsetb. */ - case 921: value = 843; break; /* stseth --> ldseth. */ - case 922: value = 844; break; /* stset --> ldset. */ - case 923: value = 846; break; /* stsetlb --> ldsetlb. */ - case 924: value = 849; break; /* stsetlh --> ldsetlh. */ - case 925: value = 852; break; /* stsetl --> ldsetl. */ - case 926: value = 854; break; /* stsmaxb --> ldsmaxb. */ - case 927: value = 855; break; /* stsmaxh --> ldsmaxh. */ - case 928: value = 856; break; /* stsmax --> ldsmax. */ - case 929: value = 858; break; /* stsmaxlb --> ldsmaxlb. */ - case 930: value = 861; break; /* stsmaxlh --> ldsmaxlh. */ - case 931: value = 864; break; /* stsmaxl --> ldsmaxl. */ - case 932: value = 866; break; /* stsminb --> ldsminb. */ - case 933: value = 867; break; /* stsminh --> ldsminh. */ - case 934: value = 868; break; /* stsmin --> ldsmin. */ - case 935: value = 870; break; /* stsminlb --> ldsminlb. */ - case 936: value = 873; break; /* stsminlh --> ldsminlh. */ - case 937: value = 876; break; /* stsminl --> ldsminl. */ - case 938: value = 878; break; /* stumaxb --> ldumaxb. */ - case 939: value = 879; break; /* stumaxh --> ldumaxh. */ - case 940: value = 880; break; /* stumax --> ldumax. */ - case 941: value = 882; break; /* stumaxlb --> ldumaxlb. */ - case 942: value = 885; break; /* stumaxlh --> ldumaxlh. */ - case 943: value = 888; break; /* stumaxl --> ldumaxl. */ - case 944: value = 890; break; /* stuminb --> lduminb. */ - case 945: value = 891; break; /* stuminh --> lduminh. */ - case 946: value = 892; break; /* stumin --> ldumin. */ - case 947: value = 894; break; /* stuminlb --> lduminlb. */ - case 948: value = 897; break; /* stuminlh --> lduminlh. */ - case 949: value = 900; break; /* stuminl --> lduminl. */ - case 951: value = 950; break; /* mov --> movn. */ - case 953: value = 952; break; /* mov --> movz. */ - case 964: value = 963; break; /* sevl --> sev. */ - case 963: value = 962; break; /* sev --> wfi. */ - case 962: value = 961; break; /* wfi --> wfe. */ - case 961: value = 960; break; /* wfe --> yield. */ - case 960: value = 959; break; /* yield --> nop. */ - case 959: value = 958; break; /* nop --> hint. */ - case 973: value = 972; break; /* tlbi --> ic. */ - case 972: value = 971; break; /* ic --> dc. */ - case 971: value = 970; break; /* dc --> at. */ - case 970: value = 969; break; /* at --> sys. */ + case 516: value = 515; break; /* uxth --> uxtb. */ + case 515: value = 518; break; /* uxtb --> lsr. */ + case 518: value = 517; break; /* lsr --> lsl. */ + case 517: value = 514; break; /* lsl --> ubfx. */ + case 514: value = 513; break; /* ubfx --> ubfiz. */ + case 513: value = 512; break; /* ubfiz --> ubfm. */ + case 536: value = 535; break; /* cset --> cinc. */ + case 535: value = 534; break; /* cinc --> csinc. */ + case 539: value = 538; break; /* csetm --> cinv. */ + case 538: value = 537; break; /* cinv --> csinv. */ + case 541: value = 540; break; /* cneg --> csneg. */ + case 566: value = 565; break; /* lsl --> lslv. */ + case 568: value = 567; break; /* lsr --> lsrv. */ + case 570: value = 569; break; /* asr --> asrv. */ + case 572: value = 571; break; /* ror --> rorv. */ + case 582: value = 581; break; /* mul --> madd. */ + case 584: value = 583; break; /* mneg --> msub. */ + case 586: value = 585; break; /* smull --> smaddl. */ + case 588: value = 587; break; /* smnegl --> smsubl. */ + case 591: value = 590; break; /* umull --> umaddl. */ + case 593: value = 592; break; /* umnegl --> umsubl. */ + case 604: value = 603; break; /* ror --> extr. */ + case 761: value = 760; break; /* bic --> and. */ + case 763: value = 762; break; /* mov --> orr. */ + case 766: value = 765; break; /* tst --> ands. */ + case 771: value = 770; break; /* uxtw --> mov. */ + case 770: value = 769; break; /* mov --> orr. */ + case 773: value = 772; break; /* mvn --> orn. */ + case 777: value = 776; break; /* tst --> ands. */ + case 903: value = 807; break; /* staddb --> ldaddb. */ + case 904: value = 808; break; /* staddh --> ldaddh. */ + case 905: value = 809; break; /* stadd --> ldadd. */ + case 906: value = 811; break; /* staddlb --> ldaddlb. */ + case 907: value = 814; break; /* staddlh --> ldaddlh. */ + case 908: value = 817; break; /* staddl --> ldaddl. */ + case 909: value = 819; break; /* stclrb --> ldclrb. */ + case 910: value = 820; break; /* stclrh --> ldclrh. */ + case 911: value = 821; break; /* stclr --> ldclr. */ + case 912: value = 823; break; /* stclrlb --> ldclrlb. */ + case 913: value = 826; break; /* stclrlh --> ldclrlh. */ + case 914: value = 829; break; /* stclrl --> ldclrl. */ + case 915: value = 831; break; /* steorb --> ldeorb. */ + case 916: value = 832; break; /* steorh --> ldeorh. */ + case 917: value = 833; break; /* steor --> ldeor. */ + case 918: value = 835; break; /* steorlb --> ldeorlb. */ + case 919: value = 838; break; /* steorlh --> ldeorlh. */ + case 920: value = 841; break; /* steorl --> ldeorl. */ + case 921: value = 843; break; /* stsetb --> ldsetb. */ + case 922: value = 844; break; /* stseth --> ldseth. */ + case 923: value = 845; break; /* stset --> ldset. */ + case 924: value = 847; break; /* stsetlb --> ldsetlb. */ + case 925: value = 850; break; /* stsetlh --> ldsetlh. */ + case 926: value = 853; break; /* stsetl --> ldsetl. */ + case 927: value = 855; break; /* stsmaxb --> ldsmaxb. */ + case 928: value = 856; break; /* stsmaxh --> ldsmaxh. */ + case 929: value = 857; break; /* stsmax --> ldsmax. */ + case 930: value = 859; break; /* stsmaxlb --> ldsmaxlb. */ + case 931: value = 862; break; /* stsmaxlh --> ldsmaxlh. */ + case 932: value = 865; break; /* stsmaxl --> ldsmaxl. */ + case 933: value = 867; break; /* stsminb --> ldsminb. */ + case 934: value = 868; break; /* stsminh --> ldsminh. */ + case 935: value = 869; break; /* stsmin --> ldsmin. */ + case 936: value = 871; break; /* stsminlb --> ldsminlb. */ + case 937: value = 874; break; /* stsminlh --> ldsminlh. */ + case 938: value = 877; break; /* stsminl --> ldsminl. */ + case 939: value = 879; break; /* stumaxb --> ldumaxb. */ + case 940: value = 880; break; /* stumaxh --> ldumaxh. */ + case 941: value = 881; break; /* stumax --> ldumax. */ + case 942: value = 883; break; /* stumaxlb --> ldumaxlb. */ + case 943: value = 886; break; /* stumaxlh --> ldumaxlh. */ + case 944: value = 889; break; /* stumaxl --> ldumaxl. */ + case 945: value = 891; break; /* stuminb --> lduminb. */ + case 946: value = 892; break; /* stuminh --> lduminh. */ + case 947: value = 893; break; /* stumin --> ldumin. */ + case 948: value = 895; break; /* stuminlb --> lduminlb. */ + case 949: value = 898; break; /* stuminlh --> lduminlh. */ + case 950: value = 901; break; /* stuminl --> lduminl. */ + case 952: value = 951; break; /* mov --> movn. */ + case 954: value = 953; break; /* mov --> movz. */ + case 965: value = 964; break; /* sevl --> sev. */ + case 964: value = 963; break; /* sev --> wfi. */ + case 963: value = 962; break; /* wfi --> wfe. */ + case 962: value = 961; break; /* wfe --> yield. */ + case 961: value = 960; break; /* yield --> nop. */ + case 960: value = 959; break; /* nop --> hint. */ + case 974: value = 973; break; /* tlbi --> ic. */ + case 973: value = 972; break; /* ic --> dc. */ + case 972: value = 971; break; /* dc --> at. */ + case 971: value = 970; break; /* at --> sys. */ default: return NULL; } diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c index d744c256b6..efa1074f9d 100644 --- a/opcodes/aarch64-dis.c +++ b/opcodes/aarch64-dis.c @@ -1600,6 +1600,45 @@ convert_bfm_to_bfi (aarch64_inst *inst) return 0; } +/* The instruction written: + BFC , #, # + is equivalent to: + BFM , XZR, #((64-)&0x3f), #(-1). */ + +static int +convert_bfm_to_bfc (aarch64_inst *inst) +{ + int64_t immr, imms, val; + + /* Should have been assured by the base opcode value. */ + assert (inst->operands[1].reg.regno == 0x1f); + + immr = inst->operands[2].imm.value; + imms = inst->operands[3].imm.value; + val = inst->operands[2].qualifier == AARCH64_OPND_QLF_imm_0_31 ? 32 : 64; + if (imms < immr) + { + /* Drop XZR from the second operand. */ + copy_operand_info (inst, 1, 2); + copy_operand_info (inst, 2, 3); + inst->operands[3].type = AARCH64_OPND_NIL; + + /* Recalculate the immediates. */ + inst->operands[1].imm.value = (val - immr) & (val - 1); + inst->operands[2].imm.value = imms + 1; + + /* The two opcodes have different qualifiers for the operands; reset to + help the checking. */ + reset_operand_qualifier (inst, 1); + reset_operand_qualifier (inst, 2); + reset_operand_qualifier (inst, 3); + + return 1; + } + + return 0; +} + /* The instruction written: LSL , , # is equivalent to: @@ -1759,6 +1798,8 @@ convert_to_alias (aarch64_inst *inst, const aarch64_opcode *alias) case OP_BFI: case OP_UBFIZ: return convert_bfm_to_bfi (inst); + case OP_BFC: + return convert_bfm_to_bfc (inst); case OP_MOV_V: return convert_orr_to_mov (inst); case OP_MOV_IMM_WIDE: diff --git a/opcodes/aarch64-opc-2.c b/opcodes/aarch64-opc-2.c index 20b8ae84e1..485a3f553d 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, diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index 9323217f33..9d1aa56aec 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -1659,7 +1659,7 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx, break; case AARCH64_OPND_WIDTH: - assert (idx == 3 && opnds[idx-1].type == AARCH64_OPND_IMM + assert (idx > 1 && opnds[idx-1].type == AARCH64_OPND_IMM && opnds[0].type == AARCH64_OPND_Rd); size = get_upper_bound (qualifier); if (opnd->imm.value + opnds[idx-1].imm.value > size) diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index 86bc029654..ddfc57774f 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -236,6 +236,13 @@ QLF4(X,X,imm_0_63,imm_0_63), \ } +/* e.g. BFC , #, #. */ +#define QL_BF1 \ +{ \ + QLF3 (W, imm_0_31, imm_1_32), \ + QLF3 (X, imm_0_63, imm_1_64), \ +} + /* e.g. UBFIZ , , #, #. */ #define QL_BF2 \ { \ @@ -1226,6 +1233,8 @@ static const aarch64_feature_set aarch64_feature_lor = AARCH64_FEATURE (AARCH64_FEATURE_LOR, 0); static const aarch64_feature_set aarch64_feature_rdma = AARCH64_FEATURE (AARCH64_FEATURE_RDMA, 0); +static const aarch64_feature_set aarch64_feature_v8_2 = + AARCH64_FEATURE (AARCH64_FEATURE_V8_2, 0); #define CORE &aarch64_feature_v8 #define FP &aarch64_feature_fp @@ -1235,6 +1244,7 @@ static const aarch64_feature_set aarch64_feature_rdma = #define LSE &aarch64_feature_lse #define LOR &aarch64_feature_lor #define RDMA &aarch64_feature_rdma +#define ARMV8_2 &aarch64_feature_v8_2 struct aarch64_opcode aarch64_opcode_table[] = { @@ -1777,6 +1787,8 @@ struct aarch64_opcode aarch64_opcode_table[] = {"asr", 0x13000000, 0x7f800000, bitfield, OP_ASR_IMM, CORE, OP3 (Rd, Rn, IMM), QL_SHIFT, F_ALIAS | F_P2 | F_CONV}, {"bfm", 0x33000000, 0x7f800000, bitfield, 0, CORE, OP4 (Rd, Rn, IMMR, IMMS), QL_BF, F_HAS_ALIAS | F_SF | F_N}, {"bfi", 0x33000000, 0x7f800000, bitfield, OP_BFI, CORE, OP4 (Rd, Rn, IMM, WIDTH), QL_BF2, F_ALIAS | F_P1 | F_CONV}, + {"bfc", 0x330003e0, 0x7f8003e0, bitfield, OP_BFC, ARMV8_2, + OP3 (Rd, IMM, WIDTH), QL_BF1, F_ALIAS | F_P2 | F_CONV}, {"bfxil", 0x33000000, 0x7f800000, bitfield, OP_BFXIL, CORE, OP4 (Rd, Rn, IMM, WIDTH), QL_BF2, F_ALIAS | F_P1 | F_CONV}, {"ubfm", 0x53000000, 0x7f800000, bitfield, 0, CORE, OP4 (Rd, Rn, IMMR, IMMS), QL_BF, F_HAS_ALIAS | F_SF | F_N}, {"ubfiz", 0x53000000, 0x7f800000, bitfield, OP_UBFIZ, CORE, OP4 (Rd, Rn, IMM, WIDTH), QL_BF2, F_ALIAS | F_P1 | F_CONV}, -- 2.34.1