From: Richard Sandiford Date: Thu, 30 Mar 2023 10:09:16 +0000 (+0100) Subject: aarch64: Add the SME2 shift instructions X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=6efa660124f481a5ba415cedd195764ea6ac09fd;p=binutils-gdb.git aarch64: Add the SME2 shift instructions There are two instruction formats here: - SQRSHR, SQRSHRU and UQRSHR, which operate on lists of two or four registers. - SQRSHRN, SQRSHRUN and UQRSHRN, which operate on lists of four registers. These are the first SME2 instructions to have immediate operands. The patch makes sure that, when parsing SME2 instructions with immediate operands, the new predicate-as-counter registers are parsed as registers rather than as #-less immediates. --- diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c index 2c8d5916182..781c87bbc41 100644 --- a/gas/config/tc-aarch64.c +++ b/gas/config/tc-aarch64.c @@ -349,6 +349,13 @@ struct reloc_entry | REG_TYPE(FP_B) | REG_TYPE(FP_H) \ | REG_TYPE(FP_S) | REG_TYPE(FP_D) | REG_TYPE(FP_Q) \ | REG_TYPE(Z) | REG_TYPE(P)) \ + /* Likewise, but with predicate-as-counter registers added. */ \ + MULTI_REG_TYPE(R_ZR_SP_BHSDQ_VZP_PN, REG_TYPE(R_32) | REG_TYPE(R_64) \ + | REG_TYPE(SP_32) | REG_TYPE(SP_64) \ + | REG_TYPE(ZR_32) | REG_TYPE(ZR_64) | REG_TYPE(V) \ + | REG_TYPE(FP_B) | REG_TYPE(FP_H) \ + | REG_TYPE(FP_S) | REG_TYPE(FP_D) | REG_TYPE(FP_Q) \ + | REG_TYPE(Z) | REG_TYPE(P) | REG_TYPE(PN)) \ /* Any integer register; used for error messages only. */ \ MULTI_REG_TYPE(R_N, REG_TYPE(R_32) | REG_TYPE(R_64) \ | REG_TYPE(SP_32) | REG_TYPE(SP_64) \ @@ -6527,9 +6534,11 @@ parse_operands (char *str, const aarch64_opcode *opcode) clear_error (); skip_whitespace (str); - if (AARCH64_CPU_HAS_ANY_FEATURES (*opcode->avariant, - AARCH64_FEATURE_SVE - | AARCH64_FEATURE_SVE2)) + if (AARCH64_CPU_HAS_FEATURE (*opcode->avariant, AARCH64_FEATURE_SME2)) + imm_reg_type = REG_TYPE_R_ZR_SP_BHSDQ_VZP_PN; + else if (AARCH64_CPU_HAS_ANY_FEATURES (*opcode->avariant, + AARCH64_FEATURE_SVE + | AARCH64_FEATURE_SVE2)) imm_reg_type = REG_TYPE_R_ZR_SP_BHSDQ_VZP; else imm_reg_type = REG_TYPE_R_ZR_BHSDQ_V; @@ -6892,6 +6901,8 @@ parse_operands (char *str, const aarch64_opcode *opcode) case AARCH64_OPND_SVE_SHLIMM_PRED: case AARCH64_OPND_SVE_SHLIMM_UNPRED: case AARCH64_OPND_SVE_SHLIMM_UNPRED_22: + case AARCH64_OPND_SME_SHRIMM4: + case AARCH64_OPND_SME_SHRIMM5: case AARCH64_OPND_SVE_SHRIMM_PRED: case AARCH64_OPND_SVE_SHRIMM_UNPRED: case AARCH64_OPND_SVE_SHRIMM_UNPRED_22: diff --git a/gas/testsuite/gas/aarch64/sme2-27-invalid.d b/gas/testsuite/gas/aarch64/sme2-27-invalid.d new file mode 100644 index 00000000000..7b34ec4ce67 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-27-invalid.d @@ -0,0 +1,3 @@ +#as: -march=armv8-a +#source: sme2-27-invalid.s +#error_output: sme2-27-invalid.l diff --git a/gas/testsuite/gas/aarch64/sme2-27-invalid.l b/gas/testsuite/gas/aarch64/sme2-27-invalid.l new file mode 100644 index 00000000000..9efaa04ca90 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-27-invalid.l @@ -0,0 +1,31 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 1 -- `sqrshr 0,{z0\.s-z1\.s},#1' +[^ :]+:[0-9]+: Error: expected '{' at operand 2 -- `sqrshr z0\.h,0,#1' +[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `sqrshr z0\.h,{z1\.s-z2\.s},#1' +[^ :]+:[0-9]+: Error: immediate value out of range 1 to 16 at operand 3 -- `sqrshr z0\.h,{z0\.s-z1\.s},#0' +[^ :]+:[0-9]+: Error: immediate value out of range 1 to 16 at operand 3 -- `sqrshr z0\.h,{z0\.s-z1\.s},#17' +[^ :]+:[0-9]+: Error: operand mismatch -- `sqrshr z0\.s,{z0\.d-z1\.d},#1' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: sqrshr z0\.h, {z0\.d-z1\.d}, #1 +[^ :]+:[0-9]+: Info: other valid variant\(s\): +[^ :]+:[0-9]+: Info: sqrshr z0\.b, {z0\.s-z1\.s}, #1 +[^ :]+:[0-9]+: Error: immediate operand required at operand 3 -- `sqrshr z0\.h,{z0\.s-z1\.s},x0' +[^ :]+:[0-9]+: Error: immediate operand required at operand 3 -- `sqrshr z0\.h,{z0\.s-z1\.s},z0\.s' +[^ :]+:[0-9]+: Error: immediate operand required at operand 3 -- `sqrshr z0\.h,{z0\.s-z1\.s},p0' +[^ :]+:[0-9]+: Error: immediate operand required at operand 3 -- `sqrshr z0\.h,{z0\.s-z1\.s},pn0' +[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `sqrshr z0\.b,{z1\.s-z4\.s},#1' +[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `sqrshr z0\.b,{z2\.s-z5\.s},#1' +[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `sqrshr z0\.b,{z3\.s-z6\.s},#1' +[^ :]+:[0-9]+: Error: immediate value out of range 1 to 32 at operand 3 -- `sqrshr z0\.b,{z0\.s-z3\.s},#-1' +[^ :]+:[0-9]+: Error: immediate value out of range 1 to 32 at operand 3 -- `sqrshr z0\.b,{z0\.s-z3\.s},#0' +[^ :]+:[0-9]+: Error: immediate value out of range 1 to 32 at operand 3 -- `sqrshr z0\.b,{z0\.s-z3\.s},#33' +[^ :]+:[0-9]+: Error: operand mismatch -- `sqrshr z0\.b,{z0\.d-z3\.d},#1' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: sqrshr z0\.b, {z0\.s-z3\.s}, #1 +[^ :]+:[0-9]+: Info: other valid variant\(s\): +[^ :]+:[0-9]+: Info: sqrshr z0\.h, {z0\.d-z3\.d}, #1 +[^ :]+:[0-9]+: Error: operand mismatch -- `sqrshr z0\.b,{z0\.d-z3\.d},#65' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: sqrshr z0\.b, {z0\.s-z3\.s}, #65 +[^ :]+:[0-9]+: Info: other valid variant\(s\): +[^ :]+:[0-9]+: Info: sqrshr z0\.h, {z0\.d-z3\.d}, #65 diff --git a/gas/testsuite/gas/aarch64/sme2-27-invalid.s b/gas/testsuite/gas/aarch64/sme2-27-invalid.s new file mode 100644 index 00000000000..3a613af9a8d --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-27-invalid.s @@ -0,0 +1,25 @@ + .equ x0, 1 + .equ z0.s, 2 + .equ p0, 3 + .equ pn0, 4 + + sqrshr 0, { z0.s - z1.s }, #1 + sqrshr z0.h, 0, #1 + + sqrshr z0.h, { z1.s - z2.s }, #1 + sqrshr z0.h, { z0.s - z1.s }, #0 + sqrshr z0.h, { z0.s - z1.s }, #17 + sqrshr z0.s, { z0.d - z1.d }, #1 + sqrshr z0.h, { z0.s - z1.s }, x0 + sqrshr z0.h, { z0.s - z1.s }, z0.s + sqrshr z0.h, { z0.s - z1.s }, p0 + sqrshr z0.h, { z0.s - z1.s }, pn0 + + sqrshr z0.b, { z1.s - z4.s }, #1 + sqrshr z0.b, { z2.s - z5.s }, #1 + sqrshr z0.b, { z3.s - z6.s }, #1 + sqrshr z0.b, { z0.s - z3.s }, #-1 + sqrshr z0.b, { z0.s - z3.s }, #0 + sqrshr z0.b, { z0.s - z3.s }, #33 + sqrshr z0.b, { z0.d - z3.d }, #1 + sqrshr z0.b, { z0.d - z3.d }, #65 // Double error diff --git a/gas/testsuite/gas/aarch64/sme2-27-noarch.d b/gas/testsuite/gas/aarch64/sme2-27-noarch.d new file mode 100644 index 00000000000..f0e735db033 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-27-noarch.d @@ -0,0 +1,3 @@ +#as: -march=armv8-a+sme +#source: sme2-27.s +#error_output: sme2-27-noarch.l diff --git a/gas/testsuite/gas/aarch64/sme2-27-noarch.l b/gas/testsuite/gas/aarch64/sme2-27-noarch.l new file mode 100644 index 00000000000..72213e0c281 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-27-noarch.l @@ -0,0 +1,50 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.h,{z0\.s-z1\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z31\.h,{z0\.s-z1\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.h,{z30\.s-z31\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.h,{z0\.s-z1\.s},#16' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z14\.h,{z22\.s-z23\.s},#7' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.h,{z0\.s-z1\.s},#x0' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.h,{z0\.s-z1\.s},#z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.h,{z0\.s-z1\.s},#p0' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.h,{z0\.s-z1\.s},#pn0' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.b,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z31\.b,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.b,{z28\.s-z31\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.b,{z0\.s-z3\.s},#32' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z6\.b,{z12\.s-z15\.s},#25' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.h,{z0\.d-z3\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z31\.h,{z0\.d-z3\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.h,{z28\.d-z31\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z0\.h,{z0\.d-z3\.d},#64' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshr z25\.h,{z20\.d-z23\.d},#50' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z0\.h,{z0\.s-z1\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z31\.h,{z0\.s-z1\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z0\.h,{z30\.s-z31\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z0\.h,{z0\.s-z1\.s},#16' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z14\.h,{z22\.s-z23\.s},#7' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z0\.b,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z31\.b,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z0\.b,{z28\.s-z31\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z0\.b,{z0\.s-z3\.s},#32' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z6\.b,{z12\.s-z15\.s},#25' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z0\.h,{z0\.d-z3\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z31\.h,{z0\.d-z3\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z0\.h,{z28\.d-z31\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z0\.h,{z0\.d-z3\.d},#64' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshru z25\.h,{z20\.d-z23\.d},#50' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z0\.h,{z0\.s-z1\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z31\.h,{z0\.s-z1\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z0\.h,{z30\.s-z31\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z0\.h,{z0\.s-z1\.s},#16' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z14\.h,{z22\.s-z23\.s},#7' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z0\.b,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z31\.b,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z0\.b,{z28\.s-z31\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z0\.b,{z0\.s-z3\.s},#32' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z6\.b,{z12\.s-z15\.s},#25' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z0\.h,{z0\.d-z3\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z31\.h,{z0\.d-z3\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z0\.h,{z28\.d-z31\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z0\.h,{z0\.d-z3\.d},#64' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshr z25\.h,{z20\.d-z23\.d},#50' diff --git a/gas/testsuite/gas/aarch64/sme2-27.d b/gas/testsuite/gas/aarch64/sme2-27.d new file mode 100644 index 00000000000..e217715489e --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-27.d @@ -0,0 +1,62 @@ +#as: -march=armv8-a+sme2 +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +[^:]+: c1efd400 sqrshr z0\.h, {z0\.s-z1\.s}, #1 +[^:]+: c1efd41f sqrshr z31\.h, {z0\.s-z1\.s}, #1 +[^:]+: c1efd7c0 sqrshr z0\.h, {z30\.s-z31\.s}, #1 +[^:]+: c1e0d400 sqrshr z0\.h, {z0\.s-z1\.s}, #16 +[^:]+: c1e9d6ce sqrshr z14\.h, {z22\.s-z23\.s}, #7 +[^:]+: c1efd400 sqrshr z0\.h, {z0\.s-z1\.s}, #1 +[^:]+: c1eed400 sqrshr z0\.h, {z0\.s-z1\.s}, #2 +[^:]+: c1edd400 sqrshr z0\.h, {z0\.s-z1\.s}, #3 +[^:]+: c1ecd400 sqrshr z0\.h, {z0\.s-z1\.s}, #4 +[^:]+: c17fd800 sqrshr z0\.b, {z0\.s-z3\.s}, #1 +[^:]+: c17fd81f sqrshr z31\.b, {z0\.s-z3\.s}, #1 +[^:]+: c17fdb80 sqrshr z0\.b, {z28\.s-z31\.s}, #1 +[^:]+: c160d800 sqrshr z0\.b, {z0\.s-z3\.s}, #32 +[^:]+: c167d986 sqrshr z6\.b, {z12\.s-z15\.s}, #25 +[^:]+: c1ffd800 sqrshr z0\.h, {z0\.d-z3\.d}, #1 +[^:]+: c1ffd81f sqrshr z31\.h, {z0\.d-z3\.d}, #1 +[^:]+: c1ffdb80 sqrshr z0\.h, {z28\.d-z31\.d}, #1 +[^:]+: c1a0d800 sqrshr z0\.h, {z0\.d-z3\.d}, #64 +[^:]+: c1aeda99 sqrshr z25\.h, {z20\.d-z23\.d}, #50 +[^:]+: c13fd800 \.inst 0xc13fd800 ; undefined +[^:]+: c120d800 \.inst 0xc120d800 ; undefined +[^:]+: c1ffd400 sqrshru z0\.h, {z0\.s-z1\.s}, #1 +[^:]+: c1ffd41f sqrshru z31\.h, {z0\.s-z1\.s}, #1 +[^:]+: c1ffd7c0 sqrshru z0\.h, {z30\.s-z31\.s}, #1 +[^:]+: c1f0d400 sqrshru z0\.h, {z0\.s-z1\.s}, #16 +[^:]+: c1f9d6ce sqrshru z14\.h, {z22\.s-z23\.s}, #7 +[^:]+: c17fd840 sqrshru z0\.b, {z0\.s-z3\.s}, #1 +[^:]+: c17fd85f sqrshru z31\.b, {z0\.s-z3\.s}, #1 +[^:]+: c17fdbc0 sqrshru z0\.b, {z28\.s-z31\.s}, #1 +[^:]+: c160d840 sqrshru z0\.b, {z0\.s-z3\.s}, #32 +[^:]+: c167d9c6 sqrshru z6\.b, {z12\.s-z15\.s}, #25 +[^:]+: c1ffd840 sqrshru z0\.h, {z0\.d-z3\.d}, #1 +[^:]+: c1ffd85f sqrshru z31\.h, {z0\.d-z3\.d}, #1 +[^:]+: c1ffdbc0 sqrshru z0\.h, {z28\.d-z31\.d}, #1 +[^:]+: c1a0d840 sqrshru z0\.h, {z0\.d-z3\.d}, #64 +[^:]+: c1aedad9 sqrshru z25\.h, {z20\.d-z23\.d}, #50 +[^:]+: c1efd420 uqrshr z0\.h, {z0\.s-z1\.s}, #1 +[^:]+: c1efd43f uqrshr z31\.h, {z0\.s-z1\.s}, #1 +[^:]+: c1efd7e0 uqrshr z0\.h, {z30\.s-z31\.s}, #1 +[^:]+: c1e0d420 uqrshr z0\.h, {z0\.s-z1\.s}, #16 +[^:]+: c1e9d6ee uqrshr z14\.h, {z22\.s-z23\.s}, #7 +[^:]+: c17fd820 uqrshr z0\.b, {z0\.s-z3\.s}, #1 +[^:]+: c17fd83f uqrshr z31\.b, {z0\.s-z3\.s}, #1 +[^:]+: c17fdba0 uqrshr z0\.b, {z28\.s-z31\.s}, #1 +[^:]+: c160d820 uqrshr z0\.b, {z0\.s-z3\.s}, #32 +[^:]+: c167d9a6 uqrshr z6\.b, {z12\.s-z15\.s}, #25 +[^:]+: c1ffd820 uqrshr z0\.h, {z0\.d-z3\.d}, #1 +[^:]+: c1ffd83f uqrshr z31\.h, {z0\.d-z3\.d}, #1 +[^:]+: c1ffdba0 uqrshr z0\.h, {z28\.d-z31\.d}, #1 +[^:]+: c1a0d820 uqrshr z0\.h, {z0\.d-z3\.d}, #64 +[^:]+: c1aedab9 uqrshr z25\.h, {z20\.d-z23\.d}, #50 +[^:]+: c13fd820 \.inst 0xc13fd820 ; undefined +[^:]+: c120d820 \.inst 0xc120d820 ; undefined diff --git a/gas/testsuite/gas/aarch64/sme2-27.s b/gas/testsuite/gas/aarch64/sme2-27.s new file mode 100644 index 00000000000..e7e04ba68c9 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-27.s @@ -0,0 +1,71 @@ + .equ x0, 1 + .equ z0.s, 2 + .equ p0, 3 + .equ pn0, 4 + + sqrshr z0.h, { z0.s - z1.s }, #1 + sqrshr z31.h, { z0.s - z1.s }, #1 + sqrshr z0.h, { z30.s - z31.s }, #1 + sqrshr z0.h, { z0.s - z1.s }, #16 + sqrshr z14.h, { z22.s - z23.s }, #7 + + sqrshr z0.h, { z0.s - z1.s }, #x0 + sqrshr z0.h, { z0.s - z1.s }, #z0.s + sqrshr z0.h, { z0.s - z1.s }, #p0 + sqrshr z0.h, { z0.s - z1.s }, #pn0 + + sqrshr z0.b, { z0.s - z3.s }, #1 + sqrshr z31.b, { z0.s - z3.s }, #1 + sqrshr z0.b, { z28.s - z31.s }, #1 + sqrshr z0.b, { z0.s - z3.s }, #32 + sqrshr z6.b, { z12.s - z15.s }, #25 + + sqrshr z0.h, { z0.d - z3.d }, #1 + sqrshr z31.h, { z0.d - z3.d }, #1 + sqrshr z0.h, { z28.d - z31.d }, #1 + sqrshr z0.h, { z0.d - z3.d }, #64 + sqrshr z25.h, { z20.d - z23.d }, #50 + + // Invalid SQRSHR + .inst 0xc13fd800 + .inst 0xc120d800 + + sqrshru z0.h, { z0.s - z1.s }, #1 + sqrshru z31.h, { z0.s - z1.s }, #1 + sqrshru z0.h, { z30.s - z31.s }, #1 + sqrshru z0.h, { z0.s - z1.s }, #16 + sqrshru z14.h, { z22.s - z23.s }, #7 + + sqrshru z0.b, { z0.s - z3.s }, #1 + sqrshru z31.b, { z0.s - z3.s }, #1 + sqrshru z0.b, { z28.s - z31.s }, #1 + sqrshru z0.b, { z0.s - z3.s }, #32 + sqrshru z6.b, { z12.s - z15.s }, #25 + + sqrshru z0.h, { z0.d - z3.d }, #1 + sqrshru z31.h, { z0.d - z3.d }, #1 + sqrshru z0.h, { z28.d - z31.d }, #1 + sqrshru z0.h, { z0.d - z3.d }, #64 + sqrshru z25.h, { z20.d - z23.d }, #50 + + uqrshr z0.h, { z0.s - z1.s }, #1 + uqrshr z31.h, { z0.s - z1.s }, #1 + uqrshr z0.h, { z30.s - z31.s }, #1 + uqrshr z0.h, { z0.s - z1.s }, #16 + uqrshr z14.h, { z22.s - z23.s }, #7 + + uqrshr z0.b, { z0.s - z3.s }, #1 + uqrshr z31.b, { z0.s - z3.s }, #1 + uqrshr z0.b, { z28.s - z31.s }, #1 + uqrshr z0.b, { z0.s - z3.s }, #32 + uqrshr z6.b, { z12.s - z15.s }, #25 + + uqrshr z0.h, { z0.d - z3.d }, #1 + uqrshr z31.h, { z0.d - z3.d }, #1 + uqrshr z0.h, { z28.d - z31.d }, #1 + uqrshr z0.h, { z0.d - z3.d }, #64 + uqrshr z25.h, { z20.d - z23.d }, #50 + + // Invalid UQRSHR + .inst 0xc13fd820 + .inst 0xc120d820 diff --git a/gas/testsuite/gas/aarch64/sme2-28-invalid.d b/gas/testsuite/gas/aarch64/sme2-28-invalid.d new file mode 100644 index 00000000000..dbe03ce0a7c --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-28-invalid.d @@ -0,0 +1,3 @@ +#as: -march=armv8-a +#source: sme2-28-invalid.s +#error_output: sme2-28-invalid.l diff --git a/gas/testsuite/gas/aarch64/sme2-28-invalid.l b/gas/testsuite/gas/aarch64/sme2-28-invalid.l new file mode 100644 index 00000000000..615f8c35039 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-28-invalid.l @@ -0,0 +1,19 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: expected a register at operand 1 -- `sqrshrn 0,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: expected '{' at operand 2 -- `sqrshrn z0\.b,0,#1' +[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `sqrshrn z0\.b,{z1\.s-z4\.s},#1' +[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `sqrshrn z0\.b,{z2\.s-z5\.s},#1' +[^ :]+:[0-9]+: Error: start register out of range at operand 2 -- `sqrshrn z0\.b,{z3\.s-z6\.s},#1' +[^ :]+:[0-9]+: Error: immediate value out of range 1 to 32 at operand 3 -- `sqrshrn z0\.b,{z0\.s-z3\.s},#-1' +[^ :]+:[0-9]+: Error: immediate value out of range 1 to 32 at operand 3 -- `sqrshrn z0\.b,{z0\.s-z3\.s},#0' +[^ :]+:[0-9]+: Error: immediate value out of range 1 to 32 at operand 3 -- `sqrshrn z0\.b,{z0\.s-z3\.s},#33' +[^ :]+:[0-9]+: Error: operand mismatch -- `sqrshrn z0\.b,{z0\.d-z3\.d},#1' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: sqrshrn z0\.b, {z0\.s-z3\.s}, #1 +[^ :]+:[0-9]+: Info: other valid variant\(s\): +[^ :]+:[0-9]+: Info: sqrshrn z0\.h, {z0\.d-z3\.d}, #1 +[^ :]+:[0-9]+: Error: operand mismatch -- `sqrshrn z0\.b,{z0\.d-z3\.d},#65' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: sqrshrn z0\.b, {z0\.s-z3\.s}, #65 +[^ :]+:[0-9]+: Info: other valid variant\(s\): +[^ :]+:[0-9]+: Info: sqrshrn z0\.h, {z0\.d-z3\.d}, #65 diff --git a/gas/testsuite/gas/aarch64/sme2-28-invalid.s b/gas/testsuite/gas/aarch64/sme2-28-invalid.s new file mode 100644 index 00000000000..f587049967e --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-28-invalid.s @@ -0,0 +1,11 @@ + sqrshrn 0, { z0.s - z3.s }, #1 + sqrshrn z0.b, 0, #1 + + sqrshrn z0.b, { z1.s - z4.s }, #1 + sqrshrn z0.b, { z2.s - z5.s }, #1 + sqrshrn z0.b, { z3.s - z6.s }, #1 + sqrshrn z0.b, { z0.s - z3.s }, #-1 + sqrshrn z0.b, { z0.s - z3.s }, #0 + sqrshrn z0.b, { z0.s - z3.s }, #33 + sqrshrn z0.b, { z0.d - z3.d }, #1 + sqrshrn z0.b, { z0.d - z3.d }, #65 // Double error diff --git a/gas/testsuite/gas/aarch64/sme2-28-noarch.d b/gas/testsuite/gas/aarch64/sme2-28-noarch.d new file mode 100644 index 00000000000..de378eb1998 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-28-noarch.d @@ -0,0 +1,3 @@ +#as: -march=armv8-a+sme +#source: sme2-28.s +#error_output: sme2-28-noarch.l diff --git a/gas/testsuite/gas/aarch64/sme2-28-noarch.l b/gas/testsuite/gas/aarch64/sme2-28-noarch.l new file mode 100644 index 00000000000..a3762f1b9a9 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-28-noarch.l @@ -0,0 +1,26 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrn z0\.b,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrn z31\.b,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrn z0\.b,{z28\.s-z31\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrn z0\.b,{z0\.s-z3\.s},#32' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrn z6\.b,{z12\.s-z15\.s},#25' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrn z0\.h,{z0\.d-z3\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrn z31\.h,{z0\.d-z3\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrn z0\.h,{z28\.d-z31\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrn z0\.h,{z0\.d-z3\.d},#64' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrn z25\.h,{z20\.d-z23\.d},#50' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrun z0\.b,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrun z31\.b,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrun z0\.b,{z28\.s-z31\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrun z0\.b,{z0\.s-z3\.s},#32' +[^ :]+:[0-9]+: Error: selected processor does not support `sqrshrun z6\.b,{z12\.s-z15\.s},#25' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshrn z0\.b,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshrn z31\.b,{z0\.s-z3\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshrn z0\.b,{z28\.s-z31\.s},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshrn z0\.b,{z0\.s-z3\.s},#32' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshrn z6\.b,{z12\.s-z15\.s},#25' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshrn z0\.h,{z0\.d-z3\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshrn z31\.h,{z0\.d-z3\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshrn z0\.h,{z28\.d-z31\.d},#1' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshrn z0\.h,{z0\.d-z3\.d},#64' +[^ :]+:[0-9]+: Error: selected processor does not support `uqrshrn z25\.h,{z20\.d-z23\.d},#50' diff --git a/gas/testsuite/gas/aarch64/sme2-28.d b/gas/testsuite/gas/aarch64/sme2-28.d new file mode 100644 index 00000000000..b72273dd548 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-28.d @@ -0,0 +1,34 @@ +#as: -march=armv8-a+sme2 +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +[^:]+: c17fdc00 sqrshrn z0\.b, {z0\.s-z3\.s}, #1 +[^:]+: c17fdc1f sqrshrn z31\.b, {z0\.s-z3\.s}, #1 +[^:]+: c17fdf80 sqrshrn z0\.b, {z28\.s-z31\.s}, #1 +[^:]+: c160dc00 sqrshrn z0\.b, {z0\.s-z3\.s}, #32 +[^:]+: c167dd86 sqrshrn z6\.b, {z12\.s-z15\.s}, #25 +[^:]+: c1ffdc00 sqrshrn z0\.h, {z0\.d-z3\.d}, #1 +[^:]+: c1ffdc1f sqrshrn z31\.h, {z0\.d-z3\.d}, #1 +[^:]+: c1ffdf80 sqrshrn z0\.h, {z28\.d-z31\.d}, #1 +[^:]+: c1a0dc00 sqrshrn z0\.h, {z0\.d-z3\.d}, #64 +[^:]+: c1aede99 sqrshrn z25\.h, {z20\.d-z23\.d}, #50 +[^:]+: c17fdc40 sqrshrun z0\.b, {z0\.s-z3\.s}, #1 +[^:]+: c17fdc5f sqrshrun z31\.b, {z0\.s-z3\.s}, #1 +[^:]+: c17fdfc0 sqrshrun z0\.b, {z28\.s-z31\.s}, #1 +[^:]+: c160dc40 sqrshrun z0\.b, {z0\.s-z3\.s}, #32 +[^:]+: c167ddc6 sqrshrun z6\.b, {z12\.s-z15\.s}, #25 +[^:]+: c17fdc20 uqrshrn z0\.b, {z0\.s-z3\.s}, #1 +[^:]+: c17fdc3f uqrshrn z31\.b, {z0\.s-z3\.s}, #1 +[^:]+: c17fdfa0 uqrshrn z0\.b, {z28\.s-z31\.s}, #1 +[^:]+: c160dc20 uqrshrn z0\.b, {z0\.s-z3\.s}, #32 +[^:]+: c167dda6 uqrshrn z6\.b, {z12\.s-z15\.s}, #25 +[^:]+: c1ffdc20 uqrshrn z0\.h, {z0\.d-z3\.d}, #1 +[^:]+: c1ffdc3f uqrshrn z31\.h, {z0\.d-z3\.d}, #1 +[^:]+: c1ffdfa0 uqrshrn z0\.h, {z28\.d-z31\.d}, #1 +[^:]+: c1a0dc20 uqrshrn z0\.h, {z0\.d-z3\.d}, #64 +[^:]+: c1aedeb9 uqrshrn z25\.h, {z20\.d-z23\.d}, #50 diff --git a/gas/testsuite/gas/aarch64/sme2-28.s b/gas/testsuite/gas/aarch64/sme2-28.s new file mode 100644 index 00000000000..3b51448288e --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-28.s @@ -0,0 +1,29 @@ + sqrshrn z0.b, { z0.s - z3.s }, #1 + sqrshrn z31.b, { z0.s - z3.s }, #1 + sqrshrn z0.b, { z28.s - z31.s }, #1 + sqrshrn z0.b, { z0.s - z3.s }, #32 + sqrshrn z6.b, { z12.s - z15.s }, #25 + + sqrshrn z0.h, { z0.d - z3.d }, #1 + sqrshrn z31.h, { z0.d - z3.d }, #1 + sqrshrn z0.h, { z28.d - z31.d }, #1 + sqrshrn z0.h, { z0.d - z3.d }, #64 + sqrshrn z25.h, { z20.d - z23.d }, #50 + + sqrshrun z0.b, { z0.s - z3.s }, #1 + sqrshrun z31.b, { z0.s - z3.s }, #1 + sqrshrun z0.b, { z28.s - z31.s }, #1 + sqrshrun z0.b, { z0.s - z3.s }, #32 + sqrshrun z6.b, { z12.s - z15.s }, #25 + + uqrshrn z0.b, { z0.s - z3.s }, #1 + uqrshrn z31.b, { z0.s - z3.s }, #1 + uqrshrn z0.b, { z28.s - z31.s }, #1 + uqrshrn z0.b, { z0.s - z3.s }, #32 + uqrshrn z6.b, { z12.s - z15.s }, #25 + + uqrshrn z0.h, { z0.d - z3.d }, #1 + uqrshrn z31.h, { z0.d - z3.d }, #1 + uqrshrn z0.h, { z28.d - z31.d }, #1 + uqrshrn z0.h, { z0.d - z3.d }, #64 + uqrshrn z25.h, { z20.d - z23.d }, #50 diff --git a/include/opcode/aarch64.h b/include/opcode/aarch64.h index b445bf758fc..a4f1623d4ca 100644 --- a/include/opcode/aarch64.h +++ b/include/opcode/aarch64.h @@ -520,6 +520,8 @@ enum aarch64_opnd AARCH64_OPND_SME_ADDR_RI_U4xVL, /* SME [{, #, MUL VL}]. */ AARCH64_OPND_SME_SM_ZA, /* SME {SM | ZA}. */ AARCH64_OPND_SME_PnT_Wm_imm, /* SME .[, #]. */ + AARCH64_OPND_SME_SHRIMM4, /* 4-bit right shift, bits [19:16]. */ + AARCH64_OPND_SME_SHRIMM5, /* size + 5-bit right shift, bits [23:22,20:16]. */ AARCH64_OPND_SME_Zm_INDEX1, /* Zn.T[index], bits [19:16,10]. */ AARCH64_OPND_SME_Zm_INDEX2, /* Zn.T[index], bits [19:16,11:10]. */ AARCH64_OPND_SME_Zm_INDEX3_1, /* Zn.T[index], bits [19:16,10,2:1]. */ @@ -713,6 +715,7 @@ enum aarch64_insn_class sme_mov, sme_ldr, sme_psel, + sme_shift, sme_size_12_bhs, sme_size_12_hs, sme_size_22, diff --git a/opcodes/aarch64-asm-2.c b/opcodes/aarch64-asm-2.c index 3d439d4e688..03d1c0e1221 100644 --- a/opcodes/aarch64-asm-2.c +++ b/opcodes/aarch64-asm-2.c @@ -685,7 +685,7 @@ aarch64_insert_operand (const aarch64_operand *self, case 33: case 34: case 35: - case 268: + case 270: return aarch64_ins_reglane (self, info, code, inst, errors); case 36: return aarch64_ins_reglist (self, info, code, inst, errors); @@ -731,12 +731,12 @@ aarch64_insert_operand (const aarch64_operand *self, case 193: case 194: case 237: - case 262: - case 263: + case 264: case 265: case 267: - case 272: - case 273: + case 269: + case 274: + case 275: return aarch64_ins_imm (self, info, code, inst, errors); case 44: case 45: @@ -805,8 +805,8 @@ aarch64_insert_operand (const aarch64_operand *self, case 107: return aarch64_ins_prfop (self, info, code, inst, errors); case 108: - case 264: case 266: + case 268: return aarch64_ins_none (self, info, code, inst, errors); case 109: return aarch64_ins_hint (self, info, code, inst, errors); @@ -886,6 +886,7 @@ aarch64_insert_operand (const aarch64_operand *self, case 184: case 185: case 186: + case 250: return aarch64_ins_sve_shrimm (self, info, code, inst, errors); case 204: case 205: @@ -919,8 +920,6 @@ aarch64_insert_operand (const aarch64_operand *self, return aarch64_ins_sme_za_hv_tiles_range (self, info, code, inst, errors); case 235: case 236: - case 249: - case 250: case 251: case 252: case 253: @@ -932,6 +931,8 @@ aarch64_insert_operand (const aarch64_operand *self, case 259: case 260: case 261: + case 262: + case 263: return aarch64_ins_simple_index (self, info, code, inst, errors); case 239: case 240: @@ -947,9 +948,11 @@ aarch64_insert_operand (const aarch64_operand *self, return aarch64_ins_sme_sm_za (self, info, code, inst, errors); case 248: return aarch64_ins_sme_pred_reg_with_index (self, info, code, inst, errors); - case 269: - case 270: + case 249: + return aarch64_ins_plain_shrimm (self, info, code, inst, errors); case 271: + case 272: + case 273: return aarch64_ins_x0_to_x30 (self, info, code, inst, errors); default: assert (0); abort (); } diff --git a/opcodes/aarch64-asm.c b/opcodes/aarch64-asm.c index 5f2e51044ce..0025cb6f80c 100644 --- a/opcodes/aarch64-asm.c +++ b/opcodes/aarch64-asm.c @@ -1624,6 +1624,19 @@ aarch64_ins_simple_index (const aarch64_operand *self, return true; } +/* Insert a plain shift-right immediate, when there is only a single + element size. */ +bool +aarch64_ins_plain_shrimm (const aarch64_operand *self, + const aarch64_opnd_info *info, aarch64_insn *code, + const aarch64_inst *inst ATTRIBUTE_UNUSED, + aarch64_operand_error *errors ATTRIBUTE_UNUSED) +{ + unsigned int base = 1 << get_operand_field_width (self, 0); + insert_field (self->fields[0], code, base - info->imm.value, 0); + return true; +} + /* Miscellaneous encoding functions. */ /* Encode size[0], i.e. bit 22, for @@ -1980,6 +1993,7 @@ aarch64_encode_variant_using_iclass (struct aarch64_inst *inst) 0, 2, FLD_SVE_M_14, FLD_size); break; + case sme_shift: case sve_index: case sve_shift_pred: case sve_shift_unpred: diff --git a/opcodes/aarch64-asm.h b/opcodes/aarch64-asm.h index 4cc48dfdcb6..0028e8bbaed 100644 --- a/opcodes/aarch64-asm.h +++ b/opcodes/aarch64-asm.h @@ -111,6 +111,7 @@ AARCH64_DECL_OPD_INSERTER (ins_imm_rotate1); AARCH64_DECL_OPD_INSERTER (ins_imm_rotate2); AARCH64_DECL_OPD_INSERTER (ins_x0_to_x30); AARCH64_DECL_OPD_INSERTER (ins_simple_index); +AARCH64_DECL_OPD_INSERTER (ins_plain_shrimm); #undef AARCH64_DECL_OPD_INSERTER diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c index 55a01e6e593..d82c37498e7 100644 --- a/opcodes/aarch64-dis-2.c +++ b/opcodes/aarch64-dis-2.c @@ -188,7 +188,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000x10x100xxxxxxxxxxxxxxxxx zero. */ - return 2874; + return 2883; } } } @@ -856,7 +856,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx000xxxxxxxxxxxx0 st1b. */ - return 2705; + return 2711; } else { @@ -864,7 +864,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx100xxxxxxxxxxxx0 st1b. */ - return 2706; + return 2712; } } else @@ -875,7 +875,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx010xxxxxxxxxxxx0 st1w. */ - return 2729; + return 2735; } else { @@ -883,7 +883,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx110xxxxxxxxxxxx0 st1w. */ - return 2730; + return 2736; } } } @@ -897,7 +897,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx001xxxxxxxxxxxx0 st1h. */ - return 2721; + return 2727; } else { @@ -905,7 +905,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx101xxxxxxxxxxxx0 st1h. */ - return 2722; + return 2728; } } else @@ -916,7 +916,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx011xxxxxxxxxxxx0 st1d. */ - return 2713; + return 2719; } else { @@ -924,7 +924,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx111xxxxxxxxxxxx0 st1d. */ - return 2714; + return 2720; } } } @@ -941,7 +941,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx000xxxxxxxxxxxx1 stnt1b. */ - return 2737; + return 2743; } else { @@ -949,7 +949,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx100xxxxxxxxxxxx1 stnt1b. */ - return 2738; + return 2744; } } else @@ -960,7 +960,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx010xxxxxxxxxxxx1 stnt1w. */ - return 2761; + return 2767; } else { @@ -968,7 +968,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx110xxxxxxxxxxxx1 stnt1w. */ - return 2762; + return 2768; } } } @@ -982,7 +982,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx001xxxxxxxxxxxx1 stnt1h. */ - return 2753; + return 2759; } else { @@ -990,7 +990,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx101xxxxxxxxxxxx1 stnt1h. */ - return 2754; + return 2760; } } else @@ -1001,7 +1001,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx011xxxxxxxxxxxx1 stnt1d. */ - return 2745; + return 2751; } else { @@ -1009,7 +1009,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000001xxxxx111xxxxxxxxxxxx1 stnt1d. */ - return 2746; + return 2752; } } } @@ -1073,7 +1073,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx000xxxxxxxxxxxx0 st1b. */ - return 2701; + return 2707; } else { @@ -1081,7 +1081,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx100xxxxxxxxxxxx0 st1b. */ - return 2702; + return 2708; } } else @@ -1092,7 +1092,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx010xxxxxxxxxxxx0 st1w. */ - return 2725; + return 2731; } else { @@ -1100,7 +1100,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx110xxxxxxxxxxxx0 st1w. */ - return 2726; + return 2732; } } } @@ -1114,7 +1114,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx001xxxxxxxxxxxx0 st1h. */ - return 2717; + return 2723; } else { @@ -1122,7 +1122,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx101xxxxxxxxxxxx0 st1h. */ - return 2718; + return 2724; } } else @@ -1133,7 +1133,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx011xxxxxxxxxxxx0 st1d. */ - return 2709; + return 2715; } else { @@ -1141,7 +1141,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx111xxxxxxxxxxxx0 st1d. */ - return 2710; + return 2716; } } } @@ -1158,7 +1158,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx000xxxxxxxxxxxx1 stnt1b. */ - return 2733; + return 2739; } else { @@ -1166,7 +1166,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx100xxxxxxxxxxxx1 stnt1b. */ - return 2734; + return 2740; } } else @@ -1177,7 +1177,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx010xxxxxxxxxxxx1 stnt1w. */ - return 2757; + return 2763; } else { @@ -1185,7 +1185,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx110xxxxxxxxxxxx1 stnt1w. */ - return 2758; + return 2764; } } } @@ -1199,7 +1199,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx001xxxxxxxxxxxx1 stnt1h. */ - return 2749; + return 2755; } else { @@ -1207,7 +1207,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx101xxxxxxxxxxxx1 stnt1h. */ - return 2750; + return 2756; } } else @@ -1218,7 +1218,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx011xxxxxxxxxxxx1 stnt1d. */ - return 2741; + return 2747; } else { @@ -1226,7 +1226,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x00000011xxxxx111xxxxxxxxxxxx1 stnt1d. */ - return 2742; + return 2748; } } } @@ -1326,7 +1326,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010000xxxxxxxxxxxxxxx001xx usmlall. */ - return 2855; + return 2864; } } else @@ -1358,7 +1358,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xxxxxxxxx100xxx usmlall. */ - return 2856; + return 2865; } else { @@ -1366,7 +1366,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xxxxxxxxx100xxx usmlall. */ - return 2857; + return 2866; } } } @@ -1381,7 +1381,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010000xxxxxxxxxxxxxxx100xx umlall. */ - return 2816; + return 2822; } else { @@ -1389,7 +1389,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010000xxxxxxxxxxxxxxx101xx sumlall. */ - return 2776; + return 2782; } } else @@ -1402,7 +1402,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xxxxxxxxx010xxx umlall. */ - return 2817; + return 2823; } else { @@ -1410,7 +1410,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xxxxxxxxx010xxx umlall. */ - return 2818; + return 2824; } } else @@ -1421,7 +1421,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xxxxxxxxx110xxx sumlall. */ - return 2777; + return 2783; } else { @@ -1429,7 +1429,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xxxxxxxxx110xxx sumlall. */ - return 2778; + return 2784; } } } @@ -1475,7 +1475,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010000xxxxxxxxxxxxxxx11xxx umlsll. */ - return 2832; + return 2838; } else { @@ -1485,7 +1485,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx0xxxxxxxxxx11xxx umlsll. */ - return 2833; + return 2839; } else { @@ -1493,7 +1493,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xxxxxxxxxx11xxx umlsll. */ - return 2834; + return 2840; } } } @@ -1721,7 +1721,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011000xxxxxxx0xxxxxxx00xxx smlall. */ - return 2877; + return 2886; } else { @@ -1731,7 +1731,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx0xx0xxxxxxx00xxx smlall. */ - return 2878; + return 2887; } else { @@ -1739,7 +1739,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx1xx0xxxxxxx00xxx smlall. */ - return 2879; + return 2888; } } } @@ -1806,7 +1806,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011000xxxxxxx0xxxxxxx10xxx umlall. */ - return 2886; + return 2895; } else { @@ -1816,7 +1816,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx0xx0xxxxxxx10xxx umlall. */ - return 2887; + return 2896; } else { @@ -1824,7 +1824,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxx1xx0xxxxxxx10xxx umlall. */ - return 2888; + return 2897; } } } @@ -1884,7 +1884,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011000xxxxxxx0xxxxxxx01xxx smlsll. */ - return 2880; + return 2889; } else { @@ -1894,7 +1894,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011001xxxx0xx0xxxxxxx01xxx smlsll. */ - return 2881; + return 2890; } else { @@ -1902,7 +1902,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011001xxxx1xx0xxxxxxx01xxx smlsll. */ - return 2882; + return 2891; } } } @@ -1943,7 +1943,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001100xxxxxxxxxxxxxxxx01xxx umopa. */ - return 2840; + return 2846; } } else @@ -1958,7 +1958,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011000xxxxxxx0xxxxxxx11xxx umlsll. */ - return 2889; + return 2898; } else { @@ -1968,7 +1968,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011001xxxx0xx0xxxxxxx11xxx umlsll. */ - return 2890; + return 2899; } else { @@ -1976,7 +1976,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011001xxxx1xx0xxxxxxx11xxx umlsll. */ - return 2891; + return 2900; } } } @@ -2017,7 +2017,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001100xxxxxxxxxxxxxxxx11xxx umops. */ - return 2841; + return 2847; } } } @@ -2103,7 +2103,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx0xxxxxx100xxx svdot. */ - return 2782; + return 2788; } else { @@ -2133,7 +2133,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx1xxxxxx010xxx udot. */ - return 2788; + return 2794; } } else @@ -2144,7 +2144,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx0xxxxxx110xxx uvdot. */ - return 2864; + return 2873; } else { @@ -2152,7 +2152,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx1xxxxxx110xxx udot. */ - return 2794; + return 2800; } } } @@ -2232,7 +2232,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx0xxxxxx100xxx svdot. */ - return 2783; + return 2789; } else { @@ -2262,7 +2262,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx1xxxxxx010xxx udot. */ - return 2789; + return 2795; } } else @@ -2273,7 +2273,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx0xxxxxx110xxx uvdot. */ - return 2865; + return 2874; } else { @@ -2281,7 +2281,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx1xxxxxx110xxx udot. */ - return 2795; + return 2801; } } } @@ -2362,7 +2362,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xxxxxxxxx101xxx usdot. */ - return 2849; + return 2858; } } else @@ -2392,7 +2392,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xxxxxxxxx111xxx sudot. */ - return 2772; + return 2778; } } } @@ -2460,7 +2460,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx0xxxxxx101xxx usvdot. */ - return 2863; + return 2872; } else { @@ -2468,7 +2468,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx1xxxxxx101xxx usdot. */ - return 2850; + return 2859; } } } @@ -2490,7 +2490,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx0xxxxxx111xxx suvdot. */ - return 2781; + return 2787; } else { @@ -2498,7 +2498,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx1xxxxxx111xxx sudot. */ - return 2773; + return 2779; } } } @@ -2522,7 +2522,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx0xx0xxxxxxx00xxx fmla. */ - return 2893; + return 2902; } else { @@ -2530,7 +2530,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx1xx0xxxxxxx00xxx fmla. */ - return 2894; + return 2903; } } else @@ -2576,7 +2576,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx0xx00xxxxxx01xxx sdot. */ - return 2875; + return 2884; } else { @@ -2584,7 +2584,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx1xx00xxxxxx01xxx sdot. */ - return 2876; + return 2885; } } else @@ -2593,7 +2593,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxxxxx01xxxxxx01xxx svdot. */ - return 2883; + return 2892; } } else @@ -2662,7 +2662,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx0xx0xxxxxxx10xxx fmls. */ - return 2895; + return 2904; } else { @@ -2670,7 +2670,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx1xx0xxxxxxx10xxx fmls. */ - return 2896; + return 2905; } } else @@ -2681,7 +2681,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011100xxxxxxx1xxxxxxx10xxx umlal. */ - return 2808; + return 2814; } else { @@ -2691,7 +2691,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx0xx1xxxxxxx10xxx umlal. */ - return 2809; + return 2815; } else { @@ -2699,7 +2699,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx1xx1xxxxxxx10xxx umlal. */ - return 2810; + return 2816; } } } @@ -2725,7 +2725,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx00001110xxxxx0xx00xxxxxx11xxx udot. */ - return 2884; + return 2893; } else { @@ -2733,7 +2733,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx00001110xxxxx1xx00xxxxxx11xxx udot. */ - return 2885; + return 2894; } } else @@ -2742,7 +2742,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx00001110xxxxxxxx01xxxxxx11xxx uvdot. */ - return 2892; + return 2901; } } else @@ -2753,7 +2753,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000011100xxxxxxx1xxxxxxx11xxx umlsl. */ - return 2824; + return 2830; } else { @@ -2763,7 +2763,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000011101xxxx0xx1xxxxxxx11xxx umlsl. */ - return 2825; + return 2831; } else { @@ -2771,7 +2771,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000011101xxxx1xx1xxxxxxx11xxx umlsl. */ - return 2826; + return 2832; } } } @@ -2868,7 +2868,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx000xxxxx001xx usmlall. */ - return 2859; + return 2868; } else { @@ -2876,7 +2876,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx000xxxxx001xx usmlall. */ - return 2860; + return 2869; } } else @@ -2887,7 +2887,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx000xxxxx001xx usmlall. */ - return 2861; + return 2870; } else { @@ -2895,7 +2895,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx000xxxxx001xx usmlall. */ - return 2862; + return 2871; } } } @@ -3092,7 +3092,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx0xx001xxxxx001xx usmlall. */ - return 2858; + return 2867; } } else @@ -3198,7 +3198,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx000xxxxx100xx umlall. */ - return 2820; + return 2826; } else { @@ -3206,7 +3206,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx000xxxxx100xx umlall. */ - return 2821; + return 2827; } } else @@ -3217,7 +3217,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx000xxxxx100xx umlall. */ - return 2822; + return 2828; } else { @@ -3225,7 +3225,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx000xxxxx100xx umlall. */ - return 2823; + return 2829; } } } @@ -3237,7 +3237,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xxxx0xx000xxxxx101xx sumlall. */ - return 2779; + return 2785; } else { @@ -3245,7 +3245,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xxxx0xx000xxxxx101xx sumlall. */ - return 2780; + return 2786; } } } @@ -3346,7 +3346,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110xxxx0xx010xxxxx10xxx umlal. */ - return 2812; + return 2818; } else { @@ -3354,7 +3354,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010111xxxx0xx010xxxxx10xxx umlal. */ - return 2813; + return 2819; } } else @@ -3365,7 +3365,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx00xx010xxxxx10xxx umlal. */ - return 2814; + return 2820; } else { @@ -3373,7 +3373,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx10xx010xxxxx10xxx umlal. */ - return 2815; + return 2821; } } } @@ -3431,7 +3431,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx0xx001xxxxx10xxx umlall. */ - return 2819; + return 2825; } else { @@ -3443,7 +3443,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx101xxxxx10xxx udot. */ - return 2796; + return 2802; } else { @@ -3451,7 +3451,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx101xxxxx10xxx udot. */ - return 2797; + return 2803; } } else @@ -3462,7 +3462,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx101xxxxx10xxx udot. */ - return 2798; + return 2804; } else { @@ -3470,7 +3470,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx101xxxxx10xxx udot. */ - return 2799; + return 2805; } } } @@ -3493,7 +3493,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x11xxxxx0xx011xxxxx10xxx umlal. */ - return 2811; + return 2817; } } else @@ -3720,7 +3720,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010010xxxx0xx101xxxxx01xxx usdot. */ - return 2851; + return 2860; } else { @@ -3728,7 +3728,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010011xxxx0xx101xxxxx01xxx usdot. */ - return 2852; + return 2861; } } else @@ -3739,7 +3739,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx00xx101xxxxx01xxx usdot. */ - return 2853; + return 2862; } else { @@ -3747,7 +3747,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx10xx101xxxxx01xxx usdot. */ - return 2854; + return 2863; } } } @@ -3851,7 +3851,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xxx00xxxxx11xxx umlsll. */ - return 2836; + return 2842; } else { @@ -3859,7 +3859,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xxx00xxxxx11xxx umlsll. */ - return 2837; + return 2843; } } else @@ -3870,7 +3870,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xxx00xxxxx11xxx umlsll. */ - return 2838; + return 2844; } else { @@ -3878,7 +3878,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xxx00xxxxx11xxx umlsll. */ - return 2839; + return 2845; } } } @@ -3937,7 +3937,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110xxxx0xx010xxxxx11xxx umlsl. */ - return 2828; + return 2834; } else { @@ -3945,7 +3945,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010111xxxx0xx010xxxxx11xxx umlsl. */ - return 2829; + return 2835; } } else @@ -3956,7 +3956,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx00xx010xxxxx11xxx umlsl. */ - return 2830; + return 2836; } else { @@ -3964,7 +3964,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx10xx010xxxxx11xxx umlsl. */ - return 2831; + return 2837; } } } @@ -3979,7 +3979,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x10xxxx0xx110xxxxx11xxx sub. */ - return 2768; + return 2774; } else { @@ -3987,7 +3987,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010x11xxxx0xx110xxxxx11xxx sub. */ - return 2769; + return 2775; } } else @@ -3998,7 +3998,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx110xxxxx11xxx sub. */ - return 2770; + return 2776; } else { @@ -4006,7 +4006,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx110xxxxx11xxx sub. */ - return 2771; + return 2777; } } } @@ -4022,7 +4022,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx0xx001xxxxx11xxx umlsll. */ - return 2835; + return 2841; } else { @@ -4034,7 +4034,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x010xxxx0xx101xxxxx11xxx sudot. */ - return 2774; + return 2780; } else { @@ -4042,7 +4042,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x011xxxx0xx101xxxxx11xxx sudot. */ - return 2775; + return 2781; } } else @@ -4055,7 +4055,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110xxxx0xx101xxxxx11xxx udot. */ - return 2790; + return 2796; } else { @@ -4063,7 +4063,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010111xxxx0xx101xxxxx11xxx udot. */ - return 2791; + return 2797; } } else @@ -4074,7 +4074,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx00xx101xxxxx11xxx udot. */ - return 2792; + return 2798; } else { @@ -4082,7 +4082,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxxx10xx101xxxxx11xxx udot. */ - return 2793; + return 2799; } } } @@ -4106,7 +4106,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x11xxxxx0xx011xxxxx11xxx umlsl. */ - return 2827; + return 2833; } } else @@ -4117,7 +4117,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxx00xx111xxxxx11xxx sub. */ - return 2766; + return 2772; } else { @@ -4125,7 +4125,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxx10xx111xxxxx11xxx sub. */ - return 2767; + return 2773; } } } @@ -4137,88 +4137,187 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 13) & 0x1) == 0) { - if (((word >> 0) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxx0100xxxxxxxxxxxxx + sel. */ + return 2643; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxx1100xxxxxxxxxxxxx + sel. */ + return 2644; + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1000001xx1xxxx0100xxxxxxxxxxxx0 - sel. */ - return 2643; + x1000001xx1xxxxx110x00xxxxxxxxxx + fclamp. */ + return 2466; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1000001xx1xxxx1100xxxxxxxxxxxx0 - sel. */ - return 2644; + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxxx110010xxxxxxxxxx + fclamp. */ + return 2467; + } + else + { + if (((word >> 5) & 0x1) == 0) + { + if (((word >> 6) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxxx110110xxx00xxxxx + sqrshr. */ + return 2698; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxxx110110xxx10xxxxx + sqrshru. */ + return 2701; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxxx110110xxxx1xxxxx + uqrshr. */ + return 2852; + } + } } } else { - if (((word >> 10) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1000001xx1xxxxx110x00xxxxxxxxx0 - fclamp. */ - return 2466; + if (((word >> 0) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxxx110001xxxxxxxxx0 + sclamp. */ + return 2627; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxxx110001xxxxxxxxx1 + uclamp. */ + return 2790; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1000001xx1xxxxx110x10xxxxxxxxx0 - fclamp. */ - return 2467; + if (((word >> 5) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx10xxxx110101xxxx0xxxxx + sqrshr. */ + return 2697; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx11xxxx110101xxxx0xxxxx + sqrshru. */ + return 2700; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxxx110101xxxx1xxxxx + uqrshr. */ + return 2851; + } } } else { - if (((word >> 11) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1000001xx1xxxxx110x01xxxxxxxxx0 - sclamp. */ - return 2627; + if (((word >> 0) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxxx110011xxxxxxxxx0 + sclamp. */ + return 2628; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxxx110011xxxxxxxxx1 + uclamp. */ + return 2791; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1000001xx1xxxxx110x11xxxxxxxxx0 - sclamp. */ - return 2628; + if (((word >> 5) & 0x1) == 0) + { + if (((word >> 6) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxxx110111xxx00xxxxx + sqrshrn. */ + return 2699; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxxx110111xxx10xxxxx + sqrshrun. */ + return 2702; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1000001xx1xxxxx110111xxxx1xxxxx + uqrshrn. */ + return 2853; + } } } } } - else - { - if (((word >> 11) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1000001xx1xxxxx1x0x0xxxxxxxxxx1 - uclamp. */ - return 2784; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1000001xx1xxxxx1x0x1xxxxxxxxxx1 - uclamp. */ - return 2785; - } - } } else { @@ -4270,7 +4369,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101000x0xx0xxxx1 umax. */ - return 2800; + return 2806; } else { @@ -4529,7 +4628,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1100x0xx0xxxx1 umax. */ - return 2802; + return 2808; } else { @@ -4606,7 +4705,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1010x0xx0xxxx1 umax. */ - return 2801; + return 2807; } else { @@ -4614,7 +4713,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1110x0xx0xxxx1 umax. */ - return 2803; + return 2809; } } else @@ -4707,7 +4806,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx10100x10xx1xxxx0 srshl. */ - return 2697; + return 2703; } } else @@ -4729,7 +4828,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx10100x00xx1xxxx1 umin. */ - return 2804; + return 2810; } else { @@ -4737,7 +4836,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx10100x10xx1xxxx1 urshl. */ - return 2845; + return 2854; } } else @@ -4781,7 +4880,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xx1011100xxxxx1xxxxx ucvtf. */ - return 2786; + return 2792; } else { @@ -4789,7 +4888,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xx1011100xxxxx1xxxxx ucvtf. */ - return 2787; + return 2793; } } } @@ -4822,7 +4921,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xx1111100xxxxx1xxxxx uqcvt. */ - return 2842; + return 2848; } else { @@ -4832,7 +4931,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xx1111100xxxx01xxxxx uqcvt. */ - return 2843; + return 2849; } else { @@ -4840,7 +4939,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xx1111100xxxx11xxxxx uqcvtn. */ - return 2844; + return 2850; } } } @@ -4867,7 +4966,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x110x10xx1xxxx0 srshl. */ - return 2699; + return 2705; } } else @@ -4889,7 +4988,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x110x00xx1xxxx1 umin. */ - return 2806; + return 2812; } else { @@ -4897,7 +4996,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x110x10xx1xxxx1 urshl. */ - return 2847; + return 2856; } } else @@ -4944,7 +5043,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x101x10xx1xxxx0 srshl. */ - return 2698; + return 2704; } else { @@ -4952,7 +5051,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x111x10xx1xxxx0 srshl. */ - return 2700; + return 2706; } } } @@ -4988,7 +5087,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x101x00xx1xxxx1 umin. */ - return 2805; + return 2811; } else { @@ -4996,7 +5095,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x111x00xx1xxxx1 umin. */ - return 2807; + return 2813; } } else @@ -5007,7 +5106,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x101x10xx1xxxx1 urshl. */ - return 2846; + return 2855; } else { @@ -5015,7 +5114,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x111x10xx1xxxx1 urshl. */ - return 2848; + return 2857; } } } @@ -5065,7 +5164,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx000xxxxxxxxx0xxx st1b. */ - return 2707; + return 2713; } else { @@ -5073,7 +5172,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx010xxxxxxxxx0xxx st1w. */ - return 2731; + return 2737; } } else @@ -5084,7 +5183,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx001xxxxxxxxx0xxx st1h. */ - return 2723; + return 2729; } else { @@ -5092,7 +5191,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx011xxxxxxxxx0xxx st1d. */ - return 2715; + return 2721; } } } @@ -5106,7 +5205,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx000xxxxxxxxx1xxx stnt1b. */ - return 2739; + return 2745; } else { @@ -5114,7 +5213,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx010xxxxxxxxx1xxx stnt1w. */ - return 2763; + return 2769; } } else @@ -5125,7 +5224,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx001xxxxxxxxx1xxx stnt1h. */ - return 2755; + return 2761; } else { @@ -5133,7 +5232,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx011xxxxxxxxx1xxx stnt1d. */ - return 2747; + return 2753; } } } @@ -5161,7 +5260,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0100001001xxxxx100xxxxxxxxx0xxx st1b. */ - return 2708; + return 2714; } else { @@ -5169,7 +5268,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1100001001xxxxx100xxxxxxxxx0xxx str. */ - return 2765; + return 2771; } } else @@ -5178,7 +5277,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx110xxxxxxxxx0xxx st1w. */ - return 2732; + return 2738; } } else @@ -5189,7 +5288,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx101xxxxxxxxx0xxx st1h. */ - return 2724; + return 2730; } else { @@ -5197,7 +5296,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx111xxxxxxxxx0xxx st1d. */ - return 2716; + return 2722; } } } @@ -5211,7 +5310,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx100xxxxxxxxx1xxx stnt1b. */ - return 2740; + return 2746; } else { @@ -5219,7 +5318,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx110xxxxxxxxx1xxx stnt1w. */ - return 2764; + return 2770; } } else @@ -5230,7 +5329,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx101xxxxxxxxx1xxx stnt1h. */ - return 2756; + return 2762; } else { @@ -5238,7 +5337,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001001xxxxx111xxxxxxxxx1xxx stnt1d. */ - return 2748; + return 2754; } } } @@ -5280,7 +5379,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx000xxxxxxxxx0xxx st1b. */ - return 2703; + return 2709; } else { @@ -5288,7 +5387,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx100xxxxxxxxx0xxx st1b. */ - return 2704; + return 2710; } } else @@ -5299,7 +5398,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx010xxxxxxxxx0xxx st1w. */ - return 2727; + return 2733; } else { @@ -5307,7 +5406,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx110xxxxxxxxx0xxx st1w. */ - return 2728; + return 2734; } } } @@ -5321,7 +5420,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx001xxxxxxxxx0xxx st1h. */ - return 2719; + return 2725; } else { @@ -5329,7 +5428,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx101xxxxxxxxx0xxx st1h. */ - return 2720; + return 2726; } } else @@ -5340,7 +5439,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx011xxxxxxxxx0xxx st1d. */ - return 2711; + return 2717; } else { @@ -5348,7 +5447,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx111xxxxxxxxx0xxx st1d. */ - return 2712; + return 2718; } } } @@ -5365,7 +5464,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx000xxxxxxxxx1xxx stnt1b. */ - return 2735; + return 2741; } else { @@ -5373,7 +5472,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx100xxxxxxxxx1xxx stnt1b. */ - return 2736; + return 2742; } } else @@ -5384,7 +5483,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx010xxxxxxxxx1xxx stnt1w. */ - return 2759; + return 2765; } else { @@ -5392,7 +5491,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx110xxxxxxxxx1xxx stnt1w. */ - return 2760; + return 2766; } } } @@ -5406,7 +5505,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx001xxxxxxxxx1xxx stnt1h. */ - return 2751; + return 2757; } else { @@ -5414,7 +5513,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx101xxxxxxxxx1xxx stnt1h. */ - return 2752; + return 2758; } } else @@ -5425,7 +5524,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx011xxxxxxxxx1xxx stnt1d. */ - return 2743; + return 2749; } else { @@ -5433,7 +5532,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx100001011xxxxx111xxxxxxxxx1xxx stnt1d. */ - return 2744; + return 2750; } } } @@ -7835,7 +7934,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00011001000xxxxxxxxx00xxxxxxxxxx stlurb. */ - return 2937; + return 2946; } else { @@ -7843,7 +7942,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 10011001000xxxxxxxxx00xxxxxxxxxx stlur. */ - return 2945; + return 2954; } } else @@ -7854,7 +7953,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01011001000xxxxxxxxx00xxxxxxxxxx stlurh. */ - return 2941; + return 2950; } else { @@ -7862,7 +7961,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 11011001000xxxxxxxxx00xxxxxxxxxx stlur. */ - return 2948; + return 2957; } } } @@ -7900,7 +7999,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx0000x1xxxxxxxxxx cpyfp. */ - return 2997; + return 3006; } else { @@ -7908,7 +8007,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx1000x1xxxxxxxxxx cpyfprn. */ - return 3003; + return 3012; } } else @@ -7919,7 +8018,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx0100x1xxxxxxxxxx cpyfpwn. */ - return 3000; + return 3009; } else { @@ -7927,7 +8026,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx1100x1xxxxxxxxxx cpyfpn. */ - return 3006; + return 3015; } } } @@ -7941,7 +8040,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx0010x1xxxxxxxxxx cpyfprt. */ - return 3021; + return 3030; } else { @@ -7949,7 +8048,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx1010x1xxxxxxxxxx cpyfprtrn. */ - return 3027; + return 3036; } } else @@ -7960,7 +8059,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx0110x1xxxxxxxxxx cpyfprtwn. */ - return 3024; + return 3033; } else { @@ -7968,7 +8067,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx1110x1xxxxxxxxxx cpyfprtn. */ - return 3030; + return 3039; } } } @@ -7985,7 +8084,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx0001x1xxxxxxxxxx cpyfpwt. */ - return 3009; + return 3018; } else { @@ -7993,7 +8092,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx1001x1xxxxxxxxxx cpyfpwtrn. */ - return 3015; + return 3024; } } else @@ -8004,7 +8103,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx0101x1xxxxxxxxxx cpyfpwtwn. */ - return 3012; + return 3021; } else { @@ -8012,7 +8111,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx1101x1xxxxxxxxxx cpyfpwtn. */ - return 3018; + return 3027; } } } @@ -8026,7 +8125,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx0011x1xxxxxxxxxx cpyfpt. */ - return 3033; + return 3042; } else { @@ -8034,7 +8133,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx1011x1xxxxxxxxxx cpyfptrn. */ - return 3039; + return 3048; } } else @@ -8045,7 +8144,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx0111x1xxxxxxxxxx cpyfptwn. */ - return 3036; + return 3045; } else { @@ -8053,7 +8152,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001000xxxxx1111x1xxxxxxxxxx cpyfptn. */ - return 3042; + return 3051; } } } @@ -8118,7 +8217,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00011001010xxxxxxxxx00xxxxxxxxxx ldapurb. */ - return 2938; + return 2947; } else { @@ -8126,7 +8225,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 10011001010xxxxxxxxx00xxxxxxxxxx ldapur. */ - return 2946; + return 2955; } } else @@ -8137,7 +8236,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01011001010xxxxxxxxx00xxxxxxxxxx ldapurh. */ - return 2942; + return 2951; } else { @@ -8145,7 +8244,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 11011001010xxxxxxxxx00xxxxxxxxxx ldapur. */ - return 2949; + return 2958; } } } @@ -8183,7 +8282,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0000x1xxxxxxxxxx cpyfm. */ - return 2998; + return 3007; } else { @@ -8191,7 +8290,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1000x1xxxxxxxxxx cpyfmrn. */ - return 3004; + return 3013; } } else @@ -8202,7 +8301,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0100x1xxxxxxxxxx cpyfmwn. */ - return 3001; + return 3010; } else { @@ -8210,7 +8309,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1100x1xxxxxxxxxx cpyfmn. */ - return 3007; + return 3016; } } } @@ -8224,7 +8323,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0010x1xxxxxxxxxx cpyfmrt. */ - return 3022; + return 3031; } else { @@ -8232,7 +8331,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1010x1xxxxxxxxxx cpyfmrtrn. */ - return 3028; + return 3037; } } else @@ -8243,7 +8342,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0110x1xxxxxxxxxx cpyfmrtwn. */ - return 3025; + return 3034; } else { @@ -8251,7 +8350,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1110x1xxxxxxxxxx cpyfmrtn. */ - return 3031; + return 3040; } } } @@ -8268,7 +8367,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0001x1xxxxxxxxxx cpyfmwt. */ - return 3010; + return 3019; } else { @@ -8276,7 +8375,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1001x1xxxxxxxxxx cpyfmwtrn. */ - return 3016; + return 3025; } } else @@ -8287,7 +8386,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0101x1xxxxxxxxxx cpyfmwtwn. */ - return 3013; + return 3022; } else { @@ -8295,7 +8394,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1101x1xxxxxxxxxx cpyfmwtn. */ - return 3019; + return 3028; } } } @@ -8309,7 +8408,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0011x1xxxxxxxxxx cpyfmt. */ - return 3034; + return 3043; } else { @@ -8317,7 +8416,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1011x1xxxxxxxxxx cpyfmtrn. */ - return 3040; + return 3049; } } else @@ -8328,7 +8427,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx0111x1xxxxxxxxxx cpyfmtwn. */ - return 3037; + return 3046; } else { @@ -8336,7 +8435,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001010xxxxx1111x1xxxxxxxxxx cpyfmtn. */ - return 3043; + return 3052; } } } @@ -8404,7 +8503,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00011001100xxxxxxxxx00xxxxxxxxxx ldapursb. */ - return 2940; + return 2949; } else { @@ -8412,7 +8511,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 10011001100xxxxxxxxx00xxxxxxxxxx ldapursw. */ - return 2947; + return 2956; } } else @@ -8421,7 +8520,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001100xxxxxxxxx00xxxxxxxxxx ldapursh. */ - return 2944; + return 2953; } } else @@ -8432,7 +8531,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0011001110xxxxxxxxx00xxxxxxxxxx ldapursb. */ - return 2939; + return 2948; } else { @@ -8440,7 +8539,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1011001110xxxxxxxxx00xxxxxxxxxx ldapursh. */ - return 2943; + return 2952; } } } @@ -8502,7 +8601,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0000x1xxxxxxxxxx cpyfe. */ - return 2999; + return 3008; } else { @@ -8510,7 +8609,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0000x1xxxxxxxxxx setp. */ - return 3093; + return 3102; } } else @@ -8521,7 +8620,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx1000x1xxxxxxxxxx cpyfern. */ - return 3005; + return 3014; } else { @@ -8529,7 +8628,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx1000x1xxxxxxxxxx sete. */ - return 3095; + return 3104; } } } @@ -8543,7 +8642,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0100x1xxxxxxxxxx cpyfewn. */ - return 3002; + return 3011; } else { @@ -8551,7 +8650,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0100x1xxxxxxxxxx setm. */ - return 3094; + return 3103; } } else @@ -8560,7 +8659,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0110011x0xxxxx1100x1xxxxxxxxxx cpyfen. */ - return 3008; + return 3017; } } } @@ -8576,7 +8675,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0010x1xxxxxxxxxx cpyfert. */ - return 3023; + return 3032; } else { @@ -8584,7 +8683,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0010x1xxxxxxxxxx setpn. */ - return 3099; + return 3108; } } else @@ -8595,7 +8694,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx1010x1xxxxxxxxxx cpyfertrn. */ - return 3029; + return 3038; } else { @@ -8603,7 +8702,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx1010x1xxxxxxxxxx seten. */ - return 3101; + return 3110; } } } @@ -8617,7 +8716,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0110x1xxxxxxxxxx cpyfertwn. */ - return 3026; + return 3035; } else { @@ -8625,7 +8724,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0110x1xxxxxxxxxx setmn. */ - return 3100; + return 3109; } } else @@ -8634,7 +8733,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0110011x0xxxxx1110x1xxxxxxxxxx cpyfertn. */ - return 3032; + return 3041; } } } @@ -8653,7 +8752,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0001x1xxxxxxxxxx cpyfewt. */ - return 3011; + return 3020; } else { @@ -8661,7 +8760,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0001x1xxxxxxxxxx setpt. */ - return 3096; + return 3105; } } else @@ -8672,7 +8771,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx1001x1xxxxxxxxxx cpyfewtrn. */ - return 3017; + return 3026; } else { @@ -8680,7 +8779,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx1001x1xxxxxxxxxx setet. */ - return 3098; + return 3107; } } } @@ -8694,7 +8793,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0101x1xxxxxxxxxx cpyfewtwn. */ - return 3014; + return 3023; } else { @@ -8702,7 +8801,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0101x1xxxxxxxxxx setmt. */ - return 3097; + return 3106; } } else @@ -8711,7 +8810,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0110011x0xxxxx1101x1xxxxxxxxxx cpyfewtn. */ - return 3020; + return 3029; } } } @@ -8727,7 +8826,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0011x1xxxxxxxxxx cpyfet. */ - return 3035; + return 3044; } else { @@ -8735,7 +8834,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0011x1xxxxxxxxxx setptn. */ - return 3102; + return 3111; } } else @@ -8746,7 +8845,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx1011x1xxxxxxxxxx cpyfetrn. */ - return 3041; + return 3050; } else { @@ -8754,7 +8853,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx1011x1xxxxxxxxxx setetn. */ - return 3104; + return 3113; } } } @@ -8768,7 +8867,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001100xxxxx0111x1xxxxxxxxxx cpyfetwn. */ - return 3038; + return 3047; } else { @@ -8776,7 +8875,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011001110xxxxx0111x1xxxxxxxxxx setmtn. */ - return 3103; + return 3112; } } else @@ -8785,7 +8884,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0110011x0xxxxx1111x1xxxxxxxxxx cpyfetn. */ - return 3044; + return 3053; } } } @@ -9158,7 +9257,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1x11010110xxxx0x01000xxxxxxxxxx abs. */ - return 3122; + return 3131; } else { @@ -9176,7 +9275,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010110xxxxxx11000xxxxxxxxxx smax. */ - return 3125; + return 3134; } } } @@ -9256,7 +9355,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010x00xxxxxx0xx10xxxxxxxxxx setf8. */ - return 2935; + return 2944; } else { @@ -9264,7 +9363,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010x00xxxxxx1xx10xxxxxxxxxx setf16. */ - return 2936; + return 2945; } } else @@ -9371,7 +9470,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010110xxxxxx11010xxxxxxxxxx smin. */ - return 3127; + return 3136; } } } @@ -9387,7 +9486,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010110xxxx0x00110xxxxxxxxxx ctz. */ - return 3124; + return 3133; } else { @@ -9432,7 +9531,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010000xxxxxxxxx01xxxxxxxxxx rmif. */ - return 2934; + return 2943; } else { @@ -9526,7 +9625,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010x10xxxxxx11001xxxxxxxxxx umax. */ - return 3126; + return 3135; } } } @@ -9656,7 +9755,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010xx0xxxxxx11011xxxxxxxxxx umin. */ - return 3128; + return 3137; } } } @@ -9672,7 +9771,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx11010xx0xxxx0x00111xxxxxxxxxx cnt. */ - return 3123; + return 3132; } else { @@ -10514,7 +10613,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x01x1xxxxx000110xxxxxxxxxx usdot. */ - return 2954; + return 2963; } } } @@ -10588,7 +10687,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x01x1xxxxx000111xxxxxxxxxx sudot. */ - return 2955; + return 2964; } } } @@ -13262,7 +13361,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx011110xxxxxxxxxx usdot. */ - return 2953; + return 2962; } } } @@ -14966,7 +15065,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0100xxx10101xxxxxxxxxxxxx bfcvtnt. */ - return 2982; + return 2991; } } else @@ -15209,7 +15308,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00x1xxxxxx00xxxxxxxxxxxxx ld1rob. */ - return 2958; + return 2967; } else { @@ -15217,7 +15316,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01x1xxxxxx00xxxxxxxxxxxxx ld1roh. */ - return 2959; + return 2968; } } else @@ -15449,7 +15548,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0011xxxxx010xxxxxxxxxxxxx bfdot. */ - return 2979; + return 2988; } else { @@ -15470,7 +15569,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx010xx0xxxxxxxxxx bfmlalb. */ - return 2986; + return 2995; } else { @@ -15478,7 +15577,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx010xx1xxxxxxxxxx bfmlalt. */ - return 2985; + return 2994; } } else @@ -15533,7 +15632,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0011xxxxx1x0xxxxxxxxxxxxx bfdot. */ - return 2978; + return 2987; } else { @@ -15545,7 +15644,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx1x0xx0xxxxxxxxxx bfmlalb. */ - return 2984; + return 2993; } else { @@ -15553,7 +15652,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx1x0xx1xxxxxxxxxx bfmlalt. */ - return 2983; + return 2992; } } else @@ -15604,7 +15703,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x00x1xxxxx001xxxxxxxxxxxxx ld1rob. */ - return 2962; + return 2971; } else { @@ -15612,7 +15711,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x01x1xxxxx001xxxxxxxxxxxxx ld1roh. */ - return 2963; + return 2972; } } else @@ -15971,7 +16070,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx111xxxxxxxxxxxxx fmmla. */ - return 2956; + return 2965; } else { @@ -16004,7 +16103,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0011xxxxx111xxxxxxxxxxxxx bfmmla. */ - return 2980; + return 2989; } else { @@ -16034,7 +16133,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx111xxxxxxxxxxxxx fmmla. */ - return 2957; + return 2966; } else { @@ -16163,7 +16262,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1101xxxxx000x00xxxxxxxxxx zip1. */ - return 2966; + return 2975; } else { @@ -16173,7 +16272,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1101xxxxx000010xxxxxxxxxx uzp1. */ - return 2968; + return 2977; } else { @@ -16181,7 +16280,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1101xxxxx000110xxxxxxxxxx trn1. */ - return 2970; + return 2979; } } } @@ -16193,7 +16292,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1101xxxxx000x01xxxxxxxxxx zip2. */ - return 2967; + return 2976; } else { @@ -16203,7 +16302,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1101xxxxx000011xxxxxxxxxx uzp2. */ - return 2969; + return 2978; } else { @@ -16211,7 +16310,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1101xxxxx000111xxxxxxxxxx trn2. */ - return 2971; + return 2980; } } } @@ -17270,7 +17369,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1000xxxxx100110xxxxxxxxxx smmla. */ - return 2950; + return 2959; } else { @@ -17278,7 +17377,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1100xxxxx100110xxxxxxxxxx usmmla. */ - return 2952; + return 2961; } } else @@ -17287,7 +17386,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1x10xxxxx100110xxxxxxxxxx ummla. */ - return 2951; + return 2960; } } } @@ -18783,7 +18882,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10x1xxxxx000xxxxxxxxxxxxx ld1row. */ - return 2960; + return 2969; } else { @@ -18791,7 +18890,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11x1xxxxx000xxxxxxxxxxxxx ld1rod. */ - return 2961; + return 2970; } } } @@ -19165,7 +19264,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10x1xxxxx001xxxxxxxxxxxxx ld1row. */ - return 2964; + return 2973; } else { @@ -19173,7 +19272,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11x1xxxxx001xxxxxxxxxxxxx ld1rod. */ - return 2965; + return 2974; } } } @@ -19534,7 +19633,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x000xxxxx10xxx whilege. */ - return 2866; + return 2875; } else { @@ -19542,7 +19641,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x000xxxxx11xxx whilegt. */ - return 2867; + return 2876; } } else @@ -19586,7 +19685,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x010xxxxx10xxx whilehs. */ - return 2869; + return 2878; } else { @@ -19594,7 +19693,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x010xxxxx11xxx whilehi. */ - return 2868; + return 2877; } } else @@ -19641,7 +19740,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x001xxxxx10xxx whilelt. */ - return 2873; + return 2882; } else { @@ -19649,7 +19748,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x001xxxxx11xxx whilele. */ - return 2870; + return 2879; } } else @@ -19693,7 +19792,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x011xxxxx10xxx whilelo. */ - return 2871; + return 2880; } else { @@ -19701,7 +19800,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 001001x1xx1xxxxx01x011xxxxx11xxx whilels. */ - return 2872; + return 2881; } } else @@ -20827,7 +20926,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x110001x10101xxxxxxxxxxxxx bfcvt. */ - return 2981; + return 2990; } } else @@ -22188,7 +22287,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1010100xxxxxxxxxxxxxxxxxxx1xxxx bc.c. */ - return 3117; + return 3126; } else { @@ -22768,7 +22867,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0000xxxxxxxxxxxx cpyp. */ - return 3045; + return 3054; } else { @@ -22776,7 +22875,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0000xxxxxxxxxxxx cpye. */ - return 3047; + return 3056; } } else @@ -22787,7 +22886,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1000xxxxxxxxxxxx cpyprn. */ - return 3051; + return 3060; } else { @@ -22795,7 +22894,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1000xxxxxxxxxxxx cpyern. */ - return 3053; + return 3062; } } } @@ -22809,7 +22908,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0100xxxxxxxxxxxx cpypwn. */ - return 3048; + return 3057; } else { @@ -22817,7 +22916,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0100xxxxxxxxxxxx cpyewn. */ - return 3050; + return 3059; } } else @@ -22828,7 +22927,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1100xxxxxxxxxxxx cpypn. */ - return 3054; + return 3063; } else { @@ -22836,7 +22935,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1100xxxxxxxxxxxx cpyen. */ - return 3056; + return 3065; } } } @@ -22853,7 +22952,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0010xxxxxxxxxxxx cpyprt. */ - return 3069; + return 3078; } else { @@ -22861,7 +22960,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0010xxxxxxxxxxxx cpyert. */ - return 3071; + return 3080; } } else @@ -22872,7 +22971,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1010xxxxxxxxxxxx cpyprtrn. */ - return 3075; + return 3084; } else { @@ -22880,7 +22979,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1010xxxxxxxxxxxx cpyertrn. */ - return 3077; + return 3086; } } } @@ -22894,7 +22993,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0110xxxxxxxxxxxx cpyprtwn. */ - return 3072; + return 3081; } else { @@ -22902,7 +23001,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0110xxxxxxxxxxxx cpyertwn. */ - return 3074; + return 3083; } } else @@ -22913,7 +23012,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1110xxxxxxxxxxxx cpyprtn. */ - return 3078; + return 3087; } else { @@ -22921,7 +23020,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1110xxxxxxxxxxxx cpyertn. */ - return 3080; + return 3089; } } } @@ -22941,7 +23040,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0001xxxxxxxxxxxx cpypwt. */ - return 3057; + return 3066; } else { @@ -22949,7 +23048,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0001xxxxxxxxxxxx cpyewt. */ - return 3059; + return 3068; } } else @@ -22960,7 +23059,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1001xxxxxxxxxxxx cpypwtrn. */ - return 3063; + return 3072; } else { @@ -22968,7 +23067,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1001xxxxxxxxxxxx cpyewtrn. */ - return 3065; + return 3074; } } } @@ -22982,7 +23081,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0101xxxxxxxxxxxx cpypwtwn. */ - return 3060; + return 3069; } else { @@ -22990,7 +23089,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0101xxxxxxxxxxxx cpyewtwn. */ - return 3062; + return 3071; } } else @@ -23001,7 +23100,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1101xxxxxxxxxxxx cpypwtn. */ - return 3066; + return 3075; } else { @@ -23009,7 +23108,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1101xxxxxxxxxxxx cpyewtn. */ - return 3068; + return 3077; } } } @@ -23026,7 +23125,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0011xxxxxxxxxxxx cpypt. */ - return 3081; + return 3090; } else { @@ -23034,7 +23133,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0011xxxxxxxxxxxx cpyet. */ - return 3083; + return 3092; } } else @@ -23045,7 +23144,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1011xxxxxxxxxxxx cpyptrn. */ - return 3087; + return 3096; } else { @@ -23053,7 +23152,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1011xxxxxxxxxxxx cpyetrn. */ - return 3089; + return 3098; } } } @@ -23067,7 +23166,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx0111xxxxxxxxxxxx cpyptwn. */ - return 3084; + return 3093; } else { @@ -23075,7 +23174,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx0111xxxxxxxxxxxx cpyetwn. */ - return 3086; + return 3095; } } else @@ -23086,7 +23185,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110100xxxxxx1111xxxxxxxxxxxx cpyptn. */ - return 3090; + return 3099; } else { @@ -23094,7 +23193,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110110xxxxxx1111xxxxxxxxxxxx cpyetn. */ - return 3092; + return 3101; } } } @@ -23128,7 +23227,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0000xxxxxxxxxxxx cpym. */ - return 3046; + return 3055; } else { @@ -23136,7 +23235,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0000xxxxxxxxxxxx setgp. */ - return 3105; + return 3114; } } else @@ -23147,7 +23246,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx1000xxxxxxxxxxxx cpymrn. */ - return 3052; + return 3061; } else { @@ -23155,7 +23254,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx1000xxxxxxxxxxxx setge. */ - return 3107; + return 3116; } } } @@ -23169,7 +23268,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0100xxxxxxxxxxxx cpymwn. */ - return 3049; + return 3058; } else { @@ -23177,7 +23276,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0100xxxxxxxxxxxx setgm. */ - return 3106; + return 3115; } } else @@ -23186,7 +23285,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011101x1xxxxxx1100xxxxxxxxxxxx cpymn. */ - return 3055; + return 3064; } } } @@ -23202,7 +23301,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0010xxxxxxxxxxxx cpymrt. */ - return 3070; + return 3079; } else { @@ -23210,7 +23309,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0010xxxxxxxxxxxx setgpn. */ - return 3111; + return 3120; } } else @@ -23221,7 +23320,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx1010xxxxxxxxxxxx cpymrtrn. */ - return 3076; + return 3085; } else { @@ -23229,7 +23328,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx1010xxxxxxxxxxxx setgen. */ - return 3113; + return 3122; } } } @@ -23243,7 +23342,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0110xxxxxxxxxxxx cpymrtwn. */ - return 3073; + return 3082; } else { @@ -23251,7 +23350,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0110xxxxxxxxxxxx setgmn. */ - return 3112; + return 3121; } } else @@ -23260,7 +23359,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011101x1xxxxxx1110xxxxxxxxxxxx cpymrtn. */ - return 3079; + return 3088; } } } @@ -23279,7 +23378,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0001xxxxxxxxxxxx cpymwt. */ - return 3058; + return 3067; } else { @@ -23287,7 +23386,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0001xxxxxxxxxxxx setgpt. */ - return 3108; + return 3117; } } else @@ -23298,7 +23397,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx1001xxxxxxxxxxxx cpymwtrn. */ - return 3064; + return 3073; } else { @@ -23306,7 +23405,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx1001xxxxxxxxxxxx setget. */ - return 3110; + return 3119; } } } @@ -23320,7 +23419,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0101xxxxxxxxxxxx cpymwtwn. */ - return 3061; + return 3070; } else { @@ -23328,7 +23427,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0101xxxxxxxxxxxx setgmt. */ - return 3109; + return 3118; } } else @@ -23337,7 +23436,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011101x1xxxxxx1101xxxxxxxxxxxx cpymwtn. */ - return 3067; + return 3076; } } } @@ -23353,7 +23452,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0011xxxxxxxxxxxx cpymt. */ - return 3082; + return 3091; } else { @@ -23361,7 +23460,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0011xxxxxxxxxxxx setgptn. */ - return 3114; + return 3123; } } else @@ -23372,7 +23471,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx1011xxxxxxxxxxxx cpymtrn. */ - return 3088; + return 3097; } else { @@ -23380,7 +23479,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx1011xxxxxxxxxxxx setgetn. */ - return 3116; + return 3125; } } } @@ -23394,7 +23493,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110101xxxxxx0111xxxxxxxxxxxx cpymtwn. */ - return 3085; + return 3094; } else { @@ -23402,7 +23501,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx01110111xxxxxx0111xxxxxxxxxxxx setgmtn. */ - return 3115; + return 3124; } } else @@ -23411,7 +23510,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx011101x1xxxxxx1111xxxxxxxxxxxx cpymtn. */ - return 3091; + return 3100; } } } @@ -23578,7 +23677,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110xx0xxxxx1x1001xxxxxxxxxx smmla. */ - return 2972; + return 2981; } } } @@ -23611,7 +23710,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110xx0xxxxx1x0101xxxxxxxxxx sdot. */ - return 2898; + return 2907; } } else @@ -23685,7 +23784,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110xx0xxxxx1x1011xxxxxxxxxx usmmla. */ - return 2974; + return 2983; } } } @@ -23718,7 +23817,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110xx0xxxxx1x0111xxxxxxxxxx usdot. */ - return 2975; + return 2984; } } else @@ -23765,7 +23864,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110000xxxxxxxxxxxxxxxxxxxxx eor3. */ - return 2905; + return 2914; } else { @@ -23773,7 +23872,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110100xxxxxxxxxxxxxxxxxxxxx xar. */ - return 2907; + return 2916; } } else @@ -23784,7 +23883,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110x10xxxxx0xxxxxxxxxxxxxxx sm3ss1. */ - return 2909; + return 2918; } else { @@ -23798,7 +23897,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110010xxxxx1xxx00xxxxxxxxxx sm3tt1a. */ - return 2910; + return 2919; } else { @@ -23806,7 +23905,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110110xxxxx1xxx00xxxxxxxxxx sha512su0. */ - return 2903; + return 2912; } } else @@ -23815,7 +23914,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110x10xxxxx1xxx10xxxxxxxxxx sm3tt2a. */ - return 2912; + return 2921; } } else @@ -23828,7 +23927,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110010xxxxx1xxx01xxxxxxxxxx sm3tt1b. */ - return 2911; + return 2920; } else { @@ -23836,7 +23935,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110110xxxxx1xxx01xxxxxxxxxx sm4e. */ - return 2916; + return 2925; } } else @@ -23845,7 +23944,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110x10xxxxx1xxx11xxxxxxxxxx sm3tt2b. */ - return 2913; + return 2922; } } } @@ -24026,7 +24125,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101110xx0xxxxx100101xxxxxxxxxx udot. */ - return 2897; + return 2906; } } else @@ -24057,7 +24156,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101110xx0xxxxx101x01xxxxxxxxxx ummla. */ - return 2973; + return 2982; } else { @@ -24076,7 +24175,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101110xx0xxxxx1x1011xxxxxxxxxx bfmmla. */ - return 2989; + return 2998; } else { @@ -24086,7 +24185,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1011100x0xxxxx1x1111xxxxxxxxxx bfdot. */ - return 2987; + return 2996; } else { @@ -24096,7 +24195,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01011101x0xxxxx1x1111xxxxxxxxxx bfmlalb. */ - return 2994; + return 3003; } else { @@ -24104,7 +24203,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11011101x0xxxxx1x1111xxxxxxxxxx bfmlalt. */ - return 2993; + return 3002; } } } @@ -24688,7 +24787,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000011101x1xxxx1011010xxxxxxxxxx bfcvtn. */ - return 2990; + return 2999; } else { @@ -24696,7 +24795,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010011101x1xxxx1011010xxxxxxxxxx bfcvtn2. */ - return 2991; + return 3000; } } } @@ -25014,7 +25113,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110xx1xxxxx0xxxxxxxxxxxxxxx bcax. */ - return 2908; + return 2917; } } else @@ -25625,7 +25724,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 11001110xx1xxxxx100000xxxxxxxxxx sha512h. */ - return 2901; + return 2910; } } } @@ -25677,7 +25776,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 11001110xx1xxxxx110000xxxxxxxxxx sm3partw1. */ - return 2914; + return 2923; } } } @@ -25920,7 +26019,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110xx1xxxxx100010xxxxxxxxxx sha512su1. */ - return 2904; + return 2913; } } else @@ -25996,7 +26095,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x0011100x1xxxxx110010xxxxxxxxxx sm4ekey. */ - return 2917; + return 2926; } } else @@ -26822,7 +26921,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110xx1xxxxx100001xxxxxxxxxx sha512h2. */ - return 2902; + return 2911; } } else @@ -26854,7 +26953,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x0011100x1xxxxx110001xxxxxxxxxx sm3partw2. */ - return 2915; + return 2924; } } else @@ -27094,7 +27193,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 1x001110xx1xxxxx100011xxxxxxxxxx rax1. */ - return 2906; + return 2915; } } else @@ -27126,7 +27225,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01011100x1xxxxx110011xxxxxxxxxx fmlal2. */ - return 2920; + return 2929; } else { @@ -27134,7 +27233,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11011100x1xxxxx110011xxxxxxxxxx fmlal2. */ - return 2924; + return 2933; } } } @@ -27156,7 +27255,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x01011101x1xxxxx110011xxxxxxxxxx fmlsl2. */ - return 2921; + return 2930; } else { @@ -27164,7 +27263,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11011101x1xxxxx110011xxxxxxxxxx fmlsl2. */ - return 2925; + return 2934; } } } @@ -27203,7 +27302,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x00011100x1xxxxx111011xxxxxxxxxx fmlal. */ - return 2918; + return 2927; } else { @@ -27211,7 +27310,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10011100x1xxxxx111011xxxxxxxxxx fmlal. */ - return 2922; + return 2931; } } else @@ -27233,7 +27332,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x00011101x1xxxxx111011xxxxxxxxxx fmlsl. */ - return 2919; + return 2928; } else { @@ -27241,7 +27340,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10011101x1xxxxx111011xxxxxxxxxx fmlsl. */ - return 2923; + return 2932; } } else @@ -29049,7 +29148,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0001111xxxxxxxx0000x0xxxxxxxxxx fmlal. */ - return 2926; + return 2935; } else { @@ -29057,7 +29156,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1001111xxxxxxxx0000x0xxxxxxxxxx fmlal. */ - return 2930; + return 2939; } } else @@ -29079,7 +29178,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0001111xxxxxxxx0100x0xxxxxxxxxx fmlsl. */ - return 2927; + return 2936; } else { @@ -29087,7 +29186,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1001111xxxxxxxx0100x0xxxxxxxxxx fmlsl. */ - return 2931; + return 2940; } } else @@ -29593,7 +29692,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101111xxxxxxxx1000x0xxxxxxxxxx fmlal2. */ - return 2928; + return 2937; } else { @@ -29601,7 +29700,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101111xxxxxxxx1000x0xxxxxxxxxx fmlal2. */ - return 2932; + return 2941; } } } @@ -29623,7 +29722,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101111xxxxxxxx1100x0xxxxxxxxxx fmlsl2. */ - return 2929; + return 2938; } else { @@ -29631,7 +29730,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101111xxxxxxxx1100x0xxxxxxxxxx fmlsl2. */ - return 2933; + return 2942; } } } @@ -29687,7 +29786,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx001111xxxxxxxx1110x0xxxxxxxxxx sdot. */ - return 2900; + return 2909; } else { @@ -29695,7 +29794,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101111xxxxxxxx1110x0xxxxxxxxxx udot. */ - return 2899; + return 2908; } } } @@ -29798,7 +29897,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx00111100xxxxxx1111x0xxxxxxxxxx sudot. */ - return 2977; + return 2986; } else { @@ -29806,7 +29905,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx00111110xxxxxx1111x0xxxxxxxxxx usdot. */ - return 2976; + return 2985; } } else @@ -29817,7 +29916,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx00111101xxxxxx1111x0xxxxxxxxxx bfdot. */ - return 2988; + return 2997; } else { @@ -29827,7 +29926,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x000111111xxxxxx1111x0xxxxxxxxxx bfmlalb. */ - return 2996; + return 3005; } else { @@ -29835,7 +29934,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x100111111xxxxxx1111x0xxxxxxxxxx bfmlalt. */ - return 2995; + return 3004; } } } @@ -30363,11 +30462,11 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) case 2407: value = 2412; break; /* st1q --> st1q. */ case 2412: return NULL; /* st1q --> NULL. */ case 12: value = 19; break; /* add --> addg. */ - case 19: value = 3118; break; /* addg --> smax. */ - case 3118: value = 3119; break; /* smax --> umax. */ - case 3119: value = 3120; break; /* umax --> smin. */ - case 3120: value = 3121; break; /* smin --> umin. */ - case 3121: return NULL; /* umin --> NULL. */ + case 19: value = 3127; break; /* addg --> smax. */ + case 3127: value = 3128; break; /* smax --> umax. */ + case 3128: value = 3129; break; /* umax --> smin. */ + case 3129: value = 3130; break; /* smin --> umin. */ + case 3130: return NULL; /* umin --> NULL. */ case 16: value = 20; break; /* sub --> subg. */ case 20: return NULL; /* subg --> NULL. */ case 971: value = 975; break; /* stnp --> stp. */ @@ -30525,8 +30624,8 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) case 824: return NULL; /* fsqrt --> NULL. */ case 832: value = 833; break; /* frintz --> frintz. */ case 833: return NULL; /* frintz --> NULL. */ - case 825: value = 2992; break; /* fcvt --> bfcvt. */ - case 2992: return NULL; /* bfcvt --> NULL. */ + case 825: value = 3001; break; /* fcvt --> bfcvt. */ + case 3001: return NULL; /* bfcvt --> NULL. */ case 834: value = 835; break; /* frinta --> frinta. */ case 835: return NULL; /* frinta --> NULL. */ case 836: value = 837; break; /* frintx --> frintx. */ @@ -31055,7 +31154,7 @@ aarch64_extract_operand (const aarch64_operand *self, case 33: case 34: case 35: - case 268: + case 270: return aarch64_ext_reglane (self, info, code, inst, errors); case 36: return aarch64_ext_reglist (self, info, code, inst, errors); @@ -31102,12 +31201,12 @@ aarch64_extract_operand (const aarch64_operand *self, case 193: case 194: case 237: - case 262: - case 263: + case 264: case 265: case 267: - case 272: - case 273: + case 269: + case 274: + case 275: return aarch64_ext_imm (self, info, code, inst, errors); case 44: case 45: @@ -31178,8 +31277,8 @@ aarch64_extract_operand (const aarch64_operand *self, case 107: return aarch64_ext_prfop (self, info, code, inst, errors); case 108: - case 264: case 266: + case 268: return aarch64_ext_none (self, info, code, inst, errors); case 109: return aarch64_ext_hint (self, info, code, inst, errors); @@ -31259,6 +31358,7 @@ aarch64_extract_operand (const aarch64_operand *self, case 184: case 185: case 186: + case 250: return aarch64_ext_sve_shrimm (self, info, code, inst, errors); case 204: case 205: @@ -31292,8 +31392,6 @@ aarch64_extract_operand (const aarch64_operand *self, return aarch64_ext_sme_za_hv_tiles_range (self, info, code, inst, errors); case 235: case 236: - case 249: - case 250: case 251: case 252: case 253: @@ -31305,6 +31403,8 @@ aarch64_extract_operand (const aarch64_operand *self, case 259: case 260: case 261: + case 262: + case 263: return aarch64_ext_simple_index (self, info, code, inst, errors); case 239: case 240: @@ -31320,9 +31420,11 @@ aarch64_extract_operand (const aarch64_operand *self, return aarch64_ext_sme_sm_za (self, info, code, inst, errors); case 248: return aarch64_ext_sme_pred_reg_with_index (self, info, code, inst, errors); - case 269: - case 270: + case 249: + return aarch64_ext_plain_shrimm (self, info, code, inst, errors); case 271: + case 272: + case 273: return aarch64_ext_x0_to_x30 (self, info, code, inst, errors); default: assert (0); abort (); } diff --git a/opcodes/aarch64-dis.c b/opcodes/aarch64-dis.c index fd13c924804..019ee8b0b81 100644 --- a/opcodes/aarch64-dis.c +++ b/opcodes/aarch64-dis.c @@ -2157,6 +2157,19 @@ aarch64_ext_simple_index (const aarch64_operand *self, aarch64_opnd_info *info, info->reglane.index = extract_all_fields_after (self, 1, code); return true; } + +/* Decode a plain shift-right immediate, when there is only a single + element size. */ +bool +aarch64_ext_plain_shrimm (const aarch64_operand *self, aarch64_opnd_info *info, + const aarch64_insn code, + const aarch64_inst *inst ATTRIBUTE_UNUSED, + aarch64_operand_error *errors ATTRIBUTE_UNUSED) +{ + unsigned int base = 1 << get_operand_field_width (self, 0); + info->imm.value = base - extract_field (self->fields[0], code, 0); + return true; +} /* Bitfields that are commonly used to encode certain operands' information may be partially used as part of the base opcode in some instructions. @@ -3078,6 +3091,10 @@ aarch64_decode_variant_using_iclass (aarch64_inst *inst) } break; + case sme_shift: + i = extract_field (FLD_SVE_tszh, inst->value, 0); + goto sve_shift; + case sme_size_12_bhs: variant = extract_field (FLD_SME_size_12, inst->value, 0); if (variant >= 3) diff --git a/opcodes/aarch64-dis.h b/opcodes/aarch64-dis.h index 6e6c00b1de2..3be382fe5fd 100644 --- a/opcodes/aarch64-dis.h +++ b/opcodes/aarch64-dis.h @@ -135,6 +135,7 @@ AARCH64_DECL_OPD_EXTRACTOR (ext_imm_rotate1); AARCH64_DECL_OPD_EXTRACTOR (ext_imm_rotate2); AARCH64_DECL_OPD_EXTRACTOR (ext_x0_to_x30); AARCH64_DECL_OPD_EXTRACTOR (ext_simple_index); +AARCH64_DECL_OPD_EXTRACTOR (ext_plain_shrimm); #undef AARCH64_DECL_OPD_EXTRACTOR diff --git a/opcodes/aarch64-opc-2.c b/opcodes/aarch64-opc-2.c index a2ef94536ff..ae707ef82c9 100644 --- a/opcodes/aarch64-opc-2.c +++ b/opcodes/aarch64-opc-2.c @@ -273,6 +273,8 @@ const struct aarch64_operand aarch64_operands[] = {AARCH64_OPND_CLASS_ADDRESS, "SME_ADDR_RI_U4xVL", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_Rn,FLD_imm4_0}, "memory offset"}, {AARCH64_OPND_CLASS_ADDRESS, "SME_SM_ZA", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_CRm}, "streaming mode"}, {AARCH64_OPND_CLASS_SVE_REG, "SME_PnT_Wm_imm", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_Rm,FLD_SVE_Pn,FLD_SME_i1,FLD_SME_tszh,FLD_SME_tszl}, "Source scalable predicate register with index "}, + {AARCH64_OPND_CLASS_IMMEDIATE, "SME_SHRIMM4", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_imm4}, "a shift-right immediate operand"}, + {AARCH64_OPND_CLASS_IMMEDIATE, "SME_SHRIMM5", 1 << OPD_F_OD_LSB | OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SVE_tszh,FLD_SVE_imm5b}, "a shift-right immediate operand"}, {AARCH64_OPND_CLASS_SVE_REG, "SME_Zm_INDEX1", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_Zm, FLD_imm1_10}, "an indexed SVE vector register"}, {AARCH64_OPND_CLASS_SVE_REG, "SME_Zm_INDEX2", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_Zm, FLD_imm2_10}, "an indexed SVE vector register"}, {AARCH64_OPND_CLASS_SVE_REG, "SME_Zm_INDEX3_1", OPD_F_HAS_INSERTER | OPD_F_HAS_EXTRACTOR, {FLD_SME_Zm, FLD_imm1_10, FLD_imm2_1}, "an indexed SVE vector register"}, diff --git a/opcodes/aarch64-opc.c b/opcodes/aarch64-opc.c index 0418a21b295..810548a93bd 100644 --- a/opcodes/aarch64-opc.c +++ b/opcodes/aarch64-opc.c @@ -2924,6 +2924,16 @@ operand_general_constraint_met_p (const aarch64_opnd_info *opnds, int idx, } break; + case AARCH64_OPND_SME_SHRIMM4: + size = 1 << get_operand_fields_width (get_operand_from_code (type)); + if (!value_in_range_p (opnd->imm.value, 1, size)) + { + set_imm_out_of_range_error (mismatch_detail, idx, 1, size); + return 0; + } + break; + + case AARCH64_OPND_SME_SHRIMM5: case AARCH64_OPND_SVE_SHRIMM_PRED: case AARCH64_OPND_SVE_SHRIMM_UNPRED: case AARCH64_OPND_SVE_SHRIMM_UNPRED_22: @@ -4103,6 +4113,8 @@ aarch64_print_operand (char *buf, size_t size, bfd_vma pc, case AARCH64_OPND_FBITS: case AARCH64_OPND_TME_UIMM16: case AARCH64_OPND_SIMM5: + case AARCH64_OPND_SME_SHRIMM4: + case AARCH64_OPND_SME_SHRIMM5: case AARCH64_OPND_SVE_SHLIMM_PRED: case AARCH64_OPND_SVE_SHLIMM_UNPRED: case AARCH64_OPND_SVE_SHLIMM_UNPRED_22: diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index b0c5bb54ae4..a6f5747c417 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -1628,6 +1628,10 @@ { \ QLF2(S_H,S_S), \ } +#define OP_SVE_HSU \ +{ \ + QLF3(S_H,S_S,NIL), \ +} #define OP_SVE_HU \ { \ QLF2(S_H,NIL), \ @@ -1854,6 +1858,11 @@ QLF3(S_S,P_M,S_H), \ QLF3(S_D,P_M,S_S), \ } +#define OP_SVE_VVU_BH_SD \ +{ \ + QLF3(S_B,S_S,NIL), \ + QLF3(S_H,S_D,NIL), \ +} #define OP_SVE_VVU_HSD_BHS \ { \ QLF3(S_H,S_B,NIL), \ @@ -5623,6 +5632,12 @@ const struct aarch64_opcode aarch64_opcode_table[] = SME2_INSN ("sqdmulh", 0xc120ac00, 0xff30ffe3, sme_size_22, 0, OP3 (SME_Zdnx4, SME_Zdnx4, SME_Zm), OP_SVE_VVV_BHSD, 0, 1), SME2_INSN ("sqdmulh", 0xc120b400, 0xff21ffe1, sme_size_22, 0, OP3 (SME_Zdnx2, SME_Zdnx2, SME_Zmx2), OP_SVE_VVV_BHSD, 0, 1), SME2_INSN ("sqdmulh", 0xc120bc00, 0xff23ffe3, sme_size_22, 0, OP3 (SME_Zdnx4, SME_Zdnx4, SME_Zmx4), OP_SVE_VVV_BHSD, 0, 1), + SME2_INSN ("sqrshr", 0xc1e0d400, 0xfff0fc20, sme_misc, 0, OP3 (SVE_Zd, SME_Znx2, SME_SHRIMM4), OP_SVE_HSU, 0, 0), + SME2_INSN ("sqrshr", 0xc120d800, 0xff20fc60, sme_shift, 0, OP3 (SVE_Zd, SME_Znx4, SME_SHRIMM5), OP_SVE_VVU_BH_SD, 0, 0), + SME2_INSN ("sqrshrn", 0xc120dc00, 0xff20fc60, sme_shift, 0, OP3 (SVE_Zd, SME_Znx4, SME_SHRIMM5), OP_SVE_VVU_BH_SD, 0, 0), + SME2_INSN ("sqrshru", 0xc1f0d400, 0xfff0fc20, sme_misc, 0, OP3 (SVE_Zd, SME_Znx2, SME_SHRIMM4), OP_SVE_HSU, 0, 0), + SME2_INSN ("sqrshru", 0xc120d840, 0xff20fc60, sme_shift, 0, OP3 (SVE_Zd, SME_Znx4, SME_SHRIMM5), OP_SVE_VVU_BH_SD, 0, 0), + SME2_INSN ("sqrshrun", 0xc120dc40, 0xff20fc60, sme_shift, 0, OP3 (SVE_Zd, SME_Znx4, SME_SHRIMM5), OP_SVE_VVU_BH_SD, 0, 0), SME2_INSN ("srshl", 0xc120a220, 0xff30ffe1, sme_size_22, 0, OP3 (SME_Zdnx2, SME_Zdnx2, SME_Zm), OP_SVE_VVV_BHSD, 0, 1), SME2_INSN ("srshl", 0xc120aa20, 0xff30ffe3, sme_size_22, 0, OP3 (SME_Zdnx4, SME_Zdnx4, SME_Zm), OP_SVE_VVV_BHSD, 0, 1), SME2_INSN ("srshl", 0xc120b220, 0xff21ffe1, sme_size_22, 0, OP3 (SME_Zdnx2, SME_Zdnx2, SME_Zmx2), OP_SVE_VVV_BHSD, 0, 1), @@ -5771,6 +5786,9 @@ const struct aarch64_opcode aarch64_opcode_table[] = SME2_INSN ("uqcvt", 0xc123e020, 0xfffffc20, sme_misc, 0, OP2 (SVE_Zd, SME_Znx2), OP_SVE_HS, 0, 0), SME2_INSN ("uqcvt", 0xc133e020, 0xff7ffc60, sme_sz_23, 0, OP2 (SVE_Zd, SME_Znx4), OP_SVE_VV_BH_SD, 0, 0), SME2_INSN ("uqcvtn", 0xc133e060, 0xff7ffc60, sme_sz_23, 0, OP2 (SVE_Zd, SME_Znx4), OP_SVE_VV_BH_SD, 0, 0), + SME2_INSN ("uqrshr", 0xc1e0d420, 0xfff0fc20, sme_misc, 0, OP3 (SVE_Zd, SME_Znx2, SME_SHRIMM4), OP_SVE_HSU, 0, 0), + SME2_INSN ("uqrshr", 0xc120d820, 0xff20fc60, sme_shift, 0, OP3 (SVE_Zd, SME_Znx4, SME_SHRIMM5), OP_SVE_VVU_BH_SD, 0, 0), + SME2_INSN ("uqrshrn", 0xc120dc20, 0xff20fc60, sme_shift, 0, OP3 (SVE_Zd, SME_Znx4, SME_SHRIMM5), OP_SVE_VVU_BH_SD, 0, 0), SME2_INSN ("urshl", 0xc120a221, 0xff30ffe1, sme_size_22, 0, OP3 (SME_Zdnx2, SME_Zdnx2, SME_Zm), OP_SVE_VVV_BHSD, 0, 1), SME2_INSN ("urshl", 0xc120aa21, 0xff30ffe3, sme_size_22, 0, OP3 (SME_Zdnx4, SME_Zdnx4, SME_Zm), OP_SVE_VVV_BHSD, 0, 1), SME2_INSN ("urshl", 0xc120b221, 0xff21ffe1, sme_size_22, 0, OP3 (SME_Zdnx2, SME_Zdnx2, SME_Zmx2), OP_SVE_VVV_BHSD, 0, 1), @@ -6547,6 +6565,10 @@ const struct aarch64_opcode aarch64_opcode_table[] = Y(SVE_REG, sme_pred_reg_with_index, "SME_PnT_Wm_imm", 0, \ F(FLD_SME_Rm,FLD_SVE_Pn,FLD_SME_i1,FLD_SME_tszh,FLD_SME_tszl), \ "Source scalable predicate register with index ") \ + Y(IMMEDIATE, plain_shrimm, "SME_SHRIMM4", 0, F(FLD_SVE_imm4), \ + "a shift-right immediate operand") \ + Y(IMMEDIATE, sve_shrimm, "SME_SHRIMM5", 1 << OPD_F_OD_LSB, \ + F(FLD_SVE_tszh,FLD_SVE_imm5b), "a shift-right immediate operand") \ Y(SVE_REG, simple_index, "SME_Zm_INDEX1", 0, \ F(FLD_SME_Zm, FLD_imm1_10), "an indexed SVE vector register") \ Y(SVE_REG, simple_index, "SME_Zm_INDEX2", 0, \