diff options
Diffstat (limited to 'opcodes/aarch64-dis-2.c')
-rw-r--r-- | opcodes/aarch64-dis-2.c | 6388 |
1 files changed, 3464 insertions, 2924 deletions
diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c index 8e05892..224bb45 100644 --- a/opcodes/aarch64-dis-2.c +++ b/opcodes/aarch64-dis-2.c @@ -2330,103 +2330,246 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 22) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { if (((word >> 30) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 00x1100100xxxxxxxxxxxxxxxxxxxxxx - strb. */ - return 863; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0001100100xxxxxxxxxxxxxxxxxxxxxx + stlurb. */ + return 2027; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1001100100xxxxxxxxxxxxxxxxxxxxxx + stlur. */ + return 2035; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 01x1100100xxxxxxxxxxxxxxxxxxxxxx - strh. */ - return 868; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0101100100xxxxxxxxxxxxxxxxxxxxxx + stlurh. */ + return 2031; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1101100100xxxxxxxxxxxxxxxxxxxxxx + stlur. */ + return 2038; + } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 1xx1100100xxxxxxxxxxxxxxxxxxxxxx - str. */ - return 871; + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0011100100xxxxxxxxxxxxxxxxxxxxxx + strb. */ + return 863; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0111100100xxxxxxxxxxxxxxxxxxxxxx + strh. */ + return 868; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x11100100xxxxxxxxxxxxxxxxxxxxxx + str. */ + return 871; + } } } else { - if (((word >> 31) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { if (((word >> 30) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 00x1100101xxxxxxxxxxxxxxxxxxxxxx - ldrb. */ - return 864; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0001100101xxxxxxxxxxxxxxxxxxxxxx + ldapurb. */ + return 2028; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1001100101xxxxxxxxxxxxxxxxxxxxxx + ldapur. */ + return 2036; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 01x1100101xxxxxxxxxxxxxxxxxxxxxx - ldrh. */ - return 869; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0101100101xxxxxxxxxxxxxxxxxxxxxx + ldapurh. */ + return 2032; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1101100101xxxxxxxxxxxxxxxxxxxxxx + ldapur. */ + return 2039; + } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 1xx1100101xxxxxxxxxxxxxxxxxxxxxx - ldr. */ - return 872; + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0011100101xxxxxxxxxxxxxxxxxxxxxx + ldrb. */ + return 864; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0111100101xxxxxxxxxxxxxxxxxxxxxx + ldrh. */ + return 869; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x11100101xxxxxxxxxxxxxxxxxxxxxx + ldr. */ + return 872; + } } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 00x110011xxxxxxxxxxxxxxxxxxxxxxx - ldrsb. */ - return 865; + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0001100110xxxxxxxxxxxxxxxxxxxxxx + ldapursb. */ + return 2030; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1001100110xxxxxxxxxxxxxxxxxxxxxx + ldapursw. */ + return 2037; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x101100110xxxxxxxxxxxxxxxxxxxxxx + ldapursh. */ + return 2034; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 10x110011xxxxxxxxxxxxxxxxxxxxxxx - ldrsw. */ - return 873; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x001100111xxxxxxxxxxxxxxxxxxxxxx + ldapursb. */ + return 2029; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x101100111xxxxxxxxxxxxxxxxxxxxxx + ldapursh. */ + return 2033; + } } } else { - if (((word >> 31) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 01x110011xxxxxxxxxxxxxxxxxxxxxxx - ldrsh. */ - return 870; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001110011xxxxxxxxxxxxxxxxxxxxxxx + ldrsb. */ + return 865; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101110011xxxxxxxxxxxxxxxxxxxxxxx + ldrsw. */ + return 873; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 11x110011xxxxxxxxxxxxxxxxxxxxxxx - prfm. */ - return 874; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011110011xxxxxxxxxxxxxxxxxxxxxxx + ldrsh. */ + return 870; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111110011xxxxxxxxxxxxxxxxxxxxxxx + prfm. */ + return 874; + } } } } @@ -2769,130 +2912,152 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0x110100x0xxxxxxxxx10xxxxxxxxxx - ccmn. */ - return 652; + xxx11010x00xxxxxx0xx10xxxxxxxxxx + setf8. */ + return 2025; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1x110100x0xxxxxxxxx10xxxxxxxxxx - ccmp. */ - return 653; + xxx11010x00xxxxxx1xx10xxxxxxxxxx + setf16. */ + return 2026; } } else { - if (((word >> 12) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010010xxxxxxxxx10xxxxxxxxxx + ccmn. */ + return 652; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010010xxxxxxxxx10xxxxxxxxxx + ccmp. */ + return 653; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0x110101x0xxxxxx00010xxxxxxxxxx - udiv. */ - return 705; - } - else + if (((word >> 14) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010110xxxxxx00010xxxxxxxxxx + udiv. */ + return 705; + } + else + { + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 01x110101x0xxxx0x00010xxxxxxxxxx - rev. */ - return 681; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01x11010110xxxx0x00010xxxxxxxxxx + rev. */ + return 681; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11x11010110xxxx0x00010xxxxxxxxxx + rev32. */ + return 686; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 11x110101x0xxxx0x00010xxxxxxxxxx - rev32. */ - return 686; + x1x11010110xxxx1x00010xxxxxxxxxx + pacda. */ + return 689; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x110101x0xxxx1x00010xxxxxxxxxx - pacda. */ - return 689; - } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxx10010xxxxxxxxxx + crc32w. */ + return 718; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx110101x0xxxxxx10010xxxxxxxxxx - crc32w. */ - return 718; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010110xxxxxxx1010xxxxxxxxxx + asrv. */ + return 711; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010110xxxxxxx1010xxxxxxxxxx + pacdza. */ + return 697; + } } } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0x110101x0xxxxxxx1010xxxxxxxxxx - asrv. */ - return 711; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x110101x0xxxxxxx1010xxxxxxxxxx - pacdza. */ - return 697; - } - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx110101x0xxxxxx00110xxxxxxxxxx - autda. */ - return 693; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxx00110xxxxxxxxxx + autda. */ + return 693; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxx10110xxxxxxxxxx + crc32cw. */ + return 722; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx110101x0xxxxxx10110xxxxxxxxxx - crc32cw. */ - return 722; + xxx11010110xxxxxxx1110xxxxxxxxxx + autdza. */ + return 701; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx110101x0xxxxxxx1110xxxxxxxxxx - autdza. */ - return 701; - } } } } @@ -2903,21 +3068,32 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 22) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0x11010x00xxxxxxxxx01xxxxxxxxxx - csinc. */ - return 657; + xxx11010000xxxxxxxxx01xxxxxxxxxx + rmif. */ + return 2024; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x11010x00xxxxxxxxx01xxxxxxxxxx - csneg. */ - return 663; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010100xxxxxxxxx01xxxxxxxxxx + csinc. */ + return 657; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010100xxxxxxxxx01xxxxxxxxxx + csneg. */ + return 663; + } } } else @@ -12338,168 +12514,94 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 28) & 0x1) == 0) { - if (((word >> 10) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx0xxxxxxxx000xxxxxxxxxx - tbl. */ - return 414; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx0xxxxxxxx100xxxxxxxxxx - tbx. */ - return 415; - } - } - else + if (((word >> 10) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx0xxxxxx0x010xxxxxxxxxx - trn1. */ - return 257; + 0x001110xx0xxxxxxxx000xxxxxxxxxx + tbl. */ + return 414; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx0xxxxxx1x010xxxxxxxxxx - trn2. */ - return 260; + 0x001110xx0xxxxxxxx100xxxxxxxxxx + tbx. */ + return 415; } } else { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx0xxxxxx00110xxxxxxxxxx - uzp1. */ - return 256; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx0xxxxxx10110xxxxxxxxxx - uzp2. */ - return 259; - } - } - else + if (((word >> 12) & 0x1) == 0) { if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx0xxxxxx01110xxxxxxxxxx - zip1. */ - return 258; + 0x001110xx0xxxxxx0x010xxxxxxxxxx + trn1. */ + return 257; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx0xxxxxx11110xxxxxxxxxx - zip2. */ - return 261; + 0x001110xx0xxxxxx1x010xxxxxxxxxx + trn2. */ + return 260; } } - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx0xxxxxxxxxx0xxxxxxxxxx - ext. */ - return 130; - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 11) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110x00xxxxx0xxx01xxxxxxxxxx - dup. */ - return 147; - } else { - if (((word >> 12) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110x00xxxxx0x0011xxxxxxxxxx - dup. */ - return 148; + 0x001110xx0xxxxxx00110xxxxxxxxxx + uzp1. */ + return 256; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110x00xxxxx0x1011xxxxxxxxxx - smov. */ - return 149; + 0x001110xx0xxxxxx10110xxxxxxxxxx + uzp2. */ + return 259; } } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110x00xxxxx0x0111xxxxxxxxxx - ins. */ - return 152; + 0x001110xx0xxxxxx01110xxxxxxxxxx + zip1. */ + return 258; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110x00xxxxx0x1111xxxxxxxxxx - umov. */ - return 150; + 0x001110xx0xxxxxx11110xxxxxxxxxx + zip2. */ + return 261; } } } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110x00xxxxx0xxxx1xxxxxxxxxx - ins. */ - return 154; - } } else { @@ -12509,13 +12611,21 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 13) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x00xxxxxxx0001xxxxxxxxxx + dup. */ + return 147; + } + else + { + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110010xxxxx0x0001xxxxxxxxxx + 0x001110010xxxxxxx0001xxxxxxxxxx fmaxnm. */ return 286; } @@ -12523,135 +12633,366 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110010xxxxx0x0001xxxxxxxxxx - fmaxnmp. */ - return 337; + 0x001110110xxxxxxx0001xxxxxxxxxx + fminnm. */ + return 302; } } - else + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxxx1001xxxxxxxxxx + fcmeq. */ + return 294; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110110xxxxx0x0001xxxxxxxxxx - fminnm. */ - return 302; + 0x0011100x0xxxxx0x0101xxxxxxxxxx + fadd. */ + return 290; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110110xxxxx0x0001xxxxxxxxxx - fminnmp. */ - return 353; + 0x0011101x0xxxxx0x0101xxxxxxxxxx + fsub. */ + return 306; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxx1x0101xxxxxxxxxx + sdot. */ + return 1987; + } } else { if (((word >> 23) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x0xxxxxxx1101xxxxxxxxxx + fmax. */ + return 296; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011101x0xxxxxxx1101xxxxxxxxxx + fmin. */ + return 308; + } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x00xxxxxxx0011xxxxxxxxxx + dup. */ + return 148; + } + else + { + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110010xxxxx0x1001xxxxxxxxxx - fcmeq. */ - return 294; + 0x001110010xxxxxxx0011xxxxxxxxxx + fmla. */ + return 288; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110010xxxxx0x1001xxxxxxxxxx - fcmge. */ - return 343; + 0x001110110xxxxxxx0011xxxxxxxxxx + fmls. */ + return 304; } } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxxx1011xxxxxxxxxx + smov. */ + return 149; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x00xxxxxxx0111xxxxxxxxxx + ins. */ + return 152; + } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110110xxxxx0x1001xxxxxxxxxx - fcmgt. */ - return 357; + 0x001110x10xxxxxxx0111xxxxxxxxxx + fmulx. */ + return 292; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x00xxxxxxx1111xxxxxxxxxx + umov. */ + return 150; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110010xxxxxxx1111xxxxxxxxxx + frecps. */ + return 298; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110110xxxxxxx1111xxxxxxxxxx + frsqrts. */ + return 310; + } } } } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110000xxxxxxxxxxxxxxxxxxxxx + eor3. */ + return 1994; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110100xxxxxxxxxxxxxxxxxxxxx + xar. */ + return 1996; + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110x10xxxxx0xxxxxxxxxxxxxxx + sm3ss1. */ + return 1998; + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110010xxxxx1xxx00xxxxxxxxxx + sm3tt1a. */ + return 1999; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110110xxxxx1xxx00xxxxxxxxxx + sha512su0. */ + return 1992; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110x10xxxxx1xxx10xxxxxxxxxx + sm3tt2a. */ + return 2001; + } + } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { if (((word >> 23) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110010xxxxx1xxx01xxxxxxxxxx + sm3tt1b. */ + return 2000; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110110xxxxx1xxx01xxxxxxxxxx + sm4e. */ + return 2005; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110x10xxxxx1xxx11xxxxxxxxxx + sm3tt2b. */ + return 2002; + } + } + } + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxxxxxxx0xxxxxxxxxx + ext. */ + return 130; + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110x00xxxxx0xxxx1xxxxxxxxxx + ins. */ + return 154; + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110010xxxxx0x0101xxxxxxxxxx - fadd. */ - return 290; + xx101110010xxxxx0x0001xxxxxxxxxx + fmaxnmp. */ + return 337; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110010xxxxx0x0101xxxxxxxxxx - faddp. */ - return 339; + xx101110110xxxxx0x0001xxxxxxxxxx + fminnmp. */ + return 353; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110110xxxxx0x0101xxxxxxxxxx - fsub. */ - return 306; + xx101110010xxxxx0x1001xxxxxxxxxx + fcmge. */ + return 343; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110110xxxxx0x0101xxxxxxxxxx - fabd. */ - return 355; + xx101110110xxxxx0x1001xxxxxxxxxx + fcmgt. */ + return 357; } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110010xxxxx0x1101xxxxxxxxxx - fmax. */ - return 296; + xx101110010xxxxx0x0101xxxxxxxxxx + faddp. */ + return 339; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110010xxxxx0x1101xxxxxxxxxx - fmaxp. */ - return 347; + xx101110110xxxxx0x0101xxxxxxxxxx + fabd. */ + return 355; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110110xxxxx0x1101xxxxxxxxxx - fmin. */ - return 308; + xx101110010xxxxx0x1101xxxxxxxxxx + fmaxp. */ + return 347; } else { @@ -12664,37 +13005,15 @@ aarch64_opcode_lookup_1 (uint32_t word) } } } - } - else - { - if (((word >> 12) & 0x1) == 0) + else { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110010xxxxx0x0011xxxxxxxxxx - fmla. */ - return 288; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110110xxxxx0x0011xxxxxxxxxx - fmls. */ - return 304; - } - } - else + if (((word >> 12) & 0x1) == 0) { if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110010xxxxx0x1011xxxxxxxxxx + xx101110010xxxxx0xx011xxxxxxxxxx facge. */ return 345; } @@ -12702,25 +13021,14 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110110xxxxx0x1011xxxxxxxxxx + xx101110110xxxxx0xx011xxxxxxxxxx facgt. */ return 359; } } - } - else - { - if (((word >> 13) & 0x1) == 0) + else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110x10xxxxx0x0111xxxxxxxxxx - fmulx. */ - return 292; - } - else + if (((word >> 13) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 @@ -12728,66 +13036,33 @@ aarch64_opcode_lookup_1 (uint32_t word) fmul. */ return 341; } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110010xxxxx0x1111xxxxxxxxxx - frecps. */ - return 298; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110010xxxxx0x1111xxxxxxxxxx - fdiv. */ - return 349; - } - } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110110xxxxx0x1111xxxxxxxxxx - frsqrts. */ - return 310; + xx101110x10xxxxx0x1111xxxxxxxxxx + fdiv. */ + return 349; } } } } } - } - else - { - if (((word >> 13) & 0x1) == 0) + else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx0xxxxx100001xxxxxxxxxx - sqrdmlah. */ - return 364; - } - else + if (((word >> 11) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx0xxxxx100101xxxxxxxxxx - sdot. */ - return 1987; + xx101110xx0xxxxx100001xxxxxxxxxx + sqrdmlah. */ + return 364; } else { @@ -12798,33 +13073,33 @@ aarch64_opcode_lookup_1 (uint32_t word) return 1986; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx100x11xxxxxxxxxx + sqrdmlsh. */ + return 365; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110xx0xxxxx100x11xxxxxxxxxx - sqrdmlsh. */ - return 365; + xx101110xx0xxxxx110xx1xxxxxxxxxx + fcmla. */ + return 366; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110xx0xxxxx110xx1xxxxxxxxxx - fcmla. */ - return 366; + xx101110xx0xxxxx1x1xx1xxxxxxxxxx + fcadd. */ + return 367; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx0xxxxx1x1xx1xxxxxxxxxx - fcadd. */ - return 367; - } } } } @@ -13081,309 +13356,661 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 10) & 0x1) == 0) + if (((word >> 28) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0001110xx1xxxxx000000xxxxxxxxxx - saddl. */ - return 42; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx000000xxxxxxxxxx + saddl. */ + return 42; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx000000xxxxxxxxxx + saddl2. */ + return 43; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxxx000000xxxxxxxxxx - saddl2. */ - return 43; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx010000xxxxxxxxxx + addhn. */ + return 50; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx010000xxxxxxxxxx + addhn2. */ + return 51; + } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0101110xx1xxxxx000000xxxxxxxxxx - uaddl. */ - return 74; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx001000xxxxxxxxxx + ssubl. */ + return 46; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx001000xxxxxxxxxx + ssubl2. */ + return 47; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1101110xx1xxxxx000000xxxxxxxxxx - uaddl2. */ - return 75; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx011000xxxxxxxxxx + subhn. */ + return 54; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx011000xxxxxxxxxx + subhn2. */ + return 55; + } } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx100000000000xxxxxxxxxx - fcvtns. */ - return 756; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx110000000000xxxxxxxxxx - fcvtms. */ - return 776; - } - } - else - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx101000000000xxxxxxxxxx - fcvtps. */ - return 772; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx111000000000xxxxxxxxxx - fcvtzs. */ - return 780; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx000100xxxxxxxxxx + saddw. */ + return 44; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx100000000xxxxxxxxxx - fcvtas. */ - return 764; + 01001110xx1xxxxx000100xxxxxxxxxx + saddw2. */ + return 45; } } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx010000000xxxxxxxxxx - scvtf. */ - return 760; + 00001110xx1xxxxx010100xxxxxxxxxx + sabal. */ + return 52; } else { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx010100xxxxxxxxxx + sabal2. */ + return 53; + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx001100xxxxxxxxxx + ssubw. */ + return 48; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx001100xxxxxxxxxx + ssubw2. */ + return 49; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx011100xxxxxxxxxx + sabdl. */ + return 56; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx011100xxxxxxxxxx + sabdl2. */ + return 57; + } + } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx000010xxxxxxxxxx + rev64. */ + return 156; + } + else + { + if (((word >> 16) & 0x1) == 0) + { if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1x0110000000xxxxxxxxxx - fmov. */ - return 768; + 0x001110xx1x0xx0010010xxxxxxxxxx + cls. */ + return 160; } else { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx101110000000xxxxxxxxxx - fmov. */ - return 784; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx111110000000xxxxxxxxxx - fjcvtzs. */ - return 786; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x1xx0010010xxxxxxxxxx + aese. */ + return 665; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxx1010010xxxxxxxxxx + sqxtn. */ + return 170; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxx1010010xxxxxxxxxx + sqxtn2. */ + return 171; } } } } else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxx0001010xxxxxxxxxx + saddlp. */ + return 158; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxx1001010xxxxxxxxxx + xtn. */ + return 168; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxx1001010xxxxxxxxxx + xtn2. */ + return 169; + } + } + } + else + { + if (((word >> 16) & 0x1) == 0) { if (((word >> 19) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx100001000000xxxxxxxxxx - fcvtnu. */ - return 758; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx110001000000xxxxxxxxxx - fcvtmu. */ - return 778; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x0xx0011010xxxxxxxxxx + sadalp. */ + return 162; } else { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx101001000000xxxxxxxxxx - fcvtpu. */ - return 774; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx111001000000xxxxxxxxxx - fcvtzu. */ - return 782; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x1xx0011010xxxxxxxxxx + aesmc. */ + return 667; } } else { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxx1011010xxxxxxxxxx + fcvtn. */ + return 172; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxx1011010xxxxxxxxxx + fcvtn2. */ + return 173; + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx000110xxxxxxxxxx + rev16. */ + return 157; + } + else + { + if (((word >> 19) & 0x1) == 0) + { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx101000000xxxxxxxxxx - fcvtau. */ - return 766; + 0x001110xx1x0xxx010110xxxxxxxxxx + cnt. */ + return 161; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x1xxx010110xxxxxxxxxx + aesd. */ + return 666; } } - else + } + else + { + if (((word >> 14) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx011000000xxxxxxxxxx - ucvtf. */ - return 762; + 0x001110xx10xxxx001110xxxxxxxxxx + suqadd. */ + return 159; } else { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx11xxxx001110xxxxxxxxxx + saddlv. */ + return 27; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1x0111000000xxxxxxxxxx - fmov. */ - return 770; + 0x001110xx1x0xx0011110xxxxxxxxxx + sqabs. */ + return 163; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1x1111000000xxxxxxxxxx - fmov. */ - return 785; + 0x001110xx1x1xx0011110xxxxxxxxxx + aesimc. */ + return 668; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxx1011110xxxxxxxxxx + fcvtl. */ + return 174; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxx1011110xxxxxxxxxx + fcvtl2. */ + return 175; } } } } } } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx000001xxxxxxxxxx + shadd. */ + return 262; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx010001xxxxxxxxxx + sshl. */ + return 269; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001001xxxxxxxxxx + shsub. */ + return 265; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011001xxxxxxxxxx + smax. */ + return 273; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx000101xxxxxxxxxx + srhadd. */ + return 264; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx010101xxxxxxxxxx + srshl. */ + return 271; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001101xxxxxxxxxx + cmgt. */ + return 267; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011101xxxxxxxxxx + sabd. */ + return 275; + } + } + } + } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x00x1110xx1xxxxx100000xxxxxxxxxx - smlal. */ - return 58; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx000011xxxxxxxxxx + sqadd. */ + return 263; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx010011xxxxxxxxxx + sqshl. */ + return 270; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x10x1110xx1xxxxx100000xxxxxxxxxx - smlal2. */ - return 59; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001011xxxxxxxxxx + sqsub. */ + return 266; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011011xxxxxxxxxx + smin. */ + return 274; + } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x01x1110xx1xxxxx100000xxxxxxxxxx - umlal. */ - return 90; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110001xxxxx000111xxxxxxxxxx + and. */ + return 299; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110101xxxxx000111xxxxxxxxxx + orr. */ + return 311; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110011xxxxx000111xxxxxxxxxx + bic. */ + return 300; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110111xxxxx000111xxxxxxxxxx + orn. */ + return 313; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx010111xxxxxxxxxx + sqrshl. */ + return 272; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x11x1110xx1xxxxx100000xxxxxxxxxx - umlal2. */ - return 91; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001111xxxxxxxxxx + cmge. */ + return 268; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011111xxxxxxxxxx + saba. */ + return 276; + } } } } } - else + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110xx1xxxxx0xxxxxxxxxxxxxxx + bcax. */ + return 1997; + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0001110xx1xxxxx010000xxxxxxxxxx - addhn. */ - return 50; + x0101110xx1xxxxx000000xxxxxxxxxx + uaddl. */ + return 74; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1001110xx1xxxxx010000xxxxxxxxxx - addhn2. */ - return 51; + x1101110xx1xxxxx000000xxxxxxxxxx + uaddl2. */ + return 75; } } else @@ -13408,23 +14035,23 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0001110xx1xxxxx110000xxxxxxxxxx - smull. */ - return 66; + x0101110xx1xxxxx001000xxxxxxxxxx + usubl. */ + return 78; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1001110xx1xxxxx110000xxxxxxxxxx - smull2. */ - return 67; + x1101110xx1xxxxx001000xxxxxxxxxx + usubl2. */ + return 79; } } else @@ -13433,63 +14060,181 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0101110xx1xxxxx110000xxxxxxxxxx - umull. */ - return 94; + x0101110xx1xxxxx011000xxxxxxxxxx + rsubhn. */ + return 86; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1101110xx1xxxxx110000xxxxxxxxxx - umull2. */ - return 95; + x1101110xx1xxxxx011000xxxxxxxxxx + rsubhn2. */ + return 87; } } } } else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx000100xxxxxxxxxx + uaddw. */ + return 76; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx000100xxxxxxxxxx + uaddw2. */ + return 77; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx010100xxxxxxxxxx + uabal. */ + return 84; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx010100xxxxxxxxxx + uabal2. */ + return 85; + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx001100xxxxxxxxxx + usubw. */ + return 80; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx001100xxxxxxxxxx + usubw2. */ + return 81; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx011100xxxxxxxxxx + uabdl. */ + return 88; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx011100xxxxxxxxxx + uabdl2. */ + return 89; + } + } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx000010xxxxxxxxxx + rev32. */ + return 207; + } + else { if (((word >> 16) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0010010xxxxxxxxxx + clz. */ + return 210; + } + else + { + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx000010000xxxxxxxxxx - fmov. */ - return 799; + x0101110xx1xxxx1010010xxxxxxxxxx + uqxtn. */ + return 220; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx100010000xxxxxxxxxx - frintn. */ - return 808; + x1101110xx1xxxx1010010xxxxxxxxxx + uqxtn2. */ + return 221; } } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0001010xxxxxxxxxx + uaddlp. */ + return 208; + } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx001010000xxxxxxxxxx - fneg. */ - return 803; + x0101110xx1xxxx1001010xxxxxxxxxx + sqxtun. */ + return 216; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx101010000xxxxxxxxxx - frintm. */ - return 812; + x1101110xx1xxxx1001010xxxxxxxxxx + sqxtun2. */ + return 217; } } } @@ -13497,315 +14242,329 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 16) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xx000110000xxxxxxxxxx - fabs. */ - return 801; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xx100110000xxxxxxxxxx - frintp. */ - return 810; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0011010xxxxxxxxxx + uadalp. */ + return 211; } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx001110000xxxxxxxxxx - fsqrt. */ - return 805; + x0101110xx1xxxx1011010xxxxxxxxxx + fcvtxn. */ + return 222; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx101110000xxxxxxxxxx - frintz. */ - return 814; + x1101110xx1xxxx1011010xxxxxxxxxx + fcvtxn2. */ + return 223; } } } } - else + } + else + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx01xx10000xxxxxxxxxx - fcvt. */ - return 807; + xx101110x01xxxxx0x0110xxxxxxxxxx + not. */ + return 236; } else { - if (((word >> 15) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110x11xxxxx0x0110xxxxxxxxxx + rbit. */ + return 238; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx110010000xxxxxxxxxx - frinta. */ - return 816; + xx101110xx10xxx0001110xxxxxxxxxx + usqadd. */ + return 209; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1xx111010000xxxxxxxxxx - frintx. */ - return 818; + xx101110xx11xxx0001110xxxxxxxxxx + uaddlv. */ + return 31; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xx11x110000xxxxxxxxxx - frinti. */ - return 820; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxx1001110xxxxxxxxxx + shll. */ + return 218; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxx1001110xxxxxxxxxx + shll2. */ + return 219; + } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx011110xxxxxxxxxx + sqneg. */ + return 212; + } } } } } else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0001110xx1xxxxx001000xxxxxxxxxx - ssubl. */ - return 46; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxxx001000xxxxxxxxxx - ssubl2. */ - return 47; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx000001xxxxxxxxxx + uhadd. */ + return 314; } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0101110xx1xxxxx001000xxxxxxxxxx - usubl. */ - return 78; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1101110xx1xxxxx001000xxxxxxxxxx - usubl2. */ - return 79; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx010001xxxxxxxxxx + ushl. */ + return 321; } } else { - if (((word >> 3) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xxxxx001000xxxxx00xxx - fcmp. */ - return 791; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xxxxx001000xxxxx10xxx - fcmpe. */ - return 793; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx001001xxxxxxxxxx + uhsub. */ + return 317; } else { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xxxxx001000xxxxx01xxx - fcmp. */ - return 795; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xxxxx001000xxxxx11xxx - fcmpe. */ - return 797; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx011001xxxxxxxxxx + umax. */ + return 325; } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x00x1110xx1xxxxx101000xxxxxxxxxx - smlsl. */ - return 62; + xx101110xx1xxxxx000101xxxxxxxxxx + urhadd. */ + return 316; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x10x1110xx1xxxxx101000xxxxxxxxxx - smlsl2. */ - return 63; + xx101110xx1xxxxx010101xxxxxxxxxx + urshl. */ + return 323; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x01x1110xx1xxxxx101000xxxxxxxxxx - umlsl. */ - return 92; + xx101110xx1xxxxx001101xxxxxxxxxx + cmhi. */ + return 319; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x11x1110xx1xxxxx101000xxxxxxxxxx - umlsl2. */ - return 93; + xx101110xx1xxxxx011101xxxxxxxxxx + uabd. */ + return 327; } } } } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x00x1110xx1xxxxx011000xxxxxxxxxx - subhn. */ - return 54; + xx101110xx1xxxxx000011xxxxxxxxxx + uqadd. */ + return 315; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x10x1110xx1xxxxx011000xxxxxxxxxx - subhn2. */ - return 55; + xx101110xx1xxxxx010011xxxxxxxxxx + uqshl. */ + return 322; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x01x1110xx1xxxxx011000xxxxxxxxxx - rsubhn. */ - return 86; + xx101110xx1xxxxx001011xxxxxxxxxx + uqsub. */ + return 318; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x11x1110xx1xxxxx011000xxxxxxxxxx - rsubhn2. */ - return 87; + xx101110xx1xxxxx011011xxxxxxxxxx + umin. */ + return 326; } } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0xx1110x01xxxxx111000xxxxxxxxxx - pmull. */ - return 70; + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110001xxxxx000111xxxxxxxxxx + eor. */ + return 350; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110101xxxxx000111xxxxxxxxxx + bit. */ + return 362; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110011xxxxx000111xxxxxxxxxx + bsl. */ + return 351; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110111xxxxx000111xxxxxxxxxx + bif. */ + return 363; + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1xx1110x01xxxxx111000xxxxxxxxxx - pmull2. */ - return 72; + xx101110xx1xxxxx010111xxxxxxxxxx + uqrshl. */ + return 324; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0xx1110x11xxxxx111000xxxxxxxxxx - pmull. */ - return 71; + xx101110xx1xxxxx001111xxxxxxxxxx + cmhs. */ + return 320; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1xx1110x11xxxxx111000xxxxxxxxxx - pmull2. */ - return 73; + xx101110xx1xxxxx011111xxxxxxxxxx + uaba. */ + return 328; } } } } } } - else + } + else + { + if (((word >> 10) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -13813,17 +14572,28 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0001110xx1xxxxx000100xxxxxxxxxx - saddw. */ - return 44; + x0001110xx1xxxxx100000xxxxxxxxxx + smlal. */ + return 58; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxxx000100xxxxxxxxxx - saddw2. */ - return 45; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx100000xxxxxxxxxx + smlal2. */ + return 59; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11001110xx1xxxxx100000xxxxxxxxxx + sha512h. */ + return 1990; + } } } else @@ -13832,43 +14602,76 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0101110xx1xxxxx000100xxxxxxxxxx - uaddw. */ - return 76; + x0101110xx1xxxxx100000xxxxxxxxxx + umlal. */ + return 90; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1101110xx1xxxxx000100xxxxxxxxxx - uaddw2. */ - return 77; + x1101110xx1xxxxx100000xxxxxxxxxx + umlal2. */ + return 91; } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0x01110xx1xxxxx100100xxxxxxxxxx - sqdmlal. */ - return 60; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001110xx1xxxxx110000xxxxxxxxxx + smull. */ + return 66; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx110000xxxxxxxxxx + smull2. */ + return 67; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11001110xx1xxxxx110000xxxxxxxxxx + sm3partw1. */ + return 2003; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x01110xx1xxxxx100100xxxxxxxxxx - sqdmlal2. */ - return 61; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx110000xxxxxxxxxx + umull. */ + return 94; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx110000xxxxxxxxxx + umull2. */ + return 95; + } } } } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -13876,17 +14679,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0001110xx1xxxxx010100xxxxxxxxxx - sabal. */ - return 52; + x0001110xx1xxxxx101000xxxxxxxxxx + smlsl. */ + return 62; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1001110xx1xxxxx010100xxxxxxxxxx - sabal2. */ - return 53; + x1001110xx1xxxxx101000xxxxxxxxxx + smlsl2. */ + return 63; } } else @@ -13895,64 +14698,39 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0101110xx1xxxxx010100xxxxxxxxxx - uabal. */ - return 84; + x0101110xx1xxxxx101000xxxxxxxxxx + umlsl. */ + return 92; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1101110xx1xxxxx010100xxxxxxxxxx - uabal2. */ - return 85; + x1101110xx1xxxxx101000xxxxxxxxxx + umlsl2. */ + return 93; } } } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0x01110xx1xxxxx110100xxxxxxxxxx - sqdmull. */ - return 68; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x01110xx1xxxxx110100xxxxxxxxxx - sqdmull2. */ - return 69; - } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0001110xx1xxxxx001100xxxxxxxxxx - ssubw. */ - return 48; + x0x01110x01xxxxx111000xxxxxxxxxx + pmull. */ + return 70; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1001110xx1xxxxx001100xxxxxxxxxx - ssubw2. */ - return 49; + x1x01110x01xxxxx111000xxxxxxxxxx + pmull2. */ + return 72; } } else @@ -13961,59 +14739,43 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0101110xx1xxxxx001100xxxxxxxxxx - usubw. */ - return 80; + x0x01110x11xxxxx111000xxxxxxxxxx + pmull. */ + return 71; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1101110xx1xxxxx001100xxxxxxxxxx - usubw2. */ - return 81; + x1x01110x11xxxxx111000xxxxxxxxxx + pmull2. */ + return 73; } } } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0x01110xx1xxxxx101100xxxxxxxxxx - sqdmlsl. */ - return 64; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x01110xx1xxxxx101100xxxxxxxxxx - sqdmlsl2. */ - return 65; - } - } } - else + } + else + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0001110xx1xxxxxx11100xxxxxxxxxx - sabdl. */ - return 56; + x0x01110xx1xxxxx100100xxxxxxxxxx + sqdmlal. */ + return 60; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1001110xx1xxxxxx11100xxxxxxxxxx - sabdl2. */ - return 57; + x1x01110xx1xxxxx100100xxxxxxxxxx + sqdmlal2. */ + return 61; } } else @@ -14022,410 +14784,242 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0101110xx1xxxxxx11100xxxxxxxxxx - uabdl. */ - return 88; + x0x01110xx1xxxxx110100xxxxxxxxxx + sqdmull. */ + return 68; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1101110xx1xxxxxx11100xxxxxxxxxx - uabdl2. */ - return 89; + x1x01110xx1xxxxx110100xxxxxxxxxx + sqdmull2. */ + return 69; } } } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0x11110xx1xxxxxxxx100xxxxxxxxxx - fmov. */ - return 848; - } - else - { - if (((word >> 13) & 0x1) == 0) + else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1x11110xx1xxxxxx00100xxxxxxxxxx - sqdmlal. */ - return 416; + x0x01110xx1xxxxx1x1100xxxxxxxxxx + sqdmlsl. */ + return 64; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1x11110xx1xxxxxx10100xxxxxxxxxx - sqdmull. */ - return 418; + x1x01110xx1xxxxx1x1100xxxxxxxxxx + sqdmlsl2. */ + return 65; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x11110xx1xxxxxxx1100xxxxxxxxxx - sqdmlsl. */ - return 417; - } } } - } - } - else - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) + else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx000010xxxxxxxxxx - rev64. */ - return 156; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx000010xxxxxxxxxx - rev32. */ - return 207; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0x11110xx1xxxxx000010xxxxxxxxxx - fmul. */ - return 822; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x11110xx1xxxxx000010xxxxxxxxxx - sha1h. */ - return 669; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxx0100010xxxxxxxxxx - cmgt. */ - return 164; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxx0100010xxxxxxxxxx - cmge. */ - return 213; - } - } - else - { - if (((word >> 19) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x1x0xx1100010xxxxxxxxxx - frintn. */ - return 176; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011100x1x0xx1100010xxxxxxxxxx - frinta. */ - return 224; - } - } - else + if (((word >> 16) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx011101x1x0xx1100010xxxxxxxxxx - frintp. */ - return 196; + 0x001110xx1xxxx0100010xxxxxxxxxx + cmgt. */ + return 164; } - } - else - { - if (((word >> 23) & 0x1) == 0) + else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x1x1xx1100010xxxxxxxxxx - frintn. */ - return 177; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1x0xx1100010xxxxxxxxxx + frintn. */ + return 176; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011101x1x0xx1100010xxxxxxxxxx + frintp. */ + return 196; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011100x1x1xx1100010xxxxxxxxxx - frinta. */ - return 225; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1x1xx1100010xxxxxxxxxx + frintn. */ + return 177; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011101x1x1xx1100010xxxxxxxxxx + frintp. */ + return 197; + } } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx011101x1x1xx1100010xxxxxxxxxx - frintp. */ - return 197; - } - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0011110xx1xxxxx100010xxxxxxxxxx - fnmul. */ - return 838; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1011110xx1xxxxx100010xxxxxxxxxx - cmgt. */ - return 476; + 1x001110xx1xxxxx100010xxxxxxxxxx + sha512su1. */ + return 1993; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxxx100010xxxxxxxxxx - cmge. */ - return 505; - } - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1x0xx0010010xxxxxxxxxx - cls. */ - return 160; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1x0xx0010010xxxxxxxxxx - clz. */ - return 210; - } - } - else + if (((word >> 16) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110xx1x1xx0010010xxxxxxxxxx - aese. */ - return 665; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0001110xx1xxxx1010010xxxxxxxxxx - sqxtn. */ - return 170; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxx1010010xxxxxxxxxx - sqxtn2. */ - return 171; - } + xx101110xx1xxxx0100010xxxxxxxxxx + cmge. */ + return 213; } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0101110xx1xxxx1010010xxxxxxxxxx - uqxtn. */ - return 220; + xx101110xx1x0xx1100010xxxxxxxxxx + frinta. */ + return 224; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1101110xx1xxxx1010010xxxxxxxxxx - uqxtn2. */ - return 221; + xx101110xx1x1xx1100010xxxxxxxxxx + frinta. */ + return 225; } } } } else { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0011110xx1xxxxx010010xxxxxxxxxx - fmax. */ - return 830; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx1xxxxx010010xxxxxxxxxx - sqxtn. */ - return 480; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxxx010010xxxxxxxxxx - uqxtn. */ - return 509; - } - } - } - else - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx100xx0110010xxxxxxxxxx - fcmgt. */ - return 188; + 0x0011100x1xxxx0110010xxxxxxxxxx + fmaxnmv. */ + return 35; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx100xx0110010xxxxxxxxxx - fcmge. */ - return 239; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1x0xx1110010xxxxxxxxxx + fcvtas. */ + return 184; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1x1xx1110010xxxxxxxxxx + fcvtas. */ + return 185; + } } } else { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x0011100x1xxxxx110010xxxxxxxxxx + sm4ekey. */ + return 2006; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1xxxx0110010xxxxxxxxxx + fmaxnmv. */ + return 34; + } + else + { + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx011110xx100xx0110010xxxxxxxxxx - fcmgt. */ - return 489; + xx1011100x1x0xx1110010xxxxxxxxxx + fcvtau. */ + return 232; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx111110xx100xx0110010xxxxxxxxxx - fcmge. */ - return 519; + xx1011100x1x1xx1110010xxxxxxxxxx + fcvtau. */ + return 233; } } } - else + } + else + { + if (((word >> 16) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0011100x110xx0110010xxxxxxxxxx - fmaxnmv. */ - return 35; + xx0011101x100xx0110010xxxxxxxxxx + fcmgt. */ + return 188; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1011100x110xx0110010xxxxxxxxxx - fmaxnmv. */ - return 34; + xx1011101x100xx0110010xxxxxxxxxx + fcmge. */ + return 239; } } else @@ -14434,28 +15028,6 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111100x110xx0110010xxxxxxxxxx - fmaxnmp. */ - return 533; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x110xx0110010xxxxxxxxxx - fmaxnmp. */ - return 532; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 xx0011101x110xx0110010xxxxxxxxxx fminnmv. */ return 39; @@ -14469,94 +15041,6 @@ aarch64_opcode_lookup_1 (uint32_t word) return 38; } } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x110xx0110010xxxxxxxxxx - fminnmp. */ - return 539; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x110xx0110010xxxxxxxxxx - fminnmp. */ - return 538; - } - } - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1x1xx0110010xxxxxxxxxx - fcmgt. */ - return 189; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1x1xx0110010xxxxxxxxxx - fcmge. */ - return 240; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx011110xx1x1xx0110010xxxxxxxxxx - fcmgt. */ - return 490; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1x1xx0110010xxxxxxxxxx - fcmge. */ - return 520; - } - } - } - } - else - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x1x0xx1110010xxxxxxxxxx - fcvtas. */ - return 184; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011100x1x0xx1110010xxxxxxxxxx - fcvtau. */ - return 232; - } } else { @@ -14564,17 +15048,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111100x1x0xx1110010xxxxxxxxxx - fcvtas. */ - return 485; + xx0011101x1x1xx0110010xxxxxxxxxx + fcmgt. */ + return 189; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1111100x1x0xx1110010xxxxxxxxxx - fcvtau. */ - return 515; + xx1011101x1x1xx0110010xxxxxxxxxx + fcmge. */ + return 240; } } } @@ -14584,7 +15068,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0x11101x1x0xx1110010xxxxxxxxxx + xx0011101x1xxxx1110010xxxxxxxxxx urecpe. */ return 204; } @@ -14592,209 +15076,55 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1x11101x1x0xx1110010xxxxxxxxxx + xx1011101x1xxxx1110010xxxxxxxxxx ursqrte. */ return 251; } } } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1x1xx1110010xxxxxxxxxx - fcvtas. */ - return 185; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1x1xx1110010xxxxxxxxxx - fcvtau. */ - return 233; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx011110xx1x1xx1110010xxxxxxxxxx - fcvtas. */ - return 486; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1x1xx1110010xxxxxxxxxx - fcvtau. */ - return 516; - } - } - } } } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 16) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxx0001010xxxxxxxxxx - saddlp. */ - return 158; - } - else + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxx0001010xxxxxxxxxx - uaddlp. */ - return 208; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0001110xx1xxxx1001010xxxxxxxxxx - xtn. */ - return 168; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxx1001010xxxxxxxxxx - xtn2. */ - return 169; - } + xxx01110xx10xxx0101010xxxxxxxxxx + cmlt. */ + return 166; } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0101110xx1xxxx1001010xxxxxxxxxx - sqxtun. */ - return 216; + xx001110xx11xxx0101010xxxxxxxxxx + smaxv. */ + return 28; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1101110xx1xxxx1001010xxxxxxxxxx - sqxtun2. */ - return 217; + xx101110xx11xxx0101010xxxxxxxxxx + umaxv. */ + return 32; } } } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0011110xx1xxxxx001010xxxxxxxxxx - fadd. */ - return 826; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx1xxxxx001010xxxxxxxxxx - sha256su0. */ - return 671; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxxx001010xxxxxxxxxx - sqxtun. */ - return 508; - } - } - } - else - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx10xxx0101010xxxxxxxxxx - cmlt. */ - return 166; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx10xxx0101010xxxxxxxxxx - cmlt. */ - return 478; - } - } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0x1110xx11xxx0101010xxxxxxxxxx - smaxv. */ - return 28; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1x1110xx11xxx0101010xxxxxxxxxx - umaxv. */ - return 32; - } - } - } - else - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -14819,28 +15149,6 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111100x100xx1101010xxxxxxxxxx - fcvtns. */ - return 481; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x100xx1101010xxxxxxxxxx - fcvtnu. */ - return 511; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 xx0011101x100xx1101010xxxxxxxxxx fcvtps. */ return 200; @@ -14854,93 +15162,49 @@ aarch64_opcode_lookup_1 (uint32_t word) return 247; } } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x100xx1101010xxxxxxxxxx - fcvtps. */ - return 495; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x100xx1101010xxxxxxxxxx - fcvtpu. */ - return 523; - } - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0x1110xx110xx1101010xxxxxxxxxx - sminv. */ - return 29; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1x1110xx110xx1101010xxxxxxxxxx - uminv. */ - return 33; - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0011100x1x1xx1101010xxxxxxxxxx - fcvtns. */ - return 181; + xx001110xx110xx1101010xxxxxxxxxx + sminv. */ + return 29; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1011100x1x1xx1101010xxxxxxxxxx - fcvtnu. */ - return 229; + xx101110xx110xx1101010xxxxxxxxxx + uminv. */ + return 33; } } - else + } + else + { + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111100x1x1xx1101010xxxxxxxxxx + xx0011100x1x1xx1101010xxxxxxxxxx fcvtns. */ - return 482; + return 181; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1111100x1x1xx1101010xxxxxxxxxx + xx1011100x1x1xx1101010xxxxxxxxxx fcvtnu. */ - return 512; + return 229; } } - } - else - { - if (((word >> 28) & 0x1) == 0) + else { if (((word >> 29) & 0x1) == 0) { @@ -14959,133 +15223,12 @@ aarch64_opcode_lookup_1 (uint32_t word) return 248; } } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x1x1xx1101010xxxxxxxxxx - fcvtps. */ - return 496; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x1x1xx1101010xxxxxxxxxx - fcvtpu. */ - return 524; - } - } - } - } - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1x0xx0011010xxxxxxxxxx - sadalp. */ - return 162; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1x0xx0011010xxxxxxxxxx - uadalp. */ - return 211; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx1x1xx0011010xxxxxxxxxx - aesmc. */ - return 667; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0001110xx1xxxx1011010xxxxxxxxxx - fcvtn. */ - return 172; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxx1011010xxxxxxxxxx - fcvtn2. */ - return 173; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0101110xx1xxxx1011010xxxxxxxxxx - fcvtxn. */ - return 222; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1101110xx1xxxx1011010xxxxxxxxxx - fcvtxn2. */ - return 223; - } } } } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx011110xx1xxxxx011010xxxxxxxxxx - fmaxnm. */ - return 834; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxxx011010xxxxxxxxxx - fcvtxn. */ - return 510; - } - } - } - else - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 @@ -15097,75 +15240,20 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1x0xxx111010xxxxxxxxxx - fcmlt. */ - return 493; - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 xxx01110xx1x1xxx111010xxxxxxxxxx fcmlt. */ return 193; } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1x1xxx111010xxxxxxxxxx - fcmlt. */ - return 494; - } } } } - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) + else { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx1xxxxx000110xxxxxxxxxx - rev16. */ - return 157; - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0x11110xx1xxxxx000110xxxxxxxxxx - fdiv. */ - return 824; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x11110xx1xxxxx000110xxxxxxxxxx - sha1su1. */ - return 670; - } - } - } - else + if (((word >> 13) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -15186,190 +15274,25 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx011110xx1xxxx0100110xxxxxxxxxx - cmeq. */ - return 477; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxx0100110xxxxxxxxxx - cmle. */ - return 506; - } - } - } - else - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0x11100x1x0xx1100110xxxxxxxxxx - frintm. */ - return 178; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1x11100x1x0xx1100110xxxxxxxxxx - frintx. */ - return 226; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0x11101x1x0xx1100110xxxxxxxxxx - frintz. */ - return 198; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1x11101x1x0xx1100110xxxxxxxxxx - frinti. */ - return 245; - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0x11100x1x1xx1100110xxxxxxxxxx - frintm. */ - return 179; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1x11100x1x1xx1100110xxxxxxxxxx - frintx. */ - return 227; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0x11101x1x1xx1100110xxxxxxxxxx - frintz. */ - return 199; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1x11101x1x1xx1100110xxxxxxxxxx - frinti. */ - return 246; - } - } - } - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1x0xxx010110xxxxxxxxxx - cnt. */ - return 161; - } - else - { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110x01x0xxx010110xxxxxxxxxx - not. */ - return 236; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110x11x0xxx010110xxxxxxxxxx - rbit. */ - return 238; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx1x1xxx010110xxxxxxxxxx - aesd. */ - return 666; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xxxxx010110xxxxxxxxxx - fmin. */ - return 832; - } - } - else - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx100xx0110110xxxxxxxxxx - fcmeq. */ - return 190; + xx0011100x1x0xx1100110xxxxxxxxxx + frintm. */ + return 178; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx100xx0110110xxxxxxxxxx - fcmle. */ - return 241; + xx1011100x1x0xx1100110xxxxxxxxxx + frintx. */ + return 226; } } else @@ -15378,59 +15301,84 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx011110xx100xx0110110xxxxxxxxxx - fcmeq. */ - return 491; + xx0011101x1x0xx1100110xxxxxxxxxx + frintz. */ + return 198; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx111110xx100xx0110110xxxxxxxxxx - fcmle. */ - return 521; + xx1011101x1x0xx1100110xxxxxxxxxx + frinti. */ + return 245; } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0x1110xx110xx0110110xxxxxxxxxx - faddp. */ - return 535; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x1xx1100110xxxxxxxxxx + frintm. */ + return 179; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x1xx1100110xxxxxxxxxx + frintx. */ + return 227; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1x1110xx110xx0110110xxxxxxxxxx - faddp. */ - return 534; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x1xx1100110xxxxxxxxxx + frintz. */ + return 199; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x1xx1100110xxxxxxxxxx + frinti. */ + return 246; + } } } } - else + } + else + { + if (((word >> 16) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1x1xx0110110xxxxxxxxxx + xx001110xx1x0xx0110110xxxxxxxxxx fcmeq. */ - return 191; + return 190; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1x1xx0110110xxxxxxxxxx + xx101110xx1x0xx0110110xxxxxxxxxx fcmle. */ - return 242; + return 241; } } else @@ -15439,28 +15387,25 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx011110xx1x1xx0110110xxxxxxxxxx + xx001110xx1x1xx0110110xxxxxxxxxx fcmeq. */ - return 492; + return 191; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx111110xx1x1xx0110110xxxxxxxxxx + xx101110xx1x1xx0110110xxxxxxxxxx fcmle. */ - return 522; + return 242; } } } - } - else - { - if (((word >> 19) & 0x1) == 0) + else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -15485,28 +15430,6 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111100x1x0xx1110110xxxxxxxxxx - scvtf. */ - return 487; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x1x0xx1110110xxxxxxxxxx - ucvtf. */ - return 517; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 xx0011101x1x0xx1110110xxxxxxxxxx frecpe. */ return 205; @@ -15520,32 +15443,10 @@ aarch64_opcode_lookup_1 (uint32_t word) return 252; } } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x1x0xx1110110xxxxxxxxxx - frecpe. */ - return 499; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x1x0xx1110110xxxxxxxxxx - frsqrte. */ - return 527; - } - } } - } - else - { - if (((word >> 23) & 0x1) == 0) + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -15570,28 +15471,6 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111100x1x1xx1110110xxxxxxxxxx - scvtf. */ - return 488; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x1x1xx1110110xxxxxxxxxx - ucvtf. */ - return 518; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 xx0011101x1x1xx1110110xxxxxxxxxx frecpe. */ return 206; @@ -15605,136 +15484,15 @@ aarch64_opcode_lookup_1 (uint32_t word) return 253; } } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x1x1xx1110110xxxxxxxxxx - frecpe. */ - return 500; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x1x1xx1110110xxxxxxxxxx - frsqrte. */ - return 528; - } - } - } - } - } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx10xxx0001110xxxxxxxxxx - suqadd. */ - return 159; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx10xxx0001110xxxxxxxxxx - usqadd. */ - return 209; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx11xxx0001110xxxxxxxxxx - saddlv. */ - return 27; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx11xxx0001110xxxxxxxxxx - uaddlv. */ - return 31; - } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0x01110xx1xxxx1001110xxxxxxxxxx - shll. */ - return 218; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x01110xx1xxxx1001110xxxxxxxxxx - shll2. */ - return 219; } } } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0011110xx1xxxxx001110xxxxxxxxxx - fsub. */ - return 828; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx1xxxxx001110xxxxxxxxxx - suqadd. */ - return 474; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxxx001110xxxxxxxxxx - usqadd. */ - return 503; - } - } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -15755,33 +15513,11 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx011110xx1xxxx0101110xxxxxxxxxx - abs. */ - return 479; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxx0101110xxxxxxxxxx - neg. */ - return 507; - } - } - } - else - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -15806,28 +15542,6 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111100x100xx1101110xxxxxxxxxx - fcvtms. */ - return 483; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x100xx1101110xxxxxxxxxx - fcvtmu. */ - return 513; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 xx0011101x100xx1101110xxxxxxxxxx fcvtzs. */ return 202; @@ -15841,30 +15555,8 @@ aarch64_opcode_lookup_1 (uint32_t word) return 249; } } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x100xx1101110xxxxxxxxxx - fcvtzs. */ - return 497; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x100xx1101110xxxxxxxxxx - fcvtzu. */ - return 525; - } - } } - } - else - { - if (((word >> 28) & 0x1) == 0) + else { /* 33222222222211111111110000000000 10987654321098765432109876543210 @@ -15872,21 +15564,10 @@ aarch64_opcode_lookup_1 (uint32_t word) addv. */ return 30; } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx110xx1101110xxxxxxxxxx - addp. */ - return 531; - } } - } - else - { - if (((word >> 23) & 0x1) == 0) + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -15911,28 +15592,6 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111100x1x1xx1101110xxxxxxxxxx - fcvtms. */ - return 484; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x1x1xx1101110xxxxxxxxxx - fcvtmu. */ - return 514; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 xx0011101x1x1xx1101110xxxxxxxxxx fcvtzs. */ return 203; @@ -15946,147 +15605,37 @@ aarch64_opcode_lookup_1 (uint32_t word) return 250; } } - else + } + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111101x1x1xx1101110xxxxxxxxxx - fcvtzs. */ - return 498; + xx001110xx100xx0111110xxxxxxxxxx + fabs. */ + return 194; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1111101x1x1xx1101110xxxxxxxxxx - fcvtzu. */ - return 526; + xx101110xx100xx0111110xxxxxxxxxx + fneg. */ + return 243; } } - } - } - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1x0xx0011110xxxxxxxxxx - sqabs. */ - return 163; - } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1x0xx0011110xxxxxxxxxx - sqneg. */ - return 212; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx1x1xx0011110xxxxxxxxxx - aesimc. */ - return 668; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0x01110xx1xxxx1011110xxxxxxxxxx - fcvtl. */ - return 174; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x01110xx1xxxx1011110xxxxxxxxxx - fcvtl2. */ - return 175; - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0011110xx1xxxxx011110xxxxxxxxxx - fminnm. */ - return 836; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx1xxxxx011110xxxxxxxxxx - sqabs. */ - return 475; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxxx011110xxxxxxxxxx - sqneg. */ - return 504; - } - } - } - else - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0x1110xx100xx0111110xxxxxxxxxx - fabs. */ - return 194; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1x1110xx100xx0111110xxxxxxxxxx - fneg. */ - return 243; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -16111,28 +15660,6 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111100x110xx0111110xxxxxxxxxx - fmaxp. */ - return 537; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x110xx0111110xxxxxxxxxx - fmaxp. */ - return 536; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 xx0011101x110xx0111110xxxxxxxxxx fminv. */ return 41; @@ -16146,53 +15673,31 @@ aarch64_opcode_lookup_1 (uint32_t word) return 40; } } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x110xx0111110xxxxxxxxxx - fminp. */ - return 541; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x110xx0111110xxxxxxxxxx - fminp. */ - return 540; - } - } } } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0x1110xx1x1xx0111110xxxxxxxxxx - fabs. */ - return 195; - } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1x1110xx1x1xx0111110xxxxxxxxxx - fneg. */ - return 244; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1x1xx0111110xxxxxxxxxx + fabs. */ + return 195; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1x1xx0111110xxxxxxxxxx + fneg. */ + return 244; + } } } - } - else - { - if (((word >> 19) & 0x1) == 0) + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 @@ -16204,77 +15709,44 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1x0xx1111110xxxxxxxxxx - frecpx. */ - return 501; - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 xxx01110xx1x1xx1111110xxxxxxxxxx fsqrt. */ return 255; } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1x1xx1111110xxxxxxxxxx - frecpx. */ - return 502; - } } } } } } } - } - } - else - { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) + else { - if (((word >> 12) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx000001xxxxxxxxxx - shadd. */ - return 262; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx000001xxxxxxxxxx - uhadd. */ - return 314; - } - } - else + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx100001xxxxxxxxxx - add. */ - return 277; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx100001xxxxxxxxxx + add. */ + return 277; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110xx1xxxxx100001xxxxxxxxxx + sha512h2. */ + return 1991; + } } else { @@ -16285,39 +15757,28 @@ aarch64_opcode_lookup_1 (uint32_t word) return 329; } } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx010001xxxxxxxxxx - sshl. */ - return 269; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx010001xxxxxxxxxx - ushl. */ - return 321; - } - } else { if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x1xxxxx110001xxxxxxxxxx - fmaxnm. */ - return 285; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1xxxxx110001xxxxxxxxxx + fmaxnm. */ + return 285; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x0011100x1xxxxx110001xxxxxxxxxx + sm3partw2. */ + return 2004; + } } else { @@ -16349,31 +15810,9 @@ aarch64_opcode_lookup_1 (uint32_t word) } } } - } - else - { - if (((word >> 14) & 0x1) == 0) + else { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx001001xxxxxxxxxx - shsub. */ - return 265; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx001001xxxxxxxxxx - uhsub. */ - return 317; - } - } - else + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -16392,28 +15831,6 @@ aarch64_opcode_lookup_1 (uint32_t word) return 333; } } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx011001xxxxxxxxxx - smax. */ - return 273; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx011001xxxxxxxxxx - umax. */ - return 325; - } - } else { if (((word >> 23) & 0x1) == 0) @@ -16446,33 +15863,11 @@ aarch64_opcode_lookup_1 (uint32_t word) } } } - } - else - { - if (((word >> 13) & 0x1) == 0) + else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx000101xxxxxxxxxx - srhadd. */ - return 264; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx000101xxxxxxxxxx - urhadd. */ - return 316; - } - } - else + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -16491,28 +15886,6 @@ aarch64_opcode_lookup_1 (uint32_t word) return 331; } } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx010101xxxxxxxxxx - srshl. */ - return 271; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx010101xxxxxxxxxx - urshl. */ - return 323; - } - } else { if (((word >> 23) & 0x1) == 0) @@ -16555,31 +15928,9 @@ aarch64_opcode_lookup_1 (uint32_t word) } } } - } - else - { - if (((word >> 14) & 0x1) == 0) + else { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx001101xxxxxxxxxx - cmgt. */ - return 267; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx001101xxxxxxxxxx - cmhi. */ - return 319; - } - } - else + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -16598,28 +15949,6 @@ aarch64_opcode_lookup_1 (uint32_t word) return 335; } } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx011101xxxxxxxxxx - sabd. */ - return 275; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx011101xxxxxxxxxx - uabd. */ - return 327; - } - } else { if (((word >> 23) & 0x1) == 0) @@ -16664,184 +15993,690 @@ aarch64_opcode_lookup_1 (uint32_t word) } } } - } - else - { - if (((word >> 29) & 0x1) == 0) + else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 4) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0011110xx1xxxxxxxxx01xxxxx0xxxx - fccmp. */ - return 787; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx100011xxxxxxxxxx + cmtst. */ + return 278; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110xx1xxxxx100011xxxxxxxxxx + rax1. */ + return 1995; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx100011xxxxxxxxxx + cmeq. */ + return 330; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1xxxxx110011xxxxxxxxxx + fmla. */ + return 287; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01011100x1xxxxx110011xxxxxxxxxx + fmlal2. */ + return 2009; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11011100x1xxxxx110011xxxxxxxxxx + fmlal2. */ + return 2013; + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1xxxxx110011xxxxxxxxxx + fmls. */ + return 303; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01011101x1xxxxx110011xxxxxxxxxx + fmlsl2. */ + return 2010; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11011101x1xxxxx110011xxxxxxxxxx + fmlsl2. */ + return 2014; + } + } + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0011110xx1xxxxxxxxx01xxxxx1xxxx - fccmpe. */ - return 789; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx101011xxxxxxxxxx + sminp. */ + return 282; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx101011xxxxxxxxxx + uminp. */ + return 334; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x00011100x1xxxxx111011xxxxxxxxxx + fmlal. */ + return 2007; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10011100x1xxxxx111011xxxxxxxxxx + fmlal. */ + return 2011; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1xxxxx111011xxxxxxxxxx + facge. */ + return 344; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x00011101x1xxxxx111011xxxxxxxxxx + fmlsl. */ + return 2008; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10011101x1xxxxx111011xxxxxxxxxx + fmlsl. */ + return 2012; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1xxxxx111011xxxxxxxxxx + facgt. */ + return 358; + } + } + } } } else { - if (((word >> 12) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1011110xx1xxxxxx00001xxxxxxxxxx - add. */ - return 559; + xx001110xx1xxxxx100111xxxxxxxxxx + mul. */ + return 280; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1011110xx1xxxxxx10001xxxxxxxxxx - sshl. */ - return 557; + xx101110xx1xxxxx100111xxxxxxxxxx + pmul. */ + return 332; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx1xxxxxxx1001xxxxxxxxxx - fcmeq. */ - return 549; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx110111xxxxxxxxxx + fmulx. */ + return 291; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx110111xxxxxxxxxx + fmul. */ + return 340; + } } } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1011110xx1xxxxxxx0101xxxxxxxxxx - srshl. */ - return 558; + xxx01110xx1xxxxx101111xxxxxxxxxx + addp. */ + return 284; } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx1xxxxx0x1101xxxxxxxxxx - cmgt. */ - return 555; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1xxxxx111111xxxxxxxxxx + frecps. */ + return 297; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1xxxxx111111xxxxxxxxxx + fdiv. */ + return 348; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1011110xx1xxxxx1x1101xxxxxxxxxx - sqdmulh. */ - return 546; + xxx011101x1xxxxx111111xxxxxxxxxx + frsqrts. */ + return 309; } } } } } - else + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxxxx00001xxxxxxxxxx - sub. */ - return 580; + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx100000x00000xxxxxxxxxx + fcvtns. */ + return 756; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx110000x00000xxxxxxxxxx + fcvtms. */ + return 776; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx101000x00000xxxxxxxxxx + fcvtps. */ + return 772; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx111000x00000xxxxxxxxxx + fcvtzs. */ + return 780; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx100x00000xxxxxxxxxx + fcvtas. */ + return 764; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx010x00000xxxxxxxxxx + scvtf. */ + return 760; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0110x00000xxxxxxxxxx + fmov. */ + return 768; + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx101110x00000xxxxxxxxxx + fmov. */ + return 784; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx111110x00000xxxxxxxxxx + fjcvtzs. */ + return 786; + } + } + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxxxx10001xxxxxxxxxx - ushl. */ - return 578; + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx100001x00000xxxxxxxxxx + fcvtnu. */ + return 758; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx110001x00000xxxxxxxxxx + fcvtmu. */ + return 778; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx101001x00000xxxxxxxxxx + fcvtpu. */ + return 774; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx111001x00000xxxxxxxxxx + fcvtzu. */ + return 782; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx101x00000xxxxxxxxxx + fcvtau. */ + return 766; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx011x00000xxxxxxxxxx + ucvtf. */ + return 762; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0111x00000xxxxxxxxxx + fmov. */ + return 770; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1111x00000xxxxxxxxxx + fmov. */ + return 785; + } + } + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x1xxxxxxx1001xxxxxxxxxx - fcmge. */ - return 566; + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx000010000xxxxxxxxxx + fmov. */ + return 799; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx100010000xxxxxxxxxx + frintn. */ + return 808; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx001010000xxxxxxxxxx + fneg. */ + return 803; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx101010000xxxxxxxxxx + frintm. */ + return 812; + } + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx000110000xxxxxxxxxx + fabs. */ + return 801; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx100110000xxxxxxxxxx + frintp. */ + return 810; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx001110000xxxxxxxxxx + fsqrt. */ + return 805; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx101110000xxxxxxxxxx + frintz. */ + return 814; + } + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x1xxxxxxx1001xxxxxxxxxx - fcmgt. */ - return 572; + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx01xx10000xxxxxxxxxx + fcvt. */ + return 807; + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx110010000xxxxxxxxxx + frinta. */ + return 816; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx111010000xxxxxxxxxx + frintx. */ + return 818; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx11x110000xxxxxxxxxx + frinti. */ + return 820; + } + } } } } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 3) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 4) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx111110xx1xxxxx0x0101xxxxxxxxxx - urshl. */ - return 579; + xxx11110xx1xxxxxxx1000xxxxx00xxx + fcmp. */ + return 791; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx111110xx1xxxxx1x0101xxxxxxxxxx - fabd. */ - return 570; + xxx11110xx1xxxxxxx1000xxxxx10xxx + fcmpe. */ + return 793; } } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 4) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx111110xx1xxxxx0x1101xxxxxxxxxx - cmhi. */ - return 576; + xxx11110xx1xxxxxxx1000xxxxx01xxx + fcmp. */ + return 795; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx111110xx1xxxxx1x1101xxxxxxxxxx - sqrdmulh. */ - return 565; + xxx11110xx1xxxxxxx1000xxxxx11xxx + fcmpe. */ + return 797; + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11110xx1xxxxxxxx100xxxxxxxxxx + fmov. */ + return 848; + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11110xx1xxxxxx00100xxxxxxxxxx + sqdmlal. */ + return 416; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11110xx1xxxxxx10100xxxxxxxxxx + sqdmull. */ + return 418; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11110xx1xxxxxxx1100xxxxxxxxxx + sqdmlsl. */ + return 417; + } } } } - } - else - { - if (((word >> 28) & 0x1) == 0) + else { if (((word >> 12) & 0x1) == 0) { @@ -16851,40 +16686,51 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx000011xxxxxxxxxx - sqadd. */ - return 263; + x0x11110xx1xxxxx000010xxxxxxxxxx + fmul. */ + return 822; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx000011xxxxxxxxxx - uqadd. */ - return 315; + x1x11110xx1xxxxx000010xxxxxxxxxx + sha1h. */ + return 669; } } else { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx100011xxxxxxxxxx - cmtst. */ - return 278; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx100010xxxxxxxxxx + fnmul. */ + return 838; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx100010xxxxxxxxxx + cmgt. */ + return 476; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx100011xxxxxxxxxx - cmeq. */ - return 330; + xx111110xx1xxxxx100010xxxxxxxxxx + cmge. */ + return 505; } } } @@ -16894,38 +16740,159 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx010011xxxxxxxxxx - sqshl. */ - return 270; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx010010xxxxxxxxxx + fmax. */ + return 830; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx010010xxxxxxxxxx + sqxtn. */ + return 480; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx010011xxxxxxxxxx - uqshl. */ - return 322; + xx111110xx1xxxxx010010xxxxxxxxxx + uqxtn. */ + return 509; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx011100x1xxxxx110011xxxxxxxxxx - fmla. */ - return 287; + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx100xx0110010xxxxxxxxxx + fcmgt. */ + return 489; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx100xx0110010xxxxxxxxxx + fcmge. */ + return 519; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x110xx0110010xxxxxxxxxx + fmaxnmp. */ + return 533; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x110xx0110010xxxxxxxxxx + fmaxnmp. */ + return 532; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x110xx0110010xxxxxxxxxx + fminnmp. */ + return 539; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x110xx0110010xxxxxxxxxx + fminnmp. */ + return 538; + } + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x1xx0110010xxxxxxxxxx + fcmgt. */ + return 490; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x1xx0110010xxxxxxxxxx + fcmge. */ + return 520; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx011101x1xxxxx110011xxxxxxxxxx - fmls. */ - return 303; + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x0xx1110010xxxxxxxxxx + fcvtas. */ + return 485; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x0xx1110010xxxxxxxxxx + fcvtau. */ + return 515; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x1xx1110010xxxxxxxxxx + fcvtas. */ + return 486; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x1xx1110010xxxxxxxxxx + fcvtau. */ + return 516; + } + } } } } @@ -16938,38 +16905,126 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx001011xxxxxxxxxx - sqsub. */ - return 266; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx001010xxxxxxxxxx + fadd. */ + return 826; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx001010xxxxxxxxxx + sha256su0. */ + return 671; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx001011xxxxxxxxxx - uqsub. */ - return 318; + xx111110xx1xxxxx001010xxxxxxxxxx + sqxtun. */ + return 508; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx101011xxxxxxxxxx - sminp. */ - return 282; + xxx11110xx1xxxx0101010xxxxxxxxxx + cmlt. */ + return 478; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx101011xxxxxxxxxx - uminp. */ - return 334; + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x0xx1101010xxxxxxxxxx + fcvtns. */ + return 481; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x0xx1101010xxxxxxxxxx + fcvtnu. */ + return 511; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x0xx1101010xxxxxxxxxx + fcvtps. */ + return 495; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x0xx1101010xxxxxxxxxx + fcvtpu. */ + return 523; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x1xx1101010xxxxxxxxxx + fcvtns. */ + return 482; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x1xx1101010xxxxxxxxxx + fcvtnu. */ + return 512; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x1xx1101010xxxxxxxxxx + fcvtps. */ + return 496; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x1xx1101010xxxxxxxxxx + fcvtpu. */ + return 524; + } + } + } } } } @@ -16981,36 +17036,36 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx011011xxxxxxxxxx - smin. */ - return 274; + xx011110xx1xxxxx011010xxxxxxxxxx + fmaxnm. */ + return 834; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx011011xxxxxxxxxx - umin. */ - return 326; + xx111110xx1xxxxx011010xxxxxxxxxx + fcvtxn. */ + return 510; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx011100x1xxxxx111011xxxxxxxxxx - facge. */ - return 344; + xxx11110xx1x0xxx111010xxxxxxxxxx + fcmlt. */ + return 493; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx011101x1xxxxx111011xxxxxxxxxx - facgt. */ - return 358; + xxx11110xx1x1xxx111010xxxxxxxxxx + fcmlt. */ + return 494; } } } @@ -17024,25 +17079,96 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 15) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11110xx1xxxxx000110xxxxxxxxxx + fdiv. */ + return 824; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11110xx1xxxxx000110xxxxxxxxxx + sha1su1. */ + return 670; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1xxxxx100110xxxxxxxxxx + cmeq. */ + return 477; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx100110xxxxxxxxxx + cmle. */ + return 506; + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxx010110xxxxxxxxxx + fmin. */ + return 832; + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110001xxxxx000111xxxxxxxxxx - and. */ - return 299; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx100xx0110110xxxxxxxxxx + fcmeq. */ + return 491; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx100xx0110110xxxxxxxxxx + fcmle. */ + return 521; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110001xxxxx000111xxxxxxxxxx - eor. */ - return 350; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx110xx0110110xxxxxxxxxx + faddp. */ + return 535; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx110xx0110110xxxxxxxxxx + faddp. */ + return 534; + } } } else @@ -17051,79 +17177,258 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110101xxxxx000111xxxxxxxxxx - orr. */ - return 311; + xx011110xx1x1xx0110110xxxxxxxxxx + fcmeq. */ + return 492; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110101xxxxx000111xxxxxxxxxx - bit. */ - return 362; + xx111110xx1x1xx0110110xxxxxxxxxx + fcmle. */ + return 522; } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110011xxxxx000111xxxxxxxxxx - bic. */ - return 300; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x0xx1110110xxxxxxxxxx + scvtf. */ + return 487; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x0xx1110110xxxxxxxxxx + ucvtf. */ + return 517; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110011xxxxx000111xxxxxxxxxx - bsl. */ - return 351; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x0xx1110110xxxxxxxxxx + frecpe. */ + return 499; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x0xx1110110xxxxxxxxxx + frsqrte. */ + return 527; + } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110111xxxxx000111xxxxxxxxxx - orn. */ - return 313; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x1xx1110110xxxxxxxxxx + scvtf. */ + return 488; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x1xx1110110xxxxxxxxxx + ucvtf. */ + return 518; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110111xxxxx000111xxxxxxxxxx - bif. */ - return 363; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x1xx1110110xxxxxxxxxx + frecpe. */ + return 500; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x1xx1110110xxxxxxxxxx + frsqrte. */ + return 528; + } } } } } - else + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx100111xxxxxxxxxx - mul. */ - return 280; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx001110xxxxxxxxxx + fsub. */ + return 828; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx001110xxxxxxxxxx + suqadd. */ + return 474; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx100111xxxxxxxxxx - pmul. */ - return 332; + xx111110xx1xxxxx001110xxxxxxxxxx + usqadd. */ + return 503; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1xxxx0101110xxxxxxxxxx + abs. */ + return 479; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxx0101110xxxxxxxxxx + neg. */ + return 507; + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x100xx1101110xxxxxxxxxx + fcvtms. */ + return 483; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x100xx1101110xxxxxxxxxx + fcvtmu. */ + return 513; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x100xx1101110xxxxxxxxxx + fcvtzs. */ + return 497; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x100xx1101110xxxxxxxxxx + fcvtzu. */ + return 525; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx110xx1101110xxxxxxxxxx + addp. */ + return 531; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x1xx1101110xxxxxxxxxx + fcvtms. */ + return 484; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x1xx1101110xxxxxxxxxx + fcvtmu. */ + return 514; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x1xx1101110xxxxxxxxxx + fcvtzs. */ + return 498; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x1xx1101110xxxxxxxxxx + fcvtzu. */ + return 526; + } + } + } } } } @@ -17133,124 +17438,270 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx010111xxxxxxxxxx - sqrshl. */ - return 272; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx011110xxxxxxxxxx + fminnm. */ + return 836; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx011110xxxxxxxxxx + sqabs. */ + return 475; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx010111xxxxxxxxxx - uqrshl. */ - return 324; + xx111110xx1xxxxx011110xxxxxxxxxx + sqneg. */ + return 504; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx110111xxxxxxxxxx - fmulx. */ - return 291; + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1xxxx0111110xxxxxxxxxx + fmaxp. */ + return 537; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1xxxx0111110xxxxxxxxxx + fmaxp. */ + return 536; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1xxxx0111110xxxxxxxxxx + fminp. */ + return 541; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1xxxx0111110xxxxxxxxxx + fminp. */ + return 540; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx110111xxxxxxxxxx - fmul. */ - return 340; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0xx1111110xxxxxxxxxx + frecpx. */ + return 501; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1xx1111110xxxxxxxxxx + frecpx. */ + return 502; + } } } } } + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxxxxxx01xxxxx0xxxx + fccmp. */ + return 787; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxxxxxx01xxxxx1xxxx + fccmpe. */ + return 789; + } + } else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx001111xxxxxxxxxx - cmge. */ - return 268; + x1011110xx1xxxxxx00001xxxxxxxxxx + add. */ + return 559; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx001111xxxxxxxxxx - cmhs. */ - return 320; + x1011110xx1xxxxxx10001xxxxxxxxxx + sshl. */ + return 557; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110xx1xxxxx101111xxxxxxxxxx - addp. */ - return 284; + x1011110xx1xxxxxxx1001xxxxxxxxxx + fcmeq. */ + return 549; } } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxxxx0101xxxxxxxxxx + srshl. */ + return 558; + } + else + { + if (((word >> 15) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx011111xxxxxxxxxx - saba. */ - return 276; + x1011110xx1xxxxx0x1101xxxxxxxxxx + cmgt. */ + return 555; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx011111xxxxxxxxxx - uaba. */ - return 328; + x1011110xx1xxxxx1x1101xxxxxxxxxx + sqdmulh. */ + return 546; } } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxxx00001xxxxxxxxxx + sub. */ + return 580; + } else { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x1xxxxx111111xxxxxxxxxx - frecps. */ - return 297; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011100x1xxxxx111111xxxxxxxxxx - fdiv. */ - return 348; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx011101x1xxxxx111111xxxxxxxxxx - frsqrts. */ - return 309; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxxx10001xxxxxxxxxx + ushl. */ + return 578; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1xxxxxxx1001xxxxxxxxxx + fcmge. */ + return 566; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1xxxxxxx1001xxxxxxxxxx + fcmgt. */ + return 572; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx0x0101xxxxxxxxxx + urshl. */ + return 579; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx1x0101xxxxxxxxxx + fabd. */ + return 570; + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx0x1101xxxxxxxxxx + cmhi. */ + return 576; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx1x1101xxxxxxxxxx + sqrdmulh. */ + return 565; } } } @@ -17469,19 +17920,63 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01111xxxxxxxx0000x0xxxxxxxxxx - mla. */ - return 117; + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001111xxxxxxxx0000x0xxxxxxxxxx + fmlal. */ + return 2015; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001111xxxxxxxx0000x0xxxxxxxxxx + fmlal. */ + return 2019; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101111xxxxxxxx0000x0xxxxxxxxxx + mla. */ + return 117; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01111xxxxxxxx0100x0xxxxxxxxxx - mls. */ - return 120; + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001111xxxxxxxx0100x0xxxxxxxxxx + fmlsl. */ + return 2016; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001111xxxxxxxx0100x0xxxxxxxxxx + fmlsl. */ + return 2020; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101111xxxxxxxx0100x0xxxxxxxxxx + mls. */ + return 120; + } } } else @@ -17961,11 +18456,33 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01111xxxxxxxx1000x0xxxxxxxxxx - mul. */ - return 104; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001111xxxxxxxx1000x0xxxxxxxxxx + mul. */ + return 104; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101111xxxxxxxx1000x0xxxxxxxxxx + fmlal2. */ + return 2017; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101111xxxxxxxx1000x0xxxxxxxxxx + fmlal2. */ + return 2021; + } + } } else { @@ -18211,11 +18728,33 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 12) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01111xxxxxxxx1100x0xxxxxxxxxx - sqdmulh. */ - return 109; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001111xxxxxxxx1100x0xxxxxxxxxx + sqdmulh. */ + return 109; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101111xxxxxxxx1100x0xxxxxxxxxx + fmlsl2. */ + return 2018; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101111xxxxxxxx1100x0xxxxxxxxxx + fmlsl2. */ + return 2022; + } + } } else { @@ -18598,7 +19137,8 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) case 1174: value = 1175; break; /* dmb --> isb. */ case 1175: value = 1176; break; /* isb --> sys. */ case 1176: value = 1181; break; /* sys --> msr. */ - case 1181: return NULL; /* msr --> NULL. */ + case 1181: value = 2023; break; /* msr --> cfinv. */ + case 2023: return NULL; /* cfinv --> NULL. */ case 1182: value = 1183; break; /* sysl --> mrs. */ case 1183: return NULL; /* mrs --> NULL. */ case 434: value = 435; break; /* st4 --> st1. */ |