diff options
author | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | 2024-07-08 17:44:24 +0100 |
---|---|---|
committer | Srinath Parvathaneni <srinath.parvathaneni@arm.com> | 2024-07-08 17:45:54 +0100 |
commit | 984f5ebb7b54da4aefb26efd70caa01df98cdaf5 (patch) | |
tree | eeec3baa65f0dbdab13fe14b491ec5e556f1c830 | |
parent | 166da3c27916716d7bdb364528a9e79ca7c9ec28 (diff) | |
download | binutils-984f5ebb7b54da4aefb26efd70caa01df98cdaf5.zip binutils-984f5ebb7b54da4aefb26efd70caa01df98cdaf5.tar.gz binutils-984f5ebb7b54da4aefb26efd70caa01df98cdaf5.tar.bz2 |
aarch64: Add support for sve2p1 tblq instruction.
This patch adds support for SVE2p1 "tblq" instruction, spec is available here [1].
[1]: https://developer.arm.com/documentation/ddi0602/2024-03/SVE-Instructions?lang=en
-rw-r--r-- | gas/testsuite/gas/aarch64/sve2p1-6-invalid.d | 3 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sve2p1-6-invalid.l | 18 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sve2p1-6-invalid.s | 6 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sve2p1-6.d | 18 | ||||
-rw-r--r-- | gas/testsuite/gas/aarch64/sve2p1-6.s | 8 | ||||
-rw-r--r-- | opcodes/aarch64-dis-2.c | 361 | ||||
-rw-r--r-- | opcodes/aarch64-tbl.h | 1 |
7 files changed, 240 insertions, 175 deletions
diff --git a/gas/testsuite/gas/aarch64/sve2p1-6-invalid.d b/gas/testsuite/gas/aarch64/sve2p1-6-invalid.d new file mode 100644 index 0000000..1aa2b39 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-6-invalid.d @@ -0,0 +1,3 @@ +#name: Test of illegal SVE2.1 TBLQ instruction. +#as: -march=armv9.4-a +#error_output: sve2p1-6-invalid.l diff --git a/gas/testsuite/gas/aarch64/sve2p1-6-invalid.l b/gas/testsuite/gas/aarch64/sve2p1-6-invalid.l new file mode 100644 index 0000000..0fea325 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-6-invalid.l @@ -0,0 +1,18 @@ +.*: Assembler messages: +.*: Error: operand mismatch -- `tblq z0.s,{z0.b},z0.b' +.*: Info: did you mean this\? +.*: Info: tblq z0.b, {z0.b}, z0.b +.*: Info: other valid variant\(s\): +.*: Info: tblq z0.h, {z0.h}, z0.h +.*: Info: tblq z0.s, {z0.s}, z0.s +.*: Info: tblq z0.d, {z0.d}, z0.d +.*: Error: expected a single-register list at operand 2 -- `tblq z0.s,{z0.s,z1.s},z0.s' +.*: Error: expected a single-register list at operand 2 -- `tblq z0.s,{z0.s-z1.s},z0.s' +.*: Error: operand mismatch -- `tblq z0.s,{z31.s},z0.b' +.*: Info: did you mean this\? +.*: Info: tblq z0.s, {z31.s}, z0.s +.*: Info: other valid variant\(s\): +.*: Info: tblq z0.b, {z31.b}, z0.b +.*: Info: tblq z0.h, {z31.h}, z0.h +.*: Info: tblq z0.d, {z31.d}, z0.d +.*: Error: expected an SVE vector register at operand 3 -- `tblq z0.b,{z0.b},{z31.b}' diff --git a/gas/testsuite/gas/aarch64/sve2p1-6-invalid.s b/gas/testsuite/gas/aarch64/sve2p1-6-invalid.s new file mode 100644 index 0000000..0f8300e --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-6-invalid.s @@ -0,0 +1,6 @@ +tblq z0.s, {z0.b}, z0.b +tblq z31.b, z0.b, z0.b +tblq z0.s, {z0.s, z1.s}, z0.s +tblq z0.s, {z0.s - z1.s}, z0.s +tblq z0.s, {z31.s}, z0.b +tblq z0.b, {z0.b}, {z31.b} diff --git a/gas/testsuite/gas/aarch64/sve2p1-6.d b/gas/testsuite/gas/aarch64/sve2p1-6.d new file mode 100644 index 0000000..d146903 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-6.d @@ -0,0 +1,18 @@ +#name: Test of SVE2.1 TBLQ instruction. +#as: -march=armv9.4-a +#objdump: -dr + +[^:]+: file format .* + + +[^:]+: + +[^:]+: +.*: 4400f800 tblq z0.b, {z0.b}, z0.b +.*: 4400f81f tblq z31.b, {z0.b}, z0.b +.*: 44c0f800 tblq z0.d, {z0.d}, z0.d +.*: 4400fbe0 tblq z0.b, {z31.b}, z0.b +.*: 441ff800 tblq z0.b, {z0.b}, z31.b +.*: 44dffbff tblq z31.d, {z31.d}, z31.d +.*: 444ff945 tblq z5.h, {z10.h}, z15.h +.*: 4487f861 tblq z1.s, {z3.s}, z7.s diff --git a/gas/testsuite/gas/aarch64/sve2p1-6.s b/gas/testsuite/gas/aarch64/sve2p1-6.s new file mode 100644 index 0000000..d2a0ef5 --- /dev/null +++ b/gas/testsuite/gas/aarch64/sve2p1-6.s @@ -0,0 +1,8 @@ +tblq z0.b, {z0.b}, z0.b +tblq z31.b, {z0.b}, z0.b +tblq z0.d, {z0.d}, z0.d +tblq z0.b, {z31.b}, z0.b +tblq z0.b, {z0.b}, z31.b +tblq z31.d, {z31.d}, z31.d +tblq z5.h, {z10.h}, z15.h +tblq z1.s, {z3.s}, z7.s diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c index 0175dd0..5fadd4b 100644 --- a/opcodes/aarch64-dis-2.c +++ b/opcodes/aarch64-dis-2.c @@ -216,7 +216,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000x000101x00xxxxxxxxxxxxxx luti4. */ - return 3395; + return 3396; } else { @@ -251,7 +251,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000xx01101xxxxxxxxxxxxxxxxx luti4. */ - return 3396; + return 3397; } } } @@ -375,7 +375,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000000010x11x1xxxx00xxxxxxxxxx movt. */ - return 3397; + return 3398; } } else @@ -1157,7 +1157,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000000101xxxxxxxxxxxxxxxx00xxx fmopa. */ - return 3463; + return 3464; } else { @@ -1165,7 +1165,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000000101xxxxxxxxxxxxxxxx01xxx fmopa. */ - return 3462; + return 3463; } } else @@ -1513,7 +1513,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxx1xx0xxxxx1000xxx fmlall. */ - return 3456; + return 3457; } } } @@ -1543,7 +1543,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010001xxxxxxx1xxxxxx00xxxx fdot. */ - return 3441; + return 3442; } } else @@ -1915,7 +1915,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxxxxx0xxxxxx100xxx fmlall. */ - return 3455; + return 3456; } } } @@ -2020,7 +2020,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxxxxx1xxxxxx10xxxx fmlal. */ - return 3448; + return 3449; } } } @@ -2193,7 +2193,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011001xxxxxxx1xxxxxx11xxxx fmlal. */ - return 3447; + return 3448; } } } @@ -2235,7 +2235,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000010100xxxxxxxxxxxxxxxx0xxx fmlall. */ - return 3454; + return 3455; } else { @@ -2603,7 +2603,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx0xx0xxxxxx111xxx fdot. */ - return 3434; + return 3435; } else { @@ -2672,7 +2672,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxx000010101xxxx1xx0xxxxxx001xxx fdot. */ - return 3435; + return 3436; } else { @@ -2751,7 +2751,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011100xxxxxxx0xxxxxxx0xxxx fmlal. */ - return 3446; + return 3447; } else { @@ -2806,7 +2806,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxx0xx01xxxxx00xxxx fvdotb. */ - return 3465; + return 3466; } else { @@ -2824,7 +2824,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxxxxx0xxxxxx10xxxx fdot. */ - return 3440; + return 3441; } } } @@ -2898,7 +2898,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx0000011101xxxxxxx1xxxxxx10xxxx fvdot. */ - return 3464; + return 3465; } } } @@ -2978,7 +2978,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx000001110xxxxx0xx01xxxxxx1xxxx fvdott. */ - return 3466; + return 3467; } else { @@ -3155,7 +3155,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx000xxxx10000x fmlall. */ - return 3460; + return 3461; } else { @@ -3163,7 +3163,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx000xxxx10000x fmlall. */ - return 3461; + return 3462; } } } @@ -3218,7 +3218,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xxxx0xx000xxxxx00x1x fmlall. */ - return 3458; + return 3459; } else { @@ -3226,7 +3226,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xxxx0xx000xxxxx00x1x fmlall. */ - return 3459; + return 3460; } } } @@ -3280,7 +3280,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx100xxxx100xxx fdot. */ - return 3444; + return 3445; } else { @@ -3288,7 +3288,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx100xxxx100xxx fdot. */ - return 3445; + return 3446; } } } @@ -3350,7 +3350,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx00xx010xxxx1000xx fmlal. */ - return 3452; + return 3453; } else { @@ -3358,7 +3358,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxxx10xx010xxxx1000xx fmlal. */ - return 3453; + return 3454; } } } @@ -3413,7 +3413,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xxxx0xx010xxxxx001xx fmlal. */ - return 3450; + return 3451; } else { @@ -3421,7 +3421,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xxxx0xx010xxxxx001xx fmlal. */ - return 3451; + return 3452; } } } @@ -3490,7 +3490,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xxxx0xx001xxxxx000xx fmlall. */ - return 3457; + return 3458; } } else @@ -3573,7 +3573,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xxxx0xx011xxxxx00xxx fmlal. */ - return 3449; + return 3450; } } else @@ -3594,7 +3594,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xx1x00xx111xxxxx00xxx fadd. */ - return 3398; + return 3399; } } else @@ -3613,7 +3613,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xx1x10xx111xxxxx00xxx fadd. */ - return 3399; + return 3400; } } } @@ -3739,7 +3739,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx00xx100xxxx110xxx fdot. */ - return 3438; + return 3439; } else { @@ -3747,7 +3747,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011x1xxxx10xx100xxxx110xxx fdot. */ - return 3439; + return 3440; } } } @@ -4038,7 +4038,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xxxx0xx100xxxxx01xxx fdot. */ - return 3442; + return 3443; } else { @@ -4046,7 +4046,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xxxx0xx100xxxxx01xxx fdot. */ - return 3443; + return 3444; } } } @@ -4317,7 +4317,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xx1x00xx111xxxxx01xxx fsub. */ - return 3400; + return 3401; } } else @@ -4336,7 +4336,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xx1x10xx111xxxxx01xxx fsub. */ - return 3401; + return 3402; } } } @@ -4398,7 +4398,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx10xxxx0xx100xxxxx11xxx fdot. */ - return 3436; + return 3437; } else { @@ -4406,7 +4406,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx11xxxx0xx100xxxxx11xxx fdot. */ - return 3437; + return 3438; } } } @@ -4941,7 +4941,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx101000xx1x0xxxx0 fscale. */ - return 3372; + return 3373; } } else @@ -5089,7 +5089,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x0100100111000xxxx0xxxxx fcvt. */ - return 3369; + return 3370; } else { @@ -5097,7 +5097,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001x1100100111000xxxx0xxxxx bfcvt. */ - return 3364; + return 3365; } } else @@ -5106,7 +5106,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx110100111000xxxx0xxxxx fcvt. */ - return 3370; + return 3371; } } else @@ -5157,7 +5157,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xx100111000xxxx1xxxxx fcvtn. */ - return 3371; + return 3372; } } } @@ -5240,7 +5240,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010010x110111000xxxxxxxxx0 f1cvt. */ - return 3365; + return 3366; } else { @@ -5248,7 +5248,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011010x110111000xxxxxxxxx0 f2cvt. */ - return 3366; + return 3367; } } else @@ -5259,7 +5259,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000010110x110111000xxxxxxxxx0 bf1cvt. */ - return 3360; + return 3361; } else { @@ -5267,7 +5267,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x10000011110x110111000xxxxxxxxx0 bf2cvt. */ - return 3361; + return 3362; } } } @@ -5302,7 +5302,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001001xxx10111000xxxxxxxxx1 f1cvtl. */ - return 3367; + return 3368; } else { @@ -5310,7 +5310,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001101xxx10111000xxxxxxxxx1 f2cvtl. */ - return 3368; + return 3369; } } else @@ -5321,7 +5321,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001011xxx10111000xxxxxxxxx1 bf1cvtl. */ - return 3362; + return 3363; } else { @@ -5329,7 +5329,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001111xxx10111000xxxxxxxxx1 bf2cvtl. */ - return 3363; + return 3364; } } } @@ -5598,7 +5598,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1100xx100xxxx0 fscale. */ - return 3374; + return 3375; } } else @@ -5774,7 +5774,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1010xx100xxxx0 fscale. */ - return 3373; + return 3374; } else { @@ -5782,7 +5782,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1000001xx1xxxxx1x1110xx100xxxx0 fscale. */ - return 3375; + return 3376; } } } @@ -10950,7 +10950,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0x11010000xxxxxxx1xxxxxxxxxxxxx addpt. */ - return 3376; + return 3377; } else { @@ -10958,7 +10958,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1x11010000xxxxxxx1xxxxxxxxxxxxx subpt. */ - return 3377; + return 3378; } } } @@ -11876,7 +11876,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxx1011x11xxxxx0xxxxxxxxxxxxxxx maddpt. */ - return 3378; + return 3379; } else { @@ -11884,7 +11884,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xxxx1011x11xxxxx1xxxxxxxxxxxxxxx msubpt. */ - return 3379; + return 3380; } } } @@ -11969,7 +11969,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000100000xxxxxxxxxxxxx addpt. */ - return 3380; + return 3381; } else { @@ -12076,7 +12076,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx000101000xxxxxxxxxxxxx subpt. */ - return 3382; + return 3383; } else { @@ -12281,7 +12281,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx000010xxxxxxxxxx addpt. */ - return 3381; + return 3382; } else { @@ -12322,7 +12322,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x0xx1xxxxx000011xxxxxxxxxx subpt. */ - return 3383; + return 3384; } else { @@ -13980,7 +13980,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx110100xxxxxxxxxx mlapt. */ - return 3385; + return 3386; } } else @@ -14010,7 +14010,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x0xx0xxxxx110110xxxxxxxxxx madpt. */ - return 3384; + return 3385; } } } @@ -15164,7 +15164,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 110001x0x00xxxxx101xxxxxxxxxxxxx ld1q. */ - return 3321; + return 3322; } else { @@ -16168,42 +16168,53 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 21) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x10001x0000xxxxx111xxxxxxxxxxxxx - prfb. */ - return 1836; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x10001x0100xxxxx111xxxxxxxxxxxxx - prfh. */ - return 1850; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0xx0xxxxx111xxxxxxxxxxxxx + tblq. */ + return 3320; } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x10001x0010xxxxx111xxxxxxxxxxxxx - ldff1b. */ - return 1699; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0000xxxxx111xxxxxxxxxxxxx + prfb. */ + return 1836; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0100xxxxx111xxxxxxxxxxxxx + prfh. */ + return 1850; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x10001x0110xxxxx111xxxxxxxxxxxxx - ldff1h. */ - return 1719; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0010xxxxx111xxxxxxxxxxxxx + ldff1b. */ + return 1699; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x0110xxxxx111xxxxxxxxxxxxx + ldff1h. */ + return 1719; + } } } } @@ -16641,7 +16652,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0x00xxxxx000xxxxxxxxxxxxx st3q. */ - return 3330; + return 3331; } else { @@ -16651,7 +16662,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0010xxxxx000xxxxxxxxxxxxx st2q. */ - return 3329; + return 3330; } else { @@ -16659,7 +16670,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0110xxxxx000xxxxxxxxxxxxx st4q. */ - return 3331; + return 3332; } } } @@ -17325,7 +17336,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0xx01xxxx111xxxxxxxxxxxxx ld2q. */ - return 3322; + return 3323; } } } @@ -17461,7 +17472,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x0xx1xxxxx100xxxxxxxxxxxxx ld2q. */ - return 3325; + return 3326; } } else @@ -17606,7 +17617,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x00x1xxxxx000xxxxxxxxxxxxx st2q. */ - return 3332; + return 3333; } } else @@ -17649,7 +17660,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0101xxxxx000xxxxxxxxxxxxx st3q. */ - return 3333; + return 3334; } } else @@ -17690,7 +17701,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0111xxxxx000xxxxxxxxxxxxx st4q. */ - return 3334; + return 3335; } } } @@ -17719,7 +17730,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0001xxxxx0100x1xxxxxxxxxx fdot. */ - return 3421; + return 3422; } } else @@ -17728,7 +17739,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0001xxxxx0101xxxxxxxxxxxx fmlalb. */ - return 3423; + return 3424; } } else @@ -17769,7 +17780,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx0101xxxxxxxxxxxx fmlalt. */ - return 3433; + return 3434; } } else @@ -17802,7 +17813,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0011xxxxx010xx1xxxxxxxxxx fdot. */ - return 3419; + return 3420; } } else @@ -17873,7 +17884,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx100010xxxxxxxxxx fmlallbb. */ - return 3424; + return 3425; } } else @@ -17882,7 +17893,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx1000x1xxxxxxxxxx fdot. */ - return 3420; + return 3421; } } else @@ -17891,7 +17902,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx1100xxxxxxxxxxxx fmlallbb. */ - return 3425; + return 3426; } } else @@ -17900,7 +17911,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx1x01xxxxxxxxxxxx fmlallbt. */ - return 3426; + return 3427; } } else @@ -17927,7 +17938,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx100010xxxxxxxxxx fmlalb. */ - return 3422; + return 3423; } } else @@ -17945,7 +17956,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx1100xxxxxxxxxxxx fmlalltb. */ - return 3429; + return 3430; } } else @@ -17954,7 +17965,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0101xxxxx1x01xxxxxxxxxxxx fmlalt. */ - return 3432; + return 3433; } } else @@ -17987,7 +17998,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0011xxxxx100xx1xxxxxxxxxx fdot. */ - return 3418; + return 3419; } } else @@ -17996,7 +18007,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0011xxxxx110xxxxxxxxxxxxx fmlallbt. */ - return 3427; + return 3428; } } else @@ -18028,7 +18039,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x0111xxxxx110xxxxxxxxxxxxx fmlalltt. */ - return 3431; + return 3432; } } else @@ -18327,7 +18338,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 111001x0xx1xxxxx001xxxxxxxxxxxxx st1q. */ - return 3328; + return 3329; } } else @@ -18342,7 +18353,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx1010xxxxxxxxxxxx fmlalltb. */ - return 3428; + return 3429; } else { @@ -18350,7 +18361,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x11001x0001xxxxx1011xxxxxxxxxxxx fmlalltt. */ - return 3430; + return 3431; } } else @@ -19103,7 +19114,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 000001x1x11xxxxx001x01xxxxxxxxxx extq. */ - return 3320; + return 3321; } } else @@ -20706,7 +20717,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx101100xxxxxxxxxx luti2. */ - return 3390; + return 3391; } } else @@ -20715,7 +20726,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx101x10xxxxxxxxxx luti2. */ - return 3391; + return 3392; } } else @@ -20728,7 +20739,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx101001xxxxxxxxxx luti4. */ - return 3392; + return 3393; } else { @@ -20736,7 +20747,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx101101xxxxxxxxxx luti4. */ - return 3393; + return 3394; } } else @@ -20745,7 +20756,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 010001x1xx1xxxxx101x11xxxxxxxxxx luti4. */ - return 3394; + return 3395; } } } @@ -21696,7 +21707,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001000001x00xxxxxxxxxx f1cvt. */ - return 3352; + return 3353; } else { @@ -21704,7 +21715,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001000001x10xxxxxxxxxx bf1cvt. */ - return 3348; + return 3349; } } else @@ -21715,7 +21726,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001000001x01xxxxxxxxxx f2cvt. */ - return 3353; + return 3354; } else { @@ -21723,7 +21734,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx001000001x11xxxxxxxxxx bf2cvt. */ - return 3349; + return 3350; } } } @@ -21768,7 +21779,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1010001x00xxxxxxxxxx fcvtn. */ - return 3357; + return 3358; } else { @@ -21776,7 +21787,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1010001x10xxxxxxxxxx bfcvtn. */ - return 3356; + return 3357; } } else @@ -21787,7 +21798,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1010001x01xxxxxxxxxx fcvtnb. */ - return 3358; + return 3359; } else { @@ -21795,7 +21806,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1010001x11xxxxxxxxxx fcvtnt. */ - return 3359; + return 3360; } } } @@ -21856,7 +21867,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1001001x00xxxxxxxxxx f1cvtlt. */ - return 3354; + return 3355; } else { @@ -21864,7 +21875,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1001001x10xxxxxxxxxx bf1cvtlt. */ - return 3350; + return 3351; } } else @@ -21875,7 +21886,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1001001x01xxxxxxxxxx f2cvtlt. */ - return 3355; + return 3356; } else { @@ -21883,7 +21894,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 011001x1xx0x1001001x11xxxxxxxxxx bf2cvtlt. */ - return 3351; + return 3352; } } } @@ -23209,7 +23220,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10x01xxxx111xxxxxxxxxxxxx ld3q. */ - return 3323; + return 3324; } else { @@ -23217,7 +23228,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11x01xxxx111xxxxxxxxxxxxx ld4q. */ - return 3324; + return 3325; } } } @@ -24390,7 +24401,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x10x1xxxxx100xxxxxxxxxxxxx ld3q. */ - return 3326; + return 3327; } else { @@ -24398,7 +24409,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 101001x11x1xxxxx100xxxxxxxxxxxxx ld4q. */ - return 3327; + return 3328; } } else @@ -26463,7 +26474,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110100xxxxxxxx100xxxxxxxxxx luti2. */ - return 3386; + return 3387; } } } @@ -26477,7 +26488,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110010xxxxxxxx000xxxxxxxxxx luti4. */ - return 3388; + return 3389; } else { @@ -26485,7 +26496,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110010xxxxxxxx100xxxxxxxxxx luti4. */ - return 3389; + return 3390; } } else @@ -26494,7 +26505,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110110xxxxxxxxx00xxxxxxxxxx luti2. */ - return 3387; + return 3388; } } } @@ -26610,7 +26621,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00001110x00xxxxxx10001xxxxxxxxxx fmlallbb. */ - return 3410; + return 3411; } else { @@ -26618,7 +26629,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01001110x00xxxxxx10001xxxxxxxxxx fmlalltb. */ - return 3412; + return 3413; } } else @@ -26629,7 +26640,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00001110x10xxxxxx10001xxxxxxxxxx fmlallbt. */ - return 3411; + return 3412; } else { @@ -26637,7 +26648,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01001110x10xxxxxx10001xxxxxxxxxx fmlalltt. */ - return 3413; + return 3414; } } } @@ -26725,7 +26736,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00001110x00xxxxxx11101xxxxxxxxxx fcvtn. */ - return 3343; + return 3344; } else { @@ -26733,7 +26744,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01001110x00xxxxxx11101xxxxxxxxxx fcvtn2. */ - return 3344; + return 3345; } } else @@ -26742,7 +26753,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110x10xxxxxx11101xxxxxxxxxx fcvtn. */ - return 3345; + return 3346; } } } @@ -26885,7 +26896,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110x00xxxxxx11111xxxxxxxxxx fdot. */ - return 3402; + return 3403; } else { @@ -26895,7 +26906,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 0x001110010xxxxxx11111xxxxxxxxxx fdot. */ - return 3404; + return 3405; } else { @@ -26905,7 +26916,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 00001110110xxxxxx11111xxxxxxxxxx fmlalb. */ - return 3406; + return 3407; } else { @@ -26913,7 +26924,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 01001110110xxxxxx11111xxxxxxxxxx fmlalt. */ - return 3407; + return 3408; } } } @@ -27187,7 +27198,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx101110110xxxxx0x1111xxxxxxxxxx fscale. */ - return 3346; + return 3347; } } } @@ -28579,7 +28590,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101110001xxxx1011110xxxxxxxxxx f1cvtl. */ - return 3339; + return 3340; } else { @@ -28587,7 +28598,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101110001xxxx1011110xxxxxxxxxx f1cvtl2. */ - return 3340; + return 3341; } } else @@ -28598,7 +28609,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101110101xxxx1011110xxxxxxxxxx bf1cvtl. */ - return 3335; + return 3336; } else { @@ -28606,7 +28617,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101110101xxxx1011110xxxxxxxxxx bf1cvtl2. */ - return 3336; + return 3337; } } } @@ -28620,7 +28631,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101110011xxxx1011110xxxxxxxxxx f2cvtl. */ - return 3341; + return 3342; } else { @@ -28628,7 +28639,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101110011xxxx1011110xxxxxxxxxx f2cvtl2. */ - return 3342; + return 3343; } } else @@ -28639,7 +28650,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101110111xxxx1011110xxxxxxxxxx bf2cvtl. */ - return 3337; + return 3338; } else { @@ -28647,7 +28658,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101110111xxxx1011110xxxxxxxxxx bf2cvtl2. */ - return 3338; + return 3339; } } } @@ -30646,7 +30657,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx1011101x1xxxxx111111xxxxxxxxxx fscale. */ - return 3347; + return 3348; } } } @@ -32362,7 +32373,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx00111100xxxxxx0000x0xxxxxxxxxx fdot. */ - return 3403; + return 3404; } else { @@ -32392,7 +32403,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 xx00111101xxxxxx0000x0xxxxxxxxxx fdot. */ - return 3405; + return 3406; } else { @@ -32402,7 +32413,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x000111111xxxxxx0000x0xxxxxxxxxx fmlalb. */ - return 3408; + return 3409; } else { @@ -32410,7 +32421,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x100111111xxxxxx0000x0xxxxxxxxxx fmlalt. */ - return 3409; + return 3410; } } } @@ -32952,7 +32963,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x010111100xxxxxx1000x0xxxxxxxxxx fmlallbb. */ - return 3414; + return 3415; } else { @@ -32960,7 +32971,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x110111100xxxxxx1000x0xxxxxxxxxx fmlalltb. */ - return 3416; + return 3417; } } else @@ -32991,7 +33002,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x0101111x1xxxxxx1000x0xxxxxxxxxx fmlallbt. */ - return 3415; + return 3416; } else { @@ -32999,7 +33010,7 @@ aarch64_opcode_lookup_1 (uint32_t word) 10987654321098765432109876543210 x1101111x1xxxxxx1000x0xxxxxxxxxx fmlalltt. */ - return 3417; + return 3418; } } } diff --git a/opcodes/aarch64-tbl.h b/opcodes/aarch64-tbl.h index 81b23b3..56a6c9d 100644 --- a/opcodes/aarch64-tbl.h +++ b/opcodes/aarch64-tbl.h @@ -6641,6 +6641,7 @@ const struct aarch64_opcode aarch64_opcode_table[] = SVE2p1_INSN("dupq",0x05202400, 0xffe0fc00, sve_index, 0, OP2 (SVE_Zd, SVE_Zn_5_INDEX), OP_SVE_VV_BHSD, 0, 0), SVE2p1_INSN("orqv",0x041c2000, 0xff3fe000, sve2_urqvs, 0, OP3 (Vd, SVE_Pg3, SVE_Zn), OP_SVE_vUS_BHSD_BHSD, F_OPD_SIZE, 0), + SVE2p1_INSN("tblq",0x4400f800, 0xff20fc00, sve_size_bhsd, 0, OP3 (SVE_Zd, SVE_ZnxN, SVE_Zm_16), OP_SVE_VVV_BHSD, F_OD(1), 0), SVE2p1_INSNC("extq",0x05602400, 0xfff0fc00, sve_misc, 0, OP4 (SVE_Zd, SVE_Zd, SVE_Zm_5, SVE_UIMM4), OP_SVE_BBBU, 0, C_SCAN_MOVPRFX, 1), SVE2p1_INSN("ld1q",0xc400a000, 0xffe0e000, sve_misc, 0, OP3 (SVE_ZtxN, SVE_Pg3, SVE_ADDR_ZX), OP_SVE_QZD, F_OD (1), 0), |