From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1130) id 527823858C50; Thu, 30 Mar 2023 10:15:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 527823858C50 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Richard Sandiford To: bfd-cvs@sourceware.org Subject: [binutils-gdb] aarch64: Add the SME2 MOPA and MOPS instructions X-Act-Checkin: binutils-gdb X-Git-Author: Richard Sandiford X-Git-Refname: refs/heads/master X-Git-Oldrev: a42de2296a069aa3037594585994b2d376b0baff X-Git-Newrev: 261f8708dbbb2c0cc1e7be7986083c6a81005b2e Message-Id: <20230330101549.527823858C50@sourceware.org> Date: Thu, 30 Mar 2023 10:15:49 +0000 (GMT) X-BeenThere: binutils-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 30 Mar 2023 10:15:49 -0000 https://sourceware.org/git/gitweb.cgi?p=3Dbinutils-gdb.git;h=3D261f8708dbbb= 2c0cc1e7be7986083c6a81005b2e commit 261f8708dbbb2c0cc1e7be7986083c6a81005b2e Author: Richard Sandiford Date: Thu Mar 30 11:09:15 2023 +0100 aarch64: Add the SME2 MOPA and MOPS instructions =20 [BSU]MOP[AS] share the same format. Diff: --- gas/testsuite/gas/aarch64/sme2-21-invalid.d | 3 + gas/testsuite/gas/aarch64/sme2-21-invalid.l | 18 + gas/testsuite/gas/aarch64/sme2-21-invalid.s | 12 + gas/testsuite/gas/aarch64/sme2-21-noarch.d | 3 + gas/testsuite/gas/aarch64/sme2-21-noarch.l | 43 + gas/testsuite/gas/aarch64/sme2-21.d | 51 + gas/testsuite/gas/aarch64/sme2-21.s | 47 + opcodes/aarch64-dis-2.c | 1500 ++++++++++++++---------= ---- opcodes/aarch64-tbl.h | 6 + 9 files changed, 966 insertions(+), 717 deletions(-) diff --git a/gas/testsuite/gas/aarch64/sme2-21-invalid.d b/gas/testsuite/ga= s/aarch64/sme2-21-invalid.d new file mode 100644 index 00000000000..5d1d1f4091e --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21-invalid.d @@ -0,0 +1,3 @@ +#as: -march=3Darmv8-a +#source: sme2-21-invalid.s +#error_output: sme2-21-invalid.l diff --git a/gas/testsuite/gas/aarch64/sme2-21-invalid.l b/gas/testsuite/ga= s/aarch64/sme2-21-invalid.l new file mode 100644 index 00000000000..c148ab2ece7 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21-invalid.l @@ -0,0 +1,18 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: expected a ZA tile at operand 1 -- `bmopa 0,p0/m,p0/= m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 2 -- `= bmopa za0\.s,0,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: expected an SVE predicate register at operand 3 -- `= bmopa za0\.s,p0/m,0,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 4 -- `bmo= pa za0\.s,p0/m,p0/m,0,z0\.s' +[^ :]+:[0-9]+: Error: expected an SVE vector register at operand 5 -- `bmo= pa za0\.s,p0/m,p0/m,z0\.s,0' +[^ :]+:[0-9]+: Error: operand mismatch -- `bmopa za0\.b,p0/m,p0/m,z0\.b,z0= \.b' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: bmopa za0\.s, p0/m, p0/m, z0\.s, z0\.s +[^ :]+:[0-9]+: Error: operand mismatch -- `bmopa za0\.b,p0/m,p0/m,z0\.s,z0= \.s' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: bmopa za0\.s, p0/m, p0/m, z0\.s, z0\.s +[^ :]+:[0-9]+: Error: operand mismatch -- `bmopa za0\.s,p0/m,p0/m,z0\.b,z0= \.b' +[^ :]+:[0-9]+: Info: did you mean this\? +[^ :]+:[0-9]+: Info: bmopa za0\.s, p0/m, p0/m, z0\.s, z0\.s +[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `bmopa z= a4\.s,p0/m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: p0-p7 expected at operand 2 -- `bmopa za0\.s,p8/m,p0= /m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: ZA tile number out of range at operand 1 -- `bmopa z= a4\.s,p0/m,p8/m,z0\.s,z0\.s' diff --git a/gas/testsuite/gas/aarch64/sme2-21-invalid.s b/gas/testsuite/ga= s/aarch64/sme2-21-invalid.s new file mode 100644 index 00000000000..91a3e8f70c0 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21-invalid.s @@ -0,0 +1,12 @@ + bmopa 0, p0/m, p0/m, z0.s, z0.s + bmopa za0.s, 0, p0/m, z0.s, z0.s + bmopa za0.s, p0/m, 0, z0.s, z0.s + bmopa za0.s, p0/m, p0/m, 0, z0.s + bmopa za0.s, p0/m, p0/m, z0.s, 0 + + bmopa za0.b, p0/m, p0/m, z0.b, z0.b + bmopa za0.b, p0/m, p0/m, z0.s, z0.s + bmopa za0.s, p0/m, p0/m, z0.b, z0.b + bmopa za4.s, p0/m, p0/m, z0.s, z0.s + bmopa za0.s, p8/m, p0/m, z0.s, z0.s + bmopa za4.s, p0/m, p8/m, z0.s, z0.s diff --git a/gas/testsuite/gas/aarch64/sme2-21-noarch.d b/gas/testsuite/gas= /aarch64/sme2-21-noarch.d new file mode 100644 index 00000000000..830ef05c601 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21-noarch.d @@ -0,0 +1,3 @@ +#as: -march=3Darmv8-a+sme +#source: sme2-21.s +#error_output: sme2-21-noarch.l diff --git a/gas/testsuite/gas/aarch64/sme2-21-noarch.l b/gas/testsuite/gas= /aarch64/sme2-21-noarch.l new file mode 100644 index 00000000000..64842d9714c --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21-noarch.l @@ -0,0 +1,43 @@ +[^ :]+: Assembler messages: +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za0\.s,p0= /m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za3\.s,p0= /m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za0\.s,p7= /m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za0\.s,p0= /m,p7/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za0\.s,p0= /m,p0/m,z31\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za0\.s,p0= /m,p0/m,z0\.s,z31\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmopa za2\.s,p6= /m,p3/m,z19\.s,z8\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za0\.s,p0= /m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za3\.s,p0= /m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za0\.s,p7= /m,p0/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za0\.s,p0= /m,p7/m,z0\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za0\.s,p0= /m,p0/m,z31\.s,z0\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za0\.s,p0= /m,p0/m,z0\.s,z31\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `bmops za1\.s,p3= /m,p5/m,z24\.s,z6\.s' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za0\.s,p0= /m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za3\.s,p0= /m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za0\.s,p7= /m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za0\.s,p0= /m,p7/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za0\.s,p0= /m,p0/m,z31\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za0\.s,p0= /m,p0/m,z0\.h,z31\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smopa za1\.s,p2= /m,p3/m,z14\.h,z25\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za0\.s,p0= /m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za3\.s,p0= /m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za0\.s,p7= /m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za0\.s,p0= /m,p7/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za0\.s,p0= /m,p0/m,z31\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za0\.s,p0= /m,p0/m,z0\.h,z31\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `smops za1\.s,p2= /m,p3/m,z14\.h,z25\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za0\.s,p0= /m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za3\.s,p0= /m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za0\.s,p7= /m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za0\.s,p0= /m,p7/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za0\.s,p0= /m,p0/m,z31\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za0\.s,p0= /m,p0/m,z0\.h,z31\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umopa za1\.s,p2= /m,p3/m,z14\.h,z25\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za0\.s,p0= /m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za3\.s,p0= /m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za0\.s,p7= /m,p0/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za0\.s,p0= /m,p7/m,z0\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za0\.s,p0= /m,p0/m,z31\.h,z0\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za0\.s,p0= /m,p0/m,z0\.h,z31\.h' +[^ :]+:[0-9]+: Error: selected processor does not support `umops za1\.s,p2= /m,p3/m,z14\.h,z25\.h' diff --git a/gas/testsuite/gas/aarch64/sme2-21.d b/gas/testsuite/gas/aarch6= 4/sme2-21.d new file mode 100644 index 00000000000..255a56d9b70 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21.d @@ -0,0 +1,51 @@ +#as: -march=3Darmv8-a+sme2 +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +[^:]+: 80800008 bmopa za0\.s, p0/m, p0/m, z0\.s, z0\.s +[^:]+: 8080000b bmopa za3\.s, p0/m, p0/m, z0\.s, z0\.s +[^:]+: 80801c08 bmopa za0\.s, p7/m, p0/m, z0\.s, z0\.s +[^:]+: 8080e008 bmopa za0\.s, p0/m, p7/m, z0\.s, z0\.s +[^:]+: 808003e8 bmopa za0\.s, p0/m, p0/m, z31\.s, z0\.s +[^:]+: 809f0008 bmopa za0\.s, p0/m, p0/m, z0\.s, z31\.s +[^:]+: 80887a6a bmopa za2\.s, p6/m, p3/m, z19\.s, z8\.s +[^:]+: 80800018 bmops za0\.s, p0/m, p0/m, z0\.s, z0\.s +[^:]+: 8080001b bmops za3\.s, p0/m, p0/m, z0\.s, z0\.s +[^:]+: 80801c18 bmops za0\.s, p7/m, p0/m, z0\.s, z0\.s +[^:]+: 8080e018 bmops za0\.s, p0/m, p7/m, z0\.s, z0\.s +[^:]+: 808003f8 bmops za0\.s, p0/m, p0/m, z31\.s, z0\.s +[^:]+: 809f0018 bmops za0\.s, p0/m, p0/m, z0\.s, z31\.s +[^:]+: 8086af19 bmops za1\.s, p3/m, p5/m, z24\.s, z6\.s +[^:]+: a0800008 smopa za0\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a080000b smopa za3\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a0801c08 smopa za0\.s, p7/m, p0/m, z0\.h, z0\.h +[^:]+: a080e008 smopa za0\.s, p0/m, p7/m, z0\.h, z0\.h +[^:]+: a08003e8 smopa za0\.s, p0/m, p0/m, z31\.h, z0\.h +[^:]+: a09f0008 smopa za0\.s, p0/m, p0/m, z0\.h, z31\.h +[^:]+: a09969c9 smopa za1\.s, p2/m, p3/m, z14\.h, z25\.h +[^:]+: a0800018 smops za0\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a080001b smops za3\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a0801c18 smops za0\.s, p7/m, p0/m, z0\.h, z0\.h +[^:]+: a080e018 smops za0\.s, p0/m, p7/m, z0\.h, z0\.h +[^:]+: a08003f8 smops za0\.s, p0/m, p0/m, z31\.h, z0\.h +[^:]+: a09f0018 smops za0\.s, p0/m, p0/m, z0\.h, z31\.h +[^:]+: a09969d9 smops za1\.s, p2/m, p3/m, z14\.h, z25\.h +[^:]+: a1800008 umopa za0\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a180000b umopa za3\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a1801c08 umopa za0\.s, p7/m, p0/m, z0\.h, z0\.h +[^:]+: a180e008 umopa za0\.s, p0/m, p7/m, z0\.h, z0\.h +[^:]+: a18003e8 umopa za0\.s, p0/m, p0/m, z31\.h, z0\.h +[^:]+: a19f0008 umopa za0\.s, p0/m, p0/m, z0\.h, z31\.h +[^:]+: a19969c9 umopa za1\.s, p2/m, p3/m, z14\.h, z25\.h +[^:]+: a1800018 umops za0\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a180001b umops za3\.s, p0/m, p0/m, z0\.h, z0\.h +[^:]+: a1801c18 umops za0\.s, p7/m, p0/m, z0\.h, z0\.h +[^:]+: a180e018 umops za0\.s, p0/m, p7/m, z0\.h, z0\.h +[^:]+: a18003f8 umops za0\.s, p0/m, p0/m, z31\.h, z0\.h +[^:]+: a19f0018 umops za0\.s, p0/m, p0/m, z0\.h, z31\.h +[^:]+: a19969d9 umops za1\.s, p2/m, p3/m, z14\.h, z25\.h diff --git a/gas/testsuite/gas/aarch64/sme2-21.s b/gas/testsuite/gas/aarch6= 4/sme2-21.s new file mode 100644 index 00000000000..a924b7d83a6 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sme2-21.s @@ -0,0 +1,47 @@ + bmopa za0.s, p0/m, p0/m, z0.s, z0.s + bmopa za3.s, p0/m, p0/m, z0.s, z0.s + bmopa za0.s, p7/m, p0/m, z0.s, z0.s + bmopa za0.s, p0/m, p7/m, z0.s, z0.s + bmopa za0.s, p0/m, p0/m, z31.s, z0.s + bmopa za0.s, p0/m, p0/m, z0.s, z31.s + bmopa za2.s, p6/m, p3/m, z19.s, z8.s + + bmops za0.s, p0/m, p0/m, z0.s, z0.s + bmops za3.s, p0/m, p0/m, z0.s, z0.s + bmops za0.s, p7/m, p0/m, z0.s, z0.s + bmops za0.s, p0/m, p7/m, z0.s, z0.s + bmops za0.s, p0/m, p0/m, z31.s, z0.s + bmops za0.s, p0/m, p0/m, z0.s, z31.s + bmops za1.s, p3/m, p5/m, z24.s, z6.s + + smopa za0.s, p0/m, p0/m, z0.h, z0.h + smopa za3.s, p0/m, p0/m, z0.h, z0.h + smopa za0.s, p7/m, p0/m, z0.h, z0.h + smopa za0.s, p0/m, p7/m, z0.h, z0.h + smopa za0.s, p0/m, p0/m, z31.h, z0.h + smopa za0.s, p0/m, p0/m, z0.h, z31.h + smopa za1.s, p2/m, p3/m, z14.h, z25.h + + smops za0.s, p0/m, p0/m, z0.h, z0.h + smops za3.s, p0/m, p0/m, z0.h, z0.h + smops za0.s, p7/m, p0/m, z0.h, z0.h + smops za0.s, p0/m, p7/m, z0.h, z0.h + smops za0.s, p0/m, p0/m, z31.h, z0.h + smops za0.s, p0/m, p0/m, z0.h, z31.h + smops za1.s, p2/m, p3/m, z14.h, z25.h + + umopa za0.s, p0/m, p0/m, z0.h, z0.h + umopa za3.s, p0/m, p0/m, z0.h, z0.h + umopa za0.s, p7/m, p0/m, z0.h, z0.h + umopa za0.s, p0/m, p7/m, z0.h, z0.h + umopa za0.s, p0/m, p0/m, z31.h, z0.h + umopa za0.s, p0/m, p0/m, z0.h, z31.h + umopa za1.s, p2/m, p3/m, z14.h, z25.h + + umops za0.s, p0/m, p0/m, z0.h, z0.h + umops za3.s, p0/m, p0/m, z0.h, z0.h + umops za0.s, p7/m, p0/m, z0.h, z0.h + umops za0.s, p0/m, p7/m, z0.h, z0.h + umops za0.s, p0/m, p0/m, z31.h, z0.h + umops za0.s, p0/m, p0/m, z0.h, z31.h + umops za1.s, p2/m, p3/m, z14.h, z25.h diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c index ddd0a68970a..672475aee5b 100644 --- a/opcodes/aarch64-dis-2.c +++ b/opcodes/aarch64-dis-2.c @@ -54,21 +54,43 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 4) & 0x1) =3D=3D 0) + if (((word >> 3) & 0x1) =3D=3D 0) { - /* 3322222222221111111111000= 0000000 - 1098765432109876543210987= 6543210 - x0000000100xxxxxxxxxxxxxx= xx0xxxx - fmopa. */ - return 2365; + if (((word >> 4) & 0x1) =3D= =3D 0) + { + /* 332222222222111111111= 10000000000 + 109876543210987654321= 09876543210 + x0000000100xxxxxxxxxx= xxxxxx00xxx + fmopa. */ + return 2365; + } + else + { + /* 332222222222111111111= 10000000000 + 109876543210987654321= 09876543210 + x0000000100xxxxxxxxxx= xxxxxx10xxx + fmops. */ + return 2368; + } } else { - /* 3322222222221111111111000= 0000000 - 1098765432109876543210987= 6543210 - x0000000100xxxxxxxxxxxxxx= xx1xxxx - fmops. */ - return 2368; + if (((word >> 4) & 0x1) =3D= =3D 0) + { + /* 332222222222111111111= 10000000000 + 109876543210987654321= 09876543210 + x0000000100xxxxxxxxxx= xxxxxx01xxx + bmopa. */ + return 2459; + } + else + { + /* 332222222222111111111= 10000000000 + 109876543210987654321= 09876543210 + x0000000100xxxxxxxxxx= xxxxxx11xxx + bmops. */ + return 2460; + } } } } @@ -166,7 +188,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543210987654321= 09876543210 x1000000x10x100xxxxxx= xxxxxxxxxxx zero. */ - return 2833; + return 2839; } } } @@ -190,7 +212,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x1000000x00x101xx= 0xxxxxxxxxxxxxx luti4. */ - return 2585; + return 2587; } else { @@ -198,7 +220,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x1000000x00x101xx= 1xxxxxxxxxxxxxx luti4. */ - return 2584; + return 2586; } } else @@ -207,7 +229,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543210987654321= 09876543210 x1000000x10x101xxxxxx= xxxxxxxxxxx luti4. */ - return 2583; + return 2585; } } } @@ -226,7 +248,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x1000000xx0x010xx= xxx00xxxxxxxxxx mov. */ - return 2592; + return 2594; } else { @@ -234,7 +256,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x1000000xx0x011xx= xxx00xxxxxxxxxx mov. */ - return 2588; + return 2590; } } else @@ -247,7 +269,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x1000000x00x1= 1xxx0xx00xxxxxxxxxx luti2. */ - return 2582; + return 2584; } else { @@ -255,7 +277,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x1000000x00x1= 1xxx1xx00xxxxxxxxxx luti2. */ - return 2581; + return 2583; } } else @@ -268,7 +290,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543= 21098765432109876543210 x10000000= 10x110xxxxx00xxxxxxxxxx movt. */ - return 2603; + return 2605; } else { @@ -276,7 +298,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543= 21098765432109876543210 x10000000= 10x111xxxxx00xxxxxxxxxx movt. */ - return 2602; + return 2604; } } else @@ -285,7 +307,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x1000000110x1= 1xxxxxx00xxxxxxxxxx luti2. */ - return 2580; + return 2582; } } } @@ -298,7 +320,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543210987654321= 09876543210 x1000000xx0xx10xxxxx1= 0xxxxxxxxxx mov. */ - return 2590; + return 2592; } else { @@ -306,7 +328,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543210987654321= 09876543210 x1000000xx0xx11xxxxx1= 0xxxxxxxxxx mov. */ - return 2586; + return 2588; } } } @@ -320,7 +342,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543210987654321= 09876543210 x1000000xx0xx10xxxxx0= 1xxxxxxxxxx mov. */ - return 2593; + return 2595; } else { @@ -328,7 +350,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543210987654321= 09876543210 x1000000xx0xx11xxxxx0= 1xxxxxxxxxx mov. */ - return 2589; + return 2591; } } else @@ -339,7 +361,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543210987654321= 09876543210 x1000000xx0xx10xxxxx1= 1xxxxxxxxxx mov. */ - return 2591; + return 2593; } else { @@ -347,7 +369,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543210987654321= 09876543210 x1000000xx0xx11xxxxx1= 1xxxxxxxxxx mov. */ - return 2587; + return 2589; } } } @@ -374,7 +396,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx000xxxxxxxxxxxx0 ld1b. */ - return 2519; + return 2521; } else { @@ -382,7 +404,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx100xxxxxxxxxxxx0 ld1b. */ - return 2520; + return 2522; } } else @@ -393,7 +415,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx010xxxxxxxxxxxx0 ld1w. */ - return 2543; + return 2545; } else { @@ -401,7 +423,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx110xxxxxxxxxxxx0 ld1w. */ - return 2544; + return 2546; } } } @@ -415,7 +437,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx001xxxxxxxxxxxx0 ld1h. */ - return 2535; + return 2537; } else { @@ -423,7 +445,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx101xxxxxxxxxxxx0 ld1h. */ - return 2536; + return 2538; } } else @@ -434,7 +456,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx011xxxxxxxxxxxx0 ld1d. */ - return 2527; + return 2529; } else { @@ -442,7 +464,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx111xxxxxxxxxxxx0 ld1d. */ - return 2528; + return 2530; } } } @@ -459,7 +481,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx000xxxxxxxxxxxx1 ldnt1b. */ - return 2551; + return 2553; } else { @@ -467,7 +489,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx100xxxxxxxxxxxx1 ldnt1b. */ - return 2552; + return 2554; } } else @@ -478,7 +500,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx010xxxxxxxxxxxx1 ldnt1w. */ - return 2575; + return 2577; } else { @@ -486,7 +508,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx110xxxxxxxxxxxx1 ldnt1w. */ - return 2576; + return 2578; } } } @@ -500,7 +522,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx001xxxxxxxxxxxx1 ldnt1h. */ - return 2567; + return 2569; } else { @@ -508,7 +530,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx101xxxxxxxxxxxx1 ldnt1h. */ - return 2568; + return 2570; } } else @@ -519,7 +541,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx011xxxxxxxxxxxx1 ldnt1d. */ - return 2559; + return 2561; } else { @@ -527,7 +549,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000000xx= xxx111xxxxxxxxxxxx1 ldnt1d. */ - return 2560; + return 2562; } } } @@ -548,11 +570,22 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 30) & 0x1) =3D=3D = 0) { - /* 3322222222221111111111000= 0000000 - 1098765432109876543210987= 6543210 - x0100000100xxxxxxxxxxxxxx= xx0xxxx - smopa. */ - return 2372; + if (((word >> 3) & 0x1) =3D= =3D 0) + { + /* 332222222222111111111= 10000000000 + 109876543210987654321= 09876543210 + x0100000100xxxxxxxxxx= xxxxxx00xxx + smopa. */ + return 2372; + } + else + { + /* 332222222222111111111= 10000000000 + 109876543210987654321= 09876543210 + x0100000100xxxxxxxxxx= xxxxxx01xxx + smopa. */ + return 2663; + } } else { @@ -565,11 +598,22 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - /* 33222222222211111111110000000= 000 - 10987654321098765432109876543= 210 - xx100000100xxxxxxxxxxxxxxxx1x= xxx - smops. */ - return 2374; + if (((word >> 3) & 0x1) =3D=3D 0) + { + /* 3322222222221111111111000= 0000000 + 1098765432109876543210987= 6543210 + xx100000100xxxxxxxxxxxxxx= xx10xxx + smops. */ + return 2374; + } + else + { + /* 3322222222221111111111000= 0000000 + 1098765432109876543210987= 6543210 + xx100000100xxxxxxxxxxxxxx= xx11xxx + smops. */ + return 2664; + } } } } @@ -591,7 +635,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx000xxxxxxxxxxxx0 ld1b. */ - return 2515; + return 2517; } else { @@ -599,7 +643,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx100xxxxxxxxxxxx0 ld1b. */ - return 2516; + return 2518; } } else @@ -610,7 +654,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx010xxxxxxxxxxxx0 ld1w. */ - return 2539; + return 2541; } else { @@ -618,7 +662,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx110xxxxxxxxxxxx0 ld1w. */ - return 2540; + return 2542; } } } @@ -632,7 +676,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx001xxxxxxxxxxxx0 ld1h. */ - return 2531; + return 2533; } else { @@ -640,7 +684,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx101xxxxxxxxxxxx0 ld1h. */ - return 2532; + return 2534; } } else @@ -651,7 +695,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx011xxxxxxxxxxxx0 ld1d. */ - return 2523; + return 2525; } else { @@ -659,7 +703,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx111xxxxxxxxxxxx0 ld1d. */ - return 2524; + return 2526; } } } @@ -676,7 +720,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx000xxxxxxxxxxxx1 ldnt1b. */ - return 2547; + return 2549; } else { @@ -684,7 +728,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx100xxxxxxxxxxxx1 ldnt1b. */ - return 2548; + return 2550; } } else @@ -695,7 +739,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx010xxxxxxxxxxxx1 ldnt1w. */ - return 2571; + return 2573; } else { @@ -703,7 +747,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx110xxxxxxxxxxxx1 ldnt1w. */ - return 2572; + return 2574; } } } @@ -717,7 +761,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx001xxxxxxxxxxxx1 ldnt1h. */ - return 2563; + return 2565; } else { @@ -725,7 +769,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx101xxxxxxxxxxxx1 ldnt1h. */ - return 2564; + return 2566; } } else @@ -736,7 +780,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx011xxxxxxxxxxxx1 ldnt1d. */ - return 2555; + return 2557; } else { @@ -744,7 +788,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100000010xx= xxx111xxxxxxxxxxxx1 ldnt1d. */ - return 2556; + return 2558; } } } @@ -812,7 +856,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx0= 00xxxxxxxxxxxx0 st1b. */ - return 2673; + return 2677; } else { @@ -820,7 +864,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx1= 00xxxxxxxxxxxx0 st1b. */ - return 2674; + return 2678; } } else @@ -831,7 +875,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx0= 10xxxxxxxxxxxx0 st1w. */ - return 2697; + return 2701; } else { @@ -839,7 +883,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx1= 10xxxxxxxxxxxx0 st1w. */ - return 2698; + return 2702; } } } @@ -853,7 +897,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx0= 01xxxxxxxxxxxx0 st1h. */ - return 2689; + return 2693; } else { @@ -861,7 +905,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx1= 01xxxxxxxxxxxx0 st1h. */ - return 2690; + return 2694; } } else @@ -872,7 +916,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx0= 11xxxxxxxxxxxx0 st1d. */ - return 2681; + return 2685; } else { @@ -880,7 +924,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx1= 11xxxxxxxxxxxx0 st1d. */ - return 2682; + return 2686; } } } @@ -897,7 +941,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx0= 00xxxxxxxxxxxx1 stnt1b. */ - return 2705; + return 2709; } else { @@ -905,7 +949,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx1= 00xxxxxxxxxxxx1 stnt1b. */ - return 2706; + return 2710; } } else @@ -916,7 +960,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx0= 10xxxxxxxxxxxx1 stnt1w. */ - return 2729; + return 2733; } else { @@ -924,7 +968,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx1= 10xxxxxxxxxxxx1 stnt1w. */ - return 2730; + return 2734; } } } @@ -938,7 +982,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx0= 01xxxxxxxxxxxx1 stnt1h. */ - return 2721; + return 2725; } else { @@ -946,7 +990,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx1= 01xxxxxxxxxxxx1 stnt1h. */ - return 2722; + return 2726; } } else @@ -957,7 +1001,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx0= 11xxxxxxxxxxxx1 stnt1d. */ - return 2713; + return 2717; } else { @@ -965,7 +1009,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000001xxxxx1= 11xxxxxxxxxxxx1 stnt1d. */ - return 2714; + return 2718; } } } @@ -1029,7 +1073,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx0= 00xxxxxxxxxxxx0 st1b. */ - return 2669; + return 2673; } else { @@ -1037,7 +1081,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx1= 00xxxxxxxxxxxx0 st1b. */ - return 2670; + return 2674; } } else @@ -1048,7 +1092,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx0= 10xxxxxxxxxxxx0 st1w. */ - return 2693; + return 2697; } else { @@ -1056,7 +1100,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx1= 10xxxxxxxxxxxx0 st1w. */ - return 2694; + return 2698; } } } @@ -1070,7 +1114,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx0= 01xxxxxxxxxxxx0 st1h. */ - return 2685; + return 2689; } else { @@ -1078,7 +1122,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx1= 01xxxxxxxxxxxx0 st1h. */ - return 2686; + return 2690; } } else @@ -1089,7 +1133,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx0= 11xxxxxxxxxxxx0 st1d. */ - return 2677; + return 2681; } else { @@ -1097,7 +1141,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx1= 11xxxxxxxxxxxx0 st1d. */ - return 2678; + return 2682; } } } @@ -1114,7 +1158,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx0= 00xxxxxxxxxxxx1 stnt1b. */ - return 2701; + return 2705; } else { @@ -1122,7 +1166,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx1= 00xxxxxxxxxxxx1 stnt1b. */ - return 2702; + return 2706; } } else @@ -1133,7 +1177,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx0= 10xxxxxxxxxxxx1 stnt1w. */ - return 2725; + return 2729; } else { @@ -1141,7 +1185,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx1= 10xxxxxxxxxxxx1 stnt1w. */ - return 2726; + return 2730; } } } @@ -1155,7 +1199,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx0= 01xxxxxxxxxxxx1 stnt1h. */ - return 2717; + return 2721; } else { @@ -1163,7 +1207,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx1= 01xxxxxxxxxxxx1 stnt1h. */ - return 2718; + return 2722; } } else @@ -1174,7 +1218,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx0= 11xxxxxxxxxxxx1 stnt1d. */ - return 2709; + return 2713; } else { @@ -1182,7 +1226,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 x0x00000011xxxxx1= 11xxxxxxxxxxxx1 stnt1d. */ - return 2710; + return 2714; } } } @@ -1274,7 +1318,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx0000010000xxxxx= xxxxxxxxxx000xx smlall. */ - return 2637; + return 2639; } else { @@ -1282,7 +1326,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx0000010000xxxxx= xxxxxxxxxx001xx usmlall. */ - return 2814; + return 2820; } } else @@ -1295,7 +1339,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 xx0000010001x= xxx0xxxxxxxxx000xxx smlall. */ - return 2638; + return 2640; } else { @@ -1303,7 +1347,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 xx0000010001x= xxx1xxxxxxxxx000xxx smlall. */ - return 2639; + return 2641; } } else @@ -1314,7 +1358,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 xx0000010001x= xxx0xxxxxxxxx100xxx usmlall. */ - return 2815; + return 2821; } else { @@ -1322,7 +1366,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 xx0000010001x= xxx1xxxxxxxxx100xxx usmlall. */ - return 2816; + return 2822; } } } @@ -1337,7 +1381,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx0000010000xxxxx= xxxxxxxxxx100xx umlall. */ - return 2780; + return 2784; } else { @@ -1345,7 +1389,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx0000010000xxxxx= xxxxxxxxxx101xx sumlall. */ - return 2744; + return 2748; } } else @@ -1358,7 +1402,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 xx0000010001x= xxx0xxxxxxxxx010xxx umlall. */ - return 2781; + return 2785; } else { @@ -1366,7 +1410,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 xx0000010001x= xxx1xxxxxxxxx010xxx umlall. */ - return 2782; + return 2786; } } else @@ -1377,7 +1421,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 xx0000010001x= xxx0xxxxxxxxx110xxx sumlall. */ - return 2745; + return 2749; } else { @@ -1385,7 +1429,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 xx0000010001x= xxx1xxxxxxxxx110xxx sumlall. */ - return 2746; + return 2750; } } } @@ -1401,7 +1445,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543210987654321= 09876543210 xx0000010000xxxxxxxxx= xxxxxx01xxx smlsll. */ - return 2653; + return 2655; } else { @@ -1411,7 +1455,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx0000010001xxxx0= xxxxxxxxxx01xxx smlsll. */ - return 2654; + return 2656; } else { @@ -1419,7 +1463,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx0000010001xxxx1= xxxxxxxxxx01xxx smlsll. */ - return 2655; + return 2657; } } } @@ -1431,7 +1475,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543210987654321= 09876543210 xx0000010000xxxxxxxxx= xxxxxx11xxx umlsll. */ - return 2796; + return 2800; } else { @@ -1441,7 +1485,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx0000010001xxxx0= xxxxxxxxxx11xxx umlsll. */ - return 2797; + return 2801; } else { @@ -1449,7 +1493,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx0000010001xxxx1= xxxxxxxxxx11xxx umlsll. */ - return 2798; + return 2802; } } } @@ -1471,7 +1515,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100001000xx= xxx000xxxxxxxxx0xxx ld1b. */ - return 2521; + return 2523; } else { @@ -1479,7 +1523,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100001000xx= xxx010xxxxxxxxx0xxx ld1w. */ - return 2545; + return 2547; } } else @@ -1490,7 +1534,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100001000xx= xxx001xxxxxxxxx0xxx ld1h. */ - return 2537; + return 2539; } else { @@ -1498,7 +1542,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100001000xx= xxx011xxxxxxxxx0xxx ld1d. */ - return 2529; + return 2531; } } } @@ -1512,7 +1556,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100001000xx= xxx000xxxxxxxxx1xxx ldnt1b. */ - return 2553; + return 2555; } else { @@ -1520,7 +1564,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100001000xx= xxx010xxxxxxxxx1xxx ldnt1w. */ - return 2577; + return 2579; } } else @@ -1531,7 +1575,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100001000xx= xxx001xxxxxxxxx1xxx ldnt1h. */ - return 2569; + return 2571; } else { @@ -1539,7 +1583,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100001000xx= xxx011xxxxxxxxx1xxx ldnt1d. */ - return 2561; + return 2563; } } } @@ -1567,7 +1611,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x0100001000xx= xxx100xxxxxxxxx0xxx ld1b. */ - return 2522; + return 2524; } else { @@ -1575,7 +1619,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x1100001000xx= xxx100xxxxxxxxx0xxx ldr. */ - return 2579; + return 2581; } } else @@ -1584,7 +1628,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx100001000xxxxx1= 10xxxxxxxxx0xxx ld1w. */ - return 2546; + return 2548; } } else @@ -1595,7 +1639,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx100001000xxxxx1= 01xxxxxxxxx0xxx ld1h. */ - return 2538; + return 2540; } else { @@ -1603,7 +1647,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx100001000xxxxx1= 11xxxxxxxxx0xxx ld1d. */ - return 2530; + return 2532; } } } @@ -1617,7 +1661,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx100001000xxxxx1= 00xxxxxxxxx1xxx ldnt1b. */ - return 2554; + return 2556; } else { @@ -1625,7 +1669,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx100001000xxxxx1= 10xxxxxxxxx1xxx ldnt1w. */ - return 2578; + return 2580; } } else @@ -1636,7 +1680,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx100001000xxxxx1= 01xxxxxxxxx1xxx ldnt1h. */ - return 2570; + return 2572; } else { @@ -1644,7 +1688,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765= 432109876543210 xx100001000xxxxx1= 11xxxxxxxxx1xxx ldnt1d. */ - return 2562; + return 2564; } } } @@ -1677,7 +1721,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x10000011000x= xxxxxx0xxxxxxx00xxx smlall. */ - return 2836; + return 2842; } else { @@ -1687,7 +1731,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543= 21098765432109876543210 x10000011= 001xxxx0xx0xxxxxxx00xxx smlall. = */ - return 2837; + return 2843; } else { @@ -1695,7 +1739,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543= 21098765432109876543210 x10000011= 001xxxx1xx0xxxxxxx00xxx smlall. = */ - return 2838; + return 2844; } } } @@ -1707,7 +1751,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x10000011000x= xxxxxx1xxxxxxx00xxx fmlal. */ - return 2490; + return 2492; } else { @@ -1717,7 +1761,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543= 21098765432109876543210 x10000011= 001xxxx0xx1xxxxxxx00xxx fmlal. */ - return 2491; + return 2493; } else { @@ -1725,7 +1769,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543= 21098765432109876543210 x10000011= 001xxxx1xx1xxxxxxx00xxx fmlal. */ - return 2492; + return 2494; } } } @@ -1762,7 +1806,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 1098765432109= 8765432109876543210 x10000011000x= xxxxxx0xxxxxxx10xxx umlall. */ - return 2845; + return 2851; } else { @@ -1772,7 +1816,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543= 21098765432109876543210 x10000011= 001xxxx0xx0xxxxxxx10xxx umlall. = */ - return 2846; + return 2852; } else { @@ -1780,7 +1824,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 109876543= 21098765432109876543210 x10000011= 001xxxx1xx0xxxxxxx10xxx umlall. = */ - return 2847; + return 2853; } } } @@ -1830,129 +1874,151 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 4) & 0x1) =3D=3D 0) { - if (((word >> 12) & 0x1) =3D=3D = 0) + if (((word >> 29) & 0x1) =3D=3D = 0) { - if (((word >> 20) & 0x1) =3D= =3D 0) - { - /* 332222222222111111111= 10000000000 - 109876543210987654321= 09876543210 - xxx000011000xxxxxxx0x= xxxxxx01xxx - smlsll. */ - return 2839; - } - else + if (((word >> 12) & 0x1) =3D= =3D 0) { - if (((word >> 15) & 0x1)= =3D=3D 0) + if (((word >> 20) & 0x1)= =3D=3D 0) { /* 33222222222211111= 111110000000000 10987654321098765= 432109876543210 - xxx000011001xxxx0= xx0xxxxxxx01xxx + xx0000011000xxxxx= xx0xxxxxxx01xxx smlsll. */ - return 2840; + return 2845; } else { - /* 33222222222211111= 111110000000000 - [...] [diff truncated at 100000 bytes]