X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=opcodes%2Faarch64-dis-2.c;h=c2d78efc0b9b1629cc8fededf8498faf555af839;hb=13c60ad7e1211ee1dfbf6bfb5e35110a33e4eed5;hp=0d633eb5a4eeddd0ccf49b423b48c4cb4a15977b;hpb=e60bb1dd35da645e3449fda680291abc26e1cc60;p=deliverable%2Fbinutils-gdb.git diff --git a/opcodes/aarch64-dis-2.c b/opcodes/aarch64-dis-2.c index 0d633eb5a4..c2d78efc0b 100644 --- a/opcodes/aarch64-dis-2.c +++ b/opcodes/aarch64-dis-2.c @@ -1,5 +1,5 @@ /* This file is automatically generated by aarch64-gen. Do not edit! */ -/* Copyright 2012, 2013 Free Software Foundation, Inc. +/* Copyright (C) 2012-2018 Free Software Foundation, Inc. Contributed by ARM Ltd. This file is part of the GNU opcodes library. @@ -38,17 +38,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx0000xxx0 + 0xxx0000xxxxxxxxxxxxxxxxxxxxxxxx adr. */ - return 781; + return 1165; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx0000xxx1 + 1xxx0000xxxxxxxxxxxxxxxxxxxxxxxx adrp. */ - return 782; + return 1166; } } else @@ -59,7 +59,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx1000x00x + x00x0001xxxxxxxxxxxxxxxxxxxxxxxx add. */ return 12; } @@ -67,7 +67,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx1000x01x + x10x0001xxxxxxxxxxxxxxxxxxxxxxxx sub. */ return 16; } @@ -78,7 +78,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx1000x10x + x01x0001xxxxxxxxxxxxxxxxxxxxxxxx adds. */ return 14; } @@ -86,7 +86,7 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx1000x11x + x11x0001xxxxxxxxxxxxxxxxxxxxxxxx subs. */ return 17; } @@ -113,35 +113,46 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx000x0010000 + 0000100x000xxxxx0xxxxxxxxxxxxxxx stxrb. */ - return 717; + return 920; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx000x0010010 + 0100100x000xxxxx0xxxxxxxxxxxxxxx stxrh. */ - return 723; + return 926; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx000x00100x1 + 1x00100x000xxxxx0xxxxxxxxxxxxxxx stxr. */ - return 729; + return 932; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx100x00100xx - stxp. */ - return 731; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x00100x001xxxxx0xxxxxxxxxxxxxxx + casp. */ + return 1000; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x00100x001xxxxx0xxxxxxxxxxxxxxx + stxp. */ + return 934; + } } } else @@ -154,35 +165,46 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx000x0010000 + 0000100x000xxxxx1xxxxxxxxxxxxxxx stlxrb. */ - return 718; + return 921; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx000x0010010 + 0100100x000xxxxx1xxxxxxxxxxxxxxx stlxrh. */ - return 724; + return 927; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx000x00100x1 + 1x00100x000xxxxx1xxxxxxxxxxxxxxx stlxr. */ - return 730; + return 933; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx100x00100xx - stlxp. */ - return 732; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x00100x001xxxxx1xxxxxxxxxxxxxxx + caspl. */ + return 1002; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x00100x001xxxxx1xxxxxxxxxxxxxxx + stlxp. */ + return 935; + } } } } @@ -190,50 +212,138 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx00x00101xx + xx10100x00xxxxxxxxxxxxxxxxxxxxxx stnp. */ - return 739; + return 951; } } else { if (((word >> 29) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx01x0010000 - stlrb. */ - return 721; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x00100x100xxxxx0xxxxxxxxxxxxxxx + stllrb. */ + return 949; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x00100x100xxxxx0xxxxxxxxxxxxxxx + stllr. */ + return 948; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx01x0010010 - stlrh. */ - return 727; + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0000100x101xxxxx0xxxxxxxxxxxxxxx + casb. */ + return 988; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0100100x101xxxxx0xxxxxxxxxxxxxxx + cash. */ + return 989; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x00100x101xxxxx0xxxxxxxxxxxxxxx + cas. */ + return 990; + } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx01x00100x1 - stlr. */ - return 737; + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0000100x100xxxxx1xxxxxxxxxxxxxxx + stlrb. */ + return 924; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0100100x100xxxxx1xxxxxxxxxxxxxxx + stlrh. */ + return 930; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x00100x100xxxxx1xxxxxxxxxxxxxxx + stlr. */ + return 940; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0000100x101xxxxx1xxxxxxxxxxxxxxx + caslb. */ + return 992; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0100100x101xxxxx1xxxxxxxxxxxxxxx + caslh. */ + return 995; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x00100x101xxxxx1xxxxxxxxxxxxxxx + casl. */ + return 998; + } + } } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx01x00101xx + xx10100x10xxxxxxxxxxxxxxxxxxxxxx stp. */ - return 748; + return 960; } } } @@ -253,35 +363,46 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx010x0010000 + 0000100x010xxxxx0xxxxxxxxxxxxxxx ldxrb. */ - return 719; + return 922; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx010x0010010 + 0100100x010xxxxx0xxxxxxxxxxxxxxx ldxrh. */ - return 725; + return 928; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx010x00100x1 + 1x00100x010xxxxx0xxxxxxxxxxxxxxx ldxr. */ - return 733; + return 936; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx110x00100xx - ldxp. */ - return 735; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x00100x011xxxxx0xxxxxxxxxxxxxxx + caspa. */ + return 1001; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x00100x011xxxxx0xxxxxxxxxxxxxxx + ldxp. */ + return 938; + } } } else @@ -294,35 +415,46 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx010x0010000 + 0000100x010xxxxx1xxxxxxxxxxxxxxx ldaxrb. */ - return 720; + return 923; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx010x0010010 + 0100100x010xxxxx1xxxxxxxxxxxxxxx ldaxrh. */ - return 726; + return 929; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx010x00100x1 + 1x00100x010xxxxx1xxxxxxxxxxxxxxx ldaxr. */ - return 734; + return 937; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx110x00100xx - ldaxp. */ - return 736; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x00100x011xxxxx1xxxxxxxxxxxxxxx + caspal. */ + return 1003; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x00100x011xxxxx1xxxxxxxxxxxxxxx + ldaxp. */ + return 939; + } } } } @@ -332,17 +464,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx10x001010x + x010100x01xxxxxxxxxxxxxxxxxxxxxx ldnp. */ - return 740; + return 952; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx10x001011x + x110100x01xxxxxxxxxxxxxxxxxxxxxx ldpsw. */ - return 747; + return 959; } } } @@ -350,32 +482,131 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx11x0010000 - ldarb. */ - return 722; + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0000100x110xxxxx0xxxxxxxxxxxxxxx + ldlarb. */ + return 946; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0100100x110xxxxx0xxxxxxxxxxxxxxx + ldlarh. */ + return 947; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x00100x110xxxxx0xxxxxxxxxxxxxxx + ldlar. */ + return 945; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx11x0010010 - ldarh. */ - return 728; + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0000100x111xxxxx0xxxxxxxxxxxxxxx + casab. */ + return 991; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0100100x111xxxxx0xxxxxxxxxxxxxxx + casah. */ + return 994; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x00100x111xxxxx0xxxxxxxxxxxxxxx + casa. */ + return 997; + } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx11x00100x1 - ldar. */ - return 738; + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0000100x110xxxxx1xxxxxxxxxxxxxxx + ldarb. */ + return 925; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0100100x110xxxxx1xxxxxxxxxxxxxxx + ldarh. */ + return 931; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x00100x110xxxxx1xxxxxxxxxxxxxxx + ldar. */ + return 941; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0000100x111xxxxx1xxxxxxxxxxxxxxx + casalb. */ + return 993; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0100100x111xxxxx1xxxxxxxxxxxxxxx + casalh. */ + return 996; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x00100x111xxxxx1xxxxxxxxxxxxxxx + casal. */ + return 999; + } + } } } else @@ -384,17 +615,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx11x001010x + x010100x11xxxxxxxxxxxxxxxxxxxxxx ldp. */ - return 749; + return 961; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx11x001011x + x110100x11xxxxxxxxxxxxxxxxxxxxxx ldpsw. */ - return 752; + return 964; } } } @@ -410,9 +641,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx000110x0 + 0x011000xxxxxxxxxxxxxxxxxxxxxxxx ldr. */ - return 753; + return 965; } else { @@ -420,17 +651,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx00011001 + 10011000xxxxxxxxxxxxxxxxxxxxxxxx ldrsw. */ - return 755; + return 967; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx00011011 + 11011000xxxxxxxxxxxxxxxxxxxxxxxx prfm. */ - return 756; + return 968; } } } @@ -440,271 +671,68 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 11) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx0000011100 - sturb. */ - return 693; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000000xxxxxxxxx00xxxxxxxxxx + sturb. */ + return 906; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000000xxxxxxxxx00xxxxxxxxxx + sturh. */ + return 911; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx0000011110 - sturh. */ - return 703; + 1x111000000xxxxxxxxx00xxxxxxxxxx + stur. */ + return 914; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx00000111x1 - stur. */ - return 709; - } - } - else - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx1000011100 - ldurb. */ - return 694; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx1000011110 - ldurh. */ - return 704; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx10000111x1 - ldur. */ - return 710; - } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxxx100011100 - ldursb. */ - return 697; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxxx100011101 - ldursw. */ - return 713; - } - } - else - { - if (((word >> 31) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxxx100011110 - ldursh. */ - return 707; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxxx100011111 - prfum. */ - return 715; - } - } - } - } - else - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx00000011100 - sttrb. */ - return 684; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx00000011110 - sttrh. */ - return 687; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx000000111x1 - sttr. */ - return 690; - } - } - else - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx01000011100 - ldtrb. */ - return 685; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx01000011110 - ldtrh. */ - return 688; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx010000111x1 - ldtr. */ - return 691; - } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx0x100011100 - ldtrsb. */ - return 686; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx0x100011101 - ldtrsw. */ - return 692; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx0x10001111x - ldtrsh. */ - return 689; - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx10000011100 - strb. */ - return 672; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx10000011110 - strh. */ - return 677; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx100000111x1 - str. */ - return 680; - } - } - else - { - if (((word >> 31) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx11000011100 - ldrb. */ - return 673; + 00111000010xxxxxxxxx00xxxxxxxxxx + ldurb. */ + return 907; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx11000011110 - ldrh. */ - return 678; + 01111000010xxxxxxxxx00xxxxxxxxxx + ldurh. */ + return 912; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx110000111x1 - ldr. */ - return 681; + 1x111000010xxxxxxxxx00xxxxxxxxxx + ldur. */ + return 915; } } } @@ -716,17 +744,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx1x100011100 - ldrsb. */ - return 674; + 001110001x0xxxxxxxxx00xxxxxxxxxx + ldursb. */ + return 908; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx1x100011101 - ldrsw. */ - return 682; + 101110001x0xxxxxxxxx00xxxxxxxxxx + ldursw. */ + return 916; } } else @@ -735,493 +763,11113 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx1x100011110 - ldrsh. */ - return 679; + 011110001x0xxxxxxxxx00xxxxxxxxxx + ldursh. */ + return 913; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx1x100011111 - prfm. */ - return 683; + 111110001x0xxxxxxxxx00xxxxxxxxxx + prfum. */ + return 917; } } } } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxx0000011100 - strb. */ - return 649; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxx0000011110 - strh. */ - return 654; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxx00000111x1 - str. */ - return 657; - } - } else { - if (((word >> 31) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxx1000011100 - ldrb. */ - return 650; - } - else + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxx1000011110 - ldrh. */ - return 655; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxx10000111x1 - ldr. */ - return 658; - } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxxx100011100 - ldrsb. */ - return 651; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxxx100011101 - ldrsw. */ - return 659; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxxx10001111x - ldrsh. */ - return 656; - } - } - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx0010011x00 - strb. */ - return 660; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx0010011x10 - strh. */ - return 665; - } - } - else + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000001xxxxx000000xxxxxxxxxx + ldaddb. */ + return 1016; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000001xxxxx000000xxxxxxxxxx + ldaddh. */ + return 1017; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000001xxxxx000000xxxxxxxxxx + ldadd. */ + return 1018; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000101xxxxx000000xxxxxxxxxx + ldaddab. */ + return 1019; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000101xxxxx000000xxxxxxxxxx + ldaddah. */ + return 1022; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000101xxxxx000000xxxxxxxxxx + ldadda. */ + return 1025; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000011xxxxx000000xxxxxxxxxx + ldaddlb. */ + return 1020; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000011xxxxx000000xxxxxxxxxx + ldaddlh. */ + return 1023; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000011xxxxx000000xxxxxxxxxx + ldaddl. */ + return 1026; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000111xxxxx000000xxxxxxxxxx + ldaddalb. */ + return 1021; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000111xxxxx000000xxxxxxxxxx + ldaddalh. */ + return 1024; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000111xxxxx000000xxxxxxxxxx + ldaddal. */ + return 1027; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000001xxxxx100000xxxxxxxxxx + swpb. */ + return 1004; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000001xxxxx100000xxxxxxxxxx + swph. */ + return 1005; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000001xxxxx100000xxxxxxxxxx + swp. */ + return 1006; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000101xxxxx100000xxxxxxxxxx + swpab. */ + return 1007; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000101xxxxx100000xxxxxxxxxx + swpah. */ + return 1010; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000101xxxxx100000xxxxxxxxxx + swpa. */ + return 1013; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000011xxxxx100000xxxxxxxxxx + swplb. */ + return 1008; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000011xxxxx100000xxxxxxxxxx + swplh. */ + return 1011; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000011xxxxx100000xxxxxxxxxx + swpl. */ + return 1014; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000111xxxxx100000xxxxxxxxxx + swpalb. */ + return 1009; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000111xxxxx100000xxxxxxxxxx + swpalh. */ + return 1012; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000111xxxxx100000xxxxxxxxxx + swpal. */ + return 1015; + } + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000001xxxxx010000xxxxxxxxxx + ldsmaxb. */ + return 1064; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000001xxxxx010000xxxxxxxxxx + ldsmaxh. */ + return 1065; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000001xxxxx010000xxxxxxxxxx + ldsmax. */ + return 1066; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000101xxxxx010000xxxxxxxxxx + ldsmaxab. */ + return 1067; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000101xxxxx010000xxxxxxxxxx + ldsmaxah. */ + return 1070; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000101xxxxx010000xxxxxxxxxx + ldsmaxa. */ + return 1073; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000011xxxxx010000xxxxxxxxxx + ldsmaxlb. */ + return 1068; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000011xxxxx010000xxxxxxxxxx + ldsmaxlh. */ + return 1071; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000011xxxxx010000xxxxxxxxxx + ldsmaxl. */ + return 1074; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000111xxxxx010000xxxxxxxxxx + ldsmaxalb. */ + return 1069; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000111xxxxx010000xxxxxxxxxx + ldsmaxalh. */ + return 1072; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000111xxxxx010000xxxxxxxxxx + ldsmaxal. */ + return 1075; + } + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000xx1xxxxx110000xxxxxxxxxx + ldaprb. */ + return 942; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000xx1xxxxx110000xxxxxxxxxx + ldaprh. */ + return 943; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000xx1xxxxx110000xxxxxxxxxx + ldapr. */ + return 944; + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000001xxxxxx01000xxxxxxxxxx + ldeorb. */ + return 1040; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000001xxxxxx01000xxxxxxxxxx + ldeorh. */ + return 1041; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000001xxxxxx01000xxxxxxxxxx + ldeor. */ + return 1042; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000101xxxxxx01000xxxxxxxxxx + ldeorab. */ + return 1043; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000101xxxxxx01000xxxxxxxxxx + ldeorah. */ + return 1046; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000101xxxxxx01000xxxxxxxxxx + ldeora. */ + return 1049; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000011xxxxxx01000xxxxxxxxxx + ldeorlb. */ + return 1044; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000011xxxxxx01000xxxxxxxxxx + ldeorlh. */ + return 1047; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000011xxxxxx01000xxxxxxxxxx + ldeorl. */ + return 1050; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000111xxxxxx01000xxxxxxxxxx + ldeoralb. */ + return 1045; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000111xxxxxx01000xxxxxxxxxx + ldeoralh. */ + return 1048; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000111xxxxxx01000xxxxxxxxxx + ldeoral. */ + return 1051; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000001xxxxxx11000xxxxxxxxxx + ldumaxb. */ + return 1088; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000001xxxxxx11000xxxxxxxxxx + ldumaxh. */ + return 1089; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000001xxxxxx11000xxxxxxxxxx + ldumax. */ + return 1090; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000101xxxxxx11000xxxxxxxxxx + ldumaxab. */ + return 1091; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000101xxxxxx11000xxxxxxxxxx + ldumaxah. */ + return 1094; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000101xxxxxx11000xxxxxxxxxx + ldumaxa. */ + return 1097; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000011xxxxxx11000xxxxxxxxxx + ldumaxlb. */ + return 1092; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000011xxxxxx11000xxxxxxxxxx + ldumaxlh. */ + return 1095; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000011xxxxxx11000xxxxxxxxxx + ldumaxl. */ + return 1098; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000111xxxxxx11000xxxxxxxxxx + ldumaxalb. */ + return 1093; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000111xxxxxx11000xxxxxxxxxx + ldumaxalh. */ + return 1096; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000111xxxxxx11000xxxxxxxxxx + ldumaxal. */ + return 1099; + } + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000001xxxxxx00100xxxxxxxxxx + ldclrb. */ + return 1028; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000001xxxxxx00100xxxxxxxxxx + ldclrh. */ + return 1029; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000001xxxxxx00100xxxxxxxxxx + ldclr. */ + return 1030; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000101xxxxxx00100xxxxxxxxxx + ldclrab. */ + return 1031; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000101xxxxxx00100xxxxxxxxxx + ldclrah. */ + return 1034; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000101xxxxxx00100xxxxxxxxxx + ldclra. */ + return 1037; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000011xxxxxx00100xxxxxxxxxx + ldclrlb. */ + return 1032; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000011xxxxxx00100xxxxxxxxxx + ldclrlh. */ + return 1035; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000011xxxxxx00100xxxxxxxxxx + ldclrl. */ + return 1038; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000111xxxxxx00100xxxxxxxxxx + ldclralb. */ + return 1033; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000111xxxxxx00100xxxxxxxxxx + ldclralh. */ + return 1036; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000111xxxxxx00100xxxxxxxxxx + ldclral. */ + return 1039; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000001xxxxxx10100xxxxxxxxxx + ldsminb. */ + return 1076; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000001xxxxxx10100xxxxxxxxxx + ldsminh. */ + return 1077; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000001xxxxxx10100xxxxxxxxxx + ldsmin. */ + return 1078; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000101xxxxxx10100xxxxxxxxxx + ldsminab. */ + return 1079; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000101xxxxxx10100xxxxxxxxxx + ldsminah. */ + return 1082; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000101xxxxxx10100xxxxxxxxxx + ldsmina. */ + return 1085; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000011xxxxxx10100xxxxxxxxxx + ldsminlb. */ + return 1080; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000011xxxxxx10100xxxxxxxxxx + ldsminlh. */ + return 1083; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000011xxxxxx10100xxxxxxxxxx + ldsminl. */ + return 1086; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000111xxxxxx10100xxxxxxxxxx + ldsminalb. */ + return 1081; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000111xxxxxx10100xxxxxxxxxx + ldsminalh. */ + return 1084; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000111xxxxxx10100xxxxxxxxxx + ldsminal. */ + return 1087; + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000001xxxxxx01100xxxxxxxxxx + ldsetb. */ + return 1052; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000001xxxxxx01100xxxxxxxxxx + ldseth. */ + return 1053; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000001xxxxxx01100xxxxxxxxxx + ldset. */ + return 1054; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000101xxxxxx01100xxxxxxxxxx + ldsetab. */ + return 1055; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000101xxxxxx01100xxxxxxxxxx + ldsetah. */ + return 1058; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000101xxxxxx01100xxxxxxxxxx + ldseta. */ + return 1061; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000011xxxxxx01100xxxxxxxxxx + ldsetlb. */ + return 1056; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000011xxxxxx01100xxxxxxxxxx + ldsetlh. */ + return 1059; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000011xxxxxx01100xxxxxxxxxx + ldsetl. */ + return 1062; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000111xxxxxx01100xxxxxxxxxx + ldsetalb. */ + return 1057; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000111xxxxxx01100xxxxxxxxxx + ldsetalh. */ + return 1060; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000111xxxxxx01100xxxxxxxxxx + ldsetal. */ + return 1063; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000001xxxxxx11100xxxxxxxxxx + lduminb. */ + return 1100; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000001xxxxxx11100xxxxxxxxxx + lduminh. */ + return 1101; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000001xxxxxx11100xxxxxxxxxx + ldumin. */ + return 1102; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000101xxxxxx11100xxxxxxxxxx + lduminab. */ + return 1103; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000101xxxxxx11100xxxxxxxxxx + lduminah. */ + return 1106; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000101xxxxxx11100xxxxxxxxxx + ldumina. */ + return 1109; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000011xxxxxx11100xxxxxxxxxx + lduminlb. */ + return 1104; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000011xxxxxx11100xxxxxxxxxx + lduminlh. */ + return 1107; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000011xxxxxx11100xxxxxxxxxx + lduminl. */ + return 1110; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000111xxxxxx11100xxxxxxxxxx + lduminalb. */ + return 1105; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000111xxxxxx11100xxxxxxxxxx + lduminalh. */ + return 1108; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000111xxxxxx11100xxxxxxxxxx + lduminal. */ + return 1111; + } + } + } + } + } + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000000xxxxxxxxx10xxxxxxxxxx + sttrb. */ + return 897; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000000xxxxxxxxx10xxxxxxxxxx + sttrh. */ + return 900; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000000xxxxxxxxx10xxxxxxxxxx + sttr. */ + return 903; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000010xxxxxxxxx10xxxxxxxxxx + ldtrb. */ + return 898; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000010xxxxxxxxx10xxxxxxxxxx + ldtrh. */ + return 901; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000010xxxxxxxxx10xxxxxxxxxx + ldtr. */ + return 904; + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001110001x0xxxxxxxxx10xxxxxxxxxx + ldtrsb. */ + return 899; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101110001x0xxxxxxxxx10xxxxxxxxxx + ldtrsw. */ + return 905; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11110001x0xxxxxxxxx10xxxxxxxxxx + ldtrsh. */ + return 902; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000001xxxxxxxxx10xxxxxxxxxx + strb. */ + return 885; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000001xxxxxxxxx10xxxxxxxxxx + strh. */ + return 890; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000001xxxxxxxxx10xxxxxxxxxx + str. */ + return 893; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000011xxxxxxxxx10xxxxxxxxxx + ldrb. */ + return 886; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000011xxxxxxxxx10xxxxxxxxxx + ldrh. */ + return 891; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000011xxxxxxxxx10xxxxxxxxxx + ldr. */ + return 894; + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001110001x1xxxxxxxxx10xxxxxxxxxx + ldrsb. */ + return 887; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101110001x1xxxxxxxxx10xxxxxxxxxx + ldrsw. */ + return 895; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011110001x1xxxxxxxxx10xxxxxxxxxx + ldrsh. */ + return 892; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111110001x1xxxxxxxxx10xxxxxxxxxx + prfm. */ + return 896; + } + } + } + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000000xxxxxxxxxx1xxxxxxxxxx + strb. */ + return 862; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000000xxxxxxxxxx1xxxxxxxxxx + strh. */ + return 867; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000000xxxxxxxxxx1xxxxxxxxxx + str. */ + return 870; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00111000010xxxxxxxxxx1xxxxxxxxxx + ldrb. */ + return 863; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01111000010xxxxxxxxxx1xxxxxxxxxx + ldrh. */ + return 868; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x111000010xxxxxxxxxx1xxxxxxxxxx + ldr. */ + return 871; + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001110001x0xxxxxxxxxx1xxxxxxxxxx + ldrsb. */ + return 864; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101110001x0xxxxxxxxxx1xxxxxxxxxx + ldrsw. */ + return 872; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11110001x0xxxxxxxxxx1xxxxxxxxxx + ldrsh. */ + return 869; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1110000x1xxxxxxxxxx1xxxxxxxxxx + ldraa. */ + return 918; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1110001x1xxxxxxxxxx1xxxxxxxxxx + ldrab. */ + return 919; + } + } + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0001100100xxxxxxxxxxxxxxxxxxxxxx + stlurb. */ + return 2056; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1001100100xxxxxxxxxxxxxxxxxxxxxx + stlur. */ + return 2064; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0101100100xxxxxxxxxxxxxxxxxxxxxx + stlurh. */ + return 2060; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1101100100xxxxxxxxxxxxxxxxxxxxxx + stlur. */ + return 2067; + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0011100100xxxxxxxxxxxxxxxxxxxxxx + strb. */ + return 873; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0111100100xxxxxxxxxxxxxxxxxxxxxx + strh. */ + return 878; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x11100100xxxxxxxxxxxxxxxxxxxxxx + str. */ + return 881; + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0001100101xxxxxxxxxxxxxxxxxxxxxx + ldapurb. */ + return 2057; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1001100101xxxxxxxxxxxxxxxxxxxxxx + ldapur. */ + return 2065; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0101100101xxxxxxxxxxxxxxxxxxxxxx + ldapurh. */ + return 2061; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1101100101xxxxxxxxxxxxxxxxxxxxxx + ldapur. */ + return 2068; + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0011100101xxxxxxxxxxxxxxxxxxxxxx + ldrb. */ + return 874; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0111100101xxxxxxxxxxxxxxxxxxxxxx + ldrh. */ + return 879; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x11100101xxxxxxxxxxxxxxxxxxxxxx + ldr. */ + return 882; + } + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0001100110xxxxxxxxxxxxxxxxxxxxxx + ldapursb. */ + return 2059; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1001100110xxxxxxxxxxxxxxxxxxxxxx + ldapursw. */ + return 2066; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x101100110xxxxxxxxxxxxxxxxxxxxxx + ldapursh. */ + return 2063; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x001100111xxxxxxxxxxxxxxxxxxxxxx + ldapursb. */ + return 2058; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x101100111xxxxxxxxxxxxxxxxxxxxxx + ldapursh. */ + return 2062; + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001110011xxxxxxxxxxxxxxxxxxxxxxx + ldrsb. */ + return 875; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101110011xxxxxxxxxxxxxxxxxxxxxxx + ldrsw. */ + return 883; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011110011xxxxxxxxxxxxxxxxxxxxxxx + ldrsh. */ + return 880; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111110011xxxxxxxxxxxxxxxxxxxxxxx + prfm. */ + return 884; + } + } + } + } + } + } + } + } + else + { + if (((word >> 24) & 0x1) == 0) + { + if (((word >> 27) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x00x00100xxxxxxxxxxxxxxxxxxxxxxx + and. */ + return 969; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10x00100xxxxxxxxxxxxxxxxxxxxxxx + eor. */ + return 973; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01x00100xxxxxxxxxxxxxxxxxxxxxxx + orr. */ + return 971; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11x00100xxxxxxxxxxxxxxxxxxxxxxx + ands. */ + return 974; + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x00x00101xxxxxxxxxxxxxxxxxxxxxxx + movn. */ + return 1160; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10x00101xxxxxxxxxxxxxxxxxxxxxxx + movz. */ + return 1162; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1x00101xxxxxxxxxxxxxxxxxxxxxxx + movk. */ + return 1164; + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 28) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001010xx0xxxxxxxxxxxxxxxxxxxxx + and. */ + return 976; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001010xx0xxxxxxxxxxxxxxxxxxxxx + eor. */ + return 983; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101010xx0xxxxxxxxxxxxxxxxxxxxx + orr. */ + return 978; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101010xx0xxxxxxxxxxxxxxxxxxxxx + ands. */ + return 985; + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011010000xxxxxxxxx00xxxxxxxxxx + adc. */ + return 0; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011010000xxxxxxxxx00xxxxxxxxxx + sbc. */ + return 2; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0111010000xxxxxxxxx00xxxxxxxxxx + adcs. */ + return 1; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1111010000xxxxxxxxx00xxxxxxxxxx + sbcs. */ + return 4; + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010100xxxxxxxxx00xxxxxxxxxx + csel. */ + return 660; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010100xxxxxxxxx00xxxxxxxxxx + csinv. */ + return 664; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010010xxxxxxxxx00xxxxxxxxxx + ccmn. */ + return 658; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010010xxxxxxxxx00xxxxxxxxxx + ccmp. */ + return 659; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxx0x00000xxxxxxxxxx + rbit. */ + return 683; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxx1x00000xxxxxxxxxx + pacia. */ + return 691; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010110xxxxxx10000xxxxxxxxxx + crc32b. */ + return 720; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010110xxxxxx10000xxxxxxxxxx + xpaci. */ + return 707; + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010110xxxxxxx1000xxxxxxxxxx + lslv. */ + return 711; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010110xxxxxxx1000xxxxxxxxxx + paciza. */ + return 699; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxx0x00100xxxxxxxxxx + clz. */ + return 688; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxx1x00100xxxxxxxxxx + autia. */ + return 695; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxx10100xxxxxxxxxx + crc32cb. */ + return 724; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010110xxxxxxx1100xxxxxxxxxx + pacga. */ + return 719; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010110xxxxxxx1100xxxxxxxxxx + autiza. */ + return 703; + } + } + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010x00xxxxxx0xx10xxxxxxxxxx + setf8. */ + return 2054; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010x00xxxxxx1xx10xxxxxxxxxx + setf16. */ + return 2055; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010010xxxxxxxxx10xxxxxxxxxx + ccmn. */ + return 656; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010010xxxxxxxxx10xxxxxxxxxx + ccmp. */ + return 657; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010110xxxxxx00010xxxxxxxxxx + udiv. */ + return 709; + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01x11010110xxxx0x00010xxxxxxxxxx + rev. */ + return 685; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11x11010110xxxx0x00010xxxxxxxxxx + rev32. */ + return 690; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010110xxxx1x00010xxxxxxxxxx + pacda. */ + return 693; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxx10010xxxxxxxxxx + crc32w. */ + return 722; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010110xxxxxxx1010xxxxxxxxxx + asrv. */ + return 715; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010110xxxxxxx1010xxxxxxxxxx + pacdza. */ + return 701; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxx00110xxxxxxxxxx + autda. */ + return 697; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxx10110xxxxxxxxxx + crc32cw. */ + return 726; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010110xxxxxxx1110xxxxxxxxxx + autdza. */ + return 705; + } + } + } + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010000xxxxxxxxx01xxxxxxxxxx + rmif. */ + return 2053; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010100xxxxxxxxx01xxxxxxxxxx + csinc. */ + return 661; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010100xxxxxxxxx01xxxxxxxxxx + csneg. */ + return 667; + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010x10xxxx0x00001xxxxxxxxxx + rev16. */ + return 684; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010x10xxxx1x00001xxxxxxxxxx + pacib. */ + return 692; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010x10xxxxxx10001xxxxxxxxxx + crc32h. */ + return 721; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010x10xxxxxx10001xxxxxxxxxx + xpacd. */ + return 708; + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010x10xxxxxxx1001xxxxxxxxxx + lsrv. */ + return 713; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010x10xxxxxxx1001xxxxxxxxxx + pacizb. */ + return 700; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010x10xxxx0x00101xxxxxxxxxx + cls. */ + return 689; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010x10xxxx1x00101xxxxxxxxxx + autib. */ + return 696; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010x10xxxxxx10101xxxxxxxxxx + crc32ch. */ + return 725; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010x10xxxxxxx1101xxxxxxxxxx + autizb. */ + return 704; + } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010xx0xxxxxx00011xxxxxxxxxx + sdiv. */ + return 710; + } + else + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010xx0xxxx0x00011xxxxxxxxxx + rev. */ + return 686; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010xx0xxxx1x00011xxxxxxxxxx + pacdb. */ + return 694; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010xx0xxxxxx10011xxxxxxxxxx + crc32x. */ + return 723; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11010xx0xxxxxxx1011xxxxxxxxxx + rorv. */ + return 717; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11010xx0xxxxxxx1011xxxxxxxxxx + pacdzb. */ + return 702; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010xx0xxxxxx00111xxxxxxxxxx + autdb. */ + return 698; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010xx0xxxxxx10111xxxxxxxxxx + crc32cx. */ + return 727; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11010xx0xxxxxxx1111xxxxxxxxxx + autdzb. */ + return 706; + } + } + } + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x00x1010xx1xxxxxxxxxxxxxxxxxxxxx + bic. */ + return 977; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10x1010xx1xxxxxxxxxxxxxxxxxxxxx + eon. */ + return 984; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01x1010xx1xxxxxxxxxxxxxxxxxxxxx + orn. */ + return 981; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11x1010xx1xxxxxxxxxxxxxxxxxxxxx + bics. */ + return 987; + } + } + } + } + } + else + { + if (((word >> 27) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x00x00110xxxxxxxxxxxxxxxxxxxxxxx + sbfm. */ + return 616; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10x00110xxxxxxxxxxxxxxxxxxxxxxx + ubfm. */ + return 627; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1x00110xxxxxxxxxxxxxxxxxxxxxxx + bfm. */ + return 623; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxx00111xxxxxxxxxxxxxxxxxxxxxxx + extr. */ + return 750; + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 28) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001011xx0xxxxxxxxxxxxxxxxxxxxx + add. */ + return 19; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001011xx0xxxxxxxxxxxxxxxxxxxxx + sub. */ + return 22; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101011xx0xxxxxxxxxxxxxxxxxxxxx + adds. */ + return 20; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101011xx0xxxxxxxxxxxxxxxxxxxxx + subs. */ + return 24; + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11011x00xxxxx0xxxxxxxxxxxxxxx + madd. */ + return 728; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11011010xxxxx0xxxxxxxxxxxxxxx + smulh. */ + return 736; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11011110xxxxx0xxxxxxxxxxxxxxx + umulh. */ + return 741; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11011xx0xxxxx1xxxxxxxxxxxxxxx + msub. */ + return 730; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 28) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x00010110x1xxxxxxxxxxxxxxxxxxxxx + add. */ + return 6; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10010110x1xxxxxxxxxxxxxxxxxxxxx + sub. */ + return 9; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01010110x1xxxxxxxxxxxxxxxxxxxxx + adds. */ + return 7; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11010110x1xxxxxxxxxxxxxxxxxxxxx + subs. */ + return 10; + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx110110x1xxxxx0xxxxxxxxxxxxxxx + smaddl. */ + return 732; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx110110x1xxxxx1xxxxxxxxxxxxxxx + smsubl. */ + return 734; + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxx10111x1xxxxx0xxxxxxxxxxxxxxx + umaddl. */ + return 737; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxxx10111x1xxxxx1xxxxxxxxxxxxxxx + umsubl. */ + return 739; + } + } + } + } + } + } + } + else + { + if (((word >> 27) & 0x1) == 0) + { + if (((word >> 28) & 0x1) == 0) + { + if (((word >> 24) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 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 + 000001x0xx000000000xxxxxxxxxxxxx + add. */ + return 1245; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010000000xxxxxxxxxxxxx + mul. */ + return 1714; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001000000xxxxxxxxxxxxx + smax. */ + return 1793; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011000000xxxxxxxxxxxxx + orr. */ + return 1725; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0100000xxxxxxxxxxxxx + sdiv. */ + return 1784; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1100000xxxxxxxxxxxxx + sabd. */ + return 1775; + } + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0010000xxxxxxxxxxxxx + smulh. */ + return 1798; + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001010000xxxxxxxxxxxxx + smin. */ + return 1796; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011010000xxxxxxxxxxxxx + and. */ + return 1253; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xx110000xxxxxxxxxxxxx + sdivr. */ + return 1785; + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0001000xxxxxxxxxxxxx + sub. */ + return 1914; + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001001000xxxxxxxxxxxxx + umax. */ + return 1942; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011001000xxxxxxxxxxxxx + eor. */ + return 1340; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0101000xxxxxxxxxxxxx + udiv. */ + return 1936; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1101000xxxxxxxxxxxxx + uabd. */ + return 1927; + } + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000011000xxxxxxxxxxxxx + subr. */ + return 1916; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010011000xxxxxxxxxxxxx + umulh. */ + return 1947; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001011000xxxxxxxxxxxxx + umin. */ + return 1945; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011011000xxxxxxxxxxxxx + bic. */ + return 1265; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xx111000xxxxxxxxxxxxx + udivr. */ + return 1937; + } + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x00x0xxxxx000xxxxxxxxxxxxx + ld1sb. */ + return 1527; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x01x0xxxxx000xxxxxxxxxxxxx + ld1sh. */ + return 1538; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x0xxxxx000xxxxxxxxxxxxx + ld1sb. */ + return 1531; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x01x0xxxxx000xx0xxxxxxxxxx + sdot. */ + return 1786; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x01x0xxxxx000xx1xxxxxxxxxx + udot. */ + return 1938; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x01x0xxxxx000xxxxxxxxxxxxx + ld1sh. */ + return 1542; + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx000000xxxxxxxxxx + add. */ + return 1243; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx000100xxxxxxxxxx + sqadd. */ + return 1800; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx000x10xxxxxxxxxx + sqsub. */ + return 1830; + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx000001xxxxxxxxxx + sub. */ + return 1912; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx000101xxxxxxxxxx + uqadd. */ + return 1948; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx000x11xxxxxxxxxx + uqsub. */ + return 1978; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x00x1xxxxx000xxxxxxxxxxxxx + prfb. */ + return 1733; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x01x1xxxxx000xxxxxxxxxxxxx + ld1sh. */ + return 1539; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x1xxxxx000xxxxxxxxxxxxx + prfb. */ + return 1734; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx000xx0xxxxxxxxxx + sdot. */ + return 1787; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx000xx0xxxxxxxxxx + sdot. */ + return 1788; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0101xxxxx000xx1xxxxxxxxxx + udot. */ + return 1939; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 010001x0111xxxxx000xx1xxxxxxxxxx + udot. */ + return 1940; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 110001x01x1xxxxx000xxxxxxxxxxxxx + ld1sh. */ + return 1543; + } + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0000x0100xxxxxxxxxxxxx + asr. */ + return 1261; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0100x0100xxxxxxxxxxxxx + asr. */ + return 1259; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x10x0100xxxxxxxxxxxxx + asr. */ + return 1260; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx00x1x0100xxxxxxxxxxxxx + asrd. */ + return 1262; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx01x1x0100xxxxxxxxxxxxx + asrr. */ + return 1263; + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000001100xxxxxxxxxxxxx + lsr. */ + return 1705; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010001100xxxxxxxxxxxxx + lsr. */ + return 1703; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1001100xxxxxxxxxxxxx + lsr. */ + return 1704; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xx101100xxxxxxxxxxxxx + lsrr. */ + return 1706; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000011100xxxxxxxxxxxxx + lsl. */ + return 1699; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010011100xxxxxxxxxxxxx + lsl. */ + return 1697; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1011100xxxxxxxxxxxxx + lsl. */ + return 1698; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xx111100xxxxxxxxxxxxx + lslr. */ + return 1700; + } + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx1000x0xxxxxxxxxx + asr. */ + return 1257; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx1001x0xxxxxxxxxx + asr. */ + return 1258; + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx100001xxxxxxxxxx + lsr. */ + return 1701; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx100101xxxxxxxxxx + lsr. */ + return 1702; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx100011xxxxxxxxxx + lsl. */ + return 1695; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx100111xxxxxxxxxx + lsl. */ + return 1696; + } + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x000xxxxxx100xxxxxxxxxxxxx + ld1sb. */ + return 1533; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x010xxxxxx100xxxxxxxxxxxxx + ld1sh. */ + return 1546; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x001xxxxxx100xxxxxxxxxxxxx + ld1rb. */ + return 1503; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x011xxxxxx100xxxxxxxxxxxxx + ld1rsw. */ + return 1524; + } + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x0xxxxx100xxxxxxxxxxxxx + ld1sb. */ + return 1532; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x01x0xxxxx100xxxxxxxxxxxxx + ld1sh. */ + return 1544; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0001xxxxx100xxxxxxxxxxxxx + ld1sb. */ + return 1537; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0101xxxxx100xxxxxxxxxxxxx + ld1sh. */ + return 1549; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0011xxxxx100xxxxxxxxxxxxx + prfb. */ + return 1735; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0111xxxxx100xxxxxxxxxxxxx + ld1sh. */ + return 1545; + } + } + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xxxxx010xxxxxxxxxxxxx + mla. */ + return 1708; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x00x0xxxxx010xxxxxxxxxxxxx + ld1b. */ + return 1469; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x01x0xxxxx010xxxxxxxxxxxxx + ld1h. */ + return 1489; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x0xxxxx010xxxxxxxxxxxxx + ld1b. */ + return 1474; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x01x0xxxxx010xxxxxxxxxxxxx + ld1h. */ + return 1494; + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx010000xxxxxxxxxx + index. */ + return 1460; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx010001xxxxxxxxxx + index. */ + return 1461; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0001xxxxx01010xxxxxxxxxxx + addvl. */ + return 1247; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0101xxxxx01010xxxxxxxxxxx + rdvl. */ + return 1769; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0x11xxxxx01010xxxxxxxxxxx + addpl. */ + return 1246; + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx010x10xxxxxxxxxx + index. */ + return 1462; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx010x11xxxxxxxxxx + index. */ + return 1459; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x00x1xxxxx010xxxxxxxxxxxxx + prfw. */ + return 1753; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x01x1xxxxx010xxxxxxxxxxxxx + ld1h. */ + return 1490; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x1xxxxx010xxxxxxxxxxxxx + prfw. */ + return 1755; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x01x1xxxxx010xxxxxxxxxxxxx + ld1h. */ + return 1495; + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xxxxx110xxxxxxxxxxxxx + mad. */ + return 1707; + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0x010xxxx110x00xxxxxxxxxx + sqincw. */ + return 1827; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx110x00xxxxxxxxxx + sqinch. */ + return 1821; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx110x00xxxxxxxxxx + sqincd. */ + return 1818; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0x011xxxx110x00xxxxxxxxxx + incw. */ + return 1457; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx110x00xxxxxxxxxx + inch. */ + return 1453; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx110x00xxxxxxxxxx + incd. */ + return 1451; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0x01xxxxx110x10xxxxxxxxxx + sqdecw. */ + return 1813; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0011xxxxx110x10xxxxxxxxxx + sqdech. */ + return 1807; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0111xxxxx110x10xxxxxxxxxx + sqdecd. */ + return 1804; + } + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0x010xxxx110x01xxxxxxxxxx + uqincw. */ + return 1975; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx110x01xxxxxxxxxx + uqinch. */ + return 1969; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx110x01xxxxxxxxxx + uqincd. */ + return 1966; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0x011xxxx110x01xxxxxxxxxx + decw. */ + return 1332; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx110x01xxxxxxxxxx + dech. */ + return 1328; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx110x01xxxxxxxxxx + decd. */ + return 1326; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0x01xxxxx110x11xxxxxxxxxx + uqdecw. */ + return 1961; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0011xxxxx110x11xxxxxxxxxx + uqdech. */ + return 1955; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0111xxxxx110x11xxxxxxxxxx + uqdecd. */ + return 1952; + } + } + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0000xxxxx110xxxxxxxxxxxxx + prfb. */ + return 1732; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0100xxxxx110xxxxxxxxxxxxx + prfh. */ + return 1747; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0001xxxxx110xxxxxxxxxxxxx + ld1b. */ + return 1476; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0101xxxxx110xxxxxxxxxxxxx + ld1h. */ + return 1498; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x001xxxxxx110xxxxxxxxxxxxx + ld1rb. */ + return 1505; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x011xxxxxx110xxxxxxxxxxxxx + ld1rh. */ + return 1509; + } + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x0xxxxx110xxxxxxxxxxxxx + ld1b. */ + return 1475; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x01x0xxxxx110xxxxxxxxxxxxx + ld1h. */ + return 1496; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0001xxxxx110xxxxxxxxxxxxx + ld1b. */ + return 1481; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0101xxxxx110xxxxxxxxxxxxx + ld1h. */ + return 1502; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0011xxxxx110xxxxxxxxxxxxx + prfw. */ + return 1756; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0111xxxxx110xxxxxxxxxxxxx + ld1h. */ + return 1497; + } + } + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000x00001xxxxxxxxxxxxx + saddv. */ + return 1776; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx000x01001xxxxxxxxxxxxx + uaddv. */ + return 1928; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx010x0x001xxxxxxxxxxxxx + movprfx. */ + return 1711; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001x00001xxxxxxxxxxxxx + smaxv. */ + return 1794; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011x00001xxxxxxxxxxxxx + orv. */ + return 1728; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx001x01001xxxxxxxxxxxxx + umaxv. */ + return 1943; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx011x01001xxxxxxxxxxxxx + eorv. */ + return 1343; + } + } + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx00xx10001xxxxxxxxxxxxx + sminv. */ + return 1797; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx01xx10001xxxxxxxxxxxxx + andv. */ + return 1256; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xxx11001xxxxxxxxxxxxx + uminv. */ + return 1946; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x00x0xxxxx001xxxxxxxxxxxxx + ldff1sb. */ + return 1627; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x01x0xxxxx001xxxxxxxxxxxxx + ldff1sh. */ + return 1638; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x0xxxxx001xxxxxxxxxxxxx + ldff1sb. */ + return 1634; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x01x0xxxxx001xxxxxxxxxxxxx + ldff1sh. */ + return 1644; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0001xxxxx001xxxxxxxxxxxxx + and. */ + return 1251; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0011xxxxx001xxxxxxxxxxxxx + orr. */ + return 1723; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x00x1xxxxx001xxxxxxxxxxxxx + prfh. */ + return 1746; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x1xxxxx001xxxxxxxxxxxxx + prfh. */ + return 1748; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0101xxxxx001xxxxxxxxxxxxx + eor. */ + return 1338; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0111xxxxx001xxxxxxxxxxxxx + bic. */ + return 1264; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x01x1xxxxx001xxxxxxxxxxxxx + ldff1sh. */ + return 1639; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x01x1xxxxx001xxxxxxxxxxxxx + ldff1sh. */ + return 1645; + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0000101xxxxxxxxxxxxx + sxtb. */ + return 1919; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1000101xxxxxxxxxxxxx + cls. */ + return 1284; + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0100101xxxxxxxxxxxxx + sxtw. */ + return 1921; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1100101xxxxxxxxxxxxx + fabs. */ + return 1346; + } + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0010101xxxxxxxxxxxxx + sxth. */ + return 1920; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1010101xxxxxxxxxxxxx + cnt. */ + return 1313; + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0110101xxxxxxxxxxxxx + abs. */ + return 1242; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1110101xxxxxxxxxxxxx + not. */ + return 1720; + } + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0001101xxxxxxxxxxxxx + uxtb. */ + return 1982; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1001101xxxxxxxxxxxxx + clz. */ + return 1285; + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0101101xxxxxxxxxxxxx + uxtw. */ + return 1984; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1101101xxxxxxxxxxxxx + fneg. */ + return 1423; + } + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x0011101xxxxxxxxxxxxx + uxth. */ + return 1983; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0x1011101xxxxxxxxxxxxx + cnot. */ + return 1312; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xx111101xxxxxxxxxxxxx + neg. */ + return 1717; + } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0001xxxxx1010xxxxxxxxxxxx + adr. */ + return 1248; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0011xxxxx1010xxxxxxxxxxxx + adr. */ + return 1249; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01x1xxxxx1010xxxxxxxxxxxx + adr. */ + return 1250; + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx101100xxxxxxxxxx + ftssel. */ + return 1449; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx101110xxxxxxxxxx + fexpa. */ + return 1393; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx1xxxxx1011x1xxxxxxxxxx + movprfx. */ + return 1710; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x000xxxxxx101xxxxxxxxxxxxx + ldff1sb. */ + return 1636; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x010xxxxxx101xxxxxxxxxxxxx + ldff1sh. */ + return 1648; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x001xxxxxx101xxxxxxxxxxxxx + ld1rb. */ + return 1504; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x011xxxxxx101xxxxxxxxxxxxx + ld1rh. */ + return 1508; + } + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x0xxxxx101xxxxxxxxxxxxx + ldff1sb. */ + return 1635; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x01x0xxxxx101xxxxxxxxxxxxx + ldff1sh. */ + return 1646; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0001xxxxx101xxxxxxxxxxxxx + ldff1sb. */ + return 1637; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0101xxxxx101xxxxxxxxxxxxx + ldff1sh. */ + return 1649; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0011xxxxx101xxxxxxxxxxxxx + prfh. */ + return 1749; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0111xxxxx101xxxxxxxxxxxxx + ldff1sh. */ + return 1647; + } + } + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xxxxx011xxxxxxxxxxxxx + mls. */ + return 1709; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x00x0xxxxx011xxxxxxxxxxxxx + ldff1b. */ + return 1593; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x01x0xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1613; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x0xxxxx011xxxxxxxxxxxxx + ldff1b. */ + return 1602; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x01x0xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1621; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x00001x00x1xxxxx011xxxxxxxxxxxxx + prfd. */ + return 1739; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x00x1xxxxx011xxxxxxxxxxxxx + prfd. */ + return 1741; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x00001x01x1xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1614; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x01x1xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1622; + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0xx0xxxxx111xxxxxxxxxxxxx + msb. */ + return 1712; + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00010xxxx111000xxxxxxxxxx + cntb. */ + return 1314; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01010xxxx111000xxxxxxxxxx + cntw. */ + return 1318; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx111000xxxxxxxxxx + cnth. */ + return 1316; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx111000xxxxxxxxxx + cntd. */ + return 1315; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00011xxxx111000xxxxxxxxxx + incb. */ + return 1450; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01011xxxx111000xxxxxxxxxx + incw. */ + return 1458; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx111000xxxxxxxxxx + inch. */ + return 1454; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx111000xxxxxxxxxx + incd. */ + return 1452; + } + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00010xxxx111100xxxxxxxxxx + sqincb. */ + return 1817; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01010xxxx111100xxxxxxxxxx + sqincw. */ + return 1829; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx111100xxxxxxxxxx + sqinch. */ + return 1823; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx111100xxxxxxxxxx + sqincd. */ + return 1820; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00011xxxx111100xxxxxxxxxx + sqincb. */ + return 1816; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01011xxxx111100xxxxxxxxxx + sqincw. */ + return 1828; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx111100xxxxxxxxxx + sqinch. */ + return 1822; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx111100xxxxxxxxxx + sqincd. */ + return 1819; + } + } + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00010xxxx111x10xxxxxxxxxx + sqdecb. */ + return 1803; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01010xxxx111x10xxxxxxxxxx + sqdecw. */ + return 1815; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx111x10xxxxxxxxxx + sqdech. */ + return 1809; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx111x10xxxxxxxxxx + sqdecd. */ + return 1806; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00011xxxx111x10xxxxxxxxxx + sqdecb. */ + return 1802; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01011xxxx111x10xxxxxxxxxx + sqdecw. */ + return 1814; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx111x10xxxxxxxxxx + sqdech. */ + return 1808; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx111x10xxxxxxxxxx + sqdecd. */ + return 1805; + } + } + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0001xxxxx111001xxxxxxxxxx + decb. */ + return 1325; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0101xxxxx111001xxxxxxxxxx + decw. */ + return 1333; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0011xxxxx111001xxxxxxxxxx + dech. */ + return 1329; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x0111xxxxx111001xxxxxxxxxx + decd. */ + return 1327; + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00010xxxx111101xxxxxxxxxx + uqincb. */ + return 1964; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01010xxxx111101xxxxxxxxxx + uqincw. */ + return 1976; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx111101xxxxxxxxxx + uqinch. */ + return 1970; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx111101xxxxxxxxxx + uqincd. */ + return 1967; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00011xxxx111101xxxxxxxxxx + uqincb. */ + return 1965; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01011xxxx111101xxxxxxxxxx + uqincw. */ + return 1977; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx111101xxxxxxxxxx + uqinch. */ + return 1971; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx111101xxxxxxxxxx + uqincd. */ + return 1968; + } + } + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00010xxxx111x11xxxxxxxxxx + uqdecb. */ + return 1950; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01010xxxx111x11xxxxxxxxxx + uqdecw. */ + return 1962; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00110xxxx111x11xxxxxxxxxx + uqdech. */ + return 1956; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01110xxxx111x11xxxxxxxxxx + uqdecd. */ + return 1953; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00011xxxx111x11xxxxxxxxxx + uqdecb. */ + return 1951; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01011xxxx111x11xxxxxxxxxx + uqdecw. */ + return 1963; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x00111xxxx111x11xxxxxxxxxx + uqdech. */ + return 1957; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x01111xxxx111x11xxxxxxxxxx + uqdecd. */ + return 1954; + } + } + } + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0000xxxxx111xxxxxxxxxxxxx + prfb. */ + return 1736; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0100xxxxx111xxxxxxxxxxxxx + prfh. */ + return 1750; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0001xxxxx111xxxxxxxxxxxxx + ldff1b. */ + return 1604; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x0101xxxxx111xxxxxxxxxxxxx + ldff1h. */ + return 1625; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x001xxxxxx111xxxxxxxxxxxxx + ld1rb. */ + return 1506; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x011xxxxxx111xxxxxxxxxxxxx + ld1rh. */ + return 1510; + } + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0000xxxxx111xxxxxxxxxxxxx + prfb. */ + return 1738; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0100xxxxx111xxxxxxxxxxxxx + prfh. */ + return 1752; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0010xxxxx111xxxxxxxxxxxxx + ldff1b. */ + return 1603; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0110xxxxx111xxxxxxxxxxxxx + ldff1h. */ + return 1623; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0001xxxxx111xxxxxxxxxxxxx + ldff1b. */ + return 1605; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0101xxxxx111xxxxxxxxxxxxx + ldff1h. */ + return 1626; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0011xxxxx111xxxxxxxxxxxxx + prfd. */ + return 1742; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x0111xxxxx111xxxxxxxxxxxxx + ldff1h. */ + return 1624; + } + } + } + } + } + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx000xxxxxxxx0xxxx + cmphs. */ + return 1298; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx000xxxxxxxx1xxxx + cmphi. */ + return 1295; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00x0xxxxx000xxxxxxxxxxxxx + ld1rqb. */ + return 1512; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01x0xxxxx000xxxxxxxxxxxxx + ld1rqh. */ + return 1516; + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx010xxxxxxxx0xxxx + cmpge. */ + return 1289; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx010xxxxxxxx1xxxx + cmpgt. */ + return 1292; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0000xxxxx010xxxxxxxxxxxxx + ld1b. */ + return 1470; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0100xxxxx010xxxxxxxxxxxxx + ld1sw. */ + return 1550; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0010xxxxx010xxxxxxxxxxxxx + ld1b. */ + return 1472; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0110xxxxx010xxxxxxxxxxxxx + ld1h. */ + return 1492; + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx001xxxxxxxx0xxxx + cmpeq. */ + return 1286; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx001xxxxxxxx1xxxx + cmpne. */ + return 1309; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00x0xxxxx001xxxxxxxxxxxxx + ld1rqb. */ + return 1511; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01x0xxxxx001xxxxxxxxxxxxx + ld1rqh. */ + return 1515; + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx011xxxxxxxx0xxxx + cmplt. */ + return 1307; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx011xxxxxxxx1xxxx + cmple. */ + return 1301; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0000xxxxx011xxxxxxxxxxxxx + ldff1b. */ + return 1594; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0100xxxxx011xxxxxxxxxxxxx + ldff1sw. */ + return 1650; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0010xxxxx011xxxxxxxxxxxxx + ldff1b. */ + return 1598; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0110xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1617; + } + } + } + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0xxxxx0xxxxxxxxxxxxxxx + fcmla. */ + return 1355; + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0x00xxxxx0x0xxxxxxxxxxxxx + st1b. */ + return 1832; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0010xxxxx0x0xxxxxxxxxxxxx + st1b. */ + return 1836; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0110xxxxx0x0xxxxxxxxxxxxx + st1h. */ + return 1857; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0000xxxxx0x1xxxxxxxxxxxxx + stnt1b. */ + return 1902; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0100xxxxx0x1xxxxxxxxxxxxx + stnt1h. */ + return 1906; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0010xxxxx0x1xxxxxxxxxxxxx + st3b. */ + return 1886; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0110xxxxx0x1xxxxxxxxxxxxx + st3h. */ + return 1890; + } + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x0xx0xxxxx100xxxxxxxx0xxxx + cmpge. */ + return 1290; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x0xx0xxxxx100xxxxxxxx1xxxx + cmpgt. */ + return 1293; + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx110xxxxxxxx0xxxx + cmphs. */ + return 1299; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx110xxxxxxxx1xxxx + cmphi. */ + return 1296; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0000xxxxx110xxxxxxxxxxxxx + ldnt1b. */ + return 1685; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0100xxxxx110xxxxxxxxxxxxx + ldnt1h. */ + return 1689; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0010xxxxx110xxxxxxxxxxxxx + ld3b. */ + return 1577; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0110xxxxx110xxxxxxxxxxxxx + ld3h. */ + return 1581; + } + } + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x0xx0xxxxx1x0xxxxxxxxxxxxx + fcadd. */ + return 1354; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0000xxxxx1x0xxxxxxxxxxxxx + st1b. */ + return 1833; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0100xxxxx1x0xxxxxxxxxxxxx + st1h. */ + return 1852; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0010xxxxx1x0xxxxxxxxxxxxx + st1b. */ + return 1837; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x0110xxxxx1x0xxxxxxxxxxxxx + st1h. */ + return 1858; + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx101xxxxxxxx0xxxx + cmpeq. */ + return 1287; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx101xxxxxxxx1xxxx + cmpne. */ + return 1310; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00000xxxx101xxxxxxxxxxxxx + ld1b. */ + return 1477; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01000xxxx101xxxxxxxxxxxxx + ld1sw. */ + return 1555; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00100xxxx101xxxxxxxxxxxxx + ld1b. */ + return 1479; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01100xxxx101xxxxxxxxxxxxx + ld1h. */ + return 1500; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00001xxxx101xxxxxxxxxxxxx + ldnf1b. */ + return 1669; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01001xxxx101xxxxxxxxxxxxx + ldnf1sw. */ + return 1682; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00101xxxx101xxxxxxxxxxxxx + ldnf1b. */ + return 1671; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01101xxxx101xxxxxxxxxxxxx + ldnf1h. */ + return 1675; + } + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0000xxxxx101xxxxxxxxxxxxx + st1b. */ + return 1834; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0100xxxxx101xxxxxxxxxxxxx + st1h. */ + return 1853; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0010xxxxx101xxxxxxxxxxxxx + st1b. */ + return 1841; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0110xxxxx101xxxxxxxxxxxxx + st1h. */ + return 1862; + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx111xxxxxxxx0xxxx + cmplo. */ + return 1303; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx0xxxxx111xxxxxxxx1xxxx + cmpls. */ + return 1305; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0000xxxxx111xxxxxxxxxxxxx + ldnt1b. */ + return 1686; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0100xxxxx111xxxxxxxxxxxxx + ldnt1h. */ + return 1690; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0010xxxxx111xxxxxxxxxxxxx + ld3b. */ + return 1578; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0110xxxxx111xxxxxxxxxxxxx + ld3h. */ + return 1582; + } + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0x000xxxx111xxxxxxxxxxxxx + st1b. */ + return 1839; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00100xxxx111xxxxxxxxxxxxx + st1b. */ + return 1842; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x01100xxxx111xxxxxxxxxxxxx + st1h. */ + return 1863; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00001xxxx111xxxxxxxxxxxxx + stnt1b. */ + return 1903; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x01001xxxx111xxxxxxxxxxxxx + stnt1h. */ + return 1907; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00101xxxx111xxxxxxxxxxxxx + st3b. */ + return 1887; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x01101xxxx111xxxxxxxxxxxxx + st3h. */ + return 1891; + } + } + } + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx1xxxxxxx0xxxxxxxx0xxxx + cmphs. */ + return 1300; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx1xxxxxxx0xxxxxxxx1xxxx + cmphi. */ + return 1297; + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0001xxxxx0x0xxxxxxxxxxxxx + ld1b. */ + return 1471; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0101xxxxx0x0xxxxxxxxxxxxx + ld1h. */ + return 1491; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0011xxxxx0x0xxxxxxxxxxxxx + ld1b. */ + return 1473; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0111xxxxx0x0xxxxxxxxxxxxx + ld1h. */ + return 1493; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0001xxxxx1x0xxxxxxxxxxxxx + ld2b. */ + return 1569; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0101xxxxx1x0xxxxxxxxxxxxx + ld2h. */ + return 1573; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0011xxxxx1x0xxxxxxxxxxxxx + ld4b. */ + return 1585; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0111xxxxx1x0xxxxxxxxxxxxx + ld4h. */ + return 1589; + } + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00x1xxxxx0000x0xxxxxxxxxx + fmla. */ + return 1408; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0101xxxxx0000x0xxxxxxxxxx + fmla. */ + return 1409; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0111xxxxx0000x0xxxxxxxxxx + fmla. */ + return 1410; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00x1xxxxx0000x1xxxxxxxxxx + fmls. */ + return 1412; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0101xxxxx0000x1xxxxxxxxxx + fmls. */ + return 1413; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0111xxxxx0000x1xxxxxxxxxx + fmls. */ + return 1414; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0x01xxxxx0001xxxxxxxxxxxx + fcmla. */ + return 1356; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0x11xxxxx0001xxxxxxxxxxxx + fcmla. */ + return 1357; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0001xxxxx010xxxxxxxxxxxxx + st1b. */ + return 1835; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0101xxxxx010xxxxxxxxxxxxx + st1h. */ + return 1854; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0011xxxxx010xxxxxxxxxxxxx + st1b. */ + return 1838; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0111xxxxx010xxxxxxxxxxxxx + st1h. */ + return 1859; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0x01xxxxx1x0xxxxxxxxxxxxx + st1h. */ + return 1855; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0x11xxxxx1x0xxxxxxxxxxxxx + st1h. */ + return 1860; + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx1xxxxxxx1xxxxxxxx0xxxx + cmplo. */ + return 1304; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x0xx1xxxxxxx1xxxxxxxx1xxxx + cmpls. */ + return 1306; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00010xxxxx01xxxxxxxxxxxxx + ld1b. */ + return 1478; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01010xxxxx01xxxxxxxxxxxxx + ld1h. */ + return 1499; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00110xxxxx01xxxxxxxxxxxxx + ld1b. */ + return 1480; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01110xxxxx01xxxxxxxxxxxxx + ld1h. */ + return 1501; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00011xxxxx01xxxxxxxxxxxxx + ldnf1b. */ + return 1670; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01011xxxxx01xxxxxxxxxxxxx + ldnf1h. */ + return 1674; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x00111xxxxx01xxxxxxxxxxxxx + ldnf1b. */ + return 1672; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x01111xxxxx01xxxxxxxxxxxxx + ldnf1h. */ + return 1676; + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0001xxxxx011xxxxxxxxxxxxx + ldff1b. */ + return 1596; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0101xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1615; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0011xxxxx011xxxxxxxxxxxxx + ldff1b. */ + return 1600; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0111xxxxx011xxxxxxxxxxxxx + ldff1h. */ + return 1619; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0001xxxxx111xxxxxxxxxxxxx + ld2b. */ + return 1570; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0101xxxxx111xxxxxxxxxxxxx + ld2h. */ + return 1574; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0011xxxxx111xxxxxxxxxxxxx + ld4b. */ + return 1586; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x0111xxxxx111xxxxxxxxxxxxx + ld4h. */ + return 1590; + } + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00x1xxxxx001xxxxxxxxxxxxx + fmul. */ + return 1419; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0101xxxxx001xxxxxxxxxxxxx + fmul. */ + return 1420; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0111xxxxx001xxxxxxxxxxxxx + fmul. */ + return 1421; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0x01xxxxx101xxxxxxxxxxxxx + st1h. */ + return 1856; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0011xxxxx101xxxxxxxxxxxxx + st1b. */ + return 1843; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0111xxxxx101xxxxxxxxxxxxx + st1h. */ + return 1864; + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0001xxxxx011xxxxxxxxxxxxx + st2b. */ + return 1878; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0101xxxxx011xxxxxxxxxxxxx + st2h. */ + return 1882; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0011xxxxx011xxxxxxxxxxxxx + st4b. */ + return 1894; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x0111xxxxx011xxxxxxxxxxxxx + st4h. */ + return 1898; + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00010xxxx111xxxxxxxxxxxxx + st1b. */ + return 1840; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x01010xxxx111xxxxxxxxxxxxx + st1h. */ + return 1861; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00110xxxx111xxxxxxxxxxxxx + st1b. */ + return 1844; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x01110xxxx111xxxxxxxxxxxxx + st1h. */ + return 1865; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00011xxxx111xxxxxxxxxxxxx + st2b. */ + return 1879; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x01011xxxx111xxxxxxxxxxxxx + st2h. */ + return 1883; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x00111xxxx111xxxxxxxxxxxxx + st4b. */ + return 1895; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x01111xxxx111xxxxxxxxxxxxx + st4h. */ + return 1899; + } + } + } + } + } + } + } + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x10000xxxxxxxxxxxxxxxxxxxx + orr. */ + return 1724; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x11000xxxxxxxxxxxxxxxxxxxx + and. */ + return 1252; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x10100xxxxxxxxxxxxxxxxxxxx + eor. */ + return 1339; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x11100xxxxxxxxxxxxxxxxxxxx + dupm. */ + return 1337; + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx01xxxx0xxxxxxxxxxxxxxx + cpy. */ + return 1322; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx01xxxx1xxxxxxxxxxxxxxx + fcpy. */ + return 1369; + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx000xxxxxxxxxxxxx + ext. */ + return 1344; + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x0000100xxxxxxxxxxxxx + cpy. */ + return 1320; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1000100xxxxxxxxxxxxx + clasta. */ + return 1278; + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x0100100xxxxxxxxxxxxx + revb. */ + return 1772; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1100100xxxxxxxxxxxxx + splice. */ + return 1799; + } + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x0010100xxxxxxxxxxxxx + lasta. */ + return 1466; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1010100xxxxxxxxxxxxx + clasta. */ + return 1279; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xx110100xxxxxxxxxxxxx + revw. */ + return 1774; + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x0001100xxxxxxxxxxxxx + compact. */ + return 1319; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1001100xxxxxxxxxxxxx + clastb. */ + return 1281; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xx101100xxxxxxxxxxxxx + revh. */ + return 1773; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x0011100xxxxxxxxxxxxx + lastb. */ + return 1468; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1011100xxxxxxxxxxxxx + clastb. */ + return 1282; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xx111100xxxxxxxxxxxxx + rbit. */ + return 1765; + } + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx00100xxxxxxxxxxx + dup. */ + return 1335; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx00110xxxxxxxxxxx + tbl. */ + return 1922; + } + } + else + { + 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 + 000001x1xx100000001x1xxxxxxxxxxx + dup. */ + return 1334; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx110000001x1xxxxxxxxxxx + sunpklo. */ + return 1918; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1000001x1xxxxxxxxxxx + rev. */ + return 1771; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx10x100001x1xxxxxxxxxxx + insr. */ + return 1463; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx11x100001x1xxxxxxxxxxx + insr. */ + return 1464; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxx10001x1xxxxxxxxxxx + uunpklo. */ + return 1981; + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxx01001x1xxxxxxxxxxx + sunpkhi. */ + return 1917; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxx11001x1xxxxxxxxxxx + uunpkhi. */ + return 1980; + } + } + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx100xx0101xxxxxxxxxxxxx + lasta. */ + return 1465; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx110xx0101xxxxxxxxxxxxx + clasta. */ + return 1280; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1x1xx0101xxxxxxxxxxxxx + cpy. */ + return 1321; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx10xxx1101xxxxxxxxxxxxx + lastb. */ + return 1467; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx11xxx1101xxxxxxxxxxxxx + clastb. */ + return 1283; + } + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx10xxxx010000xxxxxxxxxx + zip1. */ + return 1998; + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx11x0x0010000xxxxxxxxxx + punpklo. */ + return 1764; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx11x1x0010000xxxxxxxxxx + rev. */ + return 1770; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx11xxx1010000xxxxxxxxxx + punpkhi. */ + return 1763; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx011000xxxxxxxxxx + zip1. */ + return 1999; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx010100xxxxxxxxxx + trn1. */ + return 1923; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx011100xxxxxxxxxx + trn1. */ + return 1924; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx010x10xxxxxxxxxx + uzp1. */ + return 1985; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx011x10xxxxxxxxxx + uzp1. */ + return 1986; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx010001xxxxxxxxxx + zip2. */ + return 2000; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx011001xxxxxxxxxx + zip2. */ + return 2001; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx010101xxxxxxxxxx + trn2. */ + return 1925; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx011101xxxxxxxxxx + trn2. */ + return 1926; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx010x11xxxxxxxxxx + uzp2. */ + return 1987; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx011x11xxxxxxxxxx + uzp2. */ + return 1988; + } + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000001x1xx1xxxxx11xxxxxxxxxxxxxx + sel. */ + return 1789; + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1x0xxxxxx000xxxxxxxxxxxxx + ldr. */ + return 1693; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1x1xxxxxx000xxxxxxxxxxxxx + prfb. */ + return 1737; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x10xxxxxxx100xxxxxxxxxxxxx + ld1rsh. */ + return 1522; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x11xxxxxxx100xxxxxxxxxxxxx + ld1rsb. */ + return 1519; + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x10x0xxxxx010xxxxxxxxxxxxx + ld1w. */ + return 1557; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x10x1xxxxx010xxxxxxxxxxxxx + ld1w. */ + return 1558; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x110xxxxxx010xxxxxxxxxxxxx + ldr. */ + return 1694; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x111xxxxxx010xxxxxxxxxxxxx + prfw. */ + return 1758; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1000xxxxx110xxxxxxxxxxxxx + prfw. */ + return 1754; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1100xxxxx110xxxxxxxxxxxxx + prfd. */ + return 1740; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1x01xxxxx110xxxxxxxxxxxxx + ld1w. */ + return 1565; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x101xxxxxx110xxxxxxxxxxxxx + ld1rw. */ + return 1525; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x111xxxxxx110xxxxxxxxxxxxx + ld1rsb. */ + return 1521; + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1xxxxxxxx001xxxxxxxxxxxxx + prfh. */ + return 1751; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x10xxxxxxx101xxxxxxxxxxxxx + ld1rsh. */ + return 1523; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x11xxxxxxx101xxxxxxxxxxxxx + ld1rsb. */ + return 1520; + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x10x0xxxxx011xxxxxxxxxxxxx + ldff1w. */ + return 1657; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x10x1xxxxx011xxxxxxxxxxxxx + ldff1w. */ + return 1658; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x11xxxxxxx011xxxxxxxxxxxxx + prfd. */ + return 1744; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1000xxxxx111xxxxxxxxxxxxx + prfw. */ + return 1757; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1100xxxxx111xxxxxxxxxxxxx + prfd. */ + return 1743; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x1x01xxxxx111xxxxxxxxxxxxx + ldff1w. */ + return 1667; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x101xxxxxx111xxxxxxxxxxxxx + ld1rw. */ + return 1526; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 100001x111xxxxxx111xxxxxxxxxxxxx + ld1rd. */ + return 1507; + } + } + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1xx0xxxxx000xxxxxxxxxxxxx + ld1sw. */ + return 1551; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1xx1xxxxx000xxxxxxxxxxxxx + ld1sw. */ + return 1552; + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1xx0xxxxx100xxxxxxxxxxxxx + ld1sw. */ + return 1553; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1x01xxxxx100xxxxxxxxxxxxx + ld1sw. */ + return 1556; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1x11xxxxx100xxxxxxxxxxxxx + ld1sw. */ + return 1554; + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x10x0xxxxx010xxxxxxxxxxxxx + ld1w. */ + return 1561; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x11x0xxxxx010xxxxxxxxxxxxx + ld1d. */ + return 1483; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x10x1xxxxx010xxxxxxxxxxxxx + ld1w. */ + return 1562; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x11x1xxxxx010xxxxxxxxxxxxx + ld1d. */ + return 1484; + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x10x0xxxxx110xxxxxxxxxxxxx + ld1w. */ + return 1563; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x11x0xxxxx110xxxxxxxxxxxxx + ld1d. */ + return 1485; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1001xxxxx110xxxxxxxxxxxxx + ld1w. */ + return 1568; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1101xxxxx110xxxxxxxxxxxxx + ld1d. */ + return 1488; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1011xxxxx110xxxxxxxxxxxxx + ld1w. */ + return 1564; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1111xxxxx110xxxxxxxxxxxxx + ld1d. */ + return 1486; + } + } + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1xx0xxxxx001xxxxxxxxxxxxx + ldff1sw. */ + return 1652; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1xx1xxxxx001xxxxxxxxxxxxx + ldff1sw. */ + return 1653; + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1xx0xxxxx101xxxxxxxxxxxxx + ldff1sw. */ + return 1654; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1x01xxxxx101xxxxxxxxxxxxx + ldff1sw. */ + return 1656; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1x11xxxxx101xxxxxxxxxxxxx + ldff1sw. */ + return 1655; + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x10x0xxxxx011xxxxxxxxxxxxx + ldff1w. */ + return 1663; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x11x0xxxxx011xxxxxxxxxxxxx + ldff1d. */ + return 1608; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x10x1xxxxx011xxxxxxxxxxxxx + ldff1w. */ + return 1664; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x11x1xxxxx011xxxxxxxxxxxxx + ldff1d. */ + return 1609; + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1000xxxxx111xxxxxxxxxxxxx + prfw. */ + return 1759; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1100xxxxx111xxxxxxxxxxxxx + prfd. */ + return 1745; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1010xxxxx111xxxxxxxxxxxxx + ldff1w. */ + return 1665; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1110xxxxx111xxxxxxxxxxxxx + ldff1d. */ + return 1610; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1001xxxxx111xxxxxxxxxxxxx + ldff1w. */ + return 1668; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1101xxxxx111xxxxxxxxxxxxx + ldff1d. */ + return 1612; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1011xxxxx111xxxxxxxxxxxxx + ldff1w. */ + return 1666; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10001x1111xxxxx111xxxxxxxxxxxxx + ldff1d. */ + return 1611; + } + } + } + } + } + } + } + } + else + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx0xxxxx000xxxxxxxx0xxxx + cmpge. */ + return 1291; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx0xxxxx000xxxxxxxx1xxxx + cmpgt. */ + return 1294; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x10x0xxxxx000xxxxxxxxxxxxx + ld1rqw. */ + return 1518; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x11x0xxxxx000xxxxxxxxxxxxx + ld1rqd. */ + return 1514; + } + } + } + else + { + if (((word >> 4) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1xx1xxxxx00000xxxxxx0xxxx + whilelt. */ + return 1995; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1xx1xxxxx00010xxxxxx0xxxx + whilelt. */ + return 1996; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1xx1xxxxx00001xxxxxx0xxxx + whilelo. */ + return 1991; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1xx1xxxxx00011xxxxxx0xxxx + whilelo. */ + return 1992; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1xx1xxxxx00000xxxxxx1xxxx + whilele. */ + return 1989; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1xx1xxxxx00010xxxxxx1xxxx + whilele. */ + return 1990; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1xx1xxxxx00001xxxxxx1xxxx + whilels. */ + return 1993; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1xx1xxxxx00011xxxxxx1xxxx + whilels. */ + return 1994; + } + } + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx000x00xxxxxxxxxx + fadd. */ + return 1349; + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx000010xxxxxxxxxx + fmul. */ + return 1416; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx000110xxxxxxxxxx + frecps. */ + return 1429; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx000x01xxxxxxxxxx + fsub. */ + return 1442; + } + else + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx000011xxxxxxxxxx + ftsmul. */ + return 1448; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx000111xxxxxxxxxx + frsqrts. */ + return 1439; + } + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx1xxxxx000xxxxxxxxxxxxx + fmla. */ + return 1407; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1xxxxxxxx000xxxxxxxxxxxxx + str. */ + return 1910; + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx0xxxxx001xxxxxxxx0xxxx + cmplt. */ + return 1308; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx0xxxxx001xxxxxxxx1xxxx + cmple. */ + return 1302; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x10x0xxxxx001xxxxxxxxxxxxx + ld1rqw. */ + return 1517; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x11x0xxxxx001xxxxxxxxxxxxx + ld1rqd. */ + return 1513; + } + } + } + else + { + 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 + x11001x1xx000000001xxxxxxxxxxxxx + faddv. */ + return 1353; + } + else + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx010000001xxxxxxxx0xxxx + fcmge. */ + return 1360; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx010000001xxxxxxxx1xxxx + fcmgt. */ + return 1362; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx0x1000001xxxxxxxxxxxxx + fadda. */ + return 1352; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx0xx100001xxxxxxxxxxxxx + fmaxnmv. */ + return 1399; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx0xx010001xxxxxxxxxxxxx + fcmeq. */ + return 1358; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx0x0110001xxxxxxxxxxxxx + fmaxv. */ + return 1400; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx0x1110001xxxxxxxxxxxxx + frecpe. */ + return 1428; + } + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx0xx001001xxxxxxxx0xxxx + fcmlt. */ + return 1365; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx0xx001001xxxxxxxx1xxxx + fcmle. */ + return 1364; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx0xx101001xxxxxxxxxxxxx + fminnmv. */ + return 1405; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx0xx011001xxxxxxxxxxxxx + fcmne. */ + return 1366; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx0x0111001xxxxxxxxxxxxx + fminv. */ + return 1406; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx0x1111001xxxxxxxxxxxxx + frsqrte. */ + return 1438; + } + } + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1xx1xxxxx001xxxxxxxx0xxxx + ctermeq. */ + return 1323; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1xx1xxxxx001xxxxxxxx1xxxx + ctermne. */ + return 1324; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x11001x1xx1xxxxx001xxxxxxxxxxxxx + fmls. */ + return 1411; + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 9) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x10000xxxx01xxxx0xxxx0xxxx + and. */ + return 1254; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x10000xxxx01xxxx0xxxx1xxxx + bic. */ + return 1266; + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x100010xxx01xxxx0xxxxxxxxx + brka. */ + return 1268; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x100011xxx01xxxx0xxxxxxxxx + brkn. */ + return 1272; + } + } + } + else + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1000xxxxx01xxxx1xxxx0xxxx + eor. */ + return 1341; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1000xxxxx01xxxx1xxxx1xxxx + sel. */ + return 1790; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1000xxxxx010xxxxxxxxxxxxx + ld1sh. */ + return 1540; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1000xxxxx011xxxxxxxxxxxxx + ldff1sh. */ + return 1640; + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 9) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x11000xxxx01xxxx0xxxx0xxxx + orr. */ + return 1726; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x11000xxxx01xxxx0xxxx1xxxx + orn. */ + return 1721; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x11001xxxx01xxxx0xxxxxxxxx + brkb. */ + return 1270; + } + } + else + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1100xxxxx01xxxx1xxxx0xxxx + nor. */ + return 1718; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1100xxxxx01xxxx1xxxx1xxxx + nand. */ + return 1715; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1100xxxxx010xxxxxxxxxxxxx + ld1sb. */ + return 1528; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1100xxxxx011xxxxxxxxxxxxx + ldff1sb. */ + return 1628; + } + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + if (((word >> 9) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x10100xxxx01xxxx0xxxx0xxxx + ands. */ + return 1255; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x101010xxx01xxxx0xxxx0xxxx + brkas. */ + return 1269; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x101011xxx01xxxx0xxxx0xxxx + brkns. */ + return 1273; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1010xxxxx01xxxx1xxxx0xxxx + eors. */ + return 1342; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1010xxxxx01xxxxxxxxx1xxxx + bics. */ + return 1267; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1010xxxxx010xxxxxxxxxxxxx + ld1w. */ + return 1559; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1010xxxxx011xxxxxxxxxxxxx + ldff1w. */ + return 1659; + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + if (((word >> 9) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x11100xxxx01xxxx0xxxx0xxxx + orrs. */ + return 1727; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x11101xxxx01xxxx0xxxx0xxxx + brkbs. */ + return 1271; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1110xxxxx01xxxx1xxxx0xxxx + nors. */ + return 1719; + } + } + else + { + if (((word >> 9) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1110xxxxx01xxxx0xxxx1xxxx + orns. */ + return 1722; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1110xxxxx01xxxx1xxxx1xxxx + nands. */ + return 1716; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1110xxxxx010xxxxxxxxxxxxx + ld1sb. */ + return 1530; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1110xxxxx011xxxxxxxxxxxxx + ldff1sb. */ + return 1632; + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1001xxxxx010xxxxxxxxxxxxx + ld1sh. */ + return 1541; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1101xxxxx010xxxxxxxxxxxxx + ld1sb. */ + return 1529; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1011xxxxx010xxxxxxxxxxxxx + ld1w. */ + return 1560; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1111xxxxx010xxxxxxxxxxxxx + ld1d. */ + return 1482; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1001xxxxx011xxxxxxxxxxxxx + ldff1sh. */ + return 1642; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1101xxxxx011xxxxxxxxxxxxx + ldff1sb. */ + return 1630; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1011xxxxx011xxxxxxxxxxxxx + ldff1w. */ + return 1661; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1111xxxxx011xxxxxxxxxxxxx + ldff1d. */ + return 1606; + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx010xxxxxxxx0xxxx + fcmge. */ + return 1361; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx010xxxxxxxx1xxxx + fcmgt. */ + return 1363; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx1xxxxx010xxxxxxxxxxxxx + fnmla. */ + return 1425; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1x0xxxxxx010xxxxxxxxxxxxx + str. */ + return 1911; + } + else + { + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1x10xxxxx010xxxxxxxxxxxxx + st1w. */ + return 1870; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1011xxxxx010xxxxxxxxxxxxx + st1w. */ + return 1872; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1111xxxxx010xxxxxxxxxxxxx + st1d. */ + return 1849; + } + } + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx011xxxxxxxx0xxxx + fcmeq. */ + return 1359; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx011xxxxxxxx1xxxx + fcmne. */ + return 1367; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1000xxxxx011xxxxxxxxxxxxx + stnt1w. */ + return 1908; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1100xxxxx011xxxxxxxxxxxxx + stnt1d. */ + return 1904; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1010xxxxx011xxxxxxxxxxxxx + st3w. */ + return 1892; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1110xxxxx011xxxxxxxxxxxxx + st3d. */ + return 1888; + } + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx1xxxxx011xxxxxxxxxxxxx + fnmls. */ + return 1426; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1001xxxxx011xxxxxxxxxxxxx + st2w. */ + return 1884; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1101xxxxx011xxxxxxxxxxxxx + st2d. */ + return 1880; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1011xxxxx011xxxxxxxxxxxxx + st4w. */ + return 1900; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1111xxxxx011xxxxxxxxxxxxx + st4d. */ + return 1896; + } + } + } + } + } + } + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1xx0xxxxx100xxxxxxxx0xxxx + cmpeq. */ + return 1288; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x1xx0xxxxx100xxxxxxxx1xxxx + cmpne. */ + return 1311; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x10000xxxx101xxxxxxxxxxxxx + ld1sh. */ + return 1547; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x11000xxxx101xxxxxxxxxxxxx + ld1sb. */ + return 1534; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x10100xxxx101xxxxxxxxxxxxx + ld1w. */ + return 1566; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x11100xxxx101xxxxxxxxxxxxx + ld1sb. */ + return 1536; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x10001xxxx101xxxxxxxxxxxxx + ldnf1sh. */ + return 1680; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x11001xxxx101xxxxxxxxxxxxx + ldnf1sb. */ + return 1677; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x10101xxxx101xxxxxxxxxxxxx + ldnf1w. */ + return 1683; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x11101xxxx101xxxxxxxxxxxxx + ldnf1sb. */ + return 1679; + } + } + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 4) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1x000xxxx11xxxxxxxxx0xxxx + brkpa. */ + return 1274; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1x100xxxx11xxxxxxxxx0xxxx + brkpas. */ + return 1275; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx010xx011xxxxxxxxx0xxxx + ptest. */ + return 1760; + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx011xx01100x0xxxxx0xxxx + pfirst. */ + return 1730; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx011xx01110x0xxxxx0xxxx + ptrue. */ + return 1761; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1x0011xx011x1x0xxxxx0xxxx + rdffr. */ + return 1767; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1x1011xx011x1x0xxxxx0xxxx + rdffrs. */ + return 1768; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx011xx011xxx1xxxxx0xxxx + pfalse. */ + return 1729; + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx01xxx111x0x0xxxxx0xxxx + ptrues. */ + return 1762; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx01xxx111x1x0xxxxx0xxxx + rdffr. */ + return 1766; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx01xxx111xxx1xxxxx0xxxx + pnext. */ + return 1731; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1x00xxxxx11xxxxxxxxx1xxxx + brkpb. */ + return 1276; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1x10xxxxx11xxxxxxxxx1xxxx + brkpbs. */ + return 1277; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1000xxxxx110xxxxxxxxxxxxx + ldnt1w. */ + return 1691; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1100xxxxx110xxxxxxxxxxxxx + ldnt1d. */ + return 1687; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1010xxxxx110xxxxxxxxxxxxx + ld3w. */ + return 1583; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1110xxxxx110xxxxxxxxxxxxx + ld3d. */ + return 1579; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1000xxxxx111xxxxxxxxxxxxx + ldnt1w. */ + return 1692; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1100xxxxx111xxxxxxxxxxxxx + ldnt1d. */ + return 1688; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1010xxxxx111xxxxxxxxxxxxx + ld3w. */ + return 1584; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1110xxxxx111xxxxxxxxxxxxx + ld3d. */ + return 1580; + } + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000000100xxxxxxxxxxxxx + fadd. */ + return 1350; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000100100xxxxxxxxxxxxx + fmaxnm. */ + return 1397; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000010100xxxxxxxxxxxxx + fmul. */ + return 1417; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000110100xxxxxxxxxxxxx + fmax. */ + return 1395; + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000001100xxxxxxxxxxxxx + fsub. */ + return 1443; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000101100xxxxxxxxxxxxx + fminnm. */ + return 1403; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000011100xxxxxxxxxxxxx + fsubr. */ + return 1445; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000111100xxxxxxxxxxxxx + fmin. */ + return 1401; + } + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx010xxx100xxxxxxxxxxxxx + ftmad. */ + return 1447; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001000100xxxxxxxxxxxxx + fabd. */ + return 1345; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011000100xxxxxxxxxxxxx + fadd. */ + return 1351; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001100100xxxxxxxxxxxxx + fdivr. */ + return 1391; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011100100xxxxxxxxxxxxx + fmaxnm. */ + return 1398; + } + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001010100xxxxxxxxxxxxx + fmulx. */ + return 1422; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011010100xxxxxxxxxxxxx + fmul. */ + return 1418; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0x1110100xxxxxxxxxxxxx + fmax. */ + return 1396; + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001001100xxxxxxxxxxxxx + fscale. */ + return 1440; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011001100xxxxxxxxxxxxx + fsub. */ + return 1444; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001101100xxxxxxxxxxxxx + fdiv. */ + return 1390; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011101100xxxxxxxxxxxxx + fminnm. */ + return 1404; + } + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0x1011100xxxxxxxxxxxxx + fsubr. */ + return 1446; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0x1111100xxxxxxxxxxxxx + fmin. */ + return 1402; + } + } + } + } + } + else + { + if (((word >> 4) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx110xxxxxxxx0xxxx + fcmuo. */ + return 1368; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx110xxxxxxxx1xxxx + facge. */ + return 1347; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1000xxxxx1x0xxxxxxxxxxxxx + st1w. */ + return 1866; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1100xxxxx1x0xxxxxxxxxxxxx + st1d. */ + return 1845; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1x10xxxxx1x0xxxxxxxxxxxxx + st1w. */ + return 1871; + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 31) & 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 + 011001x1xx000000101xxxxxxxxxxxxx + frintn. */ + return 1434; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx010000101xxxxxxxxxxxxx + scvtf. */ + return 1780; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x0001000101xxxxxxxxxxxxx + fcvt. */ + return 1370; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x1001000101xxxxxxxxxxxxx + fcvt. */ + return 1372; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011000101xxxxxxxxxxxxx + fcvtzs. */ + return 1380; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000100101xxxxxxxxxxxxx + frinta. */ + return 1431; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x0010100101xxxxxxxxxxxxx + scvtf. */ + return 1779; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x101010100101xxxxxxxxxxxxx + scvtf. */ + return 1778; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x111010100101xxxxxxxxxxxxx + scvtf. */ + return 1782; + } + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001100101xxxxxxxxxxxxx + frecpx. */ + return 1430; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x0011100101xxxxxxxxxxxxx + fcvtzs. */ + return 1379; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x101011100101xxxxxxxxxxxxx + fcvtzs. */ + return 1377; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x111011100101xxxxxxxxxxxxx + fcvtzs. */ + return 1381; + } + } + } + } + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000010101xxxxxxxxxxxxx + frintm. */ + return 1433; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx010010101xxxxxxxxxxxxx + scvtf. */ + return 1777; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001010101xxxxxxxxxxxxx + fcvt. */ + return 1374; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011010101xxxxxxxxxxxxx + fcvtzs. */ + return 1376; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000110101xxxxxxxxxxxxx + frintx. */ + return 1436; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x10x010110101xxxxxxxxxxxxx + scvtf. */ + return 1781; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x11x010110101xxxxxxxxxxxxx + scvtf. */ + return 1783; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x10x0x1110101xxxxxxxxxxxxx + fcvtzs. */ + return 1378; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x11x0x1110101xxxxxxxxxxxxx + fcvtzs. */ + return 1382; + } + } + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000001101xxxxxxxxxxxxx + frintp. */ + return 1435; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx010001101xxxxxxxxxxxxx + ucvtf. */ + return 1932; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x0001001101xxxxxxxxxxxxx + fcvt. */ + return 1371; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x1001001101xxxxxxxxxxxxx + fcvt. */ + return 1373; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011001101xxxxxxxxxxxxx + fcvtzu. */ + return 1387; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x00x0101101xxxxxxxxxxxxx + ucvtf. */ + return 1931; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1010x0101101xxxxxxxxxxxxx + ucvtf. */ + return 1930; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1110x0101101xxxxxxxxxxxxx + ucvtf. */ + return 1934; + } + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001101101xxxxxxxxxxxxx + fsqrt. */ + return 1441; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1x0011101101xxxxxxxxxxxxx + fcvtzu. */ + return 1386; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x101011101101xxxxxxxxxxxxx + fcvtzu. */ + return 1384; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x111011101101xxxxxxxxxxxxx + fcvtzu. */ + return 1388; + } + } + } + } + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000011101xxxxxxxxxxxxx + frintz. */ + return 1437; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx010011101xxxxxxxxxxxxx + ucvtf. */ + return 1929; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx001011101xxxxxxxxxxxxx + fcvt. */ + return 1375; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx011011101xxxxxxxxxxxxx + fcvtzu. */ + return 1383; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx000111101xxxxxxxxxxxxx + frinti. */ + return 1432; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x10x010111101xxxxxxxxxxxxx + ucvtf. */ + return 1933; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x11x010111101xxxxxxxxxxxxx + ucvtf. */ + return 1935; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x10x0x1111101xxxxxxxxxxxxx + fcvtzu. */ + return 1385; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x11x0x1111101xxxxxxxxxxxxx + fcvtzu. */ + return 1389; + } + } + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1000xxxxx101xxxxxxxxxxxxx + st1w. */ + return 1867; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1100xxxxx101xxxxxxxxxxxxx + st1d. */ + return 1846; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1010xxxxx101xxxxxxxxxxxxx + st1w. */ + return 1874; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1110xxxxx101xxxxxxxxxxxxx + st1d. */ + return 1850; + } + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx0xxxxx111xxxxxxxxxxxxx + facgt. */ + return 1348; + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1xx00xxxx111xxxxxxxxxxxxx + st1w. */ + return 1875; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x10001xxxx111xxxxxxxxxxxxx + stnt1w. */ + return 1909; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x11001xxxx111xxxxxxxxxxxxx + stnt1d. */ + return 1905; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x10101xxxx111xxxxxxxxxxxxx + st3w. */ + return 1893; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x11101xxxx111xxxxxxxxxxxxx + st3d. */ + return 1889; + } + } + } + } + } + } + } + } + else + { + if (((word >> 30) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx0010011xx1 - str. */ - return 668; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10000010xxxxxxxxxxxxxx + cntp. */ + return 1317; + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10100010x000xxxxxxxxxx + sqincp. */ + return 1824; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10100010x100xxxxxxxxxx + wrffr. */ + return 1997; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10100010xx10xxxxxxxxxx + sqincp. */ + return 1826; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10100010xxx1xxxxxxxxxx + sqincp. */ + return 1825; + } + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10x10010x00xxxxxxxxxxx + incp. */ + return 1455; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10x10010x10xxxxxxxxxxx + setffr. */ + return 1791; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10x10010xx1xxxxxxxxxxx + incp. */ + return 1456; + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10xx1010xx00xxxxxxxxxx + sqdecp. */ + return 1810; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10xx1010xx10xxxxxxxxxx + sqdecp. */ + return 1812; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10xx1010xxx1xxxxxxxxxx + sqdecp. */ + return 1811; + } + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10x00110xx00xxxxxxxxxx + uqincp. */ + return 1972; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10x10110xx00xxxxxxxxxx + decp. */ + return 1330; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10xx1110xx00xxxxxxxxxx + uqdecp. */ + return 1958; + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10x00110xx10xxxxxxxxxx + uqincp. */ + return 1973; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10x10110xx10xxxxxxxxxx + decp. */ + return 1331; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10xx1110xx10xxxxxxxxxx + uqdecp. */ + return 1959; + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10xx0110xxx1xxxxxxxxxx + uqincp. */ + return 1974; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10xx1110xxx1xxxxxxxxxx + uqdecp. */ + return 1960; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x10010xxxx10xxxxxxxxxxxxxx + ld1sh. */ + return 1548; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x11010xxxx10xxxxxxxxxxxxxx + ld1sb. */ + return 1535; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x10110xxxx10xxxxxxxxxxxxxx + ld1w. */ + return 1567; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x11110xxxx10xxxxxxxxxxxxxx + ld1d. */ + return 1487; + } + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x10011xxxx10xxxxxxxxxxxxxx + ldnf1sh. */ + return 1681; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x11011xxxx10xxxxxxxxxxxxxx + ldnf1sb. */ + return 1678; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x10111xxxx10xxxxxxxxxxxxxx + ldnf1w. */ + return 1684; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x01001x11111xxxx10xxxxxxxxxxxxxx + ldnf1d. */ + return 1673; + } + } + } + } + else + { + if (((word >> 31) & 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 + 001001x1xx10000011xxxxxxxxxxxxxx + add. */ + return 1244; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx11000011xxxxxxxxxxxxxx + mul. */ + return 1713; + } + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10100011xxxxxxxxxxxxxx + smax. */ + return 1792; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx11100011xxxxxxxxxxxxxx + dup. */ + return 1336; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xx10011xxxxxxxxxxxxxx + sqadd. */ + return 1801; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xx01011xxxxxxxxxxxxxx + smin. */ + return 1795; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xx11011xxxxxxxxxxxxxx + sqsub. */ + return 1831; + } + } + } + else + { + if (((word >> 17) & 0x1) == 0) + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1x000111xxxxxxxxxxxxxx + sub. */ + return 1913; + } + else + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx10100111xxxxxxxxxxxxxx + umax. */ + return 1941; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx11100111xxxxxxxxxxxxxx + fdup. */ + return 1392; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xx10111xxxxxxxxxxxxxx + uqadd. */ + return 1949; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1x001111xxxxxxxxxxxxxx + subr. */ + return 1915; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1x101111xxxxxxxxxxxxxx + umin. */ + return 1944; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 001001x1xx1xx11111xxxxxxxxxxxxxx + uqsub. */ + return 1979; + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1001xxxxx110xxxxxxxxxxxxx + ld2w. */ + return 1575; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1101xxxxx110xxxxxxxxxxxxx + ld2d. */ + return 1571; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1011xxxxx110xxxxxxxxxxxxx + ld4w. */ + return 1591; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1111xxxxx110xxxxxxxxxxxxx + ld4d. */ + return 1587; + } + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1001xxxxx111xxxxxxxxxxxxx + ld2w. */ + return 1576; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1101xxxxx111xxxxxxxxxxxxx + ld2d. */ + return 1572; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1011xxxxx111xxxxxxxxxxxxx + ld4w. */ + return 1592; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 101001x1111xxxxx111xxxxxxxxxxxxx + ld4d. */ + return 1588; + } + } + } + } + } } - } - else - { - if (((word >> 31) & 0x1) == 0) + else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx1010011x00 - ldrb. */ - return 661; + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx1xxxxx100xxxxxxxxxxxxx + fmad. */ + return 1394; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx1xxxxx110xxxxxxxxxxxxx + fnmad. */ + return 1424; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1001xxxxx1x0xxxxxxxxxxxxx + st1w. */ + return 1868; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1101xxxxx1x0xxxxxxxxxxxxx + st1d. */ + return 1847; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1x11xxxxx1x0xxxxxxxxxxxxx + st1w. */ + return 1873; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx1010011x10 - ldrh. */ - return 666; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx1010011xx1 - ldr. */ - return 669; - } - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 31) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx110011x00 - ldrsb. */ - return 662; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx110011x01 - ldrsw. */ - return 670; - } - } - else - { - if (((word >> 31) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx110011x10 - ldrsh. */ - return 667; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx110011x11 - prfm. */ - return 671; - } - } - } - } - } - } - } - else - { - if (((word >> 24) & 0x1) == 0) - { - if (((word >> 27) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx00100x00x - and. */ - return 757; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx00100x01x - eor. */ - return 761; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx00100x10x - orr. */ - return 759; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx00100x11x - ands. */ - return 762; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx1xxxxx101xxxxxxxxxxxxx + fmsb. */ + return 1415; + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1001xxxxx101xxxxxxxxxxxxx + st1w. */ + return 1869; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1101xxxxx101xxxxxxxxxxxxx + st1d. */ + return 1848; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x1x11xxxxx101xxxxxxxxxxxxx + st1w. */ + return 1876; + } + } + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 011001x1xx1xxxxx111xxxxxxxxxxxxx + fnmsb. */ + return 1427; + } + else + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x10x10xxxx111xxxxxxxxxxxxx + st1w. */ + return 1877; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x11x10xxxx111xxxxxxxxxxxxx + st1d. */ + return 1851; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x10011xxxx111xxxxxxxxxxxxx + st2w. */ + return 1885; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x11011xxxx111xxxxxxxxxxxxx + st2d. */ + return 1881; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x10111xxxx111xxxxxxxxxxxxx + st4w. */ + return 1901; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 111001x11111xxxx111xxxxxxxxxxxxx + st4d. */ + return 1897; + } + } + } + } + } + } + } } } } - else + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx10100x00x - movn. */ - return 776; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx10100x01x - movz. */ - return 778; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 000101xxxxxxxxxxxxxxxxxxxxxxxxxx + b. */ + return 634; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx10100x1xx - movk. */ - return 780; + 100101xxxxxxxxxxxxxxxxxxxxxxxxxx + bl. */ + return 635; } } - } - else - { - if (((word >> 21) & 0x1) == 0) + else { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx0101000x - and. */ - return 764; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx0101001x - eor. */ - return 771; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx0101010x - orr. */ - return 766; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx0101011x - ands. */ - return 773; - } - } - } - else + if (((word >> 24) & 0x1) == 0) { - if (((word >> 10) & 0x1) == 0) + if (((word >> 4) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) + if (((word >> 25) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01010100xxxxxxxxxxxxxxxxxxx0xxxx + b.c. */ + return 655; + } + else + { + if (((word >> 0) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 1) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx0000101100x - adc. */ - return 0; + 11010100xx0xxxxxxxxxxxxxxxx0xx00 + hlt. */ + return 746; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx0000101101x - sbc. */ - return 2; + 11010100xx1xxxxxxxxxxxxxxxx0xx00 + brk. */ + return 745; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx0000101110x - adcs. */ - return 1; + 11010100xx0xxxxxxxxxxxxxxxx0xx10 + hvc. */ + return 743; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx0000101111x - sbcs. */ - return 4; + 11010100xx1xxxxxxxxxxxxxxxx0xx10 + dcps2. */ + return 748; } } } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx00101011x0x - csel. */ - return 524; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx00101011x1x - csinv. */ - return 528; - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx01001011x0x - ccmn. */ - return 522; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxx01001011x1x - ccmp. */ - return 523; - } - } - else - { - if (((word >> 12) & 0x1) == 0) + if (((word >> 1) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00000xxxxxx01101011xxx - rbit. */ - return 547; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00001xxxxxx01101011xxx - crc32b. */ - return 564; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11010100xx0xxxxxxxxxxxxxxxx0xx01 + svc. */ + return 742; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0001xxxxxxx01101011xxx - lslv. */ - return 556; + 11010100xx1xxxxxxxxxxxxxxxx0xx01 + dcps1. */ + return 747; } } else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001x0xxxxxx01101011xxx - clz. */ - return 551; + 11010100xx0xxxxxxxxxxxxxxxx0xx11 + smc. */ + return 744; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001x1xxxxxx01101011xxx - crc32cb. */ - return 568; + 11010100xx1xxxxxxxxxxxxxxxx0xx11 + dcps3. */ + return 749; } } } @@ -1229,543 +11877,301 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx0x001011x0x - ccmn. */ - return 520; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxx0x001011x1x - ccmp. */ - return 521; - } - } - else + if (((word >> 21) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01000xxxxxx0x101011x0x - udiv. */ - return 554; - } - else - { - if (((word >> 31) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01000xxxxxx0x101011x10 - rev. */ - return 549; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01000xxxxxx0x101011x11 - rev32. */ - return 553; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01001xxxxxx0x101011xxx - crc32w. */ - return 566; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1010110000xxxxxxxxxxxxxxxx0xxxx + br. */ + return 636; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101xxxxxxx0x101011xxx - asrv. */ - return 560; + x1010110100xxxxxxxxxxxxxxxx0xxxx + eret. */ + return 639; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx011xxxxxxxx0x101011xxx - crc32cw. */ - return 570; + x1010110x10xxxxxxxxxxxxxxxx0xxxx + ret. */ + return 638; } } - } - } - else - { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) + else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10xxxxxxxxx00x01011x0x - csinc. */ - return 525; + x10101100x1xxxxxxxxxxxxxxxx0xxxx + blr. */ + return 637; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10xxxxxxxxx00x01011x1x - csneg. */ - return 531; + x10101101x1xxxxxxxxxxxxxxxx0xxxx + drps. */ + return 640; } } - else + } + } + else + { + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10000xxxxxx01x01011xxx - rev16. */ - return 548; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10001xxxxxx01x01011xxx - crc32h. */ - return 565; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10101x0000xxxxxxxxxx0xxxxx1xxxx + braaz. */ + return 645; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1001xxxxxxx01x01011xxx - lsrv. */ - return 558; + x10101x0100xxxxxxxxxx0xxxxx1xxxx + eretaa. */ + return 651; } } else { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101x0xxxxxx01x01011xxx - cls. */ - return 552; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101x1xxxxxx01x01011xxx - crc32ch. */ - return 569; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10101x0x10xxxxxxxxxx0xxxxx1xxxx + retaa. */ + return 649; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10101x0xx1xxxxxxxxxx0xxxxx1xxxx + blraaz. */ + return 647; + } } else { - if (((word >> 12) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11000xxxxxx0xx01011x0x - sdiv. */ - return 555; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx11000xxxxxx0xx01011x1x - rev. */ - return 550; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10101x0000xxxxxxxxxx1xxxxx1xxxx + brabz. */ + return 646; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11001xxxxxx0xx01011xxx - crc32x. */ - return 567; + x10101x0100xxxxxxxxxx1xxxxx1xxxx + eretab. */ + return 652; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1101xxxxxxx0xx01011xxx - rorv. */ - return 562; + x10101x0x10xxxxxxxxxx1xxxxx1xxxx + retab. */ + return 650; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111xxxxxxxx0xx01011xxx - crc32cx. */ - return 571; + x10101x0xx1xxxxxxxxxx1xxxxx1xxxx + blrabz. */ + return 648; } } } } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1xx0101x00x - bic. */ - return 765; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1xx0101x01x - eon. */ - return 772; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1xx0101x10x - orn. */ - return 769; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1xx0101x11x - bics. */ - return 775; - } - } - } - } - } - else - { - if (((word >> 27) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx01100x00x - sbfm. */ - return 493; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx01100x01x - ubfm. */ - return 503; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx01100x1xx - bfm. */ - return 500; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxx11100xxxx - extr. */ - return 594; - } - } - else - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx1101000x - add. */ - return 19; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx1101001x - sub. */ - return 22; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx1101010x - adds. */ - return 20; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0xx1101011x - subs. */ - return 24; - } - } - } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 25) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx00x11011xxx - madd. */ - return 572; + x1010101xx0xxxxxxxxxxxxxxxxxxxxx + xaflag. */ + return 803; } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx01011011xxx - smulh. */ - return 580; + x1010111xx0xxxxxxxxxx0xxxxxxxxxx + braa. */ + return 641; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx01111011xxx - umulh. */ - return 585; + x1010111xx0xxxxxxxxxx1xxxxxxxxxx + brab. */ + return 642; } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx0xx11011xxx - msub. */ - return 574; - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) + if (((word >> 25) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1x01101000x - add. */ - return 6; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1x01101001x - sub. */ - return 9; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1010101xx1xxxxxxxxxxxxxxxxxxxxx + sysl. */ + return 1195; } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1x01101010x - adds. */ - return 7; + x1010111xx1xxxxxxxxxx0xxxxxxxxxx + blraa. */ + return 643; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1x01101011x - subs. */ - return 10; + x1010111xx1xxxxxxxxxx1xxxxxxxxxx + blrab. */ + return 644; } } } - else - { - if (((word >> 15) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx1x011011xxx - smaddl. */ - return 576; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx1x011011xxx - smsubl. */ - return 578; - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx1x11101xxxx - umaddl. */ - return 581; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx1x11101xxxx - umsubl. */ - return 583; - } } } } - } - } - } - else - { - if (((word >> 27) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) + else { - if (((word >> 31) & 0x1) == 0) + if (((word >> 24) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxxxx10x000 - b. */ - return 510; + if (((word >> 25) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx110100xxxxxxxxxxxxxxxxxxxxxxxx + cbz. */ + return 653; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx110110xxxxxxxxxxxxxxxxxxxxxxxx + tbz. */ + return 1205; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxxxx10x001 - bl. */ - return 511; + if (((word >> 25) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx110101xxxxxxxxxxxxxxxxxxxxxxxx + cbnz. */ + return 654; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx110111xxxxxxxxxxxxxxxxxxxxxxxx + tbnz. */ + return 1206; + } } } - else + } + } + else + { + if (((word >> 25) & 0x1) == 0) + { + if (((word >> 28) & 0x1) == 0) { - if (((word >> 24) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 25) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 31) & 0x1) == 0) + if (((word >> 24) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx0010x010 - b.c. */ - return 519; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx00110000xxxxxxxxxxxxxxxxxxxxxx + st4. */ + return 438; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx10110000xxxxxxxxxxxxxxxxxxxxxx + stnp. */ + return 953; + } } else { - if (((word >> 0) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 1) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { if (((word >> 21) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 00xxxxxxxxxxxxxxxxxxx0xx0010x011 - hlt. */ - return 590; + xx001101000xxxxxxx0xxxxxxxxxxxxx + st1. */ + return 454; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 00xxxxxxxxxxxxxxxxxxx1xx0010x011 - brk. */ - return 589; + xx001101001xxxxxxx0xxxxxxxxxxxxx + st2. */ + return 456; } } else @@ -1774,786 +12180,1069 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 01xxxxxxxxxxxxxxxxxxx0xx0010x011 - hvc. */ - return 587; + xx001101000xxxxxxx1xxxxxxxxxxxxx + st3. */ + return 455; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 01xxxxxxxxxxxxxxxxxxx1xx0010x011 - dcps2. */ - return 592; + xx001101001xxxxxxx1xxxxxxxxxxxxx + st4. */ + return 457; } } } else { - if (((word >> 1) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx10110100xxxxxxxxxxxxxxxxxxxxxx + stp. */ + return 957; + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 24) & 0x1) == 0) { - if (((word >> 21) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 10xxxxxxxxxxxxxxxxxxx0xx0010x011 - svc. */ - return 586; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - 10xxxxxxxxxxxxxxxxxxx1xx0010x011 - dcps1. */ - return 591; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001100100xxxxxxxxxxxxxxxxxxxxx + st4. */ + return 446; } else { - if (((word >> 21) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 11xxxxxxxxxxxxxxxxxxx0xx0010x011 - smc. */ - return 588; + xx001101100xxxxxxx0xxxxxxxxxxxxx + st1. */ + return 466; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - 11xxxxxxxxxxxxxxxxxxx1xx0010x011 - dcps3. */ - return 593; + xx001101100xxxxxxx1xxxxxxxxxxxxx + st3. */ + return 467; } } } - } - } - else - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) + else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0000110x01x - br. */ - return 512; + xx00110x101xxxxxxx0xxxxxxxxxxxxx + st2. */ + return 468; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx0010110x01x - eret. */ - return 515; + xx00110x101xxxxxxx1xxxxxxxxxxxxx + st4. */ + return 469; } } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx10110x10xxxxxxxxxxxxxxxxxxxxxx + stp. */ + return 962; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 24) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx00110001xxxxxxxxxxxxxxxxxxxxxx + ld4. */ + return 442; + } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx01x0110x01x - ret. */ - return 514; + xx10110001xxxxxxxxxxxxxxxxxxxxxx + ldnp. */ + return 954; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1x00110x01x - blr. */ - return 513; + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001101010xxxxxxx0xxxxxxxxxxxxx + ld1. */ + return 458; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001101011xxxxxxx0xxxxxxxxxxxxx + ld2. */ + return 462; + } + } + else + { + if (((word >> 21) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001101010xxxxxxx1xxxxxxxxxxxxx + ld3. */ + return 459; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001101011xxxxxxx1xxxxxxxxxxxxx + ld4. */ + return 463; + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx1x10110x01x - drps. */ - return 516; + xx10110101xxxxxxxxxxxxxxxxxxxxxx + ldp. */ + return 958; } } } - } - else - { - if (((word >> 20) & 0x1) == 0) + else { - if (((word >> 19) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 21) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 24) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx00xxxxx00xxx1x10x01x - msr. */ - return 783; + xx001100110xxxxxxxxxxxxxxxxxxxxx + ld4. */ + return 450; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxx01xxxxx00xxx1x10x01x - hint. */ - return 784; - } - } - else - { - if (((word >> 5) & 0x1) == 0) - { - if (((word >> 6) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxx00xxxxx1xxxxxx00xxx1x10x01x - dsb. */ - return 792; + xx001101110xxxxxxx0xxxxxxxxxxxxx + ld1. */ + return 470; } else { - if (((word >> 7) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxx010xxxx1xxxxxx00xxx1x10x01x - clrex. */ - return 791; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxx011xxxx1xxxxxx00xxx1x10x01x - isb. */ - return 794; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001101110xxxxxxx1xxxxxxxxxxxxx + ld3. */ + return 471; } } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx00110x111xxxxxxx0xxxxxxxxxxxxx + ld2. */ + return 474; + } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxx1xxxxxx1xxxxxx00xxx1x10x01x - dmb. */ - return 793; + xx00110x111xxxxxxx1xxxxxxxxxxxxx + ld4. */ + return 475; } } } - else - { - if (((word >> 21) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxx100xx1x10x01x - sys. */ - return 795; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxx101xx1x10x01x - sysl. */ - return 801; - } - } - } - else - { - if (((word >> 21) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxx10xx1x10x01x - msr. */ - return 800; - } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxx11xx1x10x01x - mrs. */ - return 802; + xx10110x11xxxxxxxxxxxxxxxxxxxxxx + ldp. */ + return 963; } } } } - } - else - { - if (((word >> 24) & 0x1) == 0) - { - if (((word >> 25) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx0010x1xx - cbz. */ - return 517; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx0110x1xx - tbz. */ - return 803; - } - } else { - if (((word >> 25) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx1010x1xx - cbnz. */ - return 518; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx1110x1xx - tbnz. */ - return 804; - } - } - } - } - else - { - if (((word >> 25) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) + if (((word >> 24) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 24) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx00001100xx - st4. */ - return 355; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx00001101xx - stnp. */ - return 741; - } - } - else + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011100xxxxxxxxxxxxxxxxxxxxxxxx + ldr. */ + return 966; + } + else + { + if (((word >> 10) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 21) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx000101100xx - st1. */ - return 371; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx100101100xx - st2. */ - return 373; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111100x0xxxxxxxxxx00xxxxxxxxxx + stur. */ + return 909; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111100x1xxxxxxxxxx00xxxxxxxxxx + ldur. */ + return 910; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111100x0xxxxxxxxxx10xxxxxxxxxx + str. */ + return 888; } else { - if (((word >> 21) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx000101100xx - st3. */ - return 372; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx100101100xx - st4. */ - return 374; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111100x1xxxxxxxxxx10xxxxxxxxxx + ldr. */ + return 889; } } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111100x0xxxxxxxxxxx1xxxxxxxxxx + str. */ + return 865; + } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx00101101xx - stp. */ - return 745; + xx111100x1xxxxxxxxxxx1xxxxxxxxxx + ldr. */ + return 866; } } } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11101x0xxxxxxxxxxxxxxxxxxxxxx + str. */ + return 876; + } else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11101x1xxxxxxxxxxxxxxxxxxxxxx + ldr. */ + return 877; + } + } + } + } + else + { + if (((word >> 24) & 0x1) == 0) + { + if (((word >> 21) & 0x1) == 0) + { + if (((word >> 28) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { - if (((word >> 21) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 24) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx001001100xx - st4. */ - return 363; + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxxxx000xxxxxxxxxx + tbl. */ + return 418; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxxxx100xxxxxxxxxx + tbx. */ + return 419; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxx0x010xxxxxxxxxx + trn1. */ + return 261; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxx1x010xxxxxxxxxx + trn2. */ + return 264; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxx00110xxxxxxxxxx + uzp1. */ + return 260; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxx10110xxxxxxxxxx + uzp2. */ + return 263; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxx01110xxxxxxxxxx + zip1. */ + return 262; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxx11110xxxxxxxxxx + zip2. */ + return 265; + } + } + } + } } else { - if (((word >> 13) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx001101100xx - st1. */ - return 383; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x00xxxxxxx0001xxxxxxxxxx + dup. */ + return 147; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110010xxxxxxx0001xxxxxxxxxx + fmaxnm. */ + return 290; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110110xxxxxxx0001xxxxxxxxxx + fminnm. */ + return 306; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxxx1001xxxxxxxxxx + fcmeq. */ + return 298; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x0xxxxx0x0101xxxxxxxxxx + fadd. */ + return 294; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011101x0xxxxx0x0101xxxxxxxxxx + fsub. */ + return 310; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxx1x0101xxxxxxxxxx + sdot. */ + return 2016; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x0xxxxxxx1101xxxxxxxxxx + fmax. */ + return 300; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011101x0xxxxxxx1101xxxxxxxxxx + fmin. */ + return 312; + } + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx001101100xx - st3. */ - return 384; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x00xxxxxxx0011xxxxxxxxxx + dup. */ + return 148; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110010xxxxxxx0011xxxxxxxxxx + fmla. */ + return 292; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110110xxxxxxx0011xxxxxxxxxx + fmls. */ + return 308; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx0xxxxxxx1011xxxxxxxxxx + smov. */ + return 149; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x00xxxxxxx0111xxxxxxxxxx + ins. */ + return 152; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x10xxxxxxx0111xxxxxxxxxx + fmulx. */ + return 296; + } + } + else + { + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110x00xxxxxxx1111xxxxxxxxxx + umov. */ + return 150; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110010xxxxxxx1111xxxxxxxxxx + frecps. */ + return 302; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110110xxxxxxx1111xxxxxxxxxx + frsqrts. */ + return 314; + } + } + } + } } } } else { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx101x01100xx - st2. */ - return 385; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx101x01100xx - st4. */ - return 386; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx01x01101xx - stp. */ - return 750; - } - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 24) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx10001100xx - ld4. */ - return 359; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx10001101xx - ldnp. */ - return 742; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 21) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx010101100xx - ld1. */ - return 375; + 1x001110000xxxxxxxxxxxxxxxxxxxxx + eor3. */ + return 2023; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx110101100xx - ld2. */ - return 379; + 1x001110100xxxxxxxxxxxxxxxxxxxxx + xar. */ + return 2025; } } else { - if (((word >> 21) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx010101100xx - ld3. */ - return 376; + 1x001110x10xxxxx0xxxxxxxxxxxxxxx + sm3ss1. */ + return 2027; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx110101100xx - ld4. */ - return 380; + if (((word >> 10) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110010xxxxx1xxx00xxxxxxxxxx + sm3tt1a. */ + return 2028; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110110xxxxx1xxx00xxxxxxxxxx + sha512su0. */ + return 2021; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110x10xxxxx1xxx10xxxxxxxxxx + sm3tt2a. */ + return 2030; + } + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110010xxxxx1xxx01xxxxxxxxxx + sm3tt1b. */ + return 2029; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110110xxxxx1xxx01xxxxxxxxxx + sm4e. */ + return 2034; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110x10xxxxx1xxx11xxxxxxxxxx + sm3tt2b. */ + return 2031; + } + } } } } - else + } + else + { + if (((word >> 10) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx10101101xx - ldp. */ - return 746; + xx101110xx0xxxxxxxxxx0xxxxxxxxxx + ext. */ + return 130; } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) + else { - if (((word >> 24) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxx011001100xx - ld4. */ - return 367; + if (((word >> 22) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110x00xxxxx0xxxx1xxxxxxxxxx + ins. */ + return 154; + } + else + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110010xxxxx0x0001xxxxxxxxxx + fmaxnmp. */ + return 341; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110110xxxxx0x0001xxxxxxxxxx + fminnmp. */ + return 357; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110010xxxxx0x1001xxxxxxxxxx + fcmge. */ + return 347; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110110xxxxx0x1001xxxxxxxxxx + fcmgt. */ + return 361; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110010xxxxx0x0101xxxxxxxxxx + faddp. */ + return 343; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110110xxxxx0x0101xxxxxxxxxx + fabd. */ + return 359; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110010xxxxx0x1101xxxxxxxxxx + fmaxp. */ + return 351; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110110xxxxx0x1101xxxxxxxxxx + fminp. */ + return 365; + } + } + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110010xxxxx0xx011xxxxxxxxxx + facge. */ + return 349; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110110xxxxx0xx011xxxxxxxxxx + facgt. */ + return 363; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110x10xxxxx0x0111xxxxxxxxxx + fmul. */ + return 345; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110x10xxxxx0x1111xxxxxxxxxx + fdiv. */ + return 353; + } + } + } + } } else { if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx011101100xx - ld1. */ - return 387; + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 11) & 0x1) == 0) + { + if (((word >> 12) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx100001xxxxxxxxxx + sqrdmlah. */ + return 368; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx100101xxxxxxxxxx + udot. */ + return 2015; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx100x11xxxxxxxxxx + sqrdmlsh. */ + return 369; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx0xxxxx110xx1xxxxxxxxxx + fcmla. */ + return 370; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx011101100xx - ld3. */ - return 388; + xx101110xx0xxxxx1x1xx1xxxxxxxxxx + fcadd. */ + return 371; } } } - else - { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx0xxxxxxx111x01100xx - ld2. */ - return 391; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxx1xxxxxxx111x01100xx - ld4. */ - return 392; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx11x01101xx - ldp. */ - return 751; } } - } - } - else - { - if (((word >> 24) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxxxx001110xx - ldr. */ - return 754; - } else { - if (((word >> 10) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx0x001111xx - stur. */ - return 699; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00xxxxxxxxxx1x001111xx - ldur. */ - return 700; - } - } - else + if (((word >> 30) & 0x1) == 0) { - if (((word >> 22) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxxx0x001111xx - str. */ - return 675; + if (((word >> 17) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx0xxx00xxxxxxxxxxxxxxxx + fcvtzs. */ + return 756; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx0xxx10xxxxxxxxxxxxxxxx + scvtf. */ + return 752; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx01xxxxxxxxxx1x001111xx - ldr. */ - return 676; - } - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxx0x001111xx - str. */ - return 652; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxxx1x001111xx - ldr. */ - return 653; - } - } - } - } - else - { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx0x10111xxx - str. */ - return 663; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxxxxxxxx1x10111xxx - ldr. */ - return 664; - } - } - } - } - else - { - if (((word >> 24) & 0x1) == 0) - { - if (((word >> 21) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 10) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000xxxxxxxx0xx011100xx - tbl. */ - return 341; + x0011110xx0xxx01xxxxxxxxxxxxxxxx + fcvtzu. */ + return 758; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001xxxxxxxx0xx011100xx - tbx. */ - return 342; + x0011110xx0xxx11xxxxxxxxxxxxxxxx + ucvtf. */ + return 754; } } - else + } + else + { + if (((word >> 10) & 0x1) == 0) { if (((word >> 12) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010x0xxxxxx0xx011100xx - trn1. */ - return 216; + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx000x0xxxxxxxxxx + sha1c. */ + return 676; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxx100x0xxxxxxxxxx + sha256h. */ + return 680; + } } else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010x1xxxxxx0xx011100xx - trn2. */ - return 219; - } - } - else - { - if (((word >> 13) & 0x1) == 0) { if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01100xxxxxx0xx011100xx - uzp1. */ - return 215; + x1011110xx0xxxxxx010x0xxxxxxxxxx + sha1m. */ + return 678; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01101xxxxxx0xx011100xx - uzp2. */ - return 218; + x1011110xx0xxxxxx110x0xxxxxxxxxx + sha256su1. */ + return 682; } } - else + } + else + { + if (((word >> 13) & 0x1) == 0) { if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01110xxxxxx0xx011100xx - zip1. */ - return 217; + x1011110xx0xxxxxx001x0xxxxxxxxxx + sha1p. */ + return 677; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx01111xxxxxx0xx011100xx - zip2. */ - return 220; + x1011110xx0xxxxxx101x0xxxxxxxxxx + sha256h2. */ + return 681; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx0xxxxxxx11x0xxxxxxxxxx + sha1su0. */ + return 679; + } } } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0xxxxxxxxxx0xx011101xx - ext. */ - return 119; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 11) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10xxxxxxxxx0xx011100xx - dup. */ - return 135; - } else { - if (((word >> 12) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { if (((word >> 13) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1100xxxxxxx0xx011100xx + x1011110xx0xxxxxxx0x01xxxxxxxxxx dup. */ - return 136; + return 533; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1101xxxxxxx0xx011100xx - smov. */ - return 137; + x1011110xx0xxxxxxx1x01xxxxxxxxxx + fcmeq. */ + return 554; } } else @@ -2562,455 +13251,851 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110xxxxxxx0xx011100xx - ins. */ - return 140; + x1011110xx0xxxxxxx0x11xxxxxxxxxx + fmulx. */ + return 552; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1111xxxxxxx0xx011100xx - umov. */ - return 138; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10111100x0xxxxxxx1x11xxxxxxxxxx + frecps. */ + return 556; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10111101x0xxxxxxx1x11xxxxxxxxxx + frsqrts. */ + return 558; + } } } } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx0xx011101xx - ins. */ - return 142; - } } - } - else - { - if (((word >> 30) & 0x1) == 0) + else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxx00xxx0xx01111x0x - fcvtzs. */ - return 598; + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx0xxxxxxx000xxxxxxxxxxx + sqrdmlah. */ + return 586; + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x0xxxxxxx100xxxxxxxxxxx + fcmge. */ + return 571; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x0xxxxxxx100xxxxxxxxxxx + fcmgt. */ + return 577; + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxx01xxx0xx01111x0x - scvtf. */ - return 596; + xx111110xx0xxxxxxxx10xxxxxxxxxxx + fabd. */ + return 575; } } else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxxx10xxx0xx01111x0x - fcvtzu. */ - return 599; + xx111110xx0xxxxxxx0x1xxxxxxxxxxx + sqrdmlsh. */ + return 587; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxxxxxxxx11xxx0xx01111x0x - ucvtf. */ - return 597; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x0xxxxxxx1x1xxxxxxxxxxx + facge. */ + return 573; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x0xxxxxxx1x1xxxxxxxxxxx + facgt. */ + return 579; + } } } } - else + } + } + else + { + if (((word >> 28) & 0x1) == 0) + { + if (((word >> 15) & 0x1) == 0) { - if (((word >> 10) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 12) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 10) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x000xxxxxx0xx01111x1x - sha1c. */ - return 540; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx000000xxxxxxxxxx + saddl. */ + return 42; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx000000xxxxxxxxxx + saddl2. */ + return 43; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx010000xxxxxxxxxx + addhn. */ + return 50; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx010000xxxxxxxxxx + addhn2. */ + return 51; + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx001000xxxxxxxxxx + ssubl. */ + return 46; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx001000xxxxxxxxxx + ssubl2. */ + return 47; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx011000xxxxxxxxxx + subhn. */ + return 54; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx011000xxxxxxxxxx + subhn2. */ + return 55; + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx000100xxxxxxxxxx + saddw. */ + return 44; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx000100xxxxxxxxxx + saddw2. */ + return 45; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx010100xxxxxxxxxx + sabal. */ + return 52; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx010100xxxxxxxxxx + sabal2. */ + return 53; + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx001100xxxxxxxxxx + ssubw. */ + return 48; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx001100xxxxxxxxxx + ssubw2. */ + return 49; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxxx011100xxxxxxxxxx + sabdl. */ + return 56; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx011100xxxxxxxxxx + sabdl2. */ + return 57; + } + } + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x001xxxxxx0xx01111x1x - sha256h. */ - return 544; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx000010xxxxxxxxxx + rev64. */ + return 160; + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x0xx0010010xxxxxxxxxx + cls. */ + return 164; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x1xx0010010xxxxxxxxxx + aese. */ + return 669; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxx1010010xxxxxxxxxx + sqxtn. */ + return 174; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxx1010010xxxxxxxxxx + sqxtn2. */ + return 175; + } + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxx0001010xxxxxxxxxx + saddlp. */ + return 162; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxx1001010xxxxxxxxxx + xtn. */ + return 172; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxx1001010xxxxxxxxxx + xtn2. */ + return 173; + } + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x0xx0011010xxxxxxxxxx + sadalp. */ + return 166; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x1xx0011010xxxxxxxxxx + aesmc. */ + return 671; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxx1011010xxxxxxxxxx + fcvtn. */ + return 176; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxx1011010xxxxxxxxxx + fcvtn2. */ + return 177; + } + } + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx000110xxxxxxxxxx + rev16. */ + return 161; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x0xxx010110xxxxxxxxxx + cnt. */ + return 165; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x1xxx010110xxxxxxxxxx + aesd. */ + return 670; + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx10xxxx001110xxxxxxxxxx + suqadd. */ + return 163; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx11xxxx001110xxxxxxxxxx + saddlv. */ + return 27; + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x0xx0011110xxxxxxxxxx + sqabs. */ + return 167; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1x1xx0011110xxxxxxxxxx + aesimc. */ + return 672; + } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 00001110xx1xxxx1011110xxxxxxxxxx + fcvtl. */ + return 178; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxx1011110xxxxxxxxxx + fcvtl2. */ + return 179; + } + } + } + } + } } } else { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x010xxxxxx0xx01111x1x - sha1m. */ - return 542; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x011xxxxxx0xx01111x1x - sha256su1. */ - return 546; - } - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x100xxxxxx0xx01111x1x - sha1p. */ - return 541; + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx000001xxxxxxxxxx + shadd. */ + return 266; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx010001xxxxxxxxxx + sshl. */ + return 273; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001001xxxxxxxxxx + shsub. */ + return 269; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011001xxxxxxxxxx + smax. */ + return 277; + } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx000101xxxxxxxxxx + srhadd. */ + return 268; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx010101xxxxxxxxxx + srshl. */ + return 275; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001101xxxxxxxxxx + cmgt. */ + return 271; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011101xxxxxxxxxx + sabd. */ + return 279; + } + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x101xxxxxx0xx01111x1x - sha256h2. */ - return 545; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x11xxxxxxx0xx01111x1x - sha1su0. */ - return 543; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1xxxxxxxxxx0xx01111x1x - dup. */ - return 430; - } - } - } - } - 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 >> 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 - xxxxxxxxxx000000xxxxx1xx0111000x - saddl. */ - return 38; + 0x001110xx1xxxxx000011xxxxxxxxxx + sqadd. */ + return 267; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx1xx0111001x - saddl2. */ - return 39; + 0x001110xx1xxxxx010011xxxxxxxxxx + sqshl. */ + return 274; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx1xx0111010x - uaddl. */ - return 70; + 0x001110xx1xxxxx001011xxxxxxxxxx + sqsub. */ + return 270; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000000xxxxx1xx0111011x - uaddl2. */ - return 71; + 0x001110xx1xxxxx011011xxxxxxxxxx + smin. */ + return 278; } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000000001xx01111xxx - fcvtns. */ - return 600; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000000011xx01111xxx - fcvtms. */ - return 610; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110001xxxxx000111xxxxxxxxxx + and. */ + return 303; } else { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000000101xx01111xxx - fcvtps. */ - return 608; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000000111xx01111xxx - fcvtzs. */ - return 612; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110101xxxxx000111xxxxxxxxxx + orr. */ + return 315; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000001xx1xx01111xxx - fcvtas. */ - return 604; - } - } - else - { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000010xx1xx01111xxx - scvtf. */ - return 602; - } - else - { - if (((word >> 19) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0000000110x1xx01111xxx - fmov. */ - return 606; + 0x001110011xxxxx000111xxxxxxxxxx + bic. */ + return 304; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0000000111x1xx01111xxx - fmov. */ - return 614; + 0x001110111xxxxx000111xxxxxxxxxx + orn. */ + return 317; } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx010111xxxxxxxxxx + sqrshl. */ + return 276; + } } else { - if (((word >> 17) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000100001xx01111xxx - fcvtnu. */ - return 601; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000100011xx01111xxx - fcvtmu. */ - return 611; - } - } - else - { - if (((word >> 20) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000100101xx01111xxx - fcvtpu. */ - return 609; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000100111xx01111xxx - fcvtzu. */ - return 613; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000101xx1xx01111xxx - fcvtau. */ - return 605; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx001111xxxxxxxxxx + cmge. */ + return 272; } else { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000000110xx1xx01111xxx - ucvtf. */ - return 603; - } - else - { - if (((word >> 19) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0000001110x1xx01111xxx - fmov. */ - return 607; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0000001111x1xx01111xxx - fmov. */ - return 615; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxxx011111xxxxxxxxxx + saba. */ + return 280; } } } } - else + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110xx1xxxxx0xxxxxxxxxxxxxxx + bcax. */ + return 2026; + } + } + else + { + 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 - xxxxxxxxxx000001xxxxx1xx0111x00x - smlal. */ - return 54; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx000000xxxxxxxxxx + uaddl. */ + return 74; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx000000xxxxxxxxxx + uaddl2. */ + return 75; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx1xx0111x01x - smlal2. */ - return 55; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx010000xxxxxxxxxx + raddhn. */ + return 82; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx010000xxxxxxxxxx + raddhn2. */ + return 83; + } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx1xx0111x10x - umlal. */ - return 86; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx001000xxxxxxxxxx + usubl. */ + return 78; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx001000xxxxxxxxxx + usubl2. */ + return 79; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000001xxxxx1xx0111x11x - umlal2. */ - return 87; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx011000xxxxxxxxxx + rsubhn. */ + return 86; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx011000xxxxxxxxxx + rsubhn2. */ + return 87; + } } } } - } - else - { - if (((word >> 28) & 0x1) == 0) + 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 - xxxxxxxxxx000010xxxxx1xx0111000x - addhn. */ - return 46; + x0101110xx1xxxxx000100xxxxxxxxxx + uaddw. */ + return 76; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx1xx0111001x - addhn2. */ - return 47; + x1101110xx1xxxxx000100xxxxxxxxxx + uaddw2. */ + return 77; } } else @@ -3019,39 +14104,39 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx1xx0111010x - raddhn. */ - return 78; + x0101110xx1xxxxx010100xxxxxxxxxx + uabal. */ + return 84; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010xxxxx1xx0111011x - raddhn2. */ - return 79; + x1101110xx1xxxxx010100xxxxxxxxxx + uabal2. */ + return 85; } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011xxxxx1xx0111000x - smull. */ - return 62; + x0101110xx1xxxxx001100xxxxxxxxxx + usubw. */ + return 80; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011xxxxx1xx0111001x - smull2. */ - return 63; + x1101110xx1xxxxx001100xxxxxxxxxx + usubw2. */ + return 81; } } else @@ -3060,63 +14145,96 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011xxxxx1xx0111010x - umull. */ - return 90; + x0101110xx1xxxxx011100xxxxxxxxxx + uabdl. */ + return 88; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011xxxxx1xx0111011x - umull2. */ - return 91; + x1101110xx1xxxxx011100xxxxxxxxxx + uabdl2. */ + return 89; } } } } - else + } + else + { + if (((word >> 12) & 0x1) == 0) { - if (((word >> 17) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx000010xxxxxxxxxx + rev32. */ + return 211; + } + else { if (((word >> 16) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0010010xxxxxxxxxx + clz. */ + return 214; + } + else + { + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010000xx1xx01111xxx - fmov. */ - return 622; + x0101110xx1xxxx1010010xxxxxxxxxx + uqxtn. */ + return 224; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010001xx1xx01111xxx - frintn. */ - return 627; + x1101110xx1xxxx1010010xxxxxxxxxx + uqxtn2. */ + return 225; } } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0001010xxxxxxxxxx + uaddlp. */ + return 212; + } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010100xx1xx01111xxx - fneg. */ - return 624; + x0101110xx1xxxx1001010xxxxxxxxxx + sqxtun. */ + return 220; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010101xx1xx01111xxx - frintm. */ - return 629; + x1101110xx1xxxx1001010xxxxxxxxxx + sqxtun2. */ + return 221; } } } @@ -3124,315 +14242,329 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 16) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000011000xx1xx01111xxx - fabs. */ - return 623; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000011001xx1xx01111xxx - frintp. */ - return 628; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0011010xxxxxxxxxx + uadalp. */ + return 215; } else { - if (((word >> 18) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011100xx1xx01111xxx - fsqrt. */ - return 625; + x0101110xx1xxxx1011010xxxxxxxxxx + fcvtxn. */ + return 226; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000011101xx1xx01111xxx - frintz. */ - return 630; + x1101110xx1xxxx1011010xxxxxxxxxx + fcvtxn2. */ + return 227; } } } } - else + } + else + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 18) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx00001xx10xx1xx01111xxx - fcvt. */ - return 626; + xx101110x01xxxxx0x0110xxxxxxxxxx + not. */ + return 240; } else { - if (((word >> 15) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110x11xxxxx0x0110xxxxxxxxxx + rbit. */ + return 242; + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010011xx1xx01111xxx - frinta. */ - return 631; + xx101110xx10xxx0001110xxxxxxxxxx + usqadd. */ + return 213; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000010111xx1xx01111xxx - frintx. */ - return 632; + xx101110xx11xxx0001110xxxxxxxxxx + uaddlv. */ + return 31; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000011x11xx1xx01111xxx - frinti. */ - return 633; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxx1001110xxxxxxxxxx + shll. */ + return 222; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxx1001110xxxxxxxxxx + shll2. */ + return 223; + } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx011110xxxxxxxxxx + sqneg. */ + return 216; + } } } } } else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000100xxxxx1xx0111000x - ssubl. */ - return 42; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000100xxxxx1xx0111001x - ssubl2. */ - return 43; - } - } - else + if (((word >> 14) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000100xxxxx1xx0111010x - usubl. */ - return 74; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000100xxxxx1xx0111011x - usubl2. */ - return 75; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx000001xxxxxxxxxx + uhadd. */ + return 318; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx010001xxxxxxxxxx + ushl. */ + return 325; } } else { - if (((word >> 3) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx00xxxxx000100xxxxx1xx01111xxx - fcmp. */ - return 618; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx01xxxxx000100xxxxx1xx01111xxx - fcmpe. */ - return 619; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx001001xxxxxxxxxx + uhsub. */ + return 321; } else { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx10xxxxx000100xxxxx1xx01111xxx - fcmp. */ - return 620; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxx11xxxxx000100xxxxx1xx01111xxx - fcmpe. */ - return 621; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx011001xxxxxxxxxx + umax. */ + return 329; } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000101xxxxx1xx0111x00x - smlsl. */ - return 58; + xx101110xx1xxxxx000101xxxxxxxxxx + urhadd. */ + return 320; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000101xxxxx1xx0111x01x - smlsl2. */ - return 59; + xx101110xx1xxxxx010101xxxxxxxxxx + urshl. */ + return 327; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000101xxxxx1xx0111x10x - umlsl. */ - return 88; + xx101110xx1xxxxx001101xxxxxxxxxx + cmhi. */ + return 323; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000101xxxxx1xx0111x11x - umlsl2. */ - return 89; + xx101110xx1xxxxx011101xxxxxxxxxx + uabd. */ + return 331; } } } } 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 - xxxxxxxxxx000110xxxxx1xx0111x00x - subhn. */ - return 50; + xx101110xx1xxxxx000011xxxxxxxxxx + uqadd. */ + return 319; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000110xxxxx1xx0111x01x - subhn2. */ - return 51; + xx101110xx1xxxxx010011xxxxxxxxxx + uqshl. */ + return 326; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000110xxxxx1xx0111x10x - rsubhn. */ - return 82; + xx101110xx1xxxxx001011xxxxxxxxxx + uqsub. */ + return 322; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000110xxxxx1xx0111x11x - rsubhn2. */ - return 83; + xx101110xx1xxxxx011011xxxxxxxxxx + umin. */ + return 330; } } } else { - if (((word >> 22) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx000111xxxxx10x0111xx0x - pmull. */ - return 66; + if (((word >> 22) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110001xxxxx000111xxxxxxxxxx + eor. */ + return 354; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110101xxxxx000111xxxxxxxxxx + bit. */ + return 366; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110011xxxxx000111xxxxxxxxxx + bsl. */ + return 355; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110111xxxxx000111xxxxxxxxxx + bif. */ + return 367; + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000111xxxxx10x0111xx1x - pmull2. */ - return 68; + xx101110xx1xxxxx010111xxxxxxxxxx + uqrshl. */ + return 328; } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000111xxxxx11x0111xx0x - pmull. */ - return 67; + xx101110xx1xxxxx001111xxxxxxxxxx + cmhs. */ + return 324; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx000111xxxxx11x0111xx1x - pmull2. */ - return 69; + xx101110xx1xxxxx011111xxxxxxxxxx + uaba. */ + return 332; } } } } } } - else + } + else + { + if (((word >> 10) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 11) & 0x1) == 0) { - if (((word >> 13) & 0x1) == 0) + if (((word >> 12) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -3440,17 +14572,28 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001000xxxxx1xx0111000x - saddw. */ - return 40; + x0001110xx1xxxxx100000xxxxxxxxxx + smlal. */ + return 58; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001000xxxxx1xx0111001x - saddw2. */ - return 41; + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx100000xxxxxxxxxx + smlal2. */ + return 59; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11001110xx1xxxxx100000xxxxxxxxxx + sha512h. */ + return 2019; + } } } else @@ -3459,43 +14602,76 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001000xxxxx1xx0111010x - uaddw. */ - return 72; + x0101110xx1xxxxx100000xxxxxxxxxx + umlal. */ + return 90; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001000xxxxx1xx0111011x - uaddw2. */ - return 73; + x1101110xx1xxxxx100000xxxxxxxxxx + umlal2. */ + return 91; } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001001xxxxx1xx01110x0x - sqdmlal. */ - return 56; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001110xx1xxxxx110000xxxxxxxxxx + smull. */ + return 66; + } + else + { + if (((word >> 31) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 01001110xx1xxxxx110000xxxxxxxxxx + smull2. */ + return 67; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 11001110xx1xxxxx110000xxxxxxxxxx + sm3partw1. */ + return 2032; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001001xxxxx1xx01110x1x - sqdmlal2. */ - return 57; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101110xx1xxxxx110000xxxxxxxxxx + umull. */ + return 94; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101110xx1xxxxx110000xxxxxxxxxx + umull2. */ + return 95; + } } } } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { @@ -3503,17 +14679,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001010xxxxx1xx0111000x - sabal. */ - return 48; + x0001110xx1xxxxx101000xxxxxxxxxx + smlsl. */ + return 62; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001010xxxxx1xx0111001x - sabal2. */ - return 49; + x1001110xx1xxxxx101000xxxxxxxxxx + smlsl2. */ + return 63; } } else @@ -3522,64 +14698,39 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001010xxxxx1xx0111010x - uabal. */ - return 80; + x0101110xx1xxxxx101000xxxxxxxxxx + umlsl. */ + return 92; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001010xxxxx1xx0111011x - uabal2. */ - return 81; + x1101110xx1xxxxx101000xxxxxxxxxx + umlsl2. */ + return 93; } } } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001011xxxxx1xx01110x0x - sqdmull. */ - return 64; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001011xxxxx1xx01110x1x - sqdmull2. */ - return 65; - } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) + if (((word >> 22) & 0x1) == 0) { if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001100xxxxx1xx0111000x - ssubw. */ - return 44; + x0x01110x01xxxxx111000xxxxxxxxxx + pmull. */ + return 70; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001100xxxxx1xx0111001x - ssubw2. */ - return 45; + x1x01110x01xxxxx111000xxxxxxxxxx + pmull2. */ + return 72; } } else @@ -3588,153 +14739,43 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001100xxxxx1xx0111010x - usubw. */ - return 76; + x0x01110x11xxxxx111000xxxxxxxxxx + pmull. */ + return 71; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx001100xxxxx1xx0111011x - usubw2. */ - return 77; + x1x01110x11xxxxx111000xxxxxxxxxx + pmull2. */ + return 73; } } } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001101xxxxx1xx01110x0x - sqdmlsl. */ - return 60; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001101xxxxx1xx01110x1x - sqdmlsl2. */ - return 61; - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx1xx0111000x - sabdl. */ - return 52; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx1xx0111001x - sabdl2. */ - return 53; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx1xx0111010x - uabdl. */ - return 84; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00111xxxxxx1xx0111011x - uabdl2. */ - return 85; - } - } } } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx001xxxxxxxx1xx01111x0x - fmov. */ - return 647; - } else { if (((word >> 13) & 0x1) == 0) { if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00100xxxxxx1xx01111x1x - sqdmlal. */ - return 343; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx00101xxxxxx1xx01111x1x - sqdmull. */ - return 345; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0011xxxxxxx1xx01111x1x - sqdmlsl. */ - return 344; - } - } - } - } - } - 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) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010000xxxxx1xx011100xx - rev64. */ - return 144; + x0x01110xx1xxxxx100100xxxxxxxxxx + sqdmlal. */ + return 60; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010000xxxxx1xx011101xx - rev32. */ - return 180; + x1x01110xx1xxxxx100100xxxxxxxxxx + sqdmlal2. */ + return 61; } } else @@ -3743,323 +14784,623 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010000xxxxx1xx01111x0x - fmul. */ - return 634; + x0x01110xx1xxxxx110100xxxxxxxxxx + sqdmull. */ + return 68; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010000xxxxx1xx01111x1x - sha1h. */ - return 537; + x1x01110xx1xxxxx110100xxxxxxxxxx + sqdmull2. */ + return 69; } } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x01110xx1xxxxx1x1100xxxxxxxxxx + sqdmlsl. */ + return 64; + } + else + { + /* 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 >> 29) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100010xxxx1xx011100xx - cmgt. */ - return 152; + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x001110xx1xxxx0100010xxxxxxxxxx + cmgt. */ + return 168; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1x0xx1100010xxxxxxxxxx + frintn. */ + return 180; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011101x1x0xx1100010xxxxxxxxxx + frintp. */ + return 200; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1x1xx1100010xxxxxxxxxx + frintn. */ + return 181; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011101x1x1xx1100010xxxxxxxxxx + frintp. */ + return 201; + } + } + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100010xxxx1xx011101xx - cmge. */ - return 186; + 1x001110xx1xxxxx100010xxxxxxxxxx + sha512su1. */ + return 2022; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0100010xxxxxxxxxx + cmge. */ + return 217; + } + else + { + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100011xxxx1x0011100xx - frintn. */ - return 164; + xx101110xx1x0xx1100010xxxxxxxxxx + frinta. */ + return 228; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100011xxxx1x0011101xx + xx101110xx1x1xx1100010xxxxxxxxxx frinta. */ - return 197; + return 229; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100011xxxx1x101110xxx - frintp. */ - return 174; - } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010001xxxxx1xx0111100x - fnmul. */ - return 642; + if (((word >> 31) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1xxxx0110010xxxxxxxxxx + fmaxnmv. */ + return 35; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1x0xx1110010xxxxxxxxxx + fcvtas. */ + return 188; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 0x0011100x1x1xx1110010xxxxxxxxxx + fcvtas. */ + return 189; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x0011100x1xxxxx110010xxxxxxxxxx + sm4ekey. */ + return 2035; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010001xxxxx1xx0111101x - cmgt. */ - return 397; + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1xxxx0110010xxxxxxxxxx + fmaxnmv. */ + return 34; + } + else + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x0xx1110010xxxxxxxxxx + fcvtau. */ + return 236; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x1xx1110010xxxxxxxxxx + fcvtau. */ + return 237; + } + } } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010001xxxxx1xx011111xx - cmge. */ - return 415; - } - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 19) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x100xx0110010xxxxxxxxxx + fcmgt. */ + return 192; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x100xx0110010xxxxxxxxxx + fcmge. */ + return 243; + } + } + else + { + 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 + xx0011101x1x1xx0110010xxxxxxxxxx + fcmgt. */ + return 193; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x1xx0110010xxxxxxxxxx + fcmge. */ + return 244; + } + } + } + else { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100100xx0x1xx011100xx - cls. */ - return 148; + xx0011101x1xxxx1110010xxxxxxxxxx + urecpe. */ + return 208; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100100xx0x1xx011101xx - clz. */ - return 183; + xx1011101x1xxxx1110010xxxxxxxxxx + ursqrte. */ + return 255; } } - else + } + } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100100xx1x1xx01110xxx - aese. */ - return 533; + xxx01110xx10xxx0101010xxxxxxxxxx + cmlt. */ + return 170; + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx11xxx0101010xxxxxxxxxx + smaxv. */ + return 28; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx11xxx0101010xxxxxxxxxx + umaxv. */ + return 32; + } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100101xxxx1xx0111000x - sqxtn. */ - return 158; + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x100xx1101010xxxxxxxxxx + fcvtns. */ + return 184; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x100xx1101010xxxxxxxxxx + fcvtnu. */ + return 232; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x100xx1101010xxxxxxxxxx + fcvtps. */ + return 204; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x100xx1101010xxxxxxxxxx + fcvtpu. */ + return 251; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100101xxxx1xx0111001x - sqxtn2. */ - return 159; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx110xx1101010xxxxxxxxxx + sminv. */ + return 29; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx110xx1101010xxxxxxxxxx + uminv. */ + return 33; + } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100101xxxx1xx0111010x - uqxtn. */ - return 193; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x1xx1101010xxxxxxxxxx + fcvtns. */ + return 185; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x1xx1101010xxxxxxxxxx + fcvtnu. */ + return 233; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100101xxxx1xx0111011x - uqxtn2. */ - return 194; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x1xx1101010xxxxxxxxxx + fcvtps. */ + return 205; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x1xx1101010xxxxxxxxxx + fcvtpu. */ + return 252; + } } } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010010xxxxx1xx0111100x - fmax. */ - return 638; + xxx01110xx1x0xx0111010xxxxxxxxxx + fcmlt. */ + return 196; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010010xxxxx1xx0111101x - sqxtn. */ - return 401; + xxx01110xx1x1xx0111010xxxxxxxxxx + fcmlt. */ + return 197; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010010xxxxx1xx011111xx - uqxtn. */ - return 419; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxx1111010xxxxxxxxxx + frint32z. */ + return 156; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx1111010xxxxxxxxxx + frint32x. */ + return 157; + } } } } - else + } + else + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xxx01xx011100xx - fcmgt. */ - return 170; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xxx01xx011101xx - fcmge. */ - return 206; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxx0100110xxxxxxxxxx + cmeq. */ + return 169; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xxx01xx011110xx - fcmgt. */ - return 406; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xxx01xx011111xx - fcmge. */ - return 425; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxx0100110xxxxxxxxxx + cmle. */ + return 218; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xxx11x001110xxx - fmaxnmv. */ - return 34; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x0xx1100110xxxxxxxxxx + frintm. */ + return 182; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x0xx1100110xxxxxxxxxx + frintx. */ + return 230; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xxx11x001111xxx - fmaxnmp. */ - return 433; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x0xx1100110xxxxxxxxxx + frintz. */ + return 202; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x0xx1100110xxxxxxxxxx + frinti. */ + return 249; + } } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xxx11x101110xxx - fminnmv. */ - return 36; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x1xx1100110xxxxxxxxxx + frintm. */ + return 183; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x1xx1100110xxxxxxxxxx + frintx. */ + return 231; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100110xxx11x101111xxx - fminnmp. */ - return 436; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x1xx1100110xxxxxxxxxx + frintz. */ + return 203; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x1xx1100110xxxxxxxxxx + frinti. */ + return 250; + } } } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100111xxxx1x0011100xx - fcvtas. */ - return 168; + xx001110xx1x0xx0110110xxxxxxxxxx + fcmeq. */ + return 194; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100111xxxx1x0011101xx - fcvtau. */ - return 201; + xx101110xx1x0xx0110110xxxxxxxxxx + fcmle. */ + return 245; } } else @@ -4068,209 +15409,203 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100111xxxx1x0011110xx - fcvtas. */ - return 404; + xx001110xx1x1xx0110110xxxxxxxxxx + fcmeq. */ + return 195; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0100111xxxx1x0011111xx - fcvtau. */ - return 423; + xx101110xx1x1xx0110110xxxxxxxxxx + fcmle. */ + return 246; } } } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100111xxxx1x10111x0xx - urecpe. */ - return 178; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0100111xxxx1x10111x1xx - ursqrte. */ - return 212; - } - } - } - } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101000xxxx1xx011100xx - saddlp. */ - return 146; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101000xxxx1xx011101xx - uaddlp. */ - return 181; - } - } - else - { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101001xxxx1xx0111000x - xtn. */ - return 156; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x0xx1110110xxxxxxxxxx + scvtf. */ + return 190; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x0xx1110110xxxxxxxxxx + ucvtf. */ + return 238; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101001xxxx1xx0111001x - xtn2. */ - return 157; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x0xx1110110xxxxxxxxxx + frecpe. */ + return 209; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x0xx1110110xxxxxxxxxx + frsqrte. */ + return 256; + } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101001xxxx1xx0111010x - sqxtun. */ - return 189; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1x1xx1110110xxxxxxxxxx + scvtf. */ + return 191; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1x1xx1110110xxxxxxxxxx + ucvtf. */ + return 239; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101001xxxx1xx0111011x - sqxtun2. */ - return 190; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1x1xx1110110xxxxxxxxxx + frecpe. */ + return 210; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1x1xx1110110xxxxxxxxxx + frsqrte. */ + return 257; + } } } } } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010100xxxxx1xx0111100x - fadd. */ - return 636; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010100xxxxx1xx0111101x - sha256su0. */ - return 539; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010100xxxxx1xx011111xx - sqxtun. */ - return 418; - } - } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101010xxx01xx01110xxx - cmlt. */ - return 154; + xx001110xx1xxxx0101110xxxxxxxxxx + abs. */ + return 171; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101010xxx01xx01111xxx - cmlt. */ - return 399; + xx101110xx1xxxx0101110xxxxxxxxxx + neg. */ + return 219; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101010xxx11xx0111x0xx - smaxv. */ - return 28; + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x100xx1101110xxxxxxxxxx + fcvtms. */ + return 186; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x100xx1101110xxxxxxxxxx + fcvtmu. */ + return 234; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x100xx1101110xxxxxxxxxx + fcvtzs. */ + return 206; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x100xx1101110xxxxxxxxxx + fcvtzu. */ + return 253; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx01110xx110xx1101110xxxxxxxxxx + addv. */ + return 30; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101010xxx11xx0111x1xx - umaxv. */ - return 32; - } - } - } - else - { - if (((word >> 20) & 0x1) == 0) - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101011xxx01x0011100xx - fcvtns. */ - return 166; + xx0011100x1x1xx1101110xxxxxxxxxx + fcvtms. */ + return 187; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101011xxx01x0011101xx - fcvtnu. */ - return 199; + xx1011100x1x1xx1101110xxxxxxxxxx + fcvtmu. */ + return 235; } } else @@ -4279,261 +15614,341 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101011xxx01x0011110xx - fcvtns. */ - return 402; + xx0011101x1x1xx1101110xxxxxxxxxx + fcvtzs. */ + return 207; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101011xxx01x0011111xx - fcvtnu. */ - return 421; + xx1011101x1x1xx1101110xxxxxxxxxx + fcvtzu. */ + return 254; } } } - else + } + } + else + { + if (((word >> 16) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101011xxx01x1011100xx - fcvtps. */ - return 176; + xx001110xx100xx0111110xxxxxxxxxx + fabs. */ + return 198; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101011xxx01x1011101xx - fcvtpu. */ - return 210; + xx101110xx100xx0111110xxxxxxxxxx + fneg. */ + return 247; + } + } + 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 199; + } else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1x1xx0111110xxxxxxxxxx + fneg. */ + return 248; + } + } + } + else + { + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101011xxx01x1011110xx - fcvtps. */ - return 409; + xx0011100x1x0xx1111110xxxxxxxxxx + frint64z. */ + return 158; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101011xxx01x1011111xx - fcvtpu. */ - return 427; + xx1011100x1x0xx1111110xxxxxxxxxx + frint64x. */ + return 159; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx011101x1x0xx1111110xxxxxxxxxx + fsqrt. */ + return 258; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx01110xx1x1xx1111110xxxxxxxxxx + fsqrt. */ + return 259; } } - else + } + } + } + } + } + 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 >> 29) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101011xxx11xx0111x0xx - sminv. */ - return 29; + 0x001110xx1xxxxx100001xxxxxxxxxx + add. */ + return 281; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101011xxx11xx0111x1xx - uminv. */ - return 33; + 1x001110xx1xxxxx100001xxxxxxxxxx + sha512h2. */ + return 2020; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx100001xxxxxxxxxx + sub. */ + return 333; + } } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) + else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101100xx0x1xx011100xx - sadalp. */ - return 150; + 0x0011100x1xxxxx110001xxxxxxxxxx + fmaxnm. */ + return 289; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101100xx0x1xx011101xx - uadalp. */ - return 184; + 1x0011100x1xxxxx110001xxxxxxxxxx + sm3partw2. */ + return 2033; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0101100xx1x1xx01110xxx - aesmc. */ - return 535; + xx1011100x1xxxxx110001xxxxxxxxxx + fmaxnmp. */ + return 340; } } else { if (((word >> 29) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101101xxxx1xx0111000x - fcvtn. */ - return 160; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101101xxxx1xx0111001x - fcvtn2. */ - return 161; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1xxxxx110001xxxxxxxxxx + fminnm. */ + return 305; } else { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101101xxxx1xx0111010x - fcvtxn. */ - return 195; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0101101xxxx1xx0111011x - fcvtxn2. */ - return 196; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011101x1xxxxx110001xxxxxxxxxx + fminnmp. */ + return 356; } } } - else + } + else + { + if (((word >> 14) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010110xxxxx1xx011110xx - fmaxnm. */ - return 640; + xx001110xx1xxxxx101001xxxxxxxxxx + smaxp. */ + return 285; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx010110xxxxx1xx011111xx - fcvtxn. */ - return 420; + xx101110xx1xxxxx101001xxxxxxxxxx + umaxp. */ + return 337; } } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010111xxxxx1xx01110xxx - fcmlt. */ - return 172; - } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx010111xxxxx1xx01111xxx - fcmlt. */ - return 408; + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1xxxxx111001xxxxxxxxxx + fcmeq. */ + return 297; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1xxxxx111001xxxxxxxxxx + fcmge. */ + return 346; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx011101x1xxxxx111001xxxxxxxxxx + fcmgt. */ + return 360; + } } } } - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) + else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011000xxxxx1xx01110xxx - rev16. */ - return 145; - } - else + if (((word >> 14) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx011000xxxxx1xx01111x0x - fdiv. */ - return 635; + xx001110xx1xxxxx100101xxxxxxxxxx + mla. */ + return 283; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx011000xxxxx1xx01111x1x - sha1su1. */ - return 538; + xx101110xx1xxxxx100101xxxxxxxxxx + mls. */ + return 335; } } - } - else - { - if (((word >> 16) & 0x1) == 0) + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110010xxxx1xx011100xx - cmeq. */ - return 153; + xx0011100x1xxxxx110101xxxxxxxxxx + fadd. */ + return 293; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110010xxxx1xx011101xx - cmle. */ - return 187; + xx1011100x1xxxxx110101xxxxxxxxxx + faddp. */ + return 342; } } else @@ -4542,20 +15957,42 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110010xxxx1xx011110xx - cmeq. */ - return 398; + xx0011101x1xxxxx110101xxxxxxxxxx + fsub. */ + return 309; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110010xxxx1xx011111xx - cmle. */ - return 416; + xx1011101x1xxxxx110101xxxxxxxxxx + fabd. */ + return 358; } } } + } + else + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx101101xxxxxxxxxx + sqdmulh. */ + return 287; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx101101xxxxxxxxxx + sqrdmulh. */ + return 339; + } + } else { if (((word >> 23) & 0x1) == 0) @@ -4564,17 +16001,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110011xxxx1x00111x0xx - frintm. */ - return 165; + xx0011100x1xxxxx111101xxxxxxxxxx + fmax. */ + return 299; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110011xxxx1x00111x1xx - frintx. */ - return 198; + xx1011100x1xxxxx111101xxxxxxxxxx + fmaxp. */ + return 350; } } else @@ -4583,860 +16020,753 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110011xxxx1x10111x0xx - frintz. */ - return 175; + xx0011101x1xxxxx111101xxxxxxxxxx + fmin. */ + return 311; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110011xxxx1x10111x1xx - frinti. */ - return 209; + xx1011101x1xxxxx111101xxxxxxxxxx + fminp. */ + return 364; } } } } } - else + } + else + { + if (((word >> 12) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 19) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 31) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx011010xxx0x1xx011100xx - cnt. */ - return 149; - } - else - { - if (((word >> 22) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011010xxx0x10x011101xx - not. */ - return 203; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011010xxx0x11x011101xx - rbit. */ - return 205; - } - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011010xxx1x1xx01110xxx - aesd. */ - return 534; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011010xxxxx1xx01111xxx - fmin. */ - return 639; - } - } - else - { - if (((word >> 16) & 0x1) == 0) - { - if (((word >> 20) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110110xxx01xx011100xx - fcmeq. */ - return 171; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110110xxx01xx011101xx - fcmle. */ - return 207; - } + 0x001110xx1xxxxx100011xxxxxxxxxx + cmtst. */ + return 282; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110110xxx01xx011110xx - fcmeq. */ - return 407; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110110xxx01xx011111xx - fcmle. */ - return 426; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + 1x001110xx1xxxxx100011xxxxxxxxxx + rax1. */ + return 2024; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110110xxx11xx0111xxxx - faddp. */ - return 434; + xx101110xx1xxxxx100011xxxxxxxxxx + cmeq. */ + return 334; } } else { if (((word >> 23) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110111xxxx1x0011100xx - scvtf. */ - return 169; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110111xxxx1x0011101xx - ucvtf. */ - return 202; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011100x1xxxxx110011xxxxxxxxxx + fmla. */ + return 291; } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xxxx1x0011110xx - scvtf. */ - return 405; + x01011100x1xxxxx110011xxxxxxxxxx + fmlal2. */ + return 2038; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xxxx1x0011111xx - ucvtf. */ - return 424; + x11011100x1xxxxx110011xxxxxxxxxx + fmlal2. */ + return 2042; } } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110111xxxx1x1011100xx - frecpe. */ - return 179; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0110111xxxx1x1011101xx - frsqrte. */ - return 213; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011101x1xxxxx110011xxxxxxxxxx + fmls. */ + return 307; } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xxxx1x1011110xx - frecpe. */ - return 411; + x01011101x1xxxxx110011xxxxxxxxxx + fmlsl2. */ + return 2039; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0110111xxxx1x1011111xx - frsqrte. */ - return 429; + x11011101x1xxxxx110011xxxxxxxxxx + fmlsl2. */ + return 2043; } } } } } - } - } - else - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 16) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx101011xxxxxxxxxx + sminp. */ + return 286; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx101011xxxxxxxxxx + uminp. */ + return 338; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111000xxx01xx011100xx - suqadd. */ - return 147; + x00011100x1xxxxx111011xxxxxxxxxx + fmlal. */ + return 2036; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111000xxx01xx011101xx - usqadd. */ - return 182; + x10011100x1xxxxx111011xxxxxxxxxx + fmlal. */ + return 2040; } } else { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011100x1xxxxx111011xxxxxxxxxx + facge. */ + return 348; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111000xxx11xx011100xx - saddlv. */ - return 27; + x00011101x1xxxxx111011xxxxxxxxxx + fmlsl. */ + return 2037; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111000xxx11xx011101xx - uaddlv. */ - return 31; + x10011101x1xxxxx111011xxxxxxxxxx + fmlsl. */ + return 2041; } } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111001xxxx1xx01110x0x - shll. */ - return 191; - } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111001xxxx1xx01110x1x - shll2. */ - return 192; + xx1011101x1xxxxx111011xxxxxxxxxx + facgt. */ + return 362; } } } + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx100111xxxxxxxxxx + mul. */ + return 284; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101110xx1xxxxx100111xxxxxxxxxx + pmul. */ + return 336; + } + } else { if (((word >> 29) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011100xxxxx1xx0111100x - fsub. */ - return 637; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011100xxxxx1xx0111101x - suqadd. */ - return 395; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001110xx1xxxxx110111xxxxxxxxxx + fmulx. */ + return 295; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx011100xxxxx1xx011111xx - usqadd. */ - return 413; + xx101110xx1xxxxx110111xxxxxxxxxx + fmul. */ + return 344; } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx01110xx1xxxxx101111xxxxxxxxxx + addp. */ + return 288; + } + else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 23) & 0x1) == 0) { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111010xxxx1xx011100xx - abs. */ - return 155; + xx0011100x1xxxxx111111xxxxxxxxxx + frecps. */ + return 301; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111010xxxx1xx011101xx - neg. */ - return 188; + xx1011100x1xxxxx111111xxxxxxxxxx + fdiv. */ + return 352; } } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111010xxxx1xx011110xx - abs. */ - return 400; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111010xxxx1xx011111xx - neg. */ - return 417; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx011101x1xxxxx111111xxxxxxxxxx + frsqrts. */ + return 313; } } - else + } + } + } + } + } + } + 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 >> 20) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 23) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xxx01x0011100xx - fcvtms. */ - return 167; + xxx11110xx100000x00000xxxxxxxxxx + fcvtns. */ + return 760; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xxx01x0011101xx - fcvtmu. */ - return 200; + xxx11110xx110000x00000xxxxxxxxxx + fcvtms. */ + return 780; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xxx01x0011110xx - fcvtms. */ - return 403; + xxx11110xx101000x00000xxxxxxxxxx + fcvtps. */ + return 776; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xxx01x0011111xx - fcvtmu. */ - return 422; + xxx11110xx111000x00000xxxxxxxxxx + fcvtzs. */ + return 784; } } } else { - if (((word >> 28) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx100x00000xxxxxxxxxx + fcvtas. */ + return 768; + } + } + else + { + if (((word >> 18) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx010x00000xxxxxxxxxx + scvtf. */ + return 764; + } + else + { + if (((word >> 19) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0110x00000xxxxxxxxxx + fmov. */ + return 772; + } + else + { + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xxx01x1011100xx - fcvtzs. */ - return 177; + xxx11110xx101110x00000xxxxxxxxxx + fmov. */ + return 788; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xxx01x1011101xx - fcvtzu. */ - return 211; + xxx11110xx111110x00000xxxxxxxxxx + fjcvtzs. */ + return 790; + } + } + } + } + } + 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 762; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx110001x00000xxxxxxxxxx + fcvtmu. */ + return 782; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 20) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xxx01x1011110xx - fcvtzs. */ - return 410; + xxx11110xx101001x00000xxxxxxxxxx + fcvtpu. */ + return 778; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xxx01x1011111xx + xxx11110xx111001x00000xxxxxxxxxx fcvtzu. */ - return 428; + return 786; } } } - } - else - { - if (((word >> 28) & 0x1) == 0) + else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xxx11xx01110xxx - addv. */ - return 30; + xxx11110xx1xx101x00000xxxxxxxxxx + fcvtau. */ + return 770; } - else + } + else + { + if (((word >> 18) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111011xxx11xx01111xxx - addp. */ - return 432; + xxx11110xx1xx011x00000xxxxxxxxxx + ucvtf. */ + return 766; } - } - } - } - } - 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) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111100xx0x1xx011100xx - sqabs. */ - return 151; + xxx11110xx1x0111x00000xxxxxxxxxx + fmov. */ + return 774; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111100xx0x1xx011101xx - sqneg. */ - return 185; + xxx11110xx1x1111x00000xxxxxxxxxx + fmov. */ + return 789; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111100xx1x1xx01110xxx - aesimc. */ - return 536; - } - } - else - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111101xxxx1xx01110x0x - fcvtl. */ - return 162; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111101xxxx1xx01110x1x - fcvtl2. */ - return 163; - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011110xxxxx1xx0111100x - fminnm. */ - return 641; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011110xxxxx1xx0111101x - sqabs. */ - return 396; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx011110xxxxx1xx011111xx - sqneg. */ - return 414; } } } else { - if (((word >> 16) & 0x1) == 0) + if (((word >> 17) & 0x1) == 0) { - if (((word >> 20) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xxx01xx0111x0xx - fabs. */ - return 173; + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0000010000xxxxxxxxxx + fmov. */ + return 809; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1000010000xxxxxxxxxx + frint32z. */ + return 805; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx100010000xxxxxxxxxx + frintn. */ + return 818; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xxx01xx0111x1xx - fneg. */ - return 208; + if (((word >> 18) & 0x1) == 0) + { + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0001010000xxxxxxxxxx + fneg. */ + return 813; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1001010000xxxxxxxxxx + frint64z. */ + return 807; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx101010000xxxxxxxxxx + frintm. */ + return 822; + } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 28) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xxx11x001110xxx - fmaxv. */ - return 35; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0000110000xxxxxxxxxx + fabs. */ + return 811; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1000110000xxxxxxxxxx + frint32x. */ + return 806; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111110xxx11x001111xxx - fmaxp. */ - return 435; + xxx11110xx1xx100110000xxxxxxxxxx + frintp. */ + return 820; } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111110xxx11x101110xxx - fminv. */ - return 37; + if (((word >> 19) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0001110000xxxxxxxxxx + fsqrt. */ + return 815; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1001110000xxxxxxxxxx + frint64x. */ + return 808; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111110xxx11x101111xxx - fminp. */ - return 437; + xxx11110xx1xx101110000xxxxxxxxxx + frintz. */ + return 824; } } } } else { - if (((word >> 28) & 0x1) == 0) + if (((word >> 18) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0111111xxxx1xx01110xxx - fsqrt. */ - return 214; + xxx11110xx1xx01xx10000xxxxxxxxxx + fcvt. */ + return 817; } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0111111xxxx1xx01111xxx - frecpx. */ - return 412; + if (((word >> 15) & 0x1) == 0) + { + if (((word >> 16) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx110010000xxxxxxxxxx + frinta. */ + return 826; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx111010000xxxxxxxxxx + frintx. */ + return 828; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xx11x110000xxxxxxxxxx + frinti. */ + return 830; + } } } } } - } - } - } - } - else - { - if (((word >> 11) & 0x1) == 0) - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) + else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 3) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 4) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100000xxxxx1xx011100xx - shadd. */ - return 221; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100000xxxxx1xx011101xx - uhadd. */ - return 261; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxxxx1000xxxxx00xxx + fcmp. */ + return 795; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100001xxxxx1xx011100xx - add. */ - return 236; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100001xxxxx1xx011101xx - sub. */ - return 276; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxxxx1000xxxxx10xxx + fcmpe. */ + return 797; } } else { - if (((word >> 15) & 0x1) == 0) + if (((word >> 4) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100010xxxxx1xx011100xx - sshl. */ - return 228; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100010xxxxx1xx011101xx - ushl. */ - return 268; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxxxx1000xxxxx01xxx + fcmp. */ + return 799; } else { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100011xxxxx1x0011100xx - fmaxnm. */ - return 244; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100011xxxxx1x0011101xx - fmaxnmp. */ - return 283; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100011xxxxx1x1011100xx - fminnm. */ - return 253; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100011xxxxx1x1011101xx - fminnmp. */ - return 292; - } - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxxxx1000xxxxx11xxx + fcmpe. */ + return 801; } } } + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x11110xx1xxxxxxxx100xxxxxxxxxx + fmov. */ + return 858; + } else { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100100xxxxx1xx011100xx - shsub. */ - return 224; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100100xxxxx1xx011101xx - uhsub. */ - return 264; - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100101xxxxx1xx011100xx - smaxp. */ - return 240; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100101xxxxx1xx011101xx - umaxp. */ - return 280; - } - } - } - else + if (((word >> 13) & 0x1) == 0) { - if (((word >> 15) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100110xxxxx1xx011100xx - smax. */ - return 232; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100110xxxxx1xx011101xx - umax. */ - return 272; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11110xx1xxxxxx00100xxxxxxxxxx + sqdmlal. */ + return 420; } else { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxx1x0011100xx - fcmeq. */ - return 248; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxx1x0011101xx - fcmge. */ - return 286; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxx1x101110xxx - fcmgt. */ - return 294; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11110xx1xxxxxx10100xxxxxxxxxx + sqdmull. */ + return 422; } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x11110xx1xxxxxxx1100xxxxxxxxxx + sqdmlsl. */ + return 421; + } } } - else + } + else + { + if (((word >> 12) & 0x1) == 0) { if (((word >> 13) & 0x1) == 0) { @@ -5444,40 +16774,51 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101000xxxxx1xx011100xx - srhadd. */ - return 223; + x0x11110xx1xxxxx000010xxxxxxxxxx + fmul. */ + return 832; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101000xxxxx1xx011101xx - urhadd. */ - return 263; + x1x11110xx1xxxxx000010xxxxxxxxxx + sha1h. */ + return 673; } } else { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101001xxxxx1xx011100xx - mla. */ - return 238; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx100010xxxxxxxxxx + fnmul. */ + return 848; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx100010xxxxxxxxxx + cmgt. */ + return 480; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101001xxxxx1xx011101xx - mls. */ - return 278; + xx111110xx1xxxxx100010xxxxxxxxxx + cmge. */ + return 509; } } } @@ -5487,59 +16828,158 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101010xxxxx1xx011100xx - srshl. */ - return 230; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx010010xxxxxxxxxx + fmax. */ + return 840; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx010010xxxxxxxxxx + sqxtn. */ + return 484; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101010xxxxx1xx011101xx - urshl. */ - return 270; + xx111110xx1xxxxx010010xxxxxxxxxx + uqxtn. */ + return 513; } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101011xxxxx1x0011100xx - fadd. */ - return 246; + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx100xx0110010xxxxxxxxxx + fcmgt. */ + return 493; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx100xx0110010xxxxxxxxxx + fcmge. */ + return 523; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x110xx0110010xxxxxxxxxx + fmaxnmp. */ + return 537; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x110xx0110010xxxxxxxxxx + fmaxnmp. */ + return 536; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x110xx0110010xxxxxxxxxx + fminnmp. */ + return 543; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x110xx0110010xxxxxxxxxx + fminnmp. */ + return 542; + } + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101011xxxxx1x0011101xx - faddp. */ - return 284; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x1xx0110010xxxxxxxxxx + fcmgt. */ + return 494; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x1xx0110010xxxxxxxxxx + fcmge. */ + return 524; + } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101011xxxxx1x1011100xx - fsub. */ - return 255; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x0xx1110010xxxxxxxxxx + fcvtas. */ + return 489; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x0xx1110010xxxxxxxxxx + fcvtau. */ + return 519; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101011xxxxx1x1011101xx - fabd. */ - return 293; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x1xx1110010xxxxxxxxxx + fcvtas. */ + return 490; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x1xx1110010xxxxxxxxxx + fcvtau. */ + return 520; + } } } } @@ -5553,286 +16993,173 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101100xxxxx1xx011100xx - cmgt. */ - return 226; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx001010xxxxxxxxxx + fadd. */ + return 836; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx001010xxxxxxxxxx + sha256su0. */ + return 675; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101100xxxxx1xx011101xx - cmhi. */ - return 266; + xx111110xx1xxxxx001010xxxxxxxxxx + sqxtun. */ + return 512; } } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101101xxxxx1xx011100xx - sqdmulh. */ - return 242; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101101xxxxx1xx011101xx - sqrdmulh. */ - return 282; - } - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101110xxxxx1xx011100xx - sabd. */ - return 234; - } - else + if (((word >> 16) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101110xxxxx1xx011101xx - uabd. */ - return 274; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxxx1x0011100xx - fmax. */ - return 249; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxxx1x0011101xx - fmaxp. */ - return 288; - } + xxx11110xx1xxxx0101010xxxxxxxxxx + cmlt. */ + return 482; } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxxx1x1011100xx - fmin. */ - return 256; + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x0xx1101010xxxxxxxxxx + fcvtns. */ + return 485; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x0xx1101010xxxxxxxxxx + fcvtnu. */ + return 515; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x0xx1101010xxxxxxxxxx + fcvtps. */ + return 499; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x0xx1101010xxxxxxxxxx + fcvtpu. */ + return 527; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx101111xxxxx1x1011101xx - fminp. */ - return 296; + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x1xx1101010xxxxxxxxxx + fcvtns. */ + return 486; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x1xx1101010xxxxxxxxxx + fcvtnu. */ + return 516; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x1xx1101010xxxxxxxxxx + fcvtps. */ + return 500; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x1xx1101010xxxxxxxxxx + fcvtpu. */ + return 528; + } + } } } } } - } - } - } - else - { - if (((word >> 29) & 0x1) == 0) - { - if (((word >> 30) & 0x1) == 0) - { - if (((word >> 4) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx0xxxxx10xxxxxxxxx1xx0111100x - fccmp. */ - return 616; - } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxx1xxxxx10xxxxxxxxx1xx0111100x - fccmpe. */ - return 617; - } - } - else - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) + if (((word >> 15) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10000xxxxxx1xx0111101x - add. */ - return 451; + xx011110xx1xxxxx011010xxxxxxxxxx + fmaxnm. */ + return 844; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10001xxxxxx1xx0111101x - sshl. */ - return 449; + xx111110xx1xxxxx011010xxxxxxxxxx + fcvtxn. */ + return 514; } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1001xxxxxxx1xx0111101x - fcmeq. */ - return 444; - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1010xxxxxxx1xx0111101x - srshl. */ - return 450; - } - else - { - if (((word >> 15) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1011x0xxxxx1xx0111101x - cmgt. */ - return 447; + xxx11110xx1x0xxx111010xxxxxxxxxx + fcmlt. */ + return 497; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1011x1xxxxx1xx0111101x - sqdmulh. */ - return 442; + xxx11110xx1x1xxx111010xxxxxxxxxx + fcmlt. */ + return 498; } } } } } else - { - if (((word >> 12) & 0x1) == 0) - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10000xxxxxx1xx011111xx - sub. */ - return 467; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx10001xxxxxx1xx011111xx - ushl. */ - return 465; - } - } - else - { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1001xxxxxxx1x0011111xx - fcmge. */ - return 458; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1001xxxxxxx1x1011111xx - fcmgt. */ - return 461; - } - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1010x0xxxxx1xx011111xx - urshl. */ - return 466; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1010x1xxxxx1xx011111xx - fabd. */ - return 460; - } - } - else - { - if (((word >> 15) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1011x0xxxxx1xx011111xx - cmhi. */ - return 463; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx1011x1xxxxx1xx011111xx - sqrdmulh. */ - return 457; - } - } - } - } - } - } - else - { - if (((word >> 28) & 0x1) == 0) - { - if (((word >> 12) & 0x1) == 0) { if (((word >> 13) & 0x1) == 0) { @@ -5840,21 +17167,21 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 30) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110000xxxxx1xx011100xx - sqadd. */ - return 222; + x0x11110xx1xxxxx000110xxxxxxxxxx + fdiv. */ + return 834; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110000xxxxx1xx011101xx - uqadd. */ - return 262; + x1x11110xx1xxxxx000110xxxxxxxxxx + sha1su1. */ + return 674; } } else @@ -5863,17 +17190,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110001xxxxx1xx011100xx - cmtst. */ - return 237; + xx011110xx1xxxxx100110xxxxxxxxxx + cmeq. */ + return 481; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110001xxxxx1xx011101xx - cmeq. */ - return 277; + xx111110xx1xxxxx100110xxxxxxxxxx + cmle. */ + return 510; } } } @@ -5881,40 +17208,161 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110010xxxxx1xx011100xx - sqshl. */ - return 229; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110010xxxxx1xx011101xx - uqshl. */ - return 269; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1xxxxx010110xxxxxxxxxx + fmin. */ + return 842; } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110011xxxxx1x001110xxx - fmla. */ - return 245; + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx100xx0110110xxxxxxxxxx + fcmeq. */ + return 495; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx100xx0110110xxxxxxxxxx + fcmle. */ + return 525; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx110xx0110110xxxxxxxxxx + faddp. */ + return 539; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx110xx0110110xxxxxxxxxx + faddp. */ + return 538; + } + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1x1xx0110110xxxxxxxxxx + fcmeq. */ + return 496; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1x1xx0110110xxxxxxxxxx + fcmle. */ + return 526; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110011xxxxx1x101110xxx - fmls. */ - return 254; + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x0xx1110110xxxxxxxxxx + scvtf. */ + return 491; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x0xx1110110xxxxxxxxxx + ucvtf. */ + return 521; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x0xx1110110xxxxxxxxxx + frecpe. */ + return 503; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x0xx1110110xxxxxxxxxx + frsqrte. */ + return 531; + } + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x1xx1110110xxxxxxxxxx + scvtf. */ + return 492; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x1xx1110110xxxxxxxxxx + ucvtf. */ + return 522; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x1xx1110110xxxxxxxxxx + frecpe. */ + return 504; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x1xx1110110xxxxxxxxxx + frsqrte. */ + return 532; + } + } + } } } } @@ -5927,38 +17375,148 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110100xxxxx1xx011100xx - sqsub. */ - return 225; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx001110xxxxxxxxxx + fsub. */ + return 838; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx001110xxxxxxxxxx + suqadd. */ + return 478; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110100xxxxx1xx011101xx - uqsub. */ - return 265; + xx111110xx1xxxxx001110xxxxxxxxxx + usqadd. */ + return 507; } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110101xxxxx1xx011100xx - sminp. */ - return 241; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx011110xx1xxxx0101110xxxxxxxxxx + abs. */ + return 483; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxx0101110xxxxxxxxxx + neg. */ + return 511; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110101xxxxx1xx011101xx - uminp. */ - return 281; + if (((word >> 19) & 0x1) == 0) + { + if (((word >> 20) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x100xx1101110xxxxxxxxxx + fcvtms. */ + return 487; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x100xx1101110xxxxxxxxxx + fcvtmu. */ + return 517; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x100xx1101110xxxxxxxxxx + fcvtzs. */ + return 501; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x100xx1101110xxxxxxxxxx + fcvtzu. */ + return 529; + } + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx110xx1101110xxxxxxxxxx + addp. */ + return 535; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111100x1x1xx1101110xxxxxxxxxx + fcvtms. */ + return 488; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1x1xx1101110xxxxxxxxxx + fcvtmu. */ + return 518; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0111101x1x1xx1101110xxxxxxxxxx + fcvtzs. */ + return 502; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1x1xx1101110xxxxxxxxxx + fcvtzu. */ + return 530; + } + } + } } } } @@ -5968,52 +17526,35 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110110xxxxx1xx011100xx - smin. */ - return 233; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxx011110xxxxxxxxxx + fminnm. */ + return 846; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxx011110xxxxxxxxxx + sqabs. */ + return 479; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110110xxxxx1xx011101xx - umin. */ - return 273; + xx111110xx1xxxxx011110xxxxxxxxxx + sqneg. */ + return 508; } } else { - if (((word >> 23) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110111xxxxx1x001110xxx - facge. */ - return 287; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx110111xxxxx1x101110xxx - facgt. */ - return 295; - } - } - } - } - } - else - { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - if (((word >> 15) & 0x1) == 0) - { - if (((word >> 22) & 0x1) == 0) + if (((word >> 16) & 0x1) == 0) { if (((word >> 23) & 0x1) == 0) { @@ -6021,17 +17562,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx100011100xx - and. */ - return 251; + xx0111100x1xxxx0111110xxxxxxxxxx + fmaxp. */ + return 541; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx100011101xx - eor. */ - return 290; + xx1111100x1xxxx0111110xxxxxxxxxx + fmaxp. */ + return 540; } } else @@ -6040,206 +17581,215 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx101011100xx - orr. */ - return 258; + xx0111101x1xxxx0111110xxxxxxxxxx + fminp. */ + return 545; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx101011101xx - bit. */ - return 297; + xx1111101x1xxxx0111110xxxxxxxxxx + fminp. */ + return 544; } } } else { - if (((word >> 23) & 0x1) == 0) + if (((word >> 19) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx110011100xx - bic. */ - return 252; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx110011101xx - bsl. */ - return 291; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x0xx1111110xxxxxxxxxx + frecpx. */ + return 505; } else { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx111011100xx - orn. */ - return 260; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111000xxxxx111011101xx - bif. */ - return 298; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xxx11110xx1x1xx1111110xxxxxxxxxx + frecpx. */ + return 506; } } } - else - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111001xxxxx1xx011100xx - mul. */ - return 239; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111001xxxxx1xx011101xx - pmul. */ - return 279; - } - } + } + } + } + } + } + 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 791; } else { - if (((word >> 15) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0011110xx1xxxxxxxxx01xxxxx1xxxx + fccmpe. */ + return 793; + } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111010xxxxx1xx011100xx - sqrshl. */ - return 231; + x1011110xx1xxxxxx00001xxxxxxxxxx + add. */ + return 563; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111010xxxxx1xx011101xx - uqrshl. */ - return 271; + x1011110xx1xxxxxx10001xxxxxxxxxx + sshl. */ + return 561; } } else { - if (((word >> 29) & 0x1) == 0) + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxxxx1001xxxxxxxxxx + fcmeq. */ + return 553; + } + } + else + { + if (((word >> 13) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1011110xx1xxxxxxx0101xxxxxxxxxx + srshl. */ + return 562; + } + else + { + if (((word >> 15) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111011xxxxx1xx011100xx - fmulx. */ - return 247; + x1011110xx1xxxxx0x1101xxxxxxxxxx + cmgt. */ + return 559; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111011xxxxx1xx011101xx - fmul. */ - return 285; + x1011110xx1xxxxx1x1101xxxxxxxxxx + sqdmulh. */ + return 550; } } } } + } + else + { + if (((word >> 12) & 0x1) == 0) + { + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxxx00001xxxxxxxxxx + sub. */ + return 584; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxxx10001xxxxxxxxxx + ushl. */ + return 582; + } + } + else + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111100x1xxxxxxx1001xxxxxxxxxx + fcmge. */ + return 570; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111101x1xxxxxxx1001xxxxxxxxxx + fcmgt. */ + return 576; + } + } + } else { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111100xxxxx1xx011100xx - cmge. */ - return 227; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111100xxxxx1xx011101xx - cmhs. */ - return 267; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx0x0101xxxxxxxxxx + urshl. */ + return 583; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx111101xxxxx1xx01110xxx - addp. */ - return 243; + xx111110xx1xxxxx1x0101xxxxxxxxxx + fabd. */ + return 574; } } else { if (((word >> 15) & 0x1) == 0) { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111110xxxxx1xx011100xx - saba. */ - return 235; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111110xxxxx1xx011101xx - uaba. */ - return 275; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx0x1101xxxxxxxxxx + cmhi. */ + return 580; } else { - if (((word >> 23) & 0x1) == 0) - { - if (((word >> 29) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111111xxxxx1x0011100xx - frecps. */ - return 250; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111111xxxxx1x0011101xx - fdiv. */ - return 289; - } - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx111111xxxxx1x101110xxx - frsqrts. */ - return 257; - } + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111110xx1xxxxx1x1101xxxxxxxxxx + sqrdmulh. */ + return 569; } } } @@ -6253,9 +17803,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11xxxxxxxxx1xx0111100x + x0011110xx1xxxxxxxxx11xxxxxxxxxx fcsel. */ - return 648; + return 860; } else { @@ -6269,35 +17819,35 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110000xxxxx1xx0111101x + x1011110xx1xxxxx000011xxxxxxxxxx sqadd. */ - return 438; + return 546; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110001xxxxx1xx0111101x + x1011110xx1xxxxx100011xxxxxxxxxx cmtst. */ - return 452; + return 564; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11001xxxxxx1xx0111101x + x1011110xx1xxxxxx10011xxxxxxxxxx sqshl. */ - return 440; + return 548; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1101xxxxxxx1xx0111101x + x1011110xx1xxxxxxx1011xxxxxxxxxx sqsub. */ - return 439; + return 547; } } else @@ -6308,17 +17858,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x0xxxxx1xx0111101x + x1011110xx1xxxxx0x0111xxxxxxxxxx sqrshl. */ - return 441; + return 549; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x1xxxxx1xx0111101x + x1011110xx1xxxxx1x0111xxxxxxxxxx fmulx. */ - return 443; + return 551; } } else @@ -6327,9 +17877,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11110xxxxxx1xx0111101x + x1011110xx1xxxxxx01111xxxxxxxxxx cmge. */ - return 448; + return 560; } else { @@ -6337,17 +17887,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11111xxxxxx1x00111101x + x10111100x1xxxxxx11111xxxxxxxxxx frecps. */ - return 445; + return 555; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11111xxxxxx1x10111101x + x10111101x1xxxxxx11111xxxxxxxxxx frsqrts. */ - return 446; + return 557; } } } @@ -6366,26 +17916,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110000xxxxx1xx011111xx + xx111110xx1xxxxx000011xxxxxxxxxx uqadd. */ - return 453; + return 565; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110001xxxxx1xx011111xx + xx111110xx1xxxxx100011xxxxxxxxxx cmeq. */ - return 468; + return 585; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11001xxxxxx1xx011111xx + xx111110xx1xxxxxx10011xxxxxxxxxx uqshl. */ - return 455; + return 567; } } else @@ -6394,9 +17944,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11010xxxxxx1xx011111xx + xx111110xx1xxxxxx01011xxxxxxxxxx uqsub. */ - return 454; + return 566; } else { @@ -6404,17 +17954,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11011xxxxxx1x0011111xx + xx1111100x1xxxxxx11011xxxxxxxxxx facge. */ - return 459; + return 572; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11011xxxxxx1x1011111xx + xx1111101x1xxxxxx11011xxxxxxxxxx facgt. */ - return 462; + return 578; } } } @@ -6425,17 +17975,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110xxxxxxx1xx011111xx + xx111110xx1xxxxxxx0111xxxxxxxxxx uqrshl. */ - return 456; + return 568; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1111xxxxxxx1xx011111xx + xx111110xx1xxxxxxx1111xxxxxxxxxx cmhs. */ - return 464; + return 581; } } } @@ -6458,19 +18008,63 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x0000xxxxxxxx11110xxx - mla. */ - return 110; + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001111xxxxxxxx0000x0xxxxxxxxxx + fmlal. */ + return 2044; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001111xxxxxxxx0000x0xxxxxxxxxx + fmlal. */ + return 2048; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101111xxxxxxxx0000x0xxxxxxxxxx + mla. */ + return 117; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x0010xxxxxxxx11110xxx - mls. */ - return 113; + if (((word >> 29) & 0x1) == 0) + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001111xxxxxxxx0100x0xxxxxxxxxx + fmlsl. */ + return 2045; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001111xxxxxxxx0100x0xxxxxxxxxx + fmlsl. */ + return 2049; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101111xxxxxxxx0100x0xxxxxxxxxx + mls. */ + return 120; + } } } else @@ -6483,17 +18077,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0100xxxxxxxx1111000x + x0001111xxxxxxxx0010x0xxxxxxxxxx smlal. */ - return 92; + return 96; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0100xxxxxxxx1111001x + x1001111xxxxxxxx0010x0xxxxxxxxxx smlal2. */ - return 93; + return 97; } } else @@ -6502,17 +18096,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0100xxxxxxxx1111010x + x0101111xxxxxxxx0010x0xxxxxxxxxx umlal. */ - return 111; + return 118; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0100xxxxxxxx1111011x + x1101111xxxxxxxx0010x0xxxxxxxxxx umlal2. */ - return 112; + return 119; } } } @@ -6524,17 +18118,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0110xxxxxxxx1111000x + x0001111xxxxxxxx0110x0xxxxxxxxxx smlsl. */ - return 96; + return 100; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0110xxxxxxxx1111001x + x1001111xxxxxxxx0110x0xxxxxxxxxx smlsl2. */ - return 97; + return 101; } } else @@ -6543,17 +18137,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0110xxxxxxxx1111010x + x0101111xxxxxxxx0110x0xxxxxxxxxx umlsl. */ - return 114; + return 121; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0110xxxxxxxx1111011x + x1101111xxxxxxxx0110x0xxxxxxxxxx umlsl2. */ - return 115; + return 122; } } } @@ -6561,66 +18155,99 @@ aarch64_opcode_lookup_1 (uint32_t word) } else { - if (((word >> 13) & 0x1) == 0) - { - if (((word >> 14) & 0x1) == 0) - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1000xxxxxxxx11110xxx - fmla. */ - return 107; - } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1010xxxxxxxx11110xxx - fmls. */ - return 108; - } - } - else + if (((word >> 29) & 0x1) == 0) { - if (((word >> 14) & 0x1) == 0) + if (((word >> 13) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1100xxxxxxxx11110x0x - sqdmlal. */ - return 94; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011110xxxxxxx0001x0xxxxxxxxxx + fmla. */ + return 112; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011111xxxxxxx0001x0xxxxxxxxxx + fmla. */ + return 111; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1100xxxxxxxx11110x1x - sqdmlal2. */ - return 95; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011110xxxxxxx0101x0xxxxxxxxxx + fmls. */ + return 114; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011111xxxxxxx0101x0xxxxxxxxxx + fmls. */ + return 113; + } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1110xxxxxxxx11110x0x - sqdmlsl. */ - return 98; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001111xxxxxxxx0011x0xxxxxxxxxx + sqdmlal. */ + return 98; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001111xxxxxxxx0011x0xxxxxxxxxx + sqdmlal2. */ + return 99; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1110xxxxxxxx11110x1x - sqdmlsl2. */ - return 99; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001111xxxxxxxx0111x0xxxxxxxxxx + sqdmlsl. */ + return 102; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001111xxxxxxxx0111x0xxxxxxxxxx + sqdmlsl2. */ + return 103; + } } } } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx101111xxxxxxxx0xx1x0xxxxxxxxxx + fcmla. */ + return 129; + } } } else @@ -6631,17 +18258,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x0xx0xxxxxxxx111100xx + xx001111xxxxxxxx0xx0x1xxxxxxxxxx movi. */ - return 120; + return 131; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x0xx0xxxxxxxx111101xx + xx101111xxxxxxxx0xx0x1xxxxxxxxxx mvni. */ - return 127; + return 139; } } else @@ -6650,17 +18277,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1xx0xxxxxxxx111100xx + xx001111xxxxxxxx0xx1x1xxxxxxxxxx orr. */ - return 121; + return 132; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1xx0xxxxxxxx111101xx + xx101111xxxxxxxx0xx1x1xxxxxxxxxx bic. */ - return 128; + return 140; } } } @@ -6675,17 +18302,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx0xx1111100x + x0011111xx0xxxxx0xxxxxxxxxxxxxxx fmadd. */ - return 643; + return 850; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx0xxxxx1xx1111100x + x0011111xx1xxxxx0xxxxxxxxxxxxxxx fnmadd. */ - return 645; + return 854; } } else @@ -6696,19 +18323,41 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0xx000xxxxxxxx1111101x - fmla. */ - return 351; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10111110xxxxxxx000xx0xxxxxxxxxx + fmla. */ + return 429; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10111111xxxxxxx000xx0xxxxxxxxxx + fmla. */ + return 428; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0xx010xxxxxxxx1111101x - fmls. */ - return 352; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10111110xxxxxxx010xx0xxxxxxxxxx + fmls. */ + return 431; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10111111xxxxxxx010xx0xxxxxxxxxx + fmls. */ + return 430; + } } } else @@ -6717,17 +18366,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xx100xxxxxxxx1111101x + x1011111xxxxxxxx001xx0xxxxxxxxxx sqdmlal. */ - return 346; + return 423; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0xx110xxxxxxxx1111101x + x1011111xxxxxxxx011xx0xxxxxxxxxx sqdmlsl. */ - return 347; + return 424; } } } @@ -6739,17 +18388,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x00x0xxxxxxxx1111101x + x1011111xxxxxxxx0x00x1xxxxxxxxxx sshr. */ - return 469; + return 588; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x01x0xxxxxxxx1111101x + x1011111xxxxxxxx0x10x1xxxxxxxxxx srshr. */ - return 471; + return 590; } } else @@ -6760,17 +18409,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1000xxxxxxxx1111101x + x1011111xxxxxxxx0001x1xxxxxxxxxx ssra. */ - return 470; + return 589; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1010xxxxxxxx1111101x + x1011111xxxxxxxx0101x1xxxxxxxxxx shl. */ - return 473; + return 592; } } else @@ -6779,17 +18428,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1100xxxxxxxx1111101x + x1011111xxxxxxxx0011x1xxxxxxxxxx srsra. */ - return 472; + return 591; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1x1110xxxxxxxx1111101x + x1011111xxxxxxxx0111x1xxxxxxxxxx sqshl. */ - return 474; + return 593; } } } @@ -6806,17 +18455,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx0000xxxxxxxx111111xx + xx111111xxxxxxxx0000xxxxxxxxxxxx ushr. */ - return 479; + return 600; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx0010xxxxxxxx111111xx + xx111111xxxxxxxx0100xxxxxxxxxxxx sri. */ - return 483; + return 604; } } else @@ -6825,17 +18474,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx0100xxxxxxxx111111xx + xx111111xxxxxxxx0010xxxxxxxxxxxx urshr. */ - return 481; + return 602; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx0110xxxxxxxx111111xx + xx111111xxxxxxxx0110xxxxxxxxxxxx sqshlu. */ - return 485; + return 606; } } } @@ -6847,17 +18496,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx1000xxxxxxxx111111xx + xx111111xxxxxxxx0001xxxxxxxxxxxx usra. */ - return 480; + return 601; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx1010xxxxxxxx111111xx + xx111111xxxxxxxx0101xxxxxxxxxxxx sli. */ - return 484; + return 605; } } else @@ -6866,17 +18515,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx1100xxxxxxxx111111xx + xx111111xxxxxxxx0011xxxxxxxxxxxx ursra. */ - return 482; + return 603; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxx1110xxxxxxxx111111xx + xx111111xxxxxxxx0111xxxxxxxxxxxx uqshl. */ - return 486; + return 607; } } } @@ -6895,59 +18544,125 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x0001xxxxxxxx11110xxx - mul. */ - return 100; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001111xxxxxxxx1000x0xxxxxxxxxx + mul. */ + return 104; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101111xxxxxxxx1000x0xxxxxxxxxx + fmlal2. */ + return 2046; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101111xxxxxxxx1000x0xxxxxxxxxx + fmlal2. */ + return 2050; + } + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x0011xxxxxxxx11110xxx - sqdmulh. */ - return 105; + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx001111xxxxxxxx1100x0xxxxxxxxxx + sqdmulh. */ + return 109; + } + else + { + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101111xxxxxxxx1100x0xxxxxxxxxx + fmlsl2. */ + return 2047; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101111xxxxxxxx1100x0xxxxxxxxxx + fmlsl2. */ + return 2051; + } + } } } else { - if (((word >> 29) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - if (((word >> 30) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x01x1xxxxxxxx1111000x - smull. */ - return 101; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0001111xxxxxxxx1010x0xxxxxxxxxx + smull. */ + return 105; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1001111xxxxxxxx1010x0xxxxxxxxxx + smull2. */ + return 106; + } } else { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x01x1xxxxxxxx1111001x - smull2. */ - return 102; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0101111xxxxxxxx1010x0xxxxxxxxxx + umull. */ + return 123; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1101111xxxxxxxx1010x0xxxxxxxxxx + umull2. */ + return 124; + } } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x01x1xxxxxxxx1111010x - umull. */ - return 116; + xx001111xxxxxxxx1110x0xxxxxxxxxx + sdot. */ + return 2018; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x01x1xxxxxxxx1111011x - umull2. */ - return 117; + xx101111xxxxxxxx1110x0xxxxxxxxxx + udot. */ + return 2017; } } } @@ -6957,50 +18672,94 @@ aarch64_opcode_lookup_1 (uint32_t word) if (((word >> 13) & 0x1) == 0) { if (((word >> 14) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011110xxxxxxx1001x0xxxxxxxxxx + fmul. */ + return 116; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011110xxxxxxx1001x0xxxxxxxxxx + fmulx. */ + return 126; + } + } + else + { + if (((word >> 29) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx0011111xxxxxxx1001x0xxxxxxxxxx + fmul. */ + return 115; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1011111xxxxxxx1001x0xxxxxxxxxx + fmulx. */ + return 125; + } + } + } + else { if (((word >> 29) & 0x1) == 0) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1001xxxxxxxx111100xx - fmul. */ - return 109; + xx001111xxxxxxxx1101x0xxxxxxxxxx + sqrdmulh. */ + return 110; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1001xxxxxxxx111101xx - fmulx. */ - return 118; + xx101111xxxxxxxx1101x0xxxxxxxxxx + sqrdmlah. */ + return 127; } } - else - { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1011xxxxxxxx11110xxx - sqrdmulh. */ - return 106; - } } else { - if (((word >> 30) & 0x1) == 0) + if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x11x1xxxxxxxx11110x0x - sqdmull. */ - return 103; + if (((word >> 30) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x0x01111xxxxxxxx1011x0xxxxxxxxxx + sqdmull. */ + return 107; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x1x01111xxxxxxxx1011x0xxxxxxxxxx + sqdmull2. */ + return 108; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x11x1xxxxxxxx11110x1x - sqdmull2. */ - return 104; + xxx01111xxxxxxxx1111x0xxxxxxxxxx + sqrdmlsh. */ + return 128; } } } @@ -7017,17 +18776,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100x01xxxxxxxx111100xx + xx001111xxxxxxxx10x001xxxxxxxxxx movi. */ - return 122; + return 133; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100x01xxxxxxxx111101xx + xx101111xxxxxxxx10x001xxxxxxxxxx mvni. */ - return 129; + return 141; } } else @@ -7036,17 +18795,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101x01xxxxxxxx111100xx + xx001111xxxxxxxx10x101xxxxxxxxxx orr. */ - return 123; + return 134; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101x01xxxxxxxx111101xx + xx101111xxxxxxxx10x101xxxxxxxxxx bic. */ - return 130; + return 142; } } } @@ -7058,17 +18817,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10x011xxxxxxxx111100xx + xx001111xxxxxxxx110x01xxxxxxxxxx movi. */ - return 124; + return 135; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx10x011xxxxxxxx111101xx + xx101111xxxxxxxx110x01xxxxxxxxxx mvni. */ - return 131; + return 143; } } else @@ -7079,17 +18838,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxxxxx111100xx + xx001111xxxxxxxx111001xxxxxxxxxx movi. */ - return 125; + return 136; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100111xxxxxxxx111101xx + xx101111xxxxxxxx111001xxxxxxxxxx movi. */ - return 132; + return 144; } } else @@ -7098,17 +18857,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101111xxxxxxxx111100xx + xx001111xxxxxxxx111101xxxxxxxxxx fmov. */ - return 126; + return 137; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101111xxxxxxxx111101xx + xx101111xxxxxxxx111101xxxxxxxxxx fmov. */ - return 134; + return 146; } } } @@ -7124,17 +18883,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110xx1xxxxxxxx1111000x + x0001111xxxxxxxx1xx011xxxxxxxxxx rshrn. */ - return 307; + return 380; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110xx1xxxxxxxx1111001x + x1001111xxxxxxxx1xx011xxxxxxxxxx rshrn2. */ - return 308; + return 381; } } else @@ -7143,17 +18902,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110xx1xxxxxxxx1111010x + x0101111xxxxxxxx1xx011xxxxxxxxxx sqrshrun. */ - return 329; + return 404; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110xx1xxxxxxxx1111011x + x1101111xxxxxxxx1xx011xxxxxxxxxx sqrshrun2. */ - return 330; + return 405; } } } @@ -7167,17 +18926,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x1xxxxxxxx1111000x + x0001111xxxxxxxx1x0111xxxxxxxxxx sqrshrn. */ - return 311; + return 384; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x1xxxxxxxx1111001x + x1001111xxxxxxxx1x0111xxxxxxxxxx sqrshrn2. */ - return 312; + return 385; } } else @@ -7186,17 +18945,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x1xxxxxxxx1111010x + x0101111xxxxxxxx1x0111xxxxxxxxxx uqrshrn. */ - return 333; + return 408; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x1xxxxxxxx1111011x + x1101111xxxxxxxx1x0111xxxxxxxxxx uqrshrn2. */ - return 334; + return 409; } } } @@ -7206,17 +18965,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1111x1xxxxxxxx111100xx - fcvtzs. */ - return 318; + xx001111xxxxxxxx1x1111xxxxxxxxxx + fmov. */ + return 138; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1111x1xxxxxxxx111101xx + xx101111xxxxxxxx1x1111xxxxxxxxxx fcvtzu. */ - return 340; + return 416; } } } @@ -7233,17 +18992,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx0xx1111100x + x0011111xx0xxxxx1xxxxxxxxxxxxxxx fmsub. */ - return 644; + return 852; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxxxxxxx1xxxxx1xx1111100x + x0011111xx1xxxxx1xxxxxxxxxxxxxxx fnmsub. */ - return 646; + return 856; } } else @@ -7254,9 +19013,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x0xx1xxxxxxxx1111101x + x1011111xxxxxxxx1xx0x0xxxxxxxxxx sqdmulh. */ - return 349; + return 426; } else { @@ -7264,28 +19023,39 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 14) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0x1001xxxxxxxx1111101x - fmul. */ - return 353; + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10111110xxxxxxx1001x0xxxxxxxxxx + fmul. */ + return 433; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + x10111111xxxxxxx1001x0xxxxxxxxxx + fmul. */ + return 432; + } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x1011xxxxxxxx1111101x + x1011111xxxxxxxx1101x0xxxxxxxxxx sqrdmulh. */ - return 350; + return 427; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx0x11x1xxxxxxxx1111101x + x1011111xxxxxxxx1x11x0xxxxxxxxxx sqdmull. */ - return 348; + return 425; } } } @@ -7297,17 +19067,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx100xx1xxxxxxxx1111101x + x1011111xxxxxxxx1xx001xxxxxxxxxx scvtf. */ - return 477; + return 596; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101xx1xxxxxxxx1111101x + x1011111xxxxxxxx1xx101xxxxxxxxxx sqshrn. */ - return 475; + return 594; } } else @@ -7316,17 +19086,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11x0x1xxxxxxxx1111101x + x1011111xxxxxxxx1x0x11xxxxxxxxxx sqrshrn. */ - return 476; + return 595; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx11x1x1xxxxxxxx1111101x + x1011111xxxxxxxx1x1x11xxxxxxxxxx fcvtzs. */ - return 478; + return 598; } } } @@ -7336,11 +19106,44 @@ aarch64_opcode_lookup_1 (uint32_t word) { if (((word >> 10) & 0x1) == 0) { - /* 33222222222211111111110000000000 - 10987654321098765432109876543210 - xxxxxxxxxx0xxxx1xxxxxxxx111111xx - fmulx. */ - return 354; + if (((word >> 13) & 0x1) == 0) + { + if (((word >> 14) & 0x1) == 0) + { + if (((word >> 23) & 0x1) == 0) + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111110xxxxxxx100xx0xxxxxxxxxx + fmulx. */ + return 435; + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx1111111xxxxxxx100xx0xxxxxxxxxx + fmulx. */ + return 434; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111111xxxxxxxx110xx0xxxxxxxxxx + sqrdmlah. */ + return 436; + } + } + else + { + /* 33222222222211111111110000000000 + 10987654321098765432109876543210 + xx111111xxxxxxxx1x1xx0xxxxxxxxxx + sqrdmlsh. */ + return 437; + } } else { @@ -7352,26 +19155,26 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1000x1xxxxxxxx111111xx + xx111111xxxxxxxx1x0001xxxxxxxxxx sqshrun. */ - return 487; + return 608; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1001x1xxxxxxxx111111xx + xx111111xxxxxxxx1x1001xxxxxxxxxx ucvtf. */ - return 491; + return 612; } } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx101xx1xxxxxxxx111111xx + xx111111xxxxxxxx1xx101xxxxxxxxxx uqshrn. */ - return 489; + return 610; } } else @@ -7380,9 +19183,9 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx110xx1xxxxxxxx111111xx + xx111111xxxxxxxx1xx011xxxxxxxxxx sqrshrun. */ - return 488; + return 609; } else { @@ -7390,17 +19193,17 @@ aarch64_opcode_lookup_1 (uint32_t word) { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1110x1xxxxxxxx111111xx + xx111111xxxxxxxx1x0111xxxxxxxxxx uqrshrn. */ - return 490; + return 611; } else { /* 33222222222211111111110000000000 10987654321098765432109876543210 - xxxxxxxxxx1111x1xxxxxxxx111111xx + xx111111xxxxxxxx1x1111xxxxxxxxxx fcvtzu. */ - return 492; + return 614; } } } @@ -7431,81 +19234,243 @@ aarch64_find_next_opcode (const aarch64_opcode *opcode) int value; switch (key) { - case 739: value = 743; break; /* stnp --> stp. */ - case 743: return NULL; /* stp --> NULL. */ - case 740: value = 744; break; /* ldnp --> ldp. */ - case 744: return NULL; /* ldp --> NULL. */ - case 355: value = 356; break; /* st4 --> st1. */ - case 356: value = 357; break; /* st1 --> st2. */ - case 357: value = 358; break; /* st2 --> st3. */ - case 358: return NULL; /* st3 --> NULL. */ - case 363: value = 364; break; /* st4 --> st1. */ - case 364: value = 365; break; /* st1 --> st2. */ - case 365: value = 366; break; /* st2 --> st3. */ - case 366: return NULL; /* st3 --> NULL. */ - case 359: value = 360; break; /* ld4 --> ld1. */ - case 360: value = 361; break; /* ld1 --> ld2. */ - case 361: value = 362; break; /* ld2 --> ld3. */ - case 362: return NULL; /* ld3 --> NULL. */ - case 375: value = 377; break; /* ld1 --> ld1r. */ - case 377: return NULL; /* ld1r --> NULL. */ - case 379: value = 381; break; /* ld2 --> ld2r. */ - case 381: return NULL; /* ld2r --> NULL. */ - case 376: value = 378; break; /* ld3 --> ld3r. */ - case 378: return NULL; /* ld3r --> NULL. */ - case 380: value = 382; break; /* ld4 --> ld4r. */ - case 382: return NULL; /* ld4r --> NULL. */ - case 367: value = 368; break; /* ld4 --> ld1. */ - case 368: value = 369; break; /* ld1 --> ld2. */ - case 369: value = 370; break; /* ld2 --> ld3. */ - case 370: return NULL; /* ld3 --> NULL. */ - case 387: value = 389; break; /* ld1 --> ld1r. */ - case 389: return NULL; /* ld1r --> NULL. */ - case 388: value = 390; break; /* ld3 --> ld3r. */ - case 390: return NULL; /* ld3r --> NULL. */ - case 391: value = 393; break; /* ld2 --> ld2r. */ - case 393: return NULL; /* ld2r --> NULL. */ - case 392: value = 394; break; /* ld4 --> ld4r. */ - case 394: return NULL; /* ld4r --> NULL. */ - case 120: value = 299; break; /* movi --> sshr. */ - case 299: value = 301; break; /* sshr --> srshr. */ - case 301: return NULL; /* srshr --> NULL. */ - case 127: value = 319; break; /* mvni --> ushr. */ - case 319: value = 321; break; /* ushr --> urshr. */ - case 321: value = 323; break; /* urshr --> sri. */ - case 323: value = 325; break; /* sri --> sqshlu. */ - case 325: return NULL; /* sqshlu --> NULL. */ - case 121: value = 300; break; /* orr --> ssra. */ - case 300: value = 302; break; /* ssra --> srsra. */ - case 302: value = 303; break; /* srsra --> shl. */ - case 303: value = 304; break; /* shl --> sqshl. */ - case 304: return NULL; /* sqshl --> NULL. */ - case 128: value = 320; break; /* bic --> usra. */ - case 320: value = 322; break; /* usra --> ursra. */ - case 322: value = 324; break; /* ursra --> sli. */ - case 324: value = 326; break; /* sli --> uqshl. */ - case 326: return NULL; /* uqshl --> NULL. */ - case 122: value = 305; break; /* movi --> shrn. */ - case 305: value = 306; break; /* shrn --> shrn2. */ - case 306: value = 313; break; /* shrn2 --> sshll. */ - case 313: value = 315; break; /* sshll --> sshll2. */ - case 315: return NULL; /* sshll2 --> NULL. */ - case 129: value = 327; break; /* mvni --> sqshrun. */ - case 327: value = 328; break; /* sqshrun --> sqshrun2. */ - case 328: value = 335; break; /* sqshrun2 --> ushll. */ - case 335: value = 337; break; /* ushll --> ushll2. */ - case 337: return NULL; /* ushll2 --> NULL. */ - case 123: value = 309; break; /* orr --> sqshrn. */ - case 309: value = 310; break; /* sqshrn --> sqshrn2. */ - case 310: return NULL; /* sqshrn2 --> NULL. */ - case 130: value = 331; break; /* bic --> uqshrn. */ - case 331: value = 332; break; /* uqshrn --> uqshrn2. */ - case 332: return NULL; /* uqshrn2 --> NULL. */ - case 125: value = 317; break; /* movi --> scvtf. */ - case 317: return NULL; /* scvtf --> NULL. */ - case 132: value = 133; break; /* movi --> movi. */ - case 133: value = 339; break; /* movi --> ucvtf. */ - case 339: return NULL; /* ucvtf --> NULL. */ + case 951: value = 955; break; /* stnp --> stp. */ + case 955: return NULL; /* stp --> NULL. */ + case 949: value = 950; break; /* stllrb --> stllrh. */ + case 950: return NULL; /* stllrh --> NULL. */ + case 952: value = 956; break; /* ldnp --> ldp. */ + case 956: return NULL; /* ldp --> NULL. */ + case 1594: value = 1595; break; /* ldff1b --> ldff1b. */ + case 1595: return NULL; /* ldff1b --> NULL. */ + case 1650: value = 1651; break; /* ldff1sw --> ldff1sw. */ + case 1651: return NULL; /* ldff1sw --> NULL. */ + case 1598: value = 1599; break; /* ldff1b --> ldff1b. */ + case 1599: return NULL; /* ldff1b --> NULL. */ + case 1617: value = 1618; break; /* ldff1h --> ldff1h. */ + case 1618: return NULL; /* ldff1h --> NULL. */ + case 1596: value = 1597; break; /* ldff1b --> ldff1b. */ + case 1597: return NULL; /* ldff1b --> NULL. */ + case 1615: value = 1616; break; /* ldff1h --> ldff1h. */ + case 1616: return NULL; /* ldff1h --> NULL. */ + case 1600: value = 1601; break; /* ldff1b --> ldff1b. */ + case 1601: return NULL; /* ldff1b --> NULL. */ + case 1619: value = 1620; break; /* ldff1h --> ldff1h. */ + case 1620: return NULL; /* ldff1h --> NULL. */ + case 1640: value = 1641; break; /* ldff1sh --> ldff1sh. */ + case 1641: return NULL; /* ldff1sh --> NULL. */ + case 1628: value = 1629; break; /* ldff1sb --> ldff1sb. */ + case 1629: return NULL; /* ldff1sb --> NULL. */ + case 1659: value = 1660; break; /* ldff1w --> ldff1w. */ + case 1660: return NULL; /* ldff1w --> NULL. */ + case 1632: value = 1633; break; /* ldff1sb --> ldff1sb. */ + case 1633: return NULL; /* ldff1sb --> NULL. */ + case 1642: value = 1643; break; /* ldff1sh --> ldff1sh. */ + case 1643: return NULL; /* ldff1sh --> NULL. */ + case 1630: value = 1631; break; /* ldff1sb --> ldff1sb. */ + case 1631: return NULL; /* ldff1sb --> NULL. */ + case 1661: value = 1662; break; /* ldff1w --> ldff1w. */ + case 1662: return NULL; /* ldff1w --> NULL. */ + case 1606: value = 1607; break; /* ldff1d --> ldff1d. */ + case 1607: return NULL; /* ldff1d --> NULL. */ + case 803: value = 804; break; /* xaflag --> axflag. */ + case 804: value = 1167; break; /* axflag --> msr. */ + case 1167: value = 1168; break; /* msr --> hint. */ + case 1168: value = 1183; break; /* hint --> clrex. */ + case 1183: value = 1184; break; /* clrex --> dsb. */ + case 1184: value = 1187; break; /* dsb --> dmb. */ + case 1187: value = 1188; break; /* dmb --> isb. */ + case 1188: value = 1189; break; /* isb --> sys. */ + case 1189: value = 1194; break; /* sys --> msr. */ + case 1194: value = 2052; break; /* msr --> cfinv. */ + case 2052: return NULL; /* cfinv --> NULL. */ + case 1195: value = 1196; break; /* sysl --> mrs. */ + case 1196: return NULL; /* mrs --> NULL. */ + case 438: value = 439; break; /* st4 --> st1. */ + case 439: value = 440; break; /* st1 --> st2. */ + case 440: value = 441; break; /* st2 --> st3. */ + case 441: return NULL; /* st3 --> NULL. */ + case 446: value = 447; break; /* st4 --> st1. */ + case 447: value = 448; break; /* st1 --> st2. */ + case 448: value = 449; break; /* st2 --> st3. */ + case 449: return NULL; /* st3 --> NULL. */ + case 442: value = 443; break; /* ld4 --> ld1. */ + case 443: value = 444; break; /* ld1 --> ld2. */ + case 444: value = 445; break; /* ld2 --> ld3. */ + case 445: return NULL; /* ld3 --> NULL. */ + case 458: value = 460; break; /* ld1 --> ld1r. */ + case 460: return NULL; /* ld1r --> NULL. */ + case 462: value = 464; break; /* ld2 --> ld2r. */ + case 464: return NULL; /* ld2r --> NULL. */ + case 459: value = 461; break; /* ld3 --> ld3r. */ + case 461: return NULL; /* ld3r --> NULL. */ + case 463: value = 465; break; /* ld4 --> ld4r. */ + case 465: return NULL; /* ld4r --> NULL. */ + case 450: value = 451; break; /* ld4 --> ld1. */ + case 451: value = 452; break; /* ld1 --> ld2. */ + case 452: value = 453; break; /* ld2 --> ld3. */ + case 453: return NULL; /* ld3 --> NULL. */ + case 470: value = 472; break; /* ld1 --> ld1r. */ + case 472: return NULL; /* ld1r --> NULL. */ + case 471: value = 473; break; /* ld3 --> ld3r. */ + case 473: return NULL; /* ld3r --> NULL. */ + case 474: value = 476; break; /* ld2 --> ld2r. */ + case 476: return NULL; /* ld2r --> NULL. */ + case 475: value = 477; break; /* ld4 --> ld4r. */ + case 477: return NULL; /* ld4r --> NULL. */ + case 756: value = 757; break; /* fcvtzs --> fcvtzs. */ + case 757: return NULL; /* fcvtzs --> NULL. */ + case 752: value = 753; break; /* scvtf --> scvtf. */ + case 753: return NULL; /* scvtf --> NULL. */ + case 758: value = 759; break; /* fcvtzu --> fcvtzu. */ + case 759: return NULL; /* fcvtzu --> NULL. */ + case 754: value = 755; break; /* ucvtf --> ucvtf. */ + case 755: return NULL; /* ucvtf --> NULL. */ + case 760: value = 761; break; /* fcvtns --> fcvtns. */ + case 761: return NULL; /* fcvtns --> NULL. */ + case 780: value = 781; break; /* fcvtms --> fcvtms. */ + case 781: return NULL; /* fcvtms --> NULL. */ + case 776: value = 777; break; /* fcvtps --> fcvtps. */ + case 777: return NULL; /* fcvtps --> NULL. */ + case 784: value = 785; break; /* fcvtzs --> fcvtzs. */ + case 785: return NULL; /* fcvtzs --> NULL. */ + case 768: value = 769; break; /* fcvtas --> fcvtas. */ + case 769: return NULL; /* fcvtas --> NULL. */ + case 764: value = 765; break; /* scvtf --> scvtf. */ + case 765: return NULL; /* scvtf --> NULL. */ + case 772: value = 773; break; /* fmov --> fmov. */ + case 773: return NULL; /* fmov --> NULL. */ + case 762: value = 763; break; /* fcvtnu --> fcvtnu. */ + case 763: return NULL; /* fcvtnu --> NULL. */ + case 782: value = 783; break; /* fcvtmu --> fcvtmu. */ + case 783: return NULL; /* fcvtmu --> NULL. */ + case 778: value = 779; break; /* fcvtpu --> fcvtpu. */ + case 779: return NULL; /* fcvtpu --> NULL. */ + case 786: value = 787; break; /* fcvtzu --> fcvtzu. */ + case 787: return NULL; /* fcvtzu --> NULL. */ + case 770: value = 771; break; /* fcvtau --> fcvtau. */ + case 771: return NULL; /* fcvtau --> NULL. */ + case 766: value = 767; break; /* ucvtf --> ucvtf. */ + case 767: return NULL; /* ucvtf --> NULL. */ + case 774: value = 775; break; /* fmov --> fmov. */ + case 775: return NULL; /* fmov --> NULL. */ + case 809: value = 810; break; /* fmov --> fmov. */ + case 810: return NULL; /* fmov --> NULL. */ + case 818: value = 819; break; /* frintn --> frintn. */ + case 819: return NULL; /* frintn --> NULL. */ + case 813: value = 814; break; /* fneg --> fneg. */ + case 814: return NULL; /* fneg --> NULL. */ + case 822: value = 823; break; /* frintm --> frintm. */ + case 823: return NULL; /* frintm --> NULL. */ + case 811: value = 812; break; /* fabs --> fabs. */ + case 812: return NULL; /* fabs --> NULL. */ + case 820: value = 821; break; /* frintp --> frintp. */ + case 821: return NULL; /* frintp --> NULL. */ + case 815: value = 816; break; /* fsqrt --> fsqrt. */ + case 816: return NULL; /* fsqrt --> NULL. */ + case 824: value = 825; break; /* frintz --> frintz. */ + case 825: return NULL; /* frintz --> NULL. */ + case 826: value = 827; break; /* frinta --> frinta. */ + case 827: return NULL; /* frinta --> NULL. */ + case 828: value = 829; break; /* frintx --> frintx. */ + case 829: return NULL; /* frintx --> NULL. */ + case 830: value = 831; break; /* frinti --> frinti. */ + case 831: return NULL; /* frinti --> NULL. */ + case 795: value = 796; break; /* fcmp --> fcmp. */ + case 796: return NULL; /* fcmp --> NULL. */ + case 797: value = 798; break; /* fcmpe --> fcmpe. */ + case 798: return NULL; /* fcmpe --> NULL. */ + case 799: value = 800; break; /* fcmp --> fcmp. */ + case 800: return NULL; /* fcmp --> NULL. */ + case 801: value = 802; break; /* fcmpe --> fcmpe. */ + case 802: return NULL; /* fcmpe --> NULL. */ + case 858: value = 859; break; /* fmov --> fmov. */ + case 859: return NULL; /* fmov --> NULL. */ + case 832: value = 833; break; /* fmul --> fmul. */ + case 833: return NULL; /* fmul --> NULL. */ + case 848: value = 849; break; /* fnmul --> fnmul. */ + case 849: return NULL; /* fnmul --> NULL. */ + case 840: value = 841; break; /* fmax --> fmax. */ + case 841: return NULL; /* fmax --> NULL. */ + case 836: value = 837; break; /* fadd --> fadd. */ + case 837: return NULL; /* fadd --> NULL. */ + case 844: value = 845; break; /* fmaxnm --> fmaxnm. */ + case 845: return NULL; /* fmaxnm --> NULL. */ + case 834: value = 835; break; /* fdiv --> fdiv. */ + case 835: return NULL; /* fdiv --> NULL. */ + case 842: value = 843; break; /* fmin --> fmin. */ + case 843: return NULL; /* fmin --> NULL. */ + case 838: value = 839; break; /* fsub --> fsub. */ + case 839: return NULL; /* fsub --> NULL. */ + case 846: value = 847; break; /* fminnm --> fminnm. */ + case 847: return NULL; /* fminnm --> NULL. */ + case 791: value = 792; break; /* fccmp --> fccmp. */ + case 792: return NULL; /* fccmp --> NULL. */ + case 793: value = 794; break; /* fccmpe --> fccmpe. */ + case 794: return NULL; /* fccmpe --> NULL. */ + case 860: value = 861; break; /* fcsel --> fcsel. */ + case 861: return NULL; /* fcsel --> NULL. */ + case 131: value = 372; break; /* movi --> sshr. */ + case 372: value = 374; break; /* sshr --> srshr. */ + case 374: return NULL; /* srshr --> NULL. */ + case 139: value = 394; break; /* mvni --> ushr. */ + case 394: value = 396; break; /* ushr --> urshr. */ + case 396: value = 398; break; /* urshr --> sri. */ + case 398: value = 400; break; /* sri --> sqshlu. */ + case 400: return NULL; /* sqshlu --> NULL. */ + case 132: value = 373; break; /* orr --> ssra. */ + case 373: value = 375; break; /* ssra --> srsra. */ + case 375: value = 376; break; /* srsra --> shl. */ + case 376: value = 377; break; /* shl --> sqshl. */ + case 377: return NULL; /* sqshl --> NULL. */ + case 140: value = 395; break; /* bic --> usra. */ + case 395: value = 397; break; /* usra --> ursra. */ + case 397: value = 399; break; /* ursra --> sli. */ + case 399: value = 401; break; /* sli --> uqshl. */ + case 401: return NULL; /* uqshl --> NULL. */ + case 850: value = 851; break; /* fmadd --> fmadd. */ + case 851: return NULL; /* fmadd --> NULL. */ + case 854: value = 855; break; /* fnmadd --> fnmadd. */ + case 855: return NULL; /* fnmadd --> NULL. */ + case 133: value = 378; break; /* movi --> shrn. */ + case 378: value = 379; break; /* shrn --> shrn2. */ + case 379: value = 386; break; /* shrn2 --> sshll. */ + case 386: value = 388; break; /* sshll --> sshll2. */ + case 388: return NULL; /* sshll2 --> NULL. */ + case 141: value = 402; break; /* mvni --> sqshrun. */ + case 402: value = 403; break; /* sqshrun --> sqshrun2. */ + case 403: value = 410; break; /* sqshrun2 --> ushll. */ + case 410: value = 412; break; /* ushll --> ushll2. */ + case 412: return NULL; /* ushll2 --> NULL. */ + case 134: value = 382; break; /* orr --> sqshrn. */ + case 382: value = 383; break; /* sqshrn --> sqshrn2. */ + case 383: return NULL; /* sqshrn2 --> NULL. */ + case 142: value = 406; break; /* bic --> uqshrn. */ + case 406: value = 407; break; /* uqshrn --> uqshrn2. */ + case 407: return NULL; /* uqshrn2 --> NULL. */ + case 136: value = 390; break; /* movi --> scvtf. */ + case 390: value = 391; break; /* scvtf --> scvtf. */ + case 391: return NULL; /* scvtf --> NULL. */ + case 144: value = 145; break; /* movi --> movi. */ + case 145: value = 414; break; /* movi --> ucvtf. */ + case 414: value = 415; break; /* ucvtf --> ucvtf. */ + case 415: return NULL; /* ucvtf --> NULL. */ + case 138: value = 392; break; /* fmov --> fcvtzs. */ + case 392: value = 393; break; /* fcvtzs --> fcvtzs. */ + case 393: return NULL; /* fcvtzs --> NULL. */ + case 416: value = 417; break; /* fcvtzu --> fcvtzu. */ + case 417: return NULL; /* fcvtzu --> NULL. */ + case 852: value = 853; break; /* fmsub --> fmsub. */ + case 853: return NULL; /* fmsub --> NULL. */ + case 856: value = 857; break; /* fnmsub --> fnmsub. */ + case 857: return NULL; /* fnmsub --> NULL. */ + case 596: value = 597; break; /* scvtf --> scvtf. */ + case 597: return NULL; /* scvtf --> NULL. */ + case 598: value = 599; break; /* fcvtzs --> fcvtzs. */ + case 599: return NULL; /* fcvtzs --> NULL. */ + case 612: value = 613; break; /* ucvtf --> ucvtf. */ + case 613: return NULL; /* ucvtf --> NULL. */ + case 614: value = 615; break; /* fcvtzu --> fcvtzu. */ + case 615: return NULL; /* fcvtzu --> NULL. */ default: return NULL; } @@ -7529,56 +19494,123 @@ aarch64_find_alias_opcode (const aarch64_opcode *opcode) case 17: value = 18; break; /* subs --> cmp. */ case 20: value = 21; break; /* adds --> cmn. */ case 22: value = 23; break; /* sub --> neg. */ - case 24: value = 26; break; /* subs --> negs. */ - case 138: value = 139; break; /* umov --> mov. */ - case 140: value = 141; break; /* ins --> mov. */ - case 142: value = 143; break; /* ins --> mov. */ - case 203: value = 204; break; /* not --> mvn. */ - case 258: value = 259; break; /* orr --> mov. */ - case 313: value = 314; break; /* sshll --> sxtl. */ - case 315: value = 316; break; /* sshll2 --> sxtl2. */ - case 335: value = 336; break; /* ushll --> uxtl. */ - case 337: value = 338; break; /* ushll2 --> uxtl2. */ - case 430: value = 431; break; /* dup --> mov. */ - case 493: value = 498; break; /* sbfm --> sxtw. */ - case 500: value = 502; break; /* bfm --> bfxil. */ - case 503: value = 507; break; /* ubfm --> uxth. */ - case 525: value = 527; break; /* csinc --> cset. */ - case 528: value = 530; break; /* csinv --> csetm. */ - case 531: value = 532; break; /* csneg --> cneg. */ - case 556: value = 557; break; /* lslv --> lsl. */ - case 558: value = 559; break; /* lsrv --> lsr. */ - case 560: value = 561; break; /* asrv --> asr. */ - case 562: value = 563; break; /* rorv --> ror. */ - case 572: value = 573; break; /* madd --> mul. */ - case 574: value = 575; break; /* msub --> mneg. */ - case 576: value = 577; break; /* smaddl --> smull. */ - case 578: value = 579; break; /* smsubl --> smnegl. */ - case 581: value = 582; break; /* umaddl --> umull. */ - case 583: value = 584; break; /* umsubl --> umnegl. */ - case 594: value = 595; break; /* extr --> ror. */ - case 693: value = 695; break; /* sturb --> strb. */ - case 694: value = 696; break; /* ldurb --> ldrb. */ - case 697: value = 698; break; /* ldursb --> ldrsb. */ - case 699: value = 701; break; /* stur --> str. */ - case 700: value = 702; break; /* ldur --> ldr. */ - case 703: value = 705; break; /* sturh --> strh. */ - case 704: value = 706; break; /* ldurh --> ldrh. */ - case 707: value = 708; break; /* ldursh --> ldrsh. */ - case 709: value = 711; break; /* stur --> str. */ - case 710: value = 712; break; /* ldur --> ldr. */ - case 713: value = 714; break; /* ldursw --> ldrsw. */ - case 715: value = 716; break; /* prfum --> prfm. */ - case 757: value = 758; break; /* and --> bic. */ - case 759: value = 760; break; /* orr --> mov. */ - case 762: value = 763; break; /* ands --> tst. */ - case 766: value = 768; break; /* orr --> uxtw. */ - case 769: value = 770; break; /* orn --> mvn. */ - case 773: value = 774; break; /* ands --> tst. */ - case 776: value = 777; break; /* movn --> mov. */ - case 778: value = 779; break; /* movz --> mov. */ - case 784: value = 790; break; /* hint --> sevl. */ - case 795: value = 799; break; /* sys --> tlbi. */ + case 24: value = 25; break; /* subs --> cmp. */ + case 150: value = 151; break; /* umov --> mov. */ + case 152: value = 153; break; /* ins --> mov. */ + case 154: value = 155; break; /* ins --> mov. */ + case 240: value = 241; break; /* not --> mvn. */ + case 315: value = 316; break; /* orr --> mov. */ + case 386: value = 387; break; /* sshll --> sxtl. */ + case 388: value = 389; break; /* sshll2 --> sxtl2. */ + case 410: value = 411; break; /* ushll --> uxtl. */ + case 412: value = 413; break; /* ushll2 --> uxtl2. */ + case 533: value = 534; break; /* dup --> mov. */ + case 616: value = 621; break; /* sbfm --> sxtw. */ + case 623: value = 625; break; /* bfm --> bfc. */ + case 627: value = 631; break; /* ubfm --> uxth. */ + case 661: value = 663; break; /* csinc --> cset. */ + case 664: value = 666; break; /* csinv --> csetm. */ + case 667: value = 668; break; /* csneg --> cneg. */ + case 686: value = 686; break; /* rev --> rev. */ + case 711: value = 712; break; /* lslv --> lsl. */ + case 713: value = 714; break; /* lsrv --> lsr. */ + case 715: value = 716; break; /* asrv --> asr. */ + case 717: value = 718; break; /* rorv --> ror. */ + case 728: value = 729; break; /* madd --> mul. */ + case 730: value = 731; break; /* msub --> mneg. */ + case 732: value = 733; break; /* smaddl --> smull. */ + case 734: value = 735; break; /* smsubl --> smnegl. */ + case 737: value = 738; break; /* umaddl --> umull. */ + case 739: value = 740; break; /* umsubl --> umnegl. */ + case 750: value = 751; break; /* extr --> ror. */ + case 969: value = 970; break; /* and --> bic. */ + case 971: value = 972; break; /* orr --> mov. */ + case 974: value = 975; break; /* ands --> tst. */ + case 978: value = 980; break; /* orr --> uxtw. */ + case 981: value = 982; break; /* orn --> mvn. */ + case 985: value = 986; break; /* ands --> tst. */ + case 1016: value = 1112; break; /* ldaddb --> staddb. */ + case 1017: value = 1113; break; /* ldaddh --> staddh. */ + case 1018: value = 1114; break; /* ldadd --> stadd. */ + case 1020: value = 1115; break; /* ldaddlb --> staddlb. */ + case 1023: value = 1116; break; /* ldaddlh --> staddlh. */ + case 1026: value = 1117; break; /* ldaddl --> staddl. */ + case 1028: value = 1118; break; /* ldclrb --> stclrb. */ + case 1029: value = 1119; break; /* ldclrh --> stclrh. */ + case 1030: value = 1120; break; /* ldclr --> stclr. */ + case 1032: value = 1121; break; /* ldclrlb --> stclrlb. */ + case 1035: value = 1122; break; /* ldclrlh --> stclrlh. */ + case 1038: value = 1123; break; /* ldclrl --> stclrl. */ + case 1040: value = 1124; break; /* ldeorb --> steorb. */ + case 1041: value = 1125; break; /* ldeorh --> steorh. */ + case 1042: value = 1126; break; /* ldeor --> steor. */ + case 1044: value = 1127; break; /* ldeorlb --> steorlb. */ + case 1047: value = 1128; break; /* ldeorlh --> steorlh. */ + case 1050: value = 1129; break; /* ldeorl --> steorl. */ + case 1052: value = 1130; break; /* ldsetb --> stsetb. */ + case 1053: value = 1131; break; /* ldseth --> stseth. */ + case 1054: value = 1132; break; /* ldset --> stset. */ + case 1056: value = 1133; break; /* ldsetlb --> stsetlb. */ + case 1059: value = 1134; break; /* ldsetlh --> stsetlh. */ + case 1062: value = 1135; break; /* ldsetl --> stsetl. */ + case 1064: value = 1136; break; /* ldsmaxb --> stsmaxb. */ + case 1065: value = 1137; break; /* ldsmaxh --> stsmaxh. */ + case 1066: value = 1138; break; /* ldsmax --> stsmax. */ + case 1068: value = 1139; break; /* ldsmaxlb --> stsmaxlb. */ + case 1071: value = 1140; break; /* ldsmaxlh --> stsmaxlh. */ + case 1074: value = 1141; break; /* ldsmaxl --> stsmaxl. */ + case 1076: value = 1142; break; /* ldsminb --> stsminb. */ + case 1077: value = 1143; break; /* ldsminh --> stsminh. */ + case 1078: value = 1144; break; /* ldsmin --> stsmin. */ + case 1080: value = 1145; break; /* ldsminlb --> stsminlb. */ + case 1083: value = 1146; break; /* ldsminlh --> stsminlh. */ + case 1086: value = 1147; break; /* ldsminl --> stsminl. */ + case 1088: value = 1148; break; /* ldumaxb --> stumaxb. */ + case 1089: value = 1149; break; /* ldumaxh --> stumaxh. */ + case 1090: value = 1150; break; /* ldumax --> stumax. */ + case 1092: value = 1151; break; /* ldumaxlb --> stumaxlb. */ + case 1095: value = 1152; break; /* ldumaxlh --> stumaxlh. */ + case 1098: value = 1153; break; /* ldumaxl --> stumaxl. */ + case 1100: value = 1154; break; /* lduminb --> stuminb. */ + case 1101: value = 1155; break; /* lduminh --> stuminh. */ + case 1102: value = 1156; break; /* ldumin --> stumin. */ + case 1104: value = 1157; break; /* lduminlb --> stuminlb. */ + case 1107: value = 1158; break; /* lduminlh --> stuminlh. */ + case 1110: value = 1159; break; /* lduminl --> stuminl. */ + case 1160: value = 1161; break; /* movn --> mov. */ + case 1162: value = 1163; break; /* movz --> mov. */ + case 1168: value = 1204; break; /* hint --> autibsp. */ + case 1184: value = 1186; break; /* dsb --> pssbb. */ + case 1189: value = 1193; break; /* sys --> tlbi. */ + case 1252: value = 2002; break; /* and --> bic. */ + case 1254: value = 1235; break; /* and --> mov. */ + case 1255: value = 1239; break; /* ands --> movs. */ + case 1290: value = 2003; break; /* cmpge --> cmple. */ + case 1293: value = 2006; break; /* cmpgt --> cmplt. */ + case 1295: value = 2004; break; /* cmphi --> cmplo. */ + case 1298: value = 2005; break; /* cmphs --> cmpls. */ + case 1320: value = 1232; break; /* cpy --> mov. */ + case 1321: value = 1234; break; /* cpy --> mov. */ + case 1322: value = 2013; break; /* cpy --> fmov. */ + case 1334: value = 1227; break; /* dup --> mov. */ + case 1335: value = 1229; break; /* dup --> mov. */ + case 1336: value = 2012; break; /* dup --> fmov. */ + case 1337: value = 1230; break; /* dupm --> mov. */ + case 1339: value = 2007; break; /* eor --> eon. */ + case 1341: value = 1240; break; /* eor --> not. */ + case 1342: value = 1241; break; /* eors --> nots. */ + case 1347: value = 2008; break; /* facge --> facle. */ + case 1348: value = 2009; break; /* facgt --> faclt. */ + case 1361: value = 2010; break; /* fcmge --> fcmle. */ + case 1363: value = 2011; break; /* fcmgt --> fcmlt. */ + case 1369: value = 1224; break; /* fcpy --> fmov. */ + case 1392: value = 1223; break; /* fdup --> fmov. */ + case 1723: value = 1225; break; /* orr --> mov. */ + case 1724: value = 2014; break; /* orr --> orn. */ + case 1726: value = 1228; break; /* orr --> mov. */ + case 1727: value = 1238; break; /* orrs --> movs. */ + case 1789: value = 1233; break; /* sel --> mov. */ + case 1790: value = 1236; break; /* sel --> mov. */ default: return NULL; } @@ -7593,39 +19625,187 @@ aarch64_find_next_alias_opcode (const aarch64_opcode *opcode) int value; switch (key) { - case 26: value = 25; break; /* negs --> cmp. */ - case 498: value = 497; break; /* sxtw --> sxth. */ - case 497: value = 496; break; /* sxth --> sxtb. */ - case 496: value = 499; break; /* sxtb --> asr. */ - case 499: value = 495; break; /* asr --> sbfx. */ - case 495: value = 494; break; /* sbfx --> sbfiz. */ - case 502: value = 501; break; /* bfxil --> bfi. */ - case 507: value = 506; break; /* uxth --> uxtb. */ - case 506: value = 509; break; /* uxtb --> lsr. */ - case 509: value = 508; break; /* lsr --> lsl. */ - case 508: value = 505; break; /* lsl --> ubfx. */ - case 505: value = 504; break; /* ubfx --> ubfiz. */ - case 527: value = 526; break; /* cset --> cinc. */ - case 530: value = 529; break; /* csetm --> cinv. */ - case 768: value = 767; break; /* uxtw --> mov. */ - case 790: value = 789; break; /* sevl --> sev. */ - case 789: value = 788; break; /* sev --> wfi. */ - case 788: value = 787; break; /* wfi --> wfe. */ - case 787: value = 786; break; /* wfe --> yield. */ - case 786: value = 785; break; /* yield --> nop. */ - case 799: value = 798; break; /* tlbi --> ic. */ - case 798: value = 797; break; /* ic --> dc. */ - case 797: value = 796; break; /* dc --> at. */ + case 3: value = 2; break; /* ngc --> sbc. */ + case 5: value = 4; break; /* ngcs --> sbcs. */ + case 8: value = 7; break; /* cmn --> adds. */ + case 11: value = 10; break; /* cmp --> subs. */ + case 13: value = 12; break; /* mov --> add. */ + case 15: value = 14; break; /* cmn --> adds. */ + case 18: value = 17; break; /* cmp --> subs. */ + case 21: value = 20; break; /* cmn --> adds. */ + case 23: value = 22; break; /* neg --> sub. */ + case 25: value = 26; break; /* cmp --> negs. */ + case 26: value = 24; break; /* negs --> subs. */ + case 151: value = 150; break; /* mov --> umov. */ + case 153: value = 152; break; /* mov --> ins. */ + case 155: value = 154; break; /* mov --> ins. */ + case 241: value = 240; break; /* mvn --> not. */ + case 316: value = 315; break; /* mov --> orr. */ + case 387: value = 386; break; /* sxtl --> sshll. */ + case 389: value = 388; break; /* sxtl2 --> sshll2. */ + case 411: value = 410; break; /* uxtl --> ushll. */ + case 413: value = 412; break; /* uxtl2 --> ushll2. */ + case 534: value = 533; break; /* mov --> dup. */ + case 621: value = 620; break; /* sxtw --> sxth. */ + case 620: value = 619; break; /* sxth --> sxtb. */ + case 619: value = 622; break; /* sxtb --> asr. */ + case 622: value = 618; break; /* asr --> sbfx. */ + case 618: value = 617; break; /* sbfx --> sbfiz. */ + case 617: value = 616; break; /* sbfiz --> sbfm. */ + case 625: value = 626; break; /* bfc --> bfxil. */ + case 626: value = 624; break; /* bfxil --> bfi. */ + case 624: value = 623; break; /* bfi --> bfm. */ + case 631: value = 630; break; /* uxth --> uxtb. */ + case 630: value = 633; break; /* uxtb --> lsr. */ + case 633: value = 632; break; /* lsr --> lsl. */ + case 632: value = 629; break; /* lsl --> ubfx. */ + case 629: value = 628; break; /* ubfx --> ubfiz. */ + case 628: value = 627; break; /* ubfiz --> ubfm. */ + case 663: value = 662; break; /* cset --> cinc. */ + case 662: value = 661; break; /* cinc --> csinc. */ + case 666: value = 665; break; /* csetm --> cinv. */ + case 665: value = 664; break; /* cinv --> csinv. */ + case 668: value = 667; break; /* cneg --> csneg. */ + case 686: value = 687; break; /* rev --> rev64. */ + case 712: value = 711; break; /* lsl --> lslv. */ + case 714: value = 713; break; /* lsr --> lsrv. */ + case 716: value = 715; break; /* asr --> asrv. */ + case 718: value = 717; break; /* ror --> rorv. */ + case 729: value = 728; break; /* mul --> madd. */ + case 731: value = 730; break; /* mneg --> msub. */ + case 733: value = 732; break; /* smull --> smaddl. */ + case 735: value = 734; break; /* smnegl --> smsubl. */ + case 738: value = 737; break; /* umull --> umaddl. */ + case 740: value = 739; break; /* umnegl --> umsubl. */ + case 751: value = 750; break; /* ror --> extr. */ + case 970: value = 969; break; /* bic --> and. */ + case 972: value = 971; break; /* mov --> orr. */ + case 975: value = 974; break; /* tst --> ands. */ + case 980: value = 979; break; /* uxtw --> mov. */ + case 979: value = 978; break; /* mov --> orr. */ + case 982: value = 981; break; /* mvn --> orn. */ + case 986: value = 985; break; /* tst --> ands. */ + case 1112: value = 1016; break; /* staddb --> ldaddb. */ + case 1113: value = 1017; break; /* staddh --> ldaddh. */ + case 1114: value = 1018; break; /* stadd --> ldadd. */ + case 1115: value = 1020; break; /* staddlb --> ldaddlb. */ + case 1116: value = 1023; break; /* staddlh --> ldaddlh. */ + case 1117: value = 1026; break; /* staddl --> ldaddl. */ + case 1118: value = 1028; break; /* stclrb --> ldclrb. */ + case 1119: value = 1029; break; /* stclrh --> ldclrh. */ + case 1120: value = 1030; break; /* stclr --> ldclr. */ + case 1121: value = 1032; break; /* stclrlb --> ldclrlb. */ + case 1122: value = 1035; break; /* stclrlh --> ldclrlh. */ + case 1123: value = 1038; break; /* stclrl --> ldclrl. */ + case 1124: value = 1040; break; /* steorb --> ldeorb. */ + case 1125: value = 1041; break; /* steorh --> ldeorh. */ + case 1126: value = 1042; break; /* steor --> ldeor. */ + case 1127: value = 1044; break; /* steorlb --> ldeorlb. */ + case 1128: value = 1047; break; /* steorlh --> ldeorlh. */ + case 1129: value = 1050; break; /* steorl --> ldeorl. */ + case 1130: value = 1052; break; /* stsetb --> ldsetb. */ + case 1131: value = 1053; break; /* stseth --> ldseth. */ + case 1132: value = 1054; break; /* stset --> ldset. */ + case 1133: value = 1056; break; /* stsetlb --> ldsetlb. */ + case 1134: value = 1059; break; /* stsetlh --> ldsetlh. */ + case 1135: value = 1062; break; /* stsetl --> ldsetl. */ + case 1136: value = 1064; break; /* stsmaxb --> ldsmaxb. */ + case 1137: value = 1065; break; /* stsmaxh --> ldsmaxh. */ + case 1138: value = 1066; break; /* stsmax --> ldsmax. */ + case 1139: value = 1068; break; /* stsmaxlb --> ldsmaxlb. */ + case 1140: value = 1071; break; /* stsmaxlh --> ldsmaxlh. */ + case 1141: value = 1074; break; /* stsmaxl --> ldsmaxl. */ + case 1142: value = 1076; break; /* stsminb --> ldsminb. */ + case 1143: value = 1077; break; /* stsminh --> ldsminh. */ + case 1144: value = 1078; break; /* stsmin --> ldsmin. */ + case 1145: value = 1080; break; /* stsminlb --> ldsminlb. */ + case 1146: value = 1083; break; /* stsminlh --> ldsminlh. */ + case 1147: value = 1086; break; /* stsminl --> ldsminl. */ + case 1148: value = 1088; break; /* stumaxb --> ldumaxb. */ + case 1149: value = 1089; break; /* stumaxh --> ldumaxh. */ + case 1150: value = 1090; break; /* stumax --> ldumax. */ + case 1151: value = 1092; break; /* stumaxlb --> ldumaxlb. */ + case 1152: value = 1095; break; /* stumaxlh --> ldumaxlh. */ + case 1153: value = 1098; break; /* stumaxl --> ldumaxl. */ + case 1154: value = 1100; break; /* stuminb --> lduminb. */ + case 1155: value = 1101; break; /* stuminh --> lduminh. */ + case 1156: value = 1102; break; /* stumin --> ldumin. */ + case 1157: value = 1104; break; /* stuminlb --> lduminlb. */ + case 1158: value = 1107; break; /* stuminlh --> lduminlh. */ + case 1159: value = 1110; break; /* stuminl --> lduminl. */ + case 1161: value = 1160; break; /* mov --> movn. */ + case 1163: value = 1162; break; /* mov --> movz. */ + case 1204: value = 1203; break; /* autibsp --> autibz. */ + case 1203: value = 1202; break; /* autibz --> autiasp. */ + case 1202: value = 1201; break; /* autiasp --> autiaz. */ + case 1201: value = 1200; break; /* autiaz --> pacibsp. */ + case 1200: value = 1199; break; /* pacibsp --> pacibz. */ + case 1199: value = 1198; break; /* pacibz --> paciasp. */ + case 1198: value = 1197; break; /* paciasp --> paciaz. */ + case 1197: value = 1182; break; /* paciaz --> psb. */ + case 1182: value = 1181; break; /* psb --> esb. */ + case 1181: value = 1180; break; /* esb --> autib1716. */ + case 1180: value = 1179; break; /* autib1716 --> autia1716. */ + case 1179: value = 1178; break; /* autia1716 --> pacib1716. */ + case 1178: value = 1177; break; /* pacib1716 --> pacia1716. */ + case 1177: value = 1176; break; /* pacia1716 --> xpaclri. */ + case 1176: value = 1175; break; /* xpaclri --> sevl. */ + case 1175: value = 1174; break; /* sevl --> sev. */ + case 1174: value = 1173; break; /* sev --> wfi. */ + case 1173: value = 1172; break; /* wfi --> wfe. */ + case 1172: value = 1171; break; /* wfe --> yield. */ + case 1171: value = 1170; break; /* yield --> csdb. */ + case 1170: value = 1169; break; /* csdb --> nop. */ + case 1169: value = 1168; break; /* nop --> hint. */ + case 1186: value = 1185; break; /* pssbb --> ssbb. */ + case 1185: value = 1184; break; /* ssbb --> dsb. */ + case 1193: value = 1192; break; /* tlbi --> ic. */ + case 1192: value = 1191; break; /* ic --> dc. */ + case 1191: value = 1190; break; /* dc --> at. */ + case 1190: value = 1189; break; /* at --> sys. */ + case 2002: value = 1252; break; /* bic --> and. */ + case 1235: value = 1254; break; /* mov --> and. */ + case 1239: value = 1255; break; /* movs --> ands. */ + case 2003: value = 1290; break; /* cmple --> cmpge. */ + case 2006: value = 1293; break; /* cmplt --> cmpgt. */ + case 2004: value = 1295; break; /* cmplo --> cmphi. */ + case 2005: value = 1298; break; /* cmpls --> cmphs. */ + case 1232: value = 1320; break; /* mov --> cpy. */ + case 1234: value = 1321; break; /* mov --> cpy. */ + case 2013: value = 1237; break; /* fmov --> mov. */ + case 1237: value = 1322; break; /* mov --> cpy. */ + case 1227: value = 1334; break; /* mov --> dup. */ + case 1229: value = 1226; break; /* mov --> mov. */ + case 1226: value = 1335; break; /* mov --> dup. */ + case 2012: value = 1231; break; /* fmov --> mov. */ + case 1231: value = 1336; break; /* mov --> dup. */ + case 1230: value = 1337; break; /* mov --> dupm. */ + case 2007: value = 1339; break; /* eon --> eor. */ + case 1240: value = 1341; break; /* not --> eor. */ + case 1241: value = 1342; break; /* nots --> eors. */ + case 2008: value = 1347; break; /* facle --> facge. */ + case 2009: value = 1348; break; /* faclt --> facgt. */ + case 2010: value = 1361; break; /* fcmle --> fcmge. */ + case 2011: value = 1363; break; /* fcmlt --> fcmgt. */ + case 1224: value = 1369; break; /* fmov --> fcpy. */ + case 1223: value = 1392; break; /* fmov --> fdup. */ + case 1225: value = 1723; break; /* mov --> orr. */ + case 2014: value = 1724; break; /* orn --> orr. */ + case 1228: value = 1726; break; /* mov --> orr. */ + case 1238: value = 1727; break; /* movs --> orrs. */ + case 1233: value = 1789; break; /* mov --> sel. */ + case 1236: value = 1790; break; /* mov --> sel. */ default: return NULL; } return aarch64_opcode_table + value; } -int +bfd_boolean aarch64_extract_operand (const aarch64_operand *self, aarch64_opnd_info *info, - aarch64_insn code, const aarch64_inst *inst) + aarch64_insn code, const aarch64_inst *inst, + aarch64_operand_error *errors) { /* Use the index as the key. */ int key = self - aarch64_operands; @@ -7640,12 +19820,11 @@ aarch64_extract_operand (const aarch64_operand *self, case 7: case 9: case 10: - case 13: - case 14: + case 11: case 15: case 16: + case 17: case 18: - case 19: case 20: case 21: case 22: @@ -7653,36 +19832,59 @@ aarch64_extract_operand (const aarch64_operand *self, case 24: case 25: case 26: - case 34: - case 35: - return aarch64_ext_regno (self, info, code, inst); - case 8: - return aarch64_ext_regrt_sysins (self, info, code, inst); - case 11: - return aarch64_ext_reg_extended (self, info, code, inst); - case 12: - return aarch64_ext_reg_shifted (self, info, code, inst); - case 17: - return aarch64_ext_ft (self, info, code, inst); case 27: case 28: case 29: - return aarch64_ext_reglane (self, info, code, inst); + case 153: + case 154: + case 155: + case 156: + case 157: + case 158: + case 159: + case 160: + case 161: + case 162: + case 175: + case 176: + case 177: + case 178: + case 179: + case 180: + case 181: + case 182: + case 183: + case 187: + case 190: + return aarch64_ext_regno (self, info, code, inst, errors); + case 8: + return aarch64_ext_regrt_sysins (self, info, code, inst, errors); + case 12: + return aarch64_ext_regno_pair (self, info, code, inst, errors); + case 13: + return aarch64_ext_reg_extended (self, info, code, inst, errors); + case 14: + return aarch64_ext_reg_shifted (self, info, code, inst, errors); + case 19: + return aarch64_ext_ft (self, info, code, inst, errors); case 30: - return aarch64_ext_reglist (self, info, code, inst); case 31: - return aarch64_ext_ldst_reglist (self, info, code, inst); case 32: - return aarch64_ext_ldst_reglist_r (self, info, code, inst); case 33: - return aarch64_ext_ldst_elemlist (self, info, code, inst); + case 192: + return aarch64_ext_reglane (self, info, code, inst, errors); + case 34: + return aarch64_ext_reglist (self, info, code, inst, errors); + case 35: + return aarch64_ext_ldst_reglist (self, info, code, inst, errors); case 36: - case 45: - case 46: - case 47: - case 48: - case 49: - case 50: + return aarch64_ext_ldst_reglist_r (self, info, code, inst, errors); + case 37: + return aarch64_ext_ldst_elemlist (self, info, code, inst, errors); + case 38: + case 39: + case 40: + case 41: case 51: case 52: case 53: @@ -7690,58 +19892,174 @@ aarch64_extract_operand (const aarch64_operand *self, case 55: case 56: case 57: - case 64: - case 65: - case 66: - case 67: - case 68: - return aarch64_ext_imm (self, info, code, inst); - case 37: - case 38: - return aarch64_ext_advsimd_imm_shift (self, info, code, inst); - case 39: - case 40: - case 41: - return aarch64_ext_advsimd_imm_modified (self, info, code, inst); - case 42: - return aarch64_ext_shll_imm (self, info, code, inst); case 58: - return aarch64_ext_limm (self, info, code, inst); case 59: - return aarch64_ext_aimm (self, info, code, inst); case 60: - return aarch64_ext_imm_half (self, info, code, inst); case 61: - return aarch64_ext_fbits (self, info, code, inst); + case 62: case 63: - return aarch64_ext_cond (self, info, code, inst); - case 69: + case 64: case 75: - return aarch64_ext_addr_simple (self, info, code, inst); + case 76: + case 77: + case 78: + case 79: + case 150: + case 152: + case 167: + case 168: + case 169: + case 170: + case 171: + case 172: + case 173: + case 174: + return aarch64_ext_imm (self, info, code, inst, errors); + case 42: + case 43: + return aarch64_ext_advsimd_imm_shift (self, info, code, inst, errors); + case 44: + case 45: + case 46: + return aarch64_ext_advsimd_imm_modified (self, info, code, inst, errors); + case 47: + return aarch64_ext_shll_imm (self, info, code, inst, errors); + case 50: + case 141: + return aarch64_ext_fpimm (self, info, code, inst, errors); + case 65: + case 148: + return aarch64_ext_limm (self, info, code, inst, errors); + case 66: + return aarch64_ext_aimm (self, info, code, inst, errors); + case 67: + return aarch64_ext_imm_half (self, info, code, inst, errors); + case 68: + return aarch64_ext_fbits (self, info, code, inst, errors); case 70: - return aarch64_ext_addr_regoff (self, info, code, inst); case 71: + case 146: + return aarch64_ext_imm_rotate2 (self, info, code, inst, errors); case 72: + case 145: + return aarch64_ext_imm_rotate1 (self, info, code, inst, errors); case 73: - return aarch64_ext_addr_simm (self, info, code, inst); case 74: - return aarch64_ext_addr_uimm12 (self, info, code, inst); - case 76: - return aarch64_ext_simd_addr_post (self, info, code, inst); - case 77: - return aarch64_ext_sysreg (self, info, code, inst); - case 78: - return aarch64_ext_pstatefield (self, info, code, inst); - case 79: + return aarch64_ext_cond (self, info, code, inst, errors); case 80: + case 87: + return aarch64_ext_addr_simple (self, info, code, inst, errors); case 81: + return aarch64_ext_addr_regoff (self, info, code, inst, errors); case 82: - return aarch64_ext_sysins_op (self, info, code, inst); case 83: case 84: - return aarch64_ext_barrier (self, info, code, inst); + return aarch64_ext_addr_simm (self, info, code, inst, errors); case 85: - return aarch64_ext_prfop (self, info, code, inst); + return aarch64_ext_addr_simm10 (self, info, code, inst, errors); + case 86: + return aarch64_ext_addr_uimm12 (self, info, code, inst, errors); + case 88: + return aarch64_ext_addr_offset (self, info, code, inst, errors); + case 89: + return aarch64_ext_simd_addr_post (self, info, code, inst, errors); + case 90: + return aarch64_ext_sysreg (self, info, code, inst, errors); + case 91: + return aarch64_ext_pstatefield (self, info, code, inst, errors); + case 92: + case 93: + case 94: + case 95: + return aarch64_ext_sysins_op (self, info, code, inst, errors); + case 96: + case 97: + return aarch64_ext_barrier (self, info, code, inst, errors); + case 98: + return aarch64_ext_prfop (self, info, code, inst, errors); + case 99: + return aarch64_ext_hint (self, info, code, inst, errors); + case 100: + return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors); + case 101: + case 102: + case 103: + case 104: + return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors); + case 105: + return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors); + case 106: + return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors); + case 107: + case 108: + case 109: + case 110: + return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors); + case 111: + case 112: + case 113: + case 114: + case 115: + case 116: + case 117: + case 118: + case 119: + case 120: + case 121: + case 122: + case 123: + return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors); + case 124: + case 125: + case 126: + case 127: + case 128: + case 129: + case 130: + case 131: + return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors); + case 132: + case 133: + case 134: + case 135: + return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors); + case 136: + return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors); + case 137: + return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors); + case 138: + return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors); + case 139: + return aarch64_ext_sve_aimm (self, info, code, inst, errors); + case 140: + return aarch64_ext_sve_asimm (self, info, code, inst, errors); + case 142: + return aarch64_ext_sve_float_half_one (self, info, code, inst, errors); + case 143: + return aarch64_ext_sve_float_half_two (self, info, code, inst, errors); + case 144: + return aarch64_ext_sve_float_zero_one (self, info, code, inst, errors); + case 147: + return aarch64_ext_inv_limm (self, info, code, inst, errors); + case 149: + return aarch64_ext_sve_limm_mov (self, info, code, inst, errors); + case 151: + return aarch64_ext_sve_scale (self, info, code, inst, errors); + case 163: + case 164: + return aarch64_ext_sve_shlimm (self, info, code, inst, errors); + case 165: + case 166: + return aarch64_ext_sve_shrimm (self, info, code, inst, errors); + case 184: + case 185: + case 186: + return aarch64_ext_sve_quad_index (self, info, code, inst, errors); + case 188: + return aarch64_ext_sve_index (self, info, code, inst, errors); + case 189: + case 191: + return aarch64_ext_sve_reglist (self, info, code, inst, errors); default: assert (0); abort (); } }