X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=opcodes%2Faarch64-dis-2.c;h=224bb450f0478e6794e07f6c6556543cc0f58688;hb=e9dbdd80cb02ac66cf7d4cd1207ec11928db2c95;hp=8e0589227478175e921a5c7611613ac6dc00d2e9;hpb=e849ea896bcdc3da8caff02eb6dc91dc85dd8a7e;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c index 8e05892274..224bb450f0 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,131 +2912,153 @@ 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) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0x110101x0xxxxxxx1010xxxxxxxxxx - asrv. */ - return 711; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxx00110xxxxxxxxxx + autda. */ + return 693; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxx10110xxxxxxxxxx + crc32cw. */ + return 722; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1x110101x0xxxxxxx1010xxxxxxxxxx - pacdza. */ - return 697; + xxx11010110xxxxxxx1110xxxxxxxxxx + autdza. */ + return 701; } } } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx110101x0xxxxxx00110xxxxxxxxxx - autda. */ - return 693; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx110101x0xxxxxx10110xxxxxxxxxx - crc32cw. */ - return 722; - } - } - 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,73 +12633,32 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110010xxxxx0x0001xxxxxxxxxx - fmaxnmp. */ - return 337; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110110xxxxx0x0001xxxxxxxxxx + 0x001110110xxxxxxx0001xxxxxxxxxx fminnm. */ return 302; } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110110xxxxx0x0001xxxxxxxxxx - fminnmp. */ - return 353; - } } } else { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110010xxxxx0x1001xxxxxxxxxx - fcmeq. */ - return 294; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110010xxxxx0x1001xxxxxxxxxx - fcmge. */ - return 343; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110110xxxxx0x1001xxxxxxxxxx - fcmgt. */ - return 357; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxxx1001xxxxxxxxxx + fcmeq. */ + return 294; } } else { if (((word >> 13) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110010xxxxx0x0101xxxxxxxxxx + 0x0011100x0xxxxx0x0101xxxxxxxxxx fadd. */ return 290; } @@ -12597,70 +12666,37 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110010xxxxx0x0101xxxxxxxxxx - faddp. */ - return 339; + 0x0011101x0xxxxx0x0101xxxxxxxxxx + fsub. */ + return 306; } } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110110xxxxx0x0101xxxxxxxxxx - fsub. */ - return 306; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110110xxxxx0x0101xxxxxxxxxx - fabd. */ - return 355; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxx1x0101xxxxxxxxxx + sdot. */ + return 1987; } } else { if (((word >> 23) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110010xxxxx0x1101xxxxxxxxxx - fmax. */ - return 296; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110010xxxxx0x1101xxxxxxxxxx - fmaxp. */ - return 347; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x0xxxxxxx1101xxxxxxxxxx + fmax. */ + return 296; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110110xxxxx0x1101xxxxxxxxxx - fmin. */ - return 308; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110110xxxxx0x1101xxxxxxxxxx - fminp. */ - return 361; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011101x0xxxxxxx1101xxxxxxxxxx + fmin. */ + return 308; } } } @@ -12671,73 +12707,81 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 13) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110010xxxxx0x0011xxxxxxxxxx - fmla. */ - return 288; + 0x001110x00xxxxxxx0011xxxxxxxxxx + dup. */ + return 148; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110110xxxxx0x0011xxxxxxxxxx - fmls. */ - return 304; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110010xxxxxxx0011xxxxxxxxxx + fmla. */ + return 288; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110110xxxxxxx0011xxxxxxxxxx + fmls. */ + return 304; + } } } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110010xxxxx0x1011xxxxxxxxxx - facge. */ - return 345; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110110xxxxx0x1011xxxxxxxxxx - facgt. */ - return 359; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxxx1011xxxxxxxxxx + smov. */ + return 149; } } else { if (((word >> 13) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110x10xxxxx0x0111xxxxxxxxxx - fmulx. */ - return 292; + 0x001110x00xxxxxxx0111xxxxxxxxxx + ins. */ + return 152; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110x10xxxxx0x0111xxxxxxxxxx - fmul. */ - return 341; + 0x001110x10xxxxxxx0111xxxxxxxxxx + fmulx. */ + return 292; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x00xxxxxxx1111xxxxxxxxxx + umov. */ + return 150; + } + else + { + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110010xxxxx0x1111xxxxxxxxxx + 0x001110010xxxxxxx1111xxxxxxxxxx frecps. */ return 298; } @@ -12745,19 +12789,11 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110010xxxxx0x1111xxxxxxxxxx - fdiv. */ - return 349; + 0x001110110xxxxxxx1111xxxxxxxxxx + frsqrts. */ + return 310; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110110xxxxx0x1111xxxxxxxxxx - frsqrts. */ - return 310; - } } } } @@ -12765,1878 +12801,1174 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx0xxxxx100001xxxxxxxxxx - sqrdmlah. */ - return 364; - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx0xxxxx100101xxxxxxxxxx - sdot. */ - return 1987; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx0xxxxx100101xxxxxxxxxx - udot. */ - return 1986; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx0xxxxx100x11xxxxxxxxxx - sqrdmlsh. */ - return 365; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx0xxxxx110xx1xxxxxxxxxx - fcmla. */ - return 366; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx0xxxxx1x1xx1xxxxxxxxxx - fcadd. */ - return 367; - } - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0011110xx0xxx00xxxxxxxxxxxxxxxx - fcvtzs. */ - return 752; + 1x001110000xxxxxxxxxxxxxxxxxxxxx + eor3. */ + return 1994; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0011110xx0xxx10xxxxxxxxxxxxxxxx - scvtf. */ - return 748; + 1x001110100xxxxxxxxxxxxxxxxxxxxx + xar. */ + return 1996; } } else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0011110xx0xxx01xxxxxxxxxxxxxxxx - fcvtzu. */ - return 754; + 1x001110x10xxxxx0xxxxxxxxxxxxxxx + sm3ss1. */ + return 1998; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0011110xx0xxx11xxxxxxxxxxxxxxxx - ucvtf. */ - return 750; - } - } - } - else - { - if (((word >> 10) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx0xxxxxx000x0xxxxxxxxxx - sha1c. */ - return 672; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110010xxxxx1xxx00xxxxxxxxxx + sm3tt1a. */ + return 1999; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110110xxxxx1xxx00xxxxxxxxxx + sha512su0. */ + return 1992; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1011110xx0xxxxxx100x0xxxxxxxxxx - sha256h. */ - return 676; + 1x001110x10xxxxx1xxx10xxxxxxxxxx + sm3tt2a. */ + return 2001; } } else { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx0xxxxxx010x0xxxxxxxxxx - sha1m. */ - return 674; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx0xxxxxx110x0xxxxxxxxxx - sha256su1. */ - return 678; - } - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx0xxxxxx001x0xxxxxxxxxx - sha1p. */ - return 673; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110010xxxxx1xxx01xxxxxxxxxx + sm3tt1b. */ + return 2000; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110110xxxxx1xxx01xxxxxxxxxx + sm4e. */ + return 2005; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1011110xx0xxxxxx101x0xxxxxxxxxx - sha256h2. */ - return 677; + 1x001110x10xxxxx1xxx11xxxxxxxxxx + sm3tt2b. */ + return 2002; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx0xxxxxxx11x0xxxxxxxxxx - sha1su0. */ - return 675; - } } } - else + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxxxxxxx0xxxxxxxxxx + ext. */ + return 130; + } + else + { + if (((word >> 15) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx0xxxxxxx0x01xxxxxxxxxx - dup. */ - return 529; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx0xxxxxxx1x01xxxxxxxxxx - fcmeq. */ - return 550; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110x00xxxxx0xxxx1xxxxxxxxxx + ins. */ + return 154; } else { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx0xxxxxxx0x11xxxxxxxxxx - fmulx. */ - return 548; - } - else + if (((word >> 11) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x10111100x0xxxxxxx1x11xxxxxxxxxx - frecps. */ - return 552; - } - else + if (((word >> 12) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x10111101x0xxxxxxx1x11xxxxxxxxxx - frsqrts. */ - return 554; - } - } - } - } - } - } - else - { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx0xxxxxxx000xxxxxxxxxxx - sqrdmlah. */ - return 582; - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x0xxxxxxx100xxxxxxxxxxx - fcmge. */ - return 567; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x0xxxxxxx100xxxxxxxxxxx - fcmgt. */ - return 573; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx0xxxxxxxx10xxxxxxxxxxx - fabd. */ - return 571; - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx0xxxxxxx0x1xxxxxxxxxxx - sqrdmlsh. */ - return 583; - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x0xxxxxxx1x1xxxxxxxxxxx - facge. */ - return 569; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x0xxxxxxx1x1xxxxxxxxxxx - facgt. */ - return 575; - } - } - } - } - } - } - else - { - if (((word >> 10) & 0x1) == 0) - { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0001110xx1xxxxx000000xxxxxxxxxx - saddl. */ - return 42; + xx101110010xxxxx0x0001xxxxxxxxxx + fmaxnmp. */ + return 337; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1001110xx1xxxxx000000xxxxxxxxxx - saddl2. */ - return 43; + xx101110110xxxxx0x0001xxxxxxxxxx + fminnmp. */ + return 353; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0101110xx1xxxxx000000xxxxxxxxxx - uaddl. */ - return 74; + xx101110010xxxxx0x1001xxxxxxxxxx + fcmge. */ + return 343; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1101110xx1xxxxx000000xxxxxxxxxx - uaddl2. */ - return 75; + xx101110110xxxxx0x1001xxxxxxxxxx + fcmgt. */ + return 357; } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 18) & 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; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xx100000000xxxxxxxxxx - fcvtas. */ - return 764; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110010xxxxx0x0101xxxxxxxxxx + faddp. */ + return 339; } else { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xx010000000xxxxxxxxxx - scvtf. */ - return 760; - } - else - { - if (((word >> 19) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1x0110000000xxxxxxxxxx - fmov. */ - return 768; - } - else - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx101110000000xxxxxxxxxx - fmov. */ - return 784; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx111110000000xxxxxxxxxx - fjcvtzs. */ - return 786; - } - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110110xxxxx0x0101xxxxxxxxxx + fabd. */ + return 355; } } else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 18) & 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; - } - } - else - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx101001000000xxxxxxxxxx - fcvtpu. */ - return 774; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx111001000000xxxxxxxxxx - fcvtzu. */ - return 782; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xx101000000xxxxxxxxxx - fcvtau. */ - return 766; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110010xxxxx0x1101xxxxxxxxxx + fmaxp. */ + return 347; } else { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xx011000000xxxxxxxxxx - ucvtf. */ - return 762; - } - else - { - if (((word >> 19) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1x0111000000xxxxxxxxxx - fmov. */ - return 770; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1x1111000000xxxxxxxxxx - fmov. */ - return 785; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110110xxxxx0x1101xxxxxxxxxx + fminp. */ + return 361; } } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x00x1110xx1xxxxx100000xxxxxxxxxx - smlal. */ - return 58; + xx101110010xxxxx0xx011xxxxxxxxxx + facge. */ + return 345; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x10x1110xx1xxxxx100000xxxxxxxxxx - smlal2. */ - return 59; + xx101110110xxxxx0xx011xxxxxxxxxx + facgt. */ + return 359; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x01x1110xx1xxxxx100000xxxxxxxxxx - umlal. */ - return 90; + xx101110x10xxxxx0x0111xxxxxxxxxx + fmul. */ + return 341; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x11x1110xx1xxxxx100000xxxxxxxxxx - umlal2. */ - return 91; + xx101110x10xxxxx0x1111xxxxxxxxxx + fdiv. */ + return 349; } } } } - else + } + else + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0001110xx1xxxxx010000xxxxxxxxxx - addhn. */ - return 50; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxxx010000xxxxxxxxxx - addhn2. */ - return 51; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx100001xxxxxxxxxx + sqrdmlah. */ + return 364; } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0101110xx1xxxxx010000xxxxxxxxxx - raddhn. */ - return 82; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1101110xx1xxxxx010000xxxxxxxxxx - raddhn2. */ - return 83; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx100101xxxxxxxxxx + udot. */ + return 1986; } } else { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0001110xx1xxxxx110000xxxxxxxxxx - smull. */ - return 66; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxxx110000xxxxxxxxxx - smull2. */ - return 67; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0101110xx1xxxxx110000xxxxxxxxxx - umull. */ - return 94; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1101110xx1xxxxx110000xxxxxxxxxx - umull2. */ - return 95; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx100x11xxxxxxxxxx + sqrdmlsh. */ + return 365; } } else { - if (((word >> 17) & 0x1) == 0) - { - 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 - { - 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; - } - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx110xx1xxxxxxxxxx + fcmla. */ + return 366; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx1x1xx1xxxxxxxxxx + fcadd. */ + return 367; + } } - else + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx0xxx00xxxxxxxxxxxxxxxx + fcvtzs. */ + return 752; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx0xxx10xxxxxxxxxxxxxxxx + scvtf. */ + return 748; + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx0xxx01xxxxxxxxxxxxxxxx + fcvtzu. */ + return 754; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx0xxx11xxxxxxxxxxxxxxxx + ucvtf. */ + return 750; + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0001110xx1xxxxx001000xxxxxxxxxx - ssubl. */ - return 46; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxxx001000xxxxxxxxxx - ssubl2. */ - return 47; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0101110xx1xxxxx001000xxxxxxxxxx - usubl. */ - return 78; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1101110xx1xxxxx001000xxxxxxxxxx - usubl2. */ - return 79; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx000x0xxxxxxxxxx + sha1c. */ + return 672; } else { - if (((word >> 3) & 0x1) == 0) - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xxxxx001000xxxxx00xxx - fcmp. */ - return 791; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xxxxx001000xxxxx10xxx - fcmpe. */ - return 793; - } - } - else - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xxxxx001000xxxxx01xxx - fcmp. */ - return 795; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1xxxxx001000xxxxx11xxx - fcmpe. */ - return 797; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx100x0xxxxxxxxxx + sha256h. */ + return 676; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x00x1110xx1xxxxx101000xxxxxxxxxx - smlsl. */ - return 62; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x10x1110xx1xxxxx101000xxxxxxxxxx - smlsl2. */ - return 63; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx010x0xxxxxxxxxx + sha1m. */ + return 674; } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x01x1110xx1xxxxx101000xxxxxxxxxx - umlsl. */ - return 92; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x11x1110xx1xxxxx101000xxxxxxxxxx - umlsl2. */ - return 93; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx110x0xxxxxxxxxx + sha256su1. */ + return 678; } } } else { - 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 - x00x1110xx1xxxxx011000xxxxxxxxxx - subhn. */ - return 54; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x10x1110xx1xxxxx011000xxxxxxxxxx - subhn2. */ - return 55; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx001x0xxxxxxxxxx + sha1p. */ + return 673; } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x01x1110xx1xxxxx011000xxxxxxxxxx - rsubhn. */ - return 86; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x11x1110xx1xxxxx011000xxxxxxxxxx - rsubhn2. */ - return 87; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx101x0xxxxxxxxxx + sha256h2. */ + return 677; } } else { - if (((word >> 22) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxxx11x0xxxxxxxxxx + sha1su0. */ + return 675; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxxx0x01xxxxxxxxxx + dup. */ + return 529; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxxx1x01xxxxxxxxxx + fcmeq. */ + return 550; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxxx0x11xxxxxxxxxx + fmulx. */ + return 548; + } + else + { + if (((word >> 23) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0xx1110x01xxxxx111000xxxxxxxxxx - pmull. */ - return 70; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1xx1110x01xxxxx111000xxxxxxxxxx - pmull2. */ - return 72; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10111100x0xxxxxxx1x11xxxxxxxxxx + frecps. */ + return 552; } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0xx1110x11xxxxx111000xxxxxxxxxx - pmull. */ - return 71; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1xx1110x11xxxxx111000xxxxxxxxxx - pmull2. */ - return 73; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10111101x0xxxxxxx1x11xxxxxxxxxx + frsqrts. */ + return 554; } } } } } - else + } + else + { + if (((word >> 11) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { if (((word >> 13) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx0xxxxxxx000xxxxxxxxxxx + sqrdmlah. */ + return 582; + } + else + { + if (((word >> 23) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x0xxxxxxx100xxxxxxxxxxx + fcmge. */ + return 567; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x0xxxxxxx100xxxxxxxxxxx + fcmgt. */ + return 573; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx0xxxxxxxx10xxxxxxxxxxx + fabd. */ + return 571; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx0xxxxxxx0x1xxxxxxxxxxx + sqrdmlsh. */ + return 583; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x0xxxxxxx1x1xxxxxxxxxxx + facge. */ + return 569; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x0xxxxxxx1x1xxxxxxxxxxx + facgt. */ + return 575; + } + } + } + } + } + } + else + { + if (((word >> 28) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 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 - x0001110xx1xxxxx000100xxxxxxxxxx - saddw. */ - return 44; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx000000xxxxxxxxxx + saddl. */ + return 42; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx000000xxxxxxxxxx + saddl2. */ + return 43; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxxx000100xxxxxxxxxx - saddw2. */ - return 45; + 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 - x0101110xx1xxxxx000100xxxxxxxxxx - uaddw. */ - return 76; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx001000xxxxxxxxxx + ssubl. */ + return 46; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx001000xxxxxxxxxx + ssubl2. */ + return 47; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1101110xx1xxxxx000100xxxxxxxxxx - uaddw2. */ - return 77; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx011000xxxxxxxxxx + subhn. */ + return 54; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx011000xxxxxxxxxx + subhn2. */ + return 55; + } } } } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0x01110xx1xxxxx100100xxxxxxxxxx - sqdmlal. */ - return 60; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x01110xx1xxxxx100100xxxxxxxxxx - sqdmlal2. */ - return 61; - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0001110xx1xxxxx010100xxxxxxxxxx - sabal. */ - return 52; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx000100xxxxxxxxxx + saddw. */ + return 44; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx000100xxxxxxxxxx + saddw2. */ + return 45; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxxx010100xxxxxxxxxx - sabal2. */ - return 53; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx010100xxxxxxxxxx + sabal. */ + return 52; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx010100xxxxxxxxxx + sabal2. */ + return 53; + } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0101110xx1xxxxx010100xxxxxxxxxx - uabal. */ - return 84; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx001100xxxxxxxxxx + ssubw. */ + return 48; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx001100xxxxxxxxxx + ssubw2. */ + return 49; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1101110xx1xxxxx010100xxxxxxxxxx - uabal2. */ - return 85; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx011100xxxxxxxxxx + sabdl. */ + return 56; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx011100xxxxxxxxxx + sabdl2. */ + return 57; + } } } } - 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) + 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 - x0001110xx1xxxxx001100xxxxxxxxxx - ssubw. */ - return 48; + 0x001110xx1xxxxx000010xxxxxxxxxx + rev64. */ + return 156; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxxx001100xxxxxxxxxx - ssubw2. */ - return 49; - } - } - else - { - 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 - x0x01110xx1xxxxx101100xxxxxxxxxx - sqdmlsl. */ - return 64; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1x01110xx1xxxxx101100xxxxxxxxxx - sqdmlsl2. */ - return 65; - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0001110xx1xxxxxx11100xxxxxxxxxx - sabdl. */ - return 56; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxxxx11100xxxxxxxxxx - sabdl2. */ - return 57; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0101110xx1xxxxxx11100xxxxxxxxxx - uabdl. */ - return 88; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1101110xx1xxxxxx11100xxxxxxxxxx - uabdl2. */ - return 89; - } - } - } - } - } - 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 >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 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 >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0011100x1x0xx1100010xxxxxxxxxx - frintn. */ - return 176; + 0x001110xx1x0xx0010010xxxxxxxxxx + cls. */ + return 160; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1011100x1x0xx1100010xxxxxxxxxx - frinta. */ - return 224; + 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 >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx011101x1x0xx1100010xxxxxxxxxx - frintp. */ - return 196; + 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 >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0011100x1x1xx1100010xxxxxxxxxx - frintn. */ - return 177; + 0x001110xx1x0xx0011010xxxxxxxxxx + sadalp. */ + return 162; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1011100x1x1xx1100010xxxxxxxxxx - frinta. */ - return 225; + 0x001110xx1x1xx0011010xxxxxxxxxx + aesmc. */ + return 667; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx011101x1x1xx1100010xxxxxxxxxx - frintp. */ - return 197; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxx1011010xxxxxxxxxx + fcvtn. */ + return 172; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxx1011010xxxxxxxxxx + fcvtn2. */ + return 173; + } } } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0011110xx1xxxxx100010xxxxxxxxxx - fnmul. */ - return 838; + 0x001110xx1xxxxx000110xxxxxxxxxx + rev16. */ + return 157; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx1xxxxx100010xxxxxxxxxx - cmgt. */ - return 476; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x0xxx010110xxxxxxxxxx + cnt. */ + return 161; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x1xxx010110xxxxxxxxxx + aesd. */ + return 666; + } } } 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 >> 14) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1x0xx0010010xxxxxxxxxx - cls. */ - return 160; + 0x001110xx10xxxx001110xxxxxxxxxx + suqadd. */ + return 159; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1x0xx0010010xxxxxxxxxx - clz. */ - return 210; + 0x001110xx11xxxx001110xxxxxxxxxx + saddlv. */ + return 27; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x0xx0011110xxxxxxxxxx + sqabs. */ + return 163; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 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 - xxx01110xx1x1xx0010010xxxxxxxxxx - aese. */ - return 665; + 0x001110xx1xxxxx010001xxxxxxxxxx + sshl. */ + return 269; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0001110xx1xxxx1010010xxxxxxxxxx - sqxtn. */ - return 170; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxx1010010xxxxxxxxxx - sqxtn2. */ - return 171; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001001xxxxxxxxxx + shsub. */ + return 265; } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0101110xx1xxxx1010010xxxxxxxxxx - uqxtn. */ - return 220; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1101110xx1xxxx1010010xxxxxxxxxx - uqxtn2. */ - return 221; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011001xxxxxxxxxx + smax. */ + return 273; } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0011110xx1xxxxx010010xxxxxxxxxx - fmax. */ - return 830; + 0x001110xx1xxxxx000101xxxxxxxxxx + srhadd. */ + return 264; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1011110xx1xxxxx010010xxxxxxxxxx - sqxtn. */ - return 480; + 0x001110xx1xxxxx010101xxxxxxxxxx + srshl. */ + return 271; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxxx010010xxxxxxxxxx - uqxtn. */ - return 509; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001101xxxxxxxxxx + cmgt. */ + return 267; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011101xxxxxxxxxx + sabd. */ + return 275; + } } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx000011xxxxxxxxxx + sqadd. */ + return 263; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx010011xxxxxxxxxx + sqshl. */ + return 270; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001011xxxxxxxxxx + sqsub. */ + return 266; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011011xxxxxxxxxx + smin. */ + return 274; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx100xx0110010xxxxxxxxxx - fcmgt. */ - return 188; + 0x001110001xxxxx000111xxxxxxxxxx + and. */ + return 299; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx100xx0110010xxxxxxxxxx - fcmge. */ - return 239; + 0x001110101xxxxx000111xxxxxxxxxx + orr. */ + return 311; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx011110xx100xx0110010xxxxxxxxxx - fcmgt. */ - return 489; + 0x001110011xxxxx000111xxxxxxxxxx + bic. */ + return 300; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx111110xx100xx0110010xxxxxxxxxx - fcmge. */ - return 519; + 0x001110111xxxxx000111xxxxxxxxxx + orn. */ + return 313; } } } else { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x110xx0110010xxxxxxxxxx - fmaxnmv. */ - return 35; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011100x110xx0110010xxxxxxxxxx - fmaxnmv. */ - return 34; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 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; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011101x110xx0110010xxxxxxxxxx - fminnmv. */ - return 38; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x110xx0110010xxxxxxxxxx - fminnmp. */ - return 539; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x110xx0110010xxxxxxxxxx - fminnmp. */ - return 538; - } - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx010111xxxxxxxxxx + sqrshl. */ + return 272; } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 14) & 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 - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111100x1x0xx1110010xxxxxxxxxx - fcvtas. */ - return 485; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x1x0xx1110010xxxxxxxxxx - fcvtau. */ - return 515; - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0x11101x1x0xx1110010xxxxxxxxxx - urecpe. */ - return 204; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1x11101x1x0xx1110010xxxxxxxxxx - 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; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001111xxxxxxxxxx + cmge. */ + return 268; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx011110xx1x1xx1110010xxxxxxxxxx - fcvtas. */ - return 486; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1x1xx1110010xxxxxxxxxx - fcvtau. */ - return 516; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011111xxxxxxxxxx + saba. */ + return 276; } } } @@ -14645,339 +13977,185 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 14) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110xx1xxxxx0xxxxxxxxxxxxxxx + bcax. */ + return 1997; + } + } + else + { + if (((word >> 10) & 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 >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxx0001010xxxxxxxxxx - saddlp. */ - return 158; + x0101110xx1xxxxx000000xxxxxxxxxx + uaddl. */ + return 74; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxx0001010xxxxxxxxxx - uaddlp. */ - return 208; + x1101110xx1xxxxx000000xxxxxxxxxx + uaddl2. */ + return 75; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0001110xx1xxxx1001010xxxxxxxxxx - xtn. */ - return 168; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1001110xx1xxxx1001010xxxxxxxxxx - xtn2. */ - return 169; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx010000xxxxxxxxxx + raddhn. */ + return 82; } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x0101110xx1xxxx1001010xxxxxxxxxx - sqxtun. */ - return 216; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1101110xx1xxxx1001010xxxxxxxxxx - sqxtun2. */ - return 217; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx010000xxxxxxxxxx + raddhn2. */ + return 83; } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0011110xx1xxxxx001010xxxxxxxxxx - fadd. */ - return 826; + x0101110xx1xxxxx001000xxxxxxxxxx + usubl. */ + return 78; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1011110xx1xxxxx001010xxxxxxxxxx - sha256su0. */ - return 671; + x1101110xx1xxxxx001000xxxxxxxxxx + usubl2. */ + return 79; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxxx001010xxxxxxxxxx - sqxtun. */ - return 508; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx011000xxxxxxxxxx + rsubhn. */ + return 86; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx011000xxxxxxxxxx + rsubhn2. */ + return 87; + } } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110xx10xxx0101010xxxxxxxxxx - cmlt. */ - return 166; + x0101110xx1xxxxx000100xxxxxxxxxx + uaddw. */ + return 76; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx10xxx0101010xxxxxxxxxx - cmlt. */ - return 478; + x1101110xx1xxxxx000100xxxxxxxxxx + uaddw2. */ + return 77; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0x1110xx11xxx0101010xxxxxxxxxx - smaxv. */ - return 28; + x0101110xx1xxxxx010100xxxxxxxxxx + uabal. */ + return 84; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1x1110xx11xxx0101010xxxxxxxxxx - umaxv. */ - return 32; + x1101110xx1xxxxx010100xxxxxxxxxx + uabal2. */ + return 85; } } } else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x100xx1101010xxxxxxxxxx - fcvtns. */ - return 180; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011100x100xx1101010xxxxxxxxxx - fcvtnu. */ - return 228; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 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; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011101x100xx1101010xxxxxxxxxx - fcvtpu. */ - return 247; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x100xx1101010xxxxxxxxxx - fcvtps. */ - return 495; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x100xx1101010xxxxxxxxxx - fcvtpu. */ - return 523; - } - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx001100xxxxxxxxxx + usubw. */ + return 80; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0x1110xx110xx1101010xxxxxxxxxx - sminv. */ - return 29; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1x1110xx110xx1101010xxxxxxxxxx - uminv. */ - return 33; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx001100xxxxxxxxxx + usubw2. */ + return 81; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x1x1xx1101010xxxxxxxxxx - fcvtns. */ - return 181; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011100x1x1xx1101010xxxxxxxxxx - fcvtnu. */ - return 229; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111100x1x1xx1101010xxxxxxxxxx - fcvtns. */ - return 482; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x1x1xx1101010xxxxxxxxxx - fcvtnu. */ - return 512; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx011100xxxxxxxxxx + uabdl. */ + return 88; } else { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011101x1x1xx1101010xxxxxxxxxx - fcvtps. */ - return 201; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011101x1x1xx1101010xxxxxxxxxx - fcvtpu. */ - return 248; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x1x1xx1101010xxxxxxxxxx - fcvtps. */ - return 496; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x1x1xx1101010xxxxxxxxxx - fcvtpu. */ - return 524; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx011100xxxxxxxxxx + uabdl2. */ + return 89; } } } @@ -14985,61 +14163,91 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx000010xxxxxxxxxx + rev32. */ + return 207; + } + else + { + if (((word >> 16) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0010010xxxxxxxxxx + clz. */ + return 210; + } + else + { + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1x0xx0011010xxxxxxxxxx - sadalp. */ - return 162; + x0101110xx1xxxx1010010xxxxxxxxxx + uqxtn. */ + return 220; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1x0xx0011010xxxxxxxxxx - uadalp. */ - return 211; + x1101110xx1xxxx1010010xxxxxxxxxx + uqxtn2. */ + return 221; } } - else + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110xx1x1xx0011010xxxxxxxxxx - aesmc. */ - return 667; + xx101110xx1xxxx0001010xxxxxxxxxx + uaddlp. */ + return 208; } - } - else - { - if (((word >> 29) & 0x1) == 0) + else { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0001110xx1xxxx1011010xxxxxxxxxx - fcvtn. */ - return 172; + x0101110xx1xxxx1001010xxxxxxxxxx + sqxtun. */ + return 216; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1001110xx1xxxx1011010xxxxxxxxxx - fcvtn2. */ - return 173; + x1101110xx1xxxx1001010xxxxxxxxxx + sqxtun2. */ + return 217; } } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0011010xxxxxxxxxx + uadalp. */ + return 211; + } else { if (((word >> 30) & 0x1) == 0) @@ -15061,889 +14269,777 @@ aarch64_opcode_lookup_1 (uint32_t word) } } } - 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 >> 13) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110xx1x0xxx111010xxxxxxxxxx - fcmlt. */ - return 192; + xx101110x01xxxxx0x0110xxxxxxxxxx + not. */ + return 236; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx1x0xxx111010xxxxxxxxxx - fcmlt. */ - return 493; + xx101110x11xxxxx0x0110xxxxxxxxxx + rbit. */ + return 238; } } else { - if (((word >> 28) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx1x1xxx111010xxxxxxxxxx - fcmlt. */ - return 193; - } - else + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11110xx1x1xxx111010xxxxxxxxxx - fcmlt. */ - return 494; - } + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx10xxx0001110xxxxxxxxxx + usqadd. */ + return 209; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx11xxx0001110xxxxxxxxxx + uaddlv. */ + return 31; + } + } + else + { + 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 >> 13) & 0x1) == 0) + 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) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx1xxxxx000110xxxxxxxxxx - rev16. */ - return 157; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx000001xxxxxxxxxx + uhadd. */ + return 314; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx010001xxxxxxxxxx + ushl. */ + return 321; + } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0x11110xx1xxxxx000110xxxxxxxxxx - fdiv. */ - return 824; + xx101110xx1xxxxx001001xxxxxxxxxx + uhsub. */ + return 317; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1x11110xx1xxxxx000110xxxxxxxxxx - sha1su1. */ - return 670; + xx101110xx1xxxxx011001xxxxxxxxxx + umax. */ + return 325; } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxx0100110xxxxxxxxxx - cmeq. */ - return 165; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxx0100110xxxxxxxxxx - cmle. */ - return 214; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx000101xxxxxxxxxx + urhadd. */ + return 316; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx011110xx1xxxx0100110xxxxxxxxxx - cmeq. */ - return 477; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxx0100110xxxxxxxxxx - cmle. */ - return 506; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx010101xxxxxxxxxx + urshl. */ + return 323; } } else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 14) & 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; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx001101xxxxxxxxxx + cmhi. */ + return 319; } else { - if (((word >> 23) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx011101xxxxxxxxxx + uabd. */ + return 327; + } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx000011xxxxxxxxxx + uqadd. */ + return 315; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx010011xxxxxxxxxx + uqshl. */ + return 322; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx001011xxxxxxxxxx + uqsub. */ + return 318; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx011011xxxxxxxxxx + umin. */ + return 326; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0x11100x1x1xx1100110xxxxxxxxxx - frintm. */ - return 179; + xx101110001xxxxx000111xxxxxxxxxx + eor. */ + return 350; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1x11100x1x1xx1100110xxxxxxxxxx - frintx. */ - return 227; + xx101110101xxxxx000111xxxxxxxxxx + bit. */ + return 362; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0x11101x1x1xx1100110xxxxxxxxxx - frintz. */ - return 199; + xx101110011xxxxx000111xxxxxxxxxx + bsl. */ + return 351; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1x11101x1x1xx1100110xxxxxxxxxx - frinti. */ - return 246; + xx101110111xxxxx000111xxxxxxxxxx + bif. */ + return 363; } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx010111xxxxxxxxxx + uqrshl. */ + return 324; + } } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) + else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx001111xxxxxxxxxx + cmhs. */ + return 320; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx011111xxxxxxxxxx + uaba. */ + return 328; + } + } + } + } + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1x0xxx010110xxxxxxxxxx - cnt. */ - return 161; + x0001110xx1xxxxx100000xxxxxxxxxx + smlal. */ + return 58; } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110x01x0xxx010110xxxxxxxxxx - not. */ - return 236; + 01001110xx1xxxxx100000xxxxxxxxxx + smlal2. */ + return 59; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110x11x0xxx010110xxxxxxxxxx - rbit. */ - return 238; + 11001110xx1xxxxx100000xxxxxxxxxx + sha512h. */ + return 1990; } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx1x1xxx010110xxxxxxxxxx - aesd. */ - return 666; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx100000xxxxxxxxxx + umlal. */ + return 90; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx100000xxxxxxxxxx + umlal2. */ + return 91; + } } } else { - /* 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) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx100xx0110110xxxxxxxxxx - fcmeq. */ - return 190; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx100xx0110110xxxxxxxxxx - fcmle. */ - return 241; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx011110xx100xx0110110xxxxxxxxxx - fcmeq. */ - return 491; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx100xx0110110xxxxxxxxxx - fcmle. */ - return 521; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001110xx1xxxxx110000xxxxxxxxxx + smull. */ + return 66; } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0x1110xx110xx0110110xxxxxxxxxx - faddp. */ - return 535; + 01001110xx1xxxxx110000xxxxxxxxxx + smull2. */ + return 67; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1x1110xx110xx0110110xxxxxxxxxx - faddp. */ - return 534; + 11001110xx1xxxxx110000xxxxxxxxxx + sm3partw1. */ + return 2003; } } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1x1xx0110110xxxxxxxxxx - fcmeq. */ - return 191; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1x1xx0110110xxxxxxxxxx - fcmle. */ - return 242; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx110000xxxxxxxxxx + umull. */ + return 94; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx011110xx1x1xx0110110xxxxxxxxxx - fcmeq. */ - return 492; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1x1xx0110110xxxxxxxxxx - fcmle. */ - return 522; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx110000xxxxxxxxxx + umull2. */ + return 95; } } } - else + } + else + { + if (((word >> 14) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x1x0xx1110110xxxxxxxxxx - scvtf. */ - return 186; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011100x1x0xx1110110xxxxxxxxxx - ucvtf. */ - return 234; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111100x1x0xx1110110xxxxxxxxxx - scvtf. */ - return 487; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x1x0xx1110110xxxxxxxxxx - ucvtf. */ - return 517; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001110xx1xxxxx101000xxxxxxxxxx + smlsl. */ + return 62; } else { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011101x1x0xx1110110xxxxxxxxxx - frecpe. */ - return 205; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011101x1x0xx1110110xxxxxxxxxx - frsqrte. */ - return 252; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x1x0xx1110110xxxxxxxxxx - frecpe. */ - return 499; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x1x0xx1110110xxxxxxxxxx - frsqrte. */ - return 527; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001110xx1xxxxx101000xxxxxxxxxx + smlsl2. */ + return 63; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x1x1xx1110110xxxxxxxxxx - scvtf. */ - return 187; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011100x1x1xx1110110xxxxxxxxxx - ucvtf. */ - return 235; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111100x1x1xx1110110xxxxxxxxxx - scvtf. */ - return 488; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111100x1x1xx1110110xxxxxxxxxx - ucvtf. */ - return 518; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx101000xxxxxxxxxx + umlsl. */ + return 92; } else { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011101x1x1xx1110110xxxxxxxxxx - frecpe. */ - return 206; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011101x1x1xx1110110xxxxxxxxxx - frsqrte. */ - return 253; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x1x1xx1110110xxxxxxxxxx - frecpe. */ - return 500; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x1x1xx1110110xxxxxxxxxx - frsqrte. */ - return 528; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx101000xxxxxxxxxx + umlsl2. */ + return 93; } } } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) + else { - 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 >> 22) & 0x1) == 0) { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0x01110xx1xxxx1001110xxxxxxxxxx - shll. */ - return 218; + x0x01110x01xxxxx111000xxxxxxxxxx + pmull. */ + return 70; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1x01110xx1xxxx1001110xxxxxxxxxx - shll2. */ - return 219; + x1x01110x01xxxxx111000xxxxxxxxxx + pmull2. */ + return 72; } } - } - else - { - if (((word >> 29) & 0x1) == 0) + else { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0011110xx1xxxxx001110xxxxxxxxxx - fsub. */ - return 828; + x0x01110x11xxxxx111000xxxxxxxxxx + pmull. */ + return 71; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1011110xx1xxxxx001110xxxxxxxxxx - suqadd. */ - return 474; + x1x01110x11xxxxx111000xxxxxxxxxx + pmull2. */ + return 73; } } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x01110xx1xxxxx100100xxxxxxxxxx + sqdmlal. */ + return 60; + } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx111110xx1xxxxx001110xxxxxxxxxx - usqadd. */ - return 503; + x1x01110xx1xxxxx100100xxxxxxxxxx + sqdmlal2. */ + return 61; } } - } - else - { - if (((word >> 16) & 0x1) == 0) + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxx0101110xxxxxxxxxx - abs. */ - return 167; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxx0101110xxxxxxxxxx - neg. */ - return 215; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x01110xx1xxxxx110100xxxxxxxxxx + sqdmull. */ + return 68; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx011110xx1xxxx0101110xxxxxxxxxx - abs. */ - return 479; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx111110xx1xxxx0101110xxxxxxxxxx - neg. */ - return 507; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x01110xx1xxxxx110100xxxxxxxxxx + sqdmull2. */ + return 69; } } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x01110xx1xxxxx1x1100xxxxxxxxxx + sqdmlsl. */ + return 64; + } else { - if (((word >> 19) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x01110xx1xxxxx1x1100xxxxxxxxxx + sqdmlsl2. */ + return 65; + } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxx0100010xxxxxxxxxx + cmgt. */ + return 164; + } + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0011100x100xx1101110xxxxxxxxxx - fcvtms. */ - return 182; + 0x0011100x1x0xx1100010xxxxxxxxxx + frintn. */ + return 176; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1011100x100xx1101110xxxxxxxxxx - fcvtmu. */ - return 230; + 0x0011101x1x0xx1100010xxxxxxxxxx + frintp. */ + return 196; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111100x100xx1101110xxxxxxxxxx - fcvtms. */ - return 483; + 0x0011100x1x1xx1100010xxxxxxxxxx + frintn. */ + return 177; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1111100x100xx1101110xxxxxxxxxx - fcvtmu. */ - return 513; - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011101x100xx1101110xxxxxxxxxx - fcvtzs. */ - return 202; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011101x100xx1101110xxxxxxxxxx - fcvtzu. */ - return 249; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x100xx1101110xxxxxxxxxx - fcvtzs. */ - return 497; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x100xx1101110xxxxxxxxxx - fcvtzu. */ - return 525; + 0x0011101x1x1xx1100010xxxxxxxxxx + frintp. */ + return 197; } } } } else { - if (((word >> 28) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110xx1xxxxx100010xxxxxxxxxx + sha512su1. */ + return 1993; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0100010xxxxxxxxxx + cmge. */ + return 213; + } + else + { + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110xx110xx1101110xxxxxxxxxx - addv. */ - return 30; + xx101110xx1x0xx1100010xxxxxxxxxx + frinta. */ + return 224; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx11110xx110xx1101110xxxxxxxxxx - addp. */ - return 531; + xx101110xx1x1xx1100010xxxxxxxxxx + frinta. */ + return 225; } } } - else + } + else + { + if (((word >> 23) & 0x1) == 0) { - if (((word >> 23) & 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 - xx0011100x1x1xx1101110xxxxxxxxxx - fcvtms. */ - return 183; + 0x0011100x1xxxx0110010xxxxxxxxxx + fmaxnmv. */ + return 35; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011100x1x1xx1101110xxxxxxxxxx - fcvtmu. */ - return 231; + 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 - xx0111100x1x1xx1101110xxxxxxxxxx - fcvtms. */ - return 484; + xx1011100x1x0xx1110010xxxxxxxxxx + fcvtau. */ + return 232; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1111100x1x1xx1101110xxxxxxxxxx - fcvtmu. */ - return 514; + xx1011100x1x1xx1110010xxxxxxxxxx + fcvtau. */ + return 233; } } } - else + } + else + { + if (((word >> 16) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011101x1x1xx1101110xxxxxxxxxx - fcvtzs. */ - return 203; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x100xx0110010xxxxxxxxxx + fcmgt. */ + return 188; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x100xx0110010xxxxxxxxxx + fcmge. */ + return 239; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011101x1x1xx1101110xxxxxxxxxx - fcvtzu. */ - return 250; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x110xx0110010xxxxxxxxxx + fminnmv. */ + return 39; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x110xx0110010xxxxxxxxxx + fminnmv. */ + return 38; + } } } else @@ -15952,650 +15048,1689 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111101x1x1xx1101110xxxxxxxxxx - fcvtzs. */ - return 498; + xx0011101x1x1xx0110010xxxxxxxxxx + fcmgt. */ + return 189; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1111101x1x1xx1101110xxxxxxxxxx - fcvtzu. */ - return 526; + xx1011101x1x1xx0110010xxxxxxxxxx + fcmge. */ + return 240; } } } - } - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) + else { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1x0xx0011110xxxxxxxxxx - sqabs. */ - return 163; + xx0011101x1xxxx1110010xxxxxxxxxx + urecpe. */ + return 204; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1x0xx0011110xxxxxxxxxx - sqneg. */ - return 212; + xx1011101x1xxxx1110010xxxxxxxxxx + ursqrte. */ + return 251; } } - 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 + } + else + { + if (((word >> 14) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x0011110xx1xxxxx011110xxxxxxxxxx - fminnm. */ - return 836; + xxx01110xx10xxx0101010xxxxxxxxxx + cmlt. */ + return 166; } 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; + xx001110xx11xxx0101010xxxxxxxxxx + smaxv. */ + return 28; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1x1110xx100xx0111110xxxxxxxxxx - fneg. */ - return 243; + xx101110xx11xxx0101010xxxxxxxxxx + umaxv. */ + return 32; } } - else + } + else + { + 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) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0011100x110xx0111110xxxxxxxxxx - fmaxv. */ - return 37; + xx0011100x100xx1101010xxxxxxxxxx + fcvtns. */ + return 180; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1011100x110xx0111110xxxxxxxxxx - fmaxv. */ - return 36; - } - } + xx1011100x100xx1101010xxxxxxxxxx + fcvtnu. */ + return 228; + } + } else { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0111100x110xx0111110xxxxxxxxxx - fmaxp. */ - return 537; + xx0011101x100xx1101010xxxxxxxxxx + fcvtps. */ + return 200; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1111100x110xx0111110xxxxxxxxxx - fmaxp. */ - return 536; + xx1011101x100xx1101010xxxxxxxxxx + fcvtpu. */ + return 247; } } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011101x110xx0111110xxxxxxxxxx - fminv. */ - return 41; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011101x110xx0111110xxxxxxxxxx - fminv. */ - return 40; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx110xx1101010xxxxxxxxxx + sminv. */ + return 29; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0111101x110xx0111110xxxxxxxxxx - fminp. */ - return 541; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1111101x110xx0111110xxxxxxxxxx - fminp. */ - return 540; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx110xx1101010xxxxxxxxxx + uminv. */ + return 33; } } } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0x1110xx1x1xx0111110xxxxxxxxxx - fabs. */ - return 195; - } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1x1110xx1x1xx0111110xxxxxxxxxx - fneg. */ - return 244; + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x1xx1101010xxxxxxxxxx + fcvtns. */ + return 181; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x1xx1101010xxxxxxxxxx + fcvtnu. */ + return 229; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x1xx1101010xxxxxxxxxx + fcvtps. */ + return 201; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x1xx1101010xxxxxxxxxx + fcvtpu. */ + return 248; + } + } } } } else { if (((word >> 19) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01110xx1x0xx1111110xxxxxxxxxx - fsqrt. */ - return 254; - } - else - { - /* 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) - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 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 >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx100001xxxxxxxxxx - add. */ - return 277; + xxx01110xx1x0xxx111010xxxxxxxxxx + fcmlt. */ + return 192; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx100001xxxxxxxxxx - sub. */ - return 329; + xxx01110xx1x1xxx111010xxxxxxxxxx + fcmlt. */ + return 193; } } } - else + } + else + { + if (((word >> 13) & 0x1) == 0) { - 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 >> 14) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0011100x1xxxxx110001xxxxxxxxxx - fmaxnm. */ - return 285; + xx001110xx1xxxx0100110xxxxxxxxxx + cmeq. */ + return 165; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1011100x1xxxxx110001xxxxxxxxxx - fmaxnmp. */ - return 336; + xx101110xx1xxxx0100110xxxxxxxxxx + cmle. */ + return 214; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011101x1xxxxx110001xxxxxxxxxx - fminnm. */ - return 301; + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x0xx1100110xxxxxxxxxx + frintm. */ + return 178; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x0xx1100110xxxxxxxxxx + frintx. */ + return 226; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x0xx1100110xxxxxxxxxx + frintz. */ + return 198; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x0xx1100110xxxxxxxxxx + frinti. */ + return 245; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011101x1xxxxx110001xxxxxxxxxx - fminnmp. */ - return 352; - } - } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x1xx1100110xxxxxxxxxx + frintm. */ + return 179; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x1xx1100110xxxxxxxxxx + frintx. */ + return 227; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x1xx1100110xxxxxxxxxx + frintz. */ + return 199; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x1xx1100110xxxxxxxxxx + frinti. */ + return 246; + } + } + } + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1x0xx0110110xxxxxxxxxx + fcmeq. */ + return 190; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1x0xx0110110xxxxxxxxxx + fcmle. */ + return 241; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1x1xx0110110xxxxxxxxxx + fcmeq. */ + return 191; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1x1xx0110110xxxxxxxxxx + fcmle. */ + return 242; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x0xx1110110xxxxxxxxxx + scvtf. */ + return 186; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x0xx1110110xxxxxxxxxx + ucvtf. */ + return 234; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x0xx1110110xxxxxxxxxx + frecpe. */ + return 205; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x0xx1110110xxxxxxxxxx + frsqrte. */ + return 252; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x1xx1110110xxxxxxxxxx + scvtf. */ + return 187; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x1xx1110110xxxxxxxxxx + ucvtf. */ + return 235; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x1xx1110110xxxxxxxxxx + frecpe. */ + return 206; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x1xx1110110xxxxxxxxxx + frsqrte. */ + return 253; + } + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxx0101110xxxxxxxxxx + abs. */ + return 167; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0101110xxxxxxxxxx + neg. */ + return 215; + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x100xx1101110xxxxxxxxxx + fcvtms. */ + return 182; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x100xx1101110xxxxxxxxxx + fcvtmu. */ + return 230; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x100xx1101110xxxxxxxxxx + fcvtzs. */ + return 202; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x100xx1101110xxxxxxxxxx + fcvtzu. */ + return 249; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx01110xx110xx1101110xxxxxxxxxx + addv. */ + return 30; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x1xx1101110xxxxxxxxxx + fcvtms. */ + return 183; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x1xx1101110xxxxxxxxxx + fcvtmu. */ + return 231; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x1xx1101110xxxxxxxxxx + fcvtzs. */ + return 203; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x1xx1101110xxxxxxxxxx + fcvtzu. */ + return 250; + } + } + } + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx100xx0111110xxxxxxxxxx + fabs. */ + return 194; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx100xx0111110xxxxxxxxxx + fneg. */ + return 243; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x110xx0111110xxxxxxxxxx + fmaxv. */ + return 37; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x110xx0111110xxxxxxxxxx + fmaxv. */ + return 36; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x110xx0111110xxxxxxxxxx + fminv. */ + return 41; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x110xx0111110xxxxxxxxxx + fminv. */ + return 40; + } + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1x1xx0111110xxxxxxxxxx + fabs. */ + return 195; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1x1xx0111110xxxxxxxxxx + fneg. */ + return 244; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx01110xx1x0xx1111110xxxxxxxxxx + fsqrt. */ + return 254; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx01110xx1x1xx1111110xxxxxxxxxx + fsqrt. */ + return 255; + } + } + } + } + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx100001xxxxxxxxxx + add. */ + return 277; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110xx1xxxxx100001xxxxxxxxxx + sha512h2. */ + return 1991; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx100001xxxxxxxxxx + sub. */ + return 329; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1xxxxx110001xxxxxxxxxx + fmaxnm. */ + return 285; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x0011100x1xxxxx110001xxxxxxxxxx + sm3partw2. */ + return 2004; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1xxxxx110001xxxxxxxxxx + fmaxnmp. */ + return 336; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1xxxxx110001xxxxxxxxxx + fminnm. */ + return 301; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1xxxxx110001xxxxxxxxxx + fminnmp. */ + return 352; + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx101001xxxxxxxxxx + smaxp. */ + return 281; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx101001xxxxxxxxxx + umaxp. */ + return 333; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1xxxxx111001xxxxxxxxxx + fcmeq. */ + return 293; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1xxxxx111001xxxxxxxxxx + fcmge. */ + return 342; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx011101x1xxxxx111001xxxxxxxxxx + fcmgt. */ + return 356; + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx100101xxxxxxxxxx + mla. */ + return 279; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx100101xxxxxxxxxx + mls. */ + return 331; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1xxxxx110101xxxxxxxxxx + fadd. */ + return 289; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1xxxxx110101xxxxxxxxxx + faddp. */ + return 338; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1xxxxx110101xxxxxxxxxx + fsub. */ + return 305; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1xxxxx110101xxxxxxxxxx + fabd. */ + return 354; + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx101101xxxxxxxxxx + sqdmulh. */ + return 283; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx101101xxxxxxxxxx + sqrdmulh. */ + return 335; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1xxxxx111101xxxxxxxxxx + fmax. */ + return 295; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1xxxxx111101xxxxxxxxxx + fmaxp. */ + return 346; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1xxxxx111101xxxxxxxxxx + fmin. */ + return 307; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1xxxxx111101xxxxxxxxxx + fminp. */ + return 360; + } + } + } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + 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 + { + 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 >> 13) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx100111xxxxxxxxxx + mul. */ + return 280; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx100111xxxxxxxxxx + pmul. */ + return 332; + } + } + else { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx001001xxxxxxxxxx - shsub. */ - return 265; + xx001110xx1xxxxx110111xxxxxxxxxx + fmulx. */ + return 291; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx110111xxxxxxxxxx + fmul. */ + return 340; + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx01110xx1xxxxx101111xxxxxxxxxx + addp. */ + return 284; + } + 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; + } + } + } + } + } + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + 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 + { + 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 { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx001001xxxxxxxxxx - uhsub. */ - return 317; + 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 + } + else + { + if (((word >> 17) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx101001xxxxxxxxxx - smaxp. */ - return 281; + 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 { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx101001xxxxxxxxxx - umaxp. */ - return 333; + 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 - { - if (((word >> 15) & 0x1) == 0) + else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx011001xxxxxxxxxx - smax. */ - return 273; + xxx11110xx1xx01xx10000xxxxxxxxxx + fcvt. */ + return 807; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx011001xxxxxxxxxx - umax. */ - return 325; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x1xxxxx111001xxxxxxxxxx - fcmeq. */ - return 293; + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx110010000xxxxxxxxxx + frinta. */ + return 816; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx111010000xxxxxxxxxx + frintx. */ + return 818; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1011100x1xxxxx111001xxxxxxxxxx - fcmge. */ - return 342; + xxx11110xx1xx11x110000xxxxxxxxxx + frinti. */ + return 820; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx011101x1xxxxx111001xxxxxxxxxx - fcmgt. */ - return 356; - } + } + } + } + else + { + if (((word >> 3) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxxxx1000xxxxx00xxx + fcmp. */ + return 791; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxxxx1000xxxxx10xxx + fcmpe. */ + return 793; + } + } + else + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxxxx1000xxxxx01xxx + fcmp. */ + return 795; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxxxx1000xxxxx11xxx + fcmpe. */ + return 797; } } } } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11110xx1xxxxxxxx100xxxxxxxxxx + fmov. */ + return 848; + } + else + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx000101xxxxxxxxxx - srhadd. */ - return 264; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx000101xxxxxxxxxx - urhadd. */ - return 316; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11110xx1xxxxxx00100xxxxxxxxxx + sqdmlal. */ + return 416; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx100101xxxxxxxxxx - mla. */ - return 279; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx100101xxxxxxxxxx - mls. */ - return 331; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11110xx1xxxxxx10100xxxxxxxxxx + sqdmull. */ + return 418; } } else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11110xx1xxxxxxx1100xxxxxxxxxx + sqdmlsl. */ + return 417; + } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx010101xxxxxxxxxx - srshl. */ - return 271; + x0x11110xx1xxxxx000010xxxxxxxxxx + fmul. */ + return 822; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx010101xxxxxxxxxx - urshl. */ - return 323; + x1x11110xx1xxxxx000010xxxxxxxxxx + sha1h. */ + return 669; } } else { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x1xxxxx110101xxxxxxxxxx - fadd. */ - return 289; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011100x1xxxxx110101xxxxxxxxxx - faddp. */ - return 338; - } - } - else + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx0011101x1xxxxx110101xxxxxxxxxx - fsub. */ - return 305; + x0011110xx1xxxxx100010xxxxxxxxxx + fnmul. */ + return 838; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx1011101x1xxxxx110101xxxxxxxxxx - fabd. */ - return 354; + x1011110xx1xxxxx100010xxxxxxxxxx + cmgt. */ + return 476; } } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - 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 >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx101101xxxxxxxxxx - sqdmulh. */ - return 283; - } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx101101xxxxxxxxxx - sqrdmulh. */ - return 335; + xx111110xx1xxxxx100010xxxxxxxxxx + cmge. */ + return 505; } } } @@ -16605,249 +16740,295 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx011101xxxxxxxxxx - sabd. */ - return 275; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx010010xxxxxxxxxx + fmax. */ + return 830; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx010010xxxxxxxxxx + sqxtn. */ + return 480; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx011101xxxxxxxxxx - uabd. */ - return 327; + xx111110xx1xxxxx010010xxxxxxxxxx + uqxtn. */ + return 509; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011100x1xxxxx111101xxxxxxxxxx - fmax. */ - return 295; + 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 { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011100x1xxxxx111101xxxxxxxxxx - fmaxp. */ - return 346; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x1xx0110010xxxxxxxxxx + fcmgt. */ + return 490; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x1xx0110010xxxxxxxxxx + fcmge. */ + return 520; + } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx0011101x1xxxxx111101xxxxxxxxxx - fmin. */ - return 307; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x0xx1110010xxxxxxxxxx + fcvtas. */ + return 485; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x0xx1110010xxxxxxxxxx + fcvtau. */ + return 515; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx1011101x1xxxxx111101xxxxxxxxxx - fminp. */ - return 360; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x1xx1110010xxxxxxxxxx + fcvtas. */ + return 486; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x1xx1110010xxxxxxxxxx + fcvtau. */ + return 516; + } } } } } } - } - } - else - { - 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 >> 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) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx1xxxxxx00001xxxxxxxxxx - add. */ - return 559; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx001010xxxxxxxxxx + fadd. */ + return 826; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx001010xxxxxxxxxx + sha256su0. */ + return 671; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1011110xx1xxxxxx10001xxxxxxxxxx - sshl. */ - return 557; + xx111110xx1xxxxx001010xxxxxxxxxx + sqxtun. */ + return 508; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx1xxxxxxx1001xxxxxxxxxx - fcmeq. */ - return 549; - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - x1011110xx1xxxxxxx0101xxxxxxxxxx - srshl. */ - return 558; - } - else - { - if (((word >> 15) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - x1011110xx1xxxxx0x1101xxxxxxxxxx - cmgt. */ - return 555; + xxx11110xx1xxxx0101010xxxxxxxxxx + cmlt. */ + return 478; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 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 - { - /* 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; + 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; + } + } + } + } } } - } - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) + else { if (((word >> 15) & 0x1) == 0) { @@ -16855,217 +17036,437 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx000011xxxxxxxxxx - sqadd. */ - return 263; + xx011110xx1xxxxx011010xxxxxxxxxx + fmaxnm. */ + return 834; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx000011xxxxxxxxxx - uqadd. */ - return 315; + xx111110xx1xxxxx011010xxxxxxxxxx + fcvtxn. */ + return 510; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx100011xxxxxxxxxx - cmtst. */ - return 278; + xxx11110xx1x0xxx111010xxxxxxxxxx + fcmlt. */ + return 493; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx100011xxxxxxxxxx - cmeq. */ - return 330; + xxx11110xx1x1xxx111010xxxxxxxxxx + fcmlt. */ + return 494; } } } - else + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx010011xxxxxxxxxx - sqshl. */ - return 270; + x0x11110xx1xxxxx000110xxxxxxxxxx + fdiv. */ + return 824; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx010011xxxxxxxxxx - uqshl. */ - return 322; + x1x11110xx1xxxxx000110xxxxxxxxxx + sha1su1. */ + return 670; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx011100x1xxxxx110011xxxxxxxxxx - fmla. */ - return 287; + xx011110xx1xxxxx100110xxxxxxxxxx + cmeq. */ + return 477; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx011101x1xxxxx110011xxxxxxxxxx - fmls. */ - return 303; + xx111110xx1xxxxx100110xxxxxxxxxx + cmle. */ + return 506; } } } - } - else - { - if (((word >> 14) & 0x1) == 0) + else { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx001011xxxxxxxxxx - sqsub. */ - return 266; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx001011xxxxxxxxxx - uqsub. */ - return 318; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxx010110xxxxxxxxxx + fmin. */ + return 832; } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx101011xxxxxxxxxx - sminp. */ - return 282; + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx100xx0110110xxxxxxxxxx + fcmeq. */ + return 491; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx100xx0110110xxxxxxxxxx + fcmle. */ + return 521; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx110xx0110110xxxxxxxxxx + faddp. */ + return 535; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx110xx0110110xxxxxxxxxx + faddp. */ + return 534; + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x1xx0110110xxxxxxxxxx + fcmeq. */ + return 492; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x1xx0110110xxxxxxxxxx + fcmle. */ + return 522; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx101011xxxxxxxxxx - uminp. */ - return 334; + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x0xx1110110xxxxxxxxxx + scvtf. */ + return 487; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x0xx1110110xxxxxxxxxx + ucvtf. */ + return 517; + } + } + 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) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x1xx1110110xxxxxxxxxx + scvtf. */ + return 488; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x1xx1110110xxxxxxxxxx + ucvtf. */ + return 518; + } + } + else + { + 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 - xx001110xx1xxxxx011011xxxxxxxxxx - smin. */ - return 274; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx001110xxxxxxxxxx + fsub. */ + return 828; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx001110xxxxxxxxxx + suqadd. */ + return 474; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx011011xxxxxxxxxx - umin. */ - return 326; + xx111110xx1xxxxx001110xxxxxxxxxx + usqadd. */ + return 503; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx011100x1xxxxx111011xxxxxxxxxx - facge. */ - return 344; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1xxxx0101110xxxxxxxxxx + abs. */ + return 479; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxx0101110xxxxxxxxxx + neg. */ + return 507; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx011101x1xxxxx111011xxxxxxxxxx - facgt. */ - return 358; - } - } - } - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 23) & 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 >> 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 - xx101110001xxxxx000111xxxxxxxxxx - eor. */ - return 350; + xxx11110xx110xx1101110xxxxxxxxxx + addp. */ + return 531; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110101xxxxx000111xxxxxxxxxx - orr. */ - return 311; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x1xx1101110xxxxxxxxxx + fcvtms. */ + return 484; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x1xx1101110xxxxxxxxxx + fcvtmu. */ + return 514; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110101xxxxx000111xxxxxxxxxx - bit. */ - return 362; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x1xx1101110xxxxxxxxxx + fcvtzs. */ + return 498; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x1xx1101110xxxxxxxxxx + fcvtzu. */ + return 526; + } } } } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + 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 >> 23) & 0x1) == 0) { @@ -17073,17 +17474,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110011xxxxx000111xxxxxxxxxx - bic. */ - return 300; + xx0111100x1xxxx0111110xxxxxxxxxx + fmaxp. */ + return 537; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110011xxxxx000111xxxxxxxxxx - bsl. */ - return 351; + xx1111100x1xxxx0111110xxxxxxxxxx + fmaxp. */ + return 536; } } else @@ -17092,165 +17493,215 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110111xxxxx000111xxxxxxxxxx - orn. */ - return 313; + xx0111101x1xxxx0111110xxxxxxxxxx + fminp. */ + return 541; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110111xxxxx000111xxxxxxxxxx - bif. */ - return 363; + xx1111101x1xxxx0111110xxxxxxxxxx + fminp. */ + return 540; } } } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx100111xxxxxxxxxx - mul. */ - return 280; - } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx100111xxxxxxxxxx - pmul. */ - return 332; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0xx1111110xxxxxxxxxx + frecpx. */ + return 501; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1xx1111110xxxxxxxxxx + frecpx. */ + return 502; + } } } } - else + } + } + } + } + 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 >> 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 - xx001110xx1xxxxx010111xxxxxxxxxx - sqrshl. */ - return 272; + x1011110xx1xxxxxx00001xxxxxxxxxx + add. */ + return 559; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx010111xxxxxxxxxx - uqrshl. */ - return 324; + x1011110xx1xxxxxx10001xxxxxxxxxx + sshl. */ + return 557; } } else { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxxxx1001xxxxxxxxxx + fcmeq. */ + return 549; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxxxx0101xxxxxxxxxx + srshl. */ + return 558; + } + else + { + if (((word >> 15) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx001110xx1xxxxx110111xxxxxxxxxx - fmulx. */ - return 291; + x1011110xx1xxxxx0x1101xxxxxxxxxx + cmgt. */ + return 555; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xx101110xx1xxxxx110111xxxxxxxxxx - fmul. */ - return 340; + 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 + { + /* 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 >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx001111xxxxxxxxxx - cmge. */ - return 268; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx001111xxxxxxxxxx - cmhs. */ - return 320; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx0x0101xxxxxxxxxx + urshl. */ + return 579; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxx01110xx1xxxxx101111xxxxxxxxxx - addp. */ - return 284; + xx111110xx1xxxxx1x0101xxxxxxxxxx + fabd. */ + return 570; } } else { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx001110xx1xxxxx011111xxxxxxxxxx - saba. */ - return 276; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xx101110xx1xxxxx011111xxxxxxxxxx - uaba. */ - return 328; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx0x1101xxxxxxxxxx + cmhi. */ + return 576; } 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 + 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. */