Lines Matching defs:INSN

5245 #  define INSN(_bMax,_bMin)  SLICE_UInt(theInstr, (_bMax), (_bMin))
5246 UInt U = INSN(24,24);
5250 UInt size = INSN(21,20);
5252 UInt Q = INSN(24,24);
5254 if (INSN(27,25) != 1 || INSN(23,23) != 1
5255 || INSN(6,6) != 1 || INSN(4,4) != 0)
5259 if ((INSN(11,8) & BITS4(1,0,1,0)) == BITS4(0,0,0,0)) {
5317 if (INSN(8,8)) {
5350 op2 = INSN(10,10) ? sub : add;
5358 DIP("vml%c.%c%d %c%u, %c%u, d%u[%u]\n", INSN(10,10) ? 's' : 'a',
5359 INSN(8,8) ? 'f' : 'i', 8 << size,
5365 if ((INSN(11,8) & BITS4(1,0,1,1)) == BITS4(0,0,1,0)) {
5412 op2 = INSN(10,10) ? sub : add;
5416 INSN(10,10) ? 's' : 'a', U ? 'u' : 's',
5422 if ((INSN(11,8) & BITS4(1,0,1,1)) == BITS4(0,0,1,1) && !U) {
5425 UInt P = INSN(10,10);
5496 if ((INSN(11,8) & BITS4(1,1,1,0)) == BITS4(1,0,0,0)) {
5554 if (INSN(8,8)) {
5586 DIP("vmul.%c%d %c%u, %c%u, d%u[%u]\n", INSN(8,8) ? 'f' : 'i',
5593 if (INSN(11,8) == BITS4(1,0,1,0)) {
5637 if (INSN(11,8) == BITS4(1,0,1,1) && !U) {
5700 if (INSN(11,8) == BITS4(1,1,0,0)) {
5798 if (INSN(11,8) == BITS4(1,1,0,1)) {
5896 # undef INSN
8329 # define INSN(_bMax,_bMin) SLICE_UInt(theInstr, (_bMax), (_bMin))
8330 UInt bA = INSN(23,23);
8331 UInt fB = INSN(11,8);
8332 UInt bL = INSN(21,21);
8333 UInt rD = (INSN(22,22) << 4) | INSN(15,12);
8334 UInt rN = INSN(19,16);
8335 UInt rM = INSN(3,0);
8348 if (INSN(20,20) != 0)
8371 case 0: i = INSN(7,5); inc = 1; break;
8372 case 1: i = INSN(7,6); inc = INSN(5,5) ? 2 : 1; break;
8373 case 2: i = INSN(7,7); inc = INSN(6,6) ? 2 : 1; break;
8409 inc = INSN(5,5) + 1;
8410 size = INSN(7,6);
8413 if (size == 3 && N == 3 && INSN(4,4) == 1)
8416 if (size == 0 && N == 0 && INSN(4,4) == 1)
8418 if (N == 2 && INSN(4,4) == 1)
8431 if (N == 0 && INSN(5,5))
8567 size = INSN(7,6);
8786 DIP("v%s%u.%d {", bL ? "ld" : "st", N + 1, 8 << INSN(7,6));
8808 # undef INSN
8842 # define INSN(_bMax,_bMin) SLICE_UInt(insn32, (_bMax), (_bMin))
8860 if (!isT && INSN(31,25) == BITS7(1,1,1,1,0,0,1)) {
8862 return dis_neon_data_processing(INSN(31,0), condT);
8864 if (isT && INSN(31,29) == BITS3(1,1,1)
8865 && INSN(27,24) == BITS4(1,1,1,1)) {
8867 UInt reformatted = INSN(23,0);
8868 reformatted |= (INSN(28,28) << 24); // U bit
8877 if (!isT && INSN(31,24) == BITS8(1,1,1,1,0,1,0,0)) {
8879 return dis_neon_load_or_store(INSN(31,0), isT, condT);
8881 if (isT && INSN(31,24) == BITS8(1,1,1,1,1,0,0,1)) {
8882 UInt reformatted = INSN(23,0);
8890 # undef INSN
12814 # define INSN(_bMax,_bMin) SLICE_UInt(insn28, (_bMax), (_bMin))
12816 vassert(INSN(31,28) == BITS4(0,0,0,0)); // caller's obligation
12849 if (BITS8(1,1,0,0,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,0,0,0,0,0))
12850 && INSN(11,8) == BITS4(1,0,1,1)) {
12856 UInt rN = INSN(19,16);
12857 UInt dD = (INSN(22,22) << 4) | INSN(15,12);
12986 if (BITS8(1,1,0,0,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,0,0,0,0,0))
12987 && INSN(11,8) == BITS4(1,0,1,1)) {
12993 UInt rN = INSN(19,16);
12994 UInt dD = (INSN(22,22) << 4) | INSN(15,12);
13103 if (BITS8(1,1,1,0,1,1,1,1) == INSN(27,20)
13104 && BITS4(1,0,1,0) == INSN(11,8)
13106 UInt rD = INSN(15,12);
13107 UInt reg = INSN(19,16);
13133 if (BITS8(1,1,1,0,1,1,1,0) == INSN(27,20)
13134 && BITS4(1,0,1,0) == INSN(11,8)
13136 UInt rD = INSN(15,12);
13137 UInt reg = INSN(19,16);
13150 UInt dM = INSN(3,0) | (INSN(5,5) << 4);
13151 UInt rD = INSN(15,12); /* lo32 */
13152 UInt rN = INSN(19,16); /* hi32 */
13170 UInt dM = INSN(3,0) | (INSN(5,5) << 4);
13171 UInt rD = INSN(15,12); /* lo32 */
13172 UInt rN = INSN(19,16); /* hi32 */
13196 UInt sD = (INSN(3,0) << 1) | INSN(5,5);
13197 UInt rN = INSN(15,12);
13198 UInt rM = INSN(19,16);
13217 UInt sD = (INSN(3,0) << 1) | INSN(5,5);
13218 UInt rN = INSN(15,12);
13219 UInt rM = INSN(19,16);
13241 UInt rD = (INSN(7,7) << 4) | INSN(19,16);
13242 UInt rT = INSN(15,12);
13243 UInt opc = (INSN(22,21) << 2) | INSN(6,5);
13288 UInt rN = (INSN(7,7) << 4) | INSN(19,16);
13289 UInt rT = INSN(15,12);
13290 UInt U = INSN(23,23);
13291 UInt opc = (INSN(22,21) << 2) | INSN(6,5);
13341 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
13342 && BITS4(0,0,0,0) == INSN(7,4) && INSN(11,8) == BITS4(1,0,1,0)) {
13343 UInt rD = (INSN(15,12) << 1) | INSN(22,22);
13344 UInt imm8 = (INSN(19,16) << 4) | INSN(3,0);
13357 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
13358 && BITS4(0,0,0,0) == INSN(7,4) && INSN(11,8) == BITS4(1,0,1,1)) {
13359 UInt rD = INSN(15,12) | (INSN(22,22) << 4);
13360 UInt imm8 = (INSN(19,16) << 4) | INSN(3,0);
13374 if (BITS8(1,1,1,0,1,0,0,0) == (INSN(27,20) & BITS8(1,1,1,1,1,0,0,1))
13375 && BITS4(1,0,1,1) == INSN(11,8) && INSN(6,6) == 0 && INSN(4,4) == 1) {
13376 UInt rD = (INSN(7,7) << 4) | INSN(19,16);
13377 UInt rT = INSN(15,12);
13378 UInt Q = INSN(21,21);
13379 UInt size = (INSN(22,22) << 1) | INSN(5,5);
13426 if (BITS8(1,1,0,1,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,1,0,0,1,0))
13427 && BITS4(1,0,1,1) == INSN(11,8)) {
13428 UInt dD = INSN(15,12) | (INSN(22,22) << 4);
13429 UInt rN = INSN(19,16);
13458 if (BITS8(1,1,1,0,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,1,0,0,0,0))
13459 && BITS4(1,0,1,1) == INSN(11,8)
13460 && BITS4(0,0,0,0) == (INSN(7,4) & BITS4(0,0,0,1))) {
13461 UInt dM = INSN(3,0) | (INSN(5,5) << 4); /* argR */
13462 UInt dD = INSN(15,12) | (INSN(22,22) << 4); /* dst/acc */
13463 UInt dN = INSN(19,16) | (INSN(7,7) << 4); /* argL */
13596 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
13597 && BITS4(0,1,0,0) == (INSN(19,16) & BITS4(1,1,1,0))
13598 && BITS4(1,0,1,1) == INSN(11,8)
13599 && BITS4(0,1,0,0) == (INSN(7,4) & BITS4(0,1,0,1))) {
13602 UInt dD = INSN(15,12) | (INSN(22,22) << 4);
13603 UInt dM = INSN(3,0) | (INSN(5,5) << 4);
13604 if (bZ && INSN(3,0) != 0) {
13653 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
13654 && BITS4(0,0,0,0) == (INSN(19,16) & BITS4(1,1,1,0))
13655 && BITS4(1,0,1,1) == INSN(11,8)
13656 && BITS4(0,1,0,0) == (INSN(7,4) & BITS4(0,1,0,1))) {
13657 UInt dD = INSN(15,12) | (INSN(22,22) << 4);
13658 UInt dM = INSN(3,0) | (INSN(5,5) << 4);
13695 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
13696 && BITS4(1,0,0,0) == (INSN(19,16) & BITS4(1,1,1,1))
13697 && BITS4(1,0,1,1) == INSN(11,8)
13698 && BITS4(0,1,0,0) == (INSN(7,4) & BITS4(0,1,0,1))) {
13700 UInt fM = (INSN(3,0) << 1) | bM;
13701 UInt dD = INSN(15,12) | (INSN(22,22) << 4);
13720 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
13721 && BITS4(1,1,0,0) == (INSN(19,16) & BITS4(1,1,1,0))
13722 && BITS4(1,0,1,1) == INSN(11,8)
13723 && BITS4(0,1,0,0) == (INSN(7,4) & BITS4(0,1,0,1))) {
13725 UInt fD = (INSN(15,12) << 1) | bD;
13726 UInt dM = INSN(3,0) | (INSN(5,5) << 4);
13777 if (BITS8(1,1,0,0,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,0,0,0,0,0))
13778 && INSN(11,8) == BITS4(1,0,1,0)) {
13785 UInt rN = INSN(19,16);
13786 UInt fD = (INSN(15,12) << 1) | bD;
13895 if (BITS8(1,1,1,0,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,1,1,1,1,0))
13896 && BITS4(1,0,1,0) == INSN(11,8)
13897 && BITS4(0,0,0,0) == INSN(3,0)
13898 && BITS4(0,0,0,1) == (INSN(7,4) & BITS4(0,1,1,1))) {
13899 UInt rD = INSN(15,12);
13901 UInt fN = (INSN(19,16) << 1) | b7;
13930 if (BITS8(1,1,0,1,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,1,0,0,1,0))
13931 && BITS4(1,0,1,0) == INSN(11,8)) {
13933 UInt fD = (INSN(15,12) << 1) | bD;
13934 UInt rN = INSN(19,16);
13963 if (BITS8(1,1,1,0,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,1,0,0,0,0))
13964 && BITS4(1,0,1,0) == (INSN(11,8) & BITS4(1,1,1,0))
13965 && BITS4(0,0,0,0) == (INSN(7,4) & BITS4(0,0,0,1))) {
13969 UInt fM = (INSN(3,0) << 1) | bM; /* argR */
13970 UInt fD = (INSN(15,12) << 1) | bD; /* dst/acc */
13971 UInt fN = (INSN(19,16) << 1) | bN; /* argL */
14103 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
14104 && BITS4(0,1,0,0) == (INSN(19,16) & BITS4(1,1,1,0))
14105 && BITS4(1,0,1,0) == INSN(11,8)
14106 && BITS4(0,1,0,0) == (INSN(7,4) & BITS4(0,1,0,1))) {
14111 UInt fD = (INSN(15,12) << 1) | bD;
14112 UInt fM = (INSN(3,0) << 1) | bM;
14113 if (bZ && (INSN(3,0) != 0 || (INSN(7,4) & 3) != 0)) {
14165 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
14166 && BITS4(0,0,0,0) == (INSN(19,16) & BITS4(1,1,1,0))
14167 && BITS4(1,0,1,0) == INSN(11,8)
14168 && BITS4(0,1,0,0) == (INSN(7,4) & BITS4(0,1,0,1))) {
14171 UInt fD = (INSN(15,12) << 1) | bD;
14172 UInt fM = (INSN(3,0) << 1) | bM;
14214 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
14215 && BITS4(1,0,0,0) == INSN(19,16)
14216 && BITS4(1,0,1,0) == (INSN(11,8) & BITS4(1,1,1,0))
14217 && BITS4(0,1,0,0) == (INSN(7,4) & BITS4(0,1,0,1))) {
14220 UInt fM = (INSN(3,0) << 1) | bM;
14221 UInt fD = (INSN(15,12) << 1) | bD;
14246 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
14247 && BITS4(1,1,0,0) == (INSN(19,16) & BITS4(1,1,1,0))
14248 && BITS4(1,0,1,0) == INSN(11,8)
14249 && BITS4(0,1,0,0) == (INSN(7,4) & BITS4(0,1,0,1))) {
14252 UInt fD = (INSN(15,12) << 1) | bD;
14253 UInt fM = (INSN(3,0) << 1) | bM;
14283 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
14284 && BITS4(0,1,1,1) == INSN(19,16)
14285 && BITS4(1,0,1,0) == INSN(11,8)
14286 && BITS4(1,1,0,0) == (INSN(7,4) & BITS4(1,1,0,1))) {
14287 UInt dD = INSN(15,12) | (INSN(22,22) << 4);
14289 UInt fM = (INSN(3,0) << 1) | bM;
14296 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
14297 && BITS4(0,1,1,1) == INSN(19,16)
14298 && BITS4(1,0,1,1) == INSN(11,8)
14299 && BITS4(1,1,0,0) == (INSN(7,4) & BITS4(1,1,0,1))) {
14301 UInt fD = (INSN(15,12) << 1) | bD;
14302 UInt dM = INSN(3,0) | (INSN(5,5) << 4);
14323 if (BITS8(1,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
14324 && BITS4(1,0,1,0) == (INSN(19,16) & BITS4(1,0,1,0))
14325 && BITS3(1,0,1) == INSN(11,9)
14326 && BITS3(1,0,0) == (INSN(6,4) & BITS3(1,0,1))) {
14327 UInt bD = INSN(22,22);
14328 UInt bOP = INSN(18,18);
14329 UInt bU = INSN(16,16);
14330 UInt Vd = INSN(15,12);
14331 UInt bSF = INSN(8,8);
14332 UInt bSX = INSN(7,7);
14333 UInt bI = INSN(5,5);
14334 UInt imm4 = INSN(3,0);
14437 vassert(INSN(11,9) == BITS3(1,0,1)); // 11:8 = 1010 or 1011
14440 # undef INSN
14460 # define INSN(_bMax,_bMin) SLICE_UInt(insn, (_bMax), (_bMin))
14469 if (BITS8(0,1,0,1, 0,0, 0,1) == (INSN(27,20) & BITS8(1,1,1,1, 0,0, 1,1))
14470 && BITS4(1,1,1,1) == INSN(15,12)) {
14471 UInt rN = INSN(19,16);
14472 UInt imm12 = INSN(11,0);
14473 UInt bU = INSN(23,23);
14474 UInt bR = INSN(22,22);
14479 if (BITS8(0,1,1,1, 0,0, 0,1) == (INSN(27,20) & BITS8(1,1,1,1, 0,0, 1,1))
14480 && BITS4(1,1,1,1) == INSN(15,12)
14481 && 0 == INSN(4,4)) {
14482 UInt rN = INSN(19,16);
14483 UInt rM = INSN(3,0);
14484 UInt imm5 = INSN(11,7);
14485 UInt sh2 = INSN(6,5);
14486 UInt bU = INSN(23,23);
14487 UInt bR = INSN(22,22);
14504 if (BITS8(0,1,0,0, 0, 1,0,1) == (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1))
14505 && BITS4(1,1,1,1) == INSN(15,12)) {
14506 UInt rN = INSN(19,16);
14507 UInt imm12 = INSN(11,0);
14508 UInt bU = INSN(23,23);
14517 if (INSN(31,25) == BITS7(1,1,1,1,1,0,1)) {
14518 UInt bitH = INSN(24,24);
14519 Int uimm24 = INSN(23,0);
14594 # undef INSN
14619 # define INSN(_bMax,_bMin) SLICE_UInt(insn, (_bMax), (_bMin))
14771 if (0 == (INSN(27,20) & BITS8(1,1,0,0,0,0,0,0))
14772 && !(INSN(25,25) == 0 && INSN(7,7) == 1 && INSN(4,4) == 1)) {
14786 switch (INSN(24,21)) {
14806 switch (INSN(24,21)) {
14817 INSN(25,25), INSN(11,0),
14884 Bool isMVN = INSN(24,21) == BITS4(1,1,1,1);
14889 INSN(25,25), INSN(11,0),
14906 if (!isMVN && INSN(11,0) == 14) {
14925 Bool isCMN = INSN(24,21) == BITS4(1,0,1,1);
14933 INSN(25,25), INSN(11,0),
14951 Bool isTEQ = INSN(24,21) == BITS4(1,0,0,1);
14959 INSN(25,25), INSN(11,0),
14991 INSN(25,25), INSN(11,0),
15000 switch (INSN(24,21)) {
15033 switch (INSN(24,21)) {
15058 } /* if (0 == (INSN(27,20) & BITS8(1,1,0,0,0,0,0,0)) */
15080 if ((INSN(27,24) & BITS4(1,1,0,0)) != BITS4(0,1,0,0))
15085 /**/ if (INSN(27,24) == BITS4(0,1,0,1) && INSN(21,21) == 0) {
15088 else if (INSN(27,24) == BITS4(0,1,1,1) && INSN(21,21) == 0
15089 && INSN(4,4) == 0) {
15092 else if (INSN(27,24) == BITS4(0,1,0,1) && INSN(21,21) == 1) {
15095 else if (INSN(27,24) == BITS4(0,1,1,1) && INSN(21,21) == 1
15096 && INSN(4,4) == 0) {
15099 else if (INSN(27,24) == BITS4(0,1,0,0) && INSN(21,21) == 0) {
15102 else if (INSN(27,24) == BITS4(0,1,1,0) && INSN(21,21) == 0
15103 && INSN(4,4) == 0) {
15307 if ((INSN(27,24) & BITS4(1,1,1,0)) != BITS4(0,0,0,0))
15311 if ((INSN(7,4) & BITS4(1,0,0,1)) != BITS4(1,0,0,1))
15316 /**/ if (INSN(27,24) == BITS4(0,0,0,1) && INSN(22,21) == BITS2(1,0)) {
15319 else if (INSN(27,24) == BITS4(0,0,0,1) && INSN(22,21) == BITS2(0,0)) {
15322 else if (INSN(27,24) == BITS4(0,0,0,1) && INSN(22,21) == BITS2(1,1)) {
15325 else if (INSN(27,24) == BITS4(0,0,0,1) && INSN(22,21) == BITS2(0,1)) {
15328 else if (INSN(27,24) == BITS4(0,0,0,0) && INSN(22,21) == BITS2(1,0)) {
15331 else if (INSN(27,24) == BITS4(0,0,0,0) && INSN(22,21) == BITS2(0,0)) {
15505 if (BITS8(1,0,0,0,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,0,0,1,0,0))) {
15559 if (BITS8(1,0,1,0,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,0,0,0,0,0))) {
15646 if (INSN(27,20) == BITS8(0,0,0,1,0,0,1,0)
15647 && INSN(19,12) == BITS8(1,1,1,1,1,1,1,1)
15648 && (INSN(11,4) == BITS8(1,1,1,1,0,0,1,1)
15649 || INSN(11,4) == BITS8(1,1,1,1,0,0,0,1))) {
15651 UInt link = (INSN(11,4) >> 1) & 1;
15652 UInt rM = INSN(3,0);
15688 if (INSN(27,20) == BITS8(0,0,0,1,0,1,1,0)
15689 && INSN(19,16) == BITS4(1,1,1,1)
15690 && INSN(11,4) == BITS8(1,1,1,1,0,0,0,1)) {
15691 UInt rD = INSN(15,12);
15692 UInt rM = INSN(3,0);
15708 if (BITS8(0,0,0,0,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,1,1,1,1,0))
15709 && INSN(15,12) == BITS4(0,0,0,0)
15710 && INSN(7,4) == BITS4(1,0,0,1)) {
15712 UInt rD = INSN(19,16);
15713 UInt rS = INSN(11,8);
15714 UInt rM = INSN(3,0);
15750 if (BITS8(0,1,1,1,0,0,0,1) == INSN(27,20)
15751 && INSN(15,12) == BITS4(1,1,1,1)
15752 && INSN(7,4) == BITS4(0,0,0,1)) {
15753 UInt rD = INSN(19,16);
15754 UInt rM = INSN(11,8);
15755 UInt rN = INSN(3,0);
15772 if (BITS8(0,1,1,1,0,0,1,1) == INSN(27,20)
15773 && INSN(15,12) == BITS4(1,1,1,1)
15774 && INSN(7,4) == BITS4(0,0,0,1)) {
15775 UInt rD = INSN(19,16);
15776 UInt rM = INSN(11,8);
15777 UInt rN = INSN(3,0);
15794 if (BITS8(0,0,0,0,0,0,1,0) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,0))
15795 && INSN(7,4) == BITS4(1,0,0,1)) {
15798 UInt rD = INSN(19,16);
15799 UInt rN = INSN(15,12);
15800 UInt rS = INSN(11,8);
15801 UInt rM = INSN(3,0);
15847 if (BITS8(0,0,0,0,1,0,0,0) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,0))
15848 && INSN(7,4) == BITS4(1,0,0,1)) {
15850 UInt rDhi = INSN(19,16);
15851 UInt rDlo = INSN(15,12);
15852 UInt rS = INSN(11,8);
15853 UInt rM = INSN(3,0);
15854 UInt isS = (INSN(27,20) >> 2) & 1; /* 22:22 */
15896 if (BITS8(0,0,0,0,1,0,1,0) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,0))
15897 && INSN(7,4) == BITS4(1,0,0,1)) {
15899 UInt rDhi = INSN(19,16);
15900 UInt rDlo = INSN(15,12);
15901 UInt rS = INSN(11,8);
15902 UInt rM = INSN(3,0);
15903 UInt isS = (INSN(27,20) >> 2) & 1; /* 22:22 */
15949 if (BITS8(0,0,0,0,0,1,0,0) == INSN(27,20) && INSN(7,4) == BITS4(1,0,0,1)) {
15950 UInt rDhi = INSN(19,16);
15951 UInt rDlo = INSN(15,12);
15952 UInt rM = INSN(11,8);
15953 UInt rN = INSN(3,0);
15989 if (INSN(27,20) == BITS8(0,0,1,1,0,0,1,0)
15990 && INSN(17,12) == BITS6(0,0,1,1,1,1)) {
15991 UInt write_ge = INSN(18,18);
15992 UInt write_nzcvq = INSN(19,19);
15994 UInt imm = (INSN(11,0) >> 0) & 0xFF;
15995 UInt rot = 2 * ((INSN(11,0) >> 8) & 0xF);
16009 if (INSN(27,20) == BITS8(0,0,0,1,0,0,1,0)
16010 && INSN(17,12) == BITS6(0,0,1,1,1,1)
16011 && INSN(11,4) == BITS8(0,0,0,0,0,0,0,0)) {
16012 UInt rN = INSN(3,0);
16013 UInt write_ge = INSN(18,18);
16014 UInt write_nzcvq = INSN(19,19);
16028 UInt rD = INSN(15,12);
16039 if (BITS8(1,1,1,1,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,1,0,0,0,0))) {
16059 if (BITS8(0,0,0,1,0,0,0,0) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
16060 && BITS4(0,0,0,0) == INSN(11,8)
16061 && BITS4(1,0,0,1) == INSN(7,4)) {
16062 UInt rN = INSN(19,16);
16063 UInt rD = INSN(15,12);
16064 UInt rM = INSN(3,0);
16118 UInt rT = INSN(15,12);
16119 UInt rN = INSN(19,16);
16124 switch (INSN(22,21)) {
16172 UInt rT = INSN(3,0);
16173 UInt rN = INSN(19,16);
16174 UInt rD = INSN(15,12);
16179 switch (INSN(22,21)) {
16239 UInt rD = INSN(15,12);
16265 if (BITS8(0,1,1,0,1, 0,0,0) == (INSN(27,20) & BITS8(1,1,1,1,1,0,0,0))
16266 && BITS4(1,1,1,1) == INSN(19,16)
16267 && BITS4(0,1,1,1) == INSN(7,4)
16268 && BITS4(0,0, 0,0) == (INSN(11,8) & BITS4(0,0,1,1))) {
16269 UInt subopc = INSN(27,20) & BITS8(0,0,0,0,0, 1,1,1);
16271 Int rot = (INSN(11,8) >> 2) & 3;
16272 UInt rM = INSN(3,0);
16273 UInt rD = INSN(15,12);
16332 if (BITS8(0,1,1,1,1,1,0, 0) == (INSN(27,20) & BITS8(1,1,1,1,1,1,1,0))
16333 && BITS4(0, 0,0,1) == (INSN(7,4) & BITS4(0,1,1,1))) {
16334 UInt rD = INSN(15,12);
16335 UInt rN = INSN(3,0);
16376 if (BITS8(0,1,1,1,1,0,1,0) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,0))
16377 && BITS4(0,1,0,1) == (INSN(7,4) & BITS4(0,1,1,1))) {
16378 UInt rD = INSN(15,12);
16379 UInt rN = INSN(3,0);
16432 if ((INSN(27,24) & BITS4(1,1,1,0)) != BITS4(0,0,0,0))
16436 if ((INSN(7,4) & BITS4(1,1,0,1)) != BITS4(1,1,0,1))
16441 /**/ if (INSN(27,24) == BITS4(0,0,0,1) && INSN(22,20) == BITS3(1,0,0)) {
16444 else if (INSN(27,24) == BITS4(0,0,0,1) && INSN(22,20) == BITS3(0,0,0)) {
16447 else if (INSN(27,24) == BITS4(0,0,0,1) && INSN(22,20) == BITS3(1,1,0)) {
16450 else if (INSN(27,24) == BITS4(0,0,0,1) && INSN(22,20) == BITS3(0,1,0)) {
16453 else if (INSN(27,24) == BITS4(0,0,0,0) && INSN(22,20) == BITS3(1,0,0)) {
16456 else if (INSN(27,24) == BITS4(0,0,0,0) && INSN(22,20) == BITS3(0,0,0)) {
16618 if (BITS8(0,1,1,0,1,0,1,0) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
16619 && BITS4(0,0,0,0) == (INSN(11,8) & BITS4(0,0,1,1))
16620 && BITS4(0,1,1,1) == INSN(7,4)) {
16621 UInt rN = INSN(19,16);
16622 UInt rD = INSN(15,12);
16623 UInt rM = INSN(3,0);
16625 UInt isU = INSN(22,22);
16648 if (BITS8(0,1,1,0,1,0,1,1) == (INSN(27,20) & BITS8(1,1,1,1,1,0,1,1))
16649 && BITS4(0,0,0,0) == (INSN(11,8) & BITS4(0,0,1,1))
16650 && BITS4(0,1,1,1) == INSN(7,4)) {
16651 UInt rN = INSN(19,16);
16652 UInt rD = INSN(15,12);
16653 UInt rM = INSN(3,0);
16655 UInt isU = INSN(22,22);
16679 if (INSN(27,16) == 0x6BF
16680 && (INSN(11,4) == 0xFB/*rev16*/ || INSN(11,4) == 0xF3/*rev*/)) {
16681 Bool isREV = INSN(11,4) == 0xF3;
16682 UInt rM = INSN(3,0);
16683 UInt rD = INSN(15,12);
16696 if (INSN(27,16) == 0x6FF && INSN(11,4) == 0xFB) {
16697 UInt rM = INSN(3,0);
16698 UInt rD = INSN(15,12);
16727 if (INSN(27,16) == 0x6FF && INSN(11,4) == 0xF3) {
16728 UInt rD = INSN(15,12);
16729 UInt rM = INSN(3,0);
16741 if (INSN(27,20) == BITS8(0,1,1,1,0,1,0,1)
16742 && INSN(15,12) == BITS4(1,1,1,1)
16743 && (INSN(7,4) & BITS4(1,1,0,1)) == BITS4(0,0,0,1)) {
16744 UInt bitR = INSN(5,5);
16745 UInt rD = INSN(19,16);
16746 UInt rM = INSN(11,8);
16747 UInt rN = INSN(3,0);
16762 if (INSN(27,20) == BITS8(0,1,1,1,0,1,0,1)
16763 && INSN(15,12) != BITS4(1,1,1,1)
16764 && (INSN(7,4) & BITS4(1,1,0,1)) == BITS4(0,0,0,1)) {
16765 UInt bitR = INSN(5,5);
16766 UInt rD = INSN(19,16);
16767 UInt rA = INSN(15,12);
16768 UInt rM = INSN(11,8);
16769 UInt rN = INSN(3,0);
16789 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,1,0,0,0,0,1,1) ) {
16790 UInt rT = INSN(15,12);
16791 UInt rN = INSN(19,16);
16792 UInt imm12 = INSN(11,0);
16793 UInt bU = INSN(23,23);
16814 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,1,1,0,0,0,1,1)
16815 && INSN(4,4) == 0 ) {
16816 UInt rT = INSN(15,12);
16817 UInt rN = INSN(19,16);
16818 UInt rM = INSN(3,0);
16819 UInt imm5 = INSN(11,7);
16820 UInt bU = INSN(23,23);
16821 UInt type = INSN(6,5);
16844 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,1,0,0,0,1,1,1) ) {
16845 UInt rT = INSN(15,12);
16846 UInt rN = INSN(19,16);
16847 UInt imm12 = INSN(11,0);
16848 UInt bU = INSN(23,23);
16869 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,1,1,0,0,1,1,1)
16870 && INSN(4,4) == 0 ) {
16871 UInt rT = INSN(15,12);
16872 UInt rN = INSN(19,16);
16873 UInt rM = INSN(3,0);
16874 UInt imm5 = INSN(11,7);
16875 UInt bU = INSN(23,23);
16876 UInt type = INSN(6,5);
16899 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,0,0,0,0,1,1,1)
16900 && INSN(7,4) == BITS4(1,0,1,1) ) {
16901 UInt rT = INSN(15,12);
16902 UInt rN = INSN(19,16);
16903 UInt bU = INSN(23,23);
16904 UInt imm4H = INSN(11,8);
16905 UInt imm4L = INSN(3,0);
16928 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,0,0,0,0,0,1,1)
16929 && INSN(11,4) == BITS8(0,0,0,0,1,0,1,1) ) {
16930 UInt rT = INSN(15,12);
16931 UInt rN = INSN(19,16);
16932 UInt rM = INSN(3,0);
16933 UInt bU = INSN(23,23);
16955 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,0,0,0,0,1,1,1)
16956 && INSN(7,4) == BITS4(1,1,1,1)) {
16957 UInt rT = INSN(15,12);
16958 UInt rN = INSN(19,16);
16959 UInt bU = INSN(23,23);
16960 UInt imm4H = INSN(11,8);
16961 UInt imm4L = INSN(3,0);
16984 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,0,0,0,0,0,1,1)
16985 && INSN(11,4) == BITS8(0,0,0,0,1,1,1,1)) {
16986 UInt rT = INSN(15,12);
16987 UInt rN = INSN(19,16);
16988 UInt rM = INSN(3,0);
16989 UInt bU = INSN(23,23);
17011 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,0,0,0,0,1,1,1)
17012 && INSN(7,4) == BITS4(1,1,0,1)) {
17013 UInt rT = INSN(15,12);
17014 UInt rN = INSN(19,16);
17015 UInt bU = INSN(23,23);
17016 UInt imm4H = INSN(11,8);
17017 UInt imm4L = INSN(3,0);
17040 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,0,0,0,0,0,1,1)
17041 && INSN(11,4) == BITS8(0,0,0,0,1,1,0,1)) {
17042 UInt rT = INSN(15,12);
17043 UInt rN = INSN(19,16);
17044 UInt bU = INSN(23,23);
17045 UInt rM = INSN(3,0);
17067 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,1,0,0,0,1,1,0) ) {
17068 UInt rT = INSN(15,12);
17069 UInt rN = INSN(19,16);
17070 UInt imm12 = INSN(11,0);
17071 UInt bU = INSN(23,23);
17091 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,1,1,0,0,1,1,0)
17092 && INSN(4,4) == 0) {
17093 UInt rT = INSN(15,12);
17094 UInt rN = INSN(19,16);
17095 UInt imm5 = INSN(11,7);
17096 UInt type = INSN(6,5);
17097 UInt rM = INSN(3,0);
17098 UInt bU = INSN(23,23);
17118 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,0,0,0,0,1,1,0)
17119 && INSN(7,4) == BITS4(1,0,1,1) ) {
17120 UInt rT = INSN(15,12);
17121 UInt rN = INSN(19,16);
17122 UInt imm4H = INSN(11,8);
17123 UInt imm4L = INSN(3,0);
17125 UInt bU = INSN(23,23);
17145 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,0,0,0,0,0,1,0)
17146 && INSN(11,4) == BITS8(0,0,0,0,1,0,1,1) ) {
17147 UInt rT = INSN(15,12);
17148 UInt rN = INSN(19,16);
17149 UInt rM = INSN(3,0);
17150 UInt bU = INSN(23,23);
17170 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,1,0,0,0,0,1,0) ) {
17171 UInt rT = INSN(15,12);
17172 UInt rN = INSN(19,16);
17173 UInt imm12 = INSN(11,0);
17174 UInt bU = INSN(23,23);
17193 if ( (INSN(27,20) & BITS8(1,1,1,1,0,1,1,1)) == BITS8(0,1,1,0,0,0,1,0)
17194 && INSN(4,4) == 0 ) {
17195 UInt rT = INSN(15,12);
17196 UInt rN = INSN(19,16);
17197 UInt rM = INSN(3,0);
17198 UInt type = INSN(6,5);
17199 UInt imm5 = INSN(11,7);
17200 UInt bU = INSN(23,23);
17228 UInt rD = INSN(15,12);
17248 UInt rD = INSN(15,12);
17265 UInt rT = INSN(15,12);
17326 &dres, INSN(27,0), condT, INSN_COND,
17345 &dres, INSN(27,0), condT, INSN_COND,
17368 (Int)INSN(27,20), (UInt)INSN(27,20),
17369 (Int)INSN(4,4),
17370 (Int)INSN(3,0), (UInt)INSN(3,0) );
17454 # undef INSN