Lines Matching refs:instr
282 uint32_t instr = (ReadU16(instr_ptr) << 16) | ReadU16(instr_ptr + 2);
290 uint32_t op1 = (instr >> 27) & 3;
295 uint32_t op2 = (instr >> 20) & 0x7F;
315 uint32_t op = (instr >> 23) & 3;
316 uint32_t W = (instr >> 21) & 1;
317 uint32_t L = (instr >> 20) & 1;
318 ArmRegister Rn(instr, 16);
345 args << RegisterList(instr);
348 uint32_t op3 = (instr >> 23) & 3;
349 uint32_t op4 = (instr >> 20) & 3;
350 // uint32_t op5 = (instr >> 4) & 0xF;
351 ArmRegister Rn(instr, 16);
352 ArmRegister Rt(instr, 12);
353 uint32_t imm8 = instr & 0xFF;
355 ArmRegister Rd(instr, 8);
371 uint32_t op3 = (instr >> 21) & 0xF;
372 uint32_t S = (instr >> 20) & 1;
373 uint32_t imm3 = ((instr >> 12) & 0x7);
374 uint32_t imm2 = ((instr >> 6) & 0x3);
376 uint32_t shift_type = ((instr >> 4) & 0x2);
377 ArmRegister Rd(instr, 8);
378 ArmRegister Rn(instr, 16);
379 ArmRegister Rm(instr, 0);
495 uint32_t op3 = (instr >> 20) & 0x3F;
496 uint32_t coproc = (instr >> 8) & 0xF;
497 uint32_t op4 = (instr >> 4) & 0x1;
511 uint32_t P = (instr >> 24) & 1;
512 uint32_t U = (instr >> 23) & 1;
513 uint32_t D = (instr >> 22) & 1;
514 uint32_t W = (instr >> 21) & 1;
515 uint32_t S = (instr >> 8) & 1;
516 ArmRegister Rn(instr, 16);
517 uint32_t Vd = (instr >> 12) & 0xF;
518 uint32_t imm8 = instr & 0xFF;
544 uint32_t opc1 = (instr >> 20) & 0xF;
545 uint32_t opc2 = (instr >> 16) & 0xF;
546 uint32_t opc3 = (instr >> 6) & 0x3;
549 uint32_t D = (instr >> 22) & 0x1;
550 uint32_t Vd = (instr >> 12) & 0xF;
551 uint32_t sz = (instr >> 8) & 1;
552 uint32_t M = (instr >> 5) & 1;
553 uint32_t Vm = instr & 0xF;
580 if ((instr & 0xFFBF0ED0) == 0xeeb10ac0) { // Vsqrt
583 uint32_t D = (instr >> 22) & 1;
584 uint32_t Vd = (instr >> 12) & 0xF;
585 uint32_t sz = (instr >> 8) & 1;
586 uint32_t M = (instr >> 5) & 1;
587 uint32_t Vm = instr & 0xF;
600 if ((instr & 0x8000) == 0 && (op2 & 0x20) == 0) {
610 uint32_t i = (instr >> 26) & 1;
611 uint32_t op3 = (instr >> 21) & 0xF;
612 uint32_t S = (instr >> 20) & 1;
613 ArmRegister Rn(instr, 16);
614 uint32_t imm3 = (instr >> 12) & 7;
615 ArmRegister Rd(instr, 8);
616 uint32_t imm8 = instr & 0xFF;
663 } else if ((instr & 0x8000) == 0 && (op2 & 0x20) != 0) {
672 uint32_t op3 = (instr >> 20) & 0x1F;
676 ArmRegister Rd(instr, 8);
677 ArmRegister Rn(instr, 16);
678 uint32_t i = (instr >> 26) & 1;
679 uint32_t imm3 = (instr >> 12) & 0x7;
680 uint32_t imm8 = instr & 0xFF;
694 ArmRegister Rd(instr, 8);
695 uint32_t i = (instr >> 26) & 1;
696 uint32_t imm3 = (instr >> 12) & 0x7;
697 uint32_t imm8 = instr & 0xFF;
698 uint32_t Rn = (instr >> 16) & 0xF;
706 ArmRegister Rd(instr, 8);
707 ArmRegister Rn(instr, 16);
708 uint32_t msb = instr & 0x1F;
709 uint32_t imm2 = (instr >> 6) & 0x3;
710 uint32_t imm3 = (instr >> 12) & 0x7;
735 uint32_t op3 = (instr >> 12) & 7;
736 // uint32_t op4 = (instr >> 8) & 0xF;
748 uint32_t S = (instr >> 26) & 1;
749 uint32_t J2 = (instr >> 11) & 1;
750 uint32_t J1 = (instr >> 13) & 1;
751 uint32_t imm6 = (instr >> 16) & 0x3F;
752 uint32_t imm11 = instr & 0x7FF;
753 uint32_t cond = (instr >> 22) & 0xF;
762 uint32_t op5 = (instr >> 4) & 0xF;
788 uint32_t S = (instr >> 26) & 1;
789 uint32_t cond = (instr >> 22) & 0xF;
790 uint32_t J2 = (instr >> 11) & 1;
791 uint32_t form = (instr >> 12) & 1;
792 uint32_t J1 = (instr >> 13) & 1;
793 uint32_t imm10 = (instr >> 16) & 0x3FF;
794 uint32_t imm6 = (instr >> 16) & 0x3F;
795 uint32_t imm11 = instr & 0x7FF;
821 uint32_t S = (instr >> 26) & 1;
822 uint32_t J2 = (instr >> 11) & 1;
823 uint32_t L = (instr >> 12) & 1;
824 uint32_t J1 = (instr >> 13) & 1;
825 uint32_t imm10 = (instr >> 16) & 0x3FF;
826 uint32_t imm11 = instr & 0x7FF;
854 uint32_t op3 = (instr >> 21) & 7;
855 // uint32_t op4 = (instr >> 6) & 0x3F;
860 ArmRegister Rn(instr, 16);
861 ArmRegister Rt(instr, 12);
863 if ((instr & 0x800) != 0) {
864 uint32_t imm8 = instr & 0xFF;
867 uint32_t imm2 = (instr >> 4) & 3;
868 ArmRegister Rm(instr, 0);
878 ArmRegister Rn(instr, 16);
879 ArmRegister Rt(instr, 12);
881 if ((instr & 0x800) != 0) {
883 uint32_t P = (instr >> 10) & 1;
884 uint32_t U = (instr >> 9) & 1;
885 uint32_t W = (instr >> 8) & 1;
886 uint32_t imm8 = instr & 0xFF;
911 ArmRegister Rn(instr, 16);
912 ArmRegister Rt(instr, 12);
913 ArmRegister Rm(instr, 0);
914 uint32_t imm2 = (instr >> 4) & 3;
924 uint32_t imm12 = instr & 0xFFF;
944 uint32_t op3 = (instr >> 23) & 3;
945 ArmRegister Rn(instr, 16);
946 ArmRegister Rt(instr, 12);
950 uint32_t imm12 = instr & 0xFFF;
963 uint32_t imm12 = instr & 0xFFF;
988 uint32_t op3 = (instr >> 23) & 3;
989 uint32_t op4 = (instr >> 6) & 0x3F;
990 ArmRegister Rn(instr, 16);
991 ArmRegister Rt(instr, 12);
995 uint32_t imm12 = instr & 0xFFF;
1008 uint32_t imm2 = (instr >> 4) & 0xF;
1009 ArmRegister rm(instr, 0);
1018 uint32_t imm8 = instr & 0xFF;
1035 os << StringPrintf("%p: %08x\t%-7s ", instr_ptr, instr, opcode.str().c_str()) << args.str() << '\n';
1040 uint16_t instr = ReadU16(instr_ptr);
1041 bool is_32bit = ((instr & 0xF000) == 0xF000) || ((instr & 0xF800) == 0xE800);
1047 uint16_t opcode1 = instr >> 10;
1050 uint16_t opcode2 = instr >> 9;
1057 uint16_t imm5 = (instr >> 6) & 0x1F;
1058 ThumbRegister rm(instr, 3);
1059 ThumbRegister Rd(instr, 0);
1075 uint16_t imm3_or_Rm = (instr >> 6) & 7;
1076 ThumbRegister Rn(instr, 3);
1077 ThumbRegister Rd(instr, 0);
1104 ThumbRegister Rn(instr, 8);
1105 uint16_t imm8 = instr & 0xFF;
1120 uint16_t opcode2 = (instr >> 6) & 0xF;
1121 ThumbRegister rm(instr, 3);
1122 ThumbRegister rdn(instr, 0);
1127 uint16_t opcode2 = (instr >> 6) & 0x0F;
1132 uint16_t DN = (instr >> 7) & 1;
1133 ArmRegister rm(instr, 3);
1134 uint16_t Rdn = instr & 7;
1143 uint16_t DN = (instr >> 7) & 1;
1144 ArmRegister rm(instr, 3);
1145 uint16_t Rdn = instr & 7;
1153 uint16_t N = (instr >> 7) & 1;
1154 ArmRegister rm(instr, 3);
1155 uint16_t Rn = instr & 7;
1164 ArmRegister rm(instr, 3);
1173 ThumbRegister Rt(instr, 8);
1174 uint16_t imm8 = instr & 0xFF;
1181 uint16_t opA = (instr >> 12) & 0xF;
1183 uint16_t opB = (instr >> 9) & 0x7;
1184 ThumbRegister Rm(instr, 6);
1185 ThumbRegister Rn(instr, 3);
1186 ThumbRegister Rt(instr, 0);
1199 uint16_t opB = (instr >> 11) & 1;
1200 ThumbRegister Rt(instr, 8);
1201 uint16_t imm8 = instr & 0xFF;
1205 uint16_t imm5 = (instr >> 6) & 0x1F;
1206 uint16_t opB = (instr >> 11) & 1;
1207 ThumbRegister Rn(instr, 3);
1208 ThumbRegister Rt(instr, 0);
1226 int8_t imm8 = instr & 0xFF;
1227 uint32_t cond = (instr >> 8) & 0xF;
1231 } else if ((instr & 0xF800) == 0xA800) {
1233 ThumbRegister rd(instr, 8);
1234 int imm8 = instr & 0xFF;
1237 } else if ((instr & 0xF000) == 0xB000) {
1239 uint16_t opcode2 = (instr >> 5) & 0x7F;
1244 int imm7 = instr & 0x7F;
1258 uint16_t op = (instr >> 11) & 1;
1259 uint16_t i = (instr >> 9) & 1;
1260 uint16_t imm5 = (instr >> 3) & 0x1F;
1261 ThumbRegister Rn(instr, 0);
1271 uint16_t opA = (instr >> 4) & 0xF;
1272 uint16_t opB = instr & 0xF;
1311 } else if (((instr & 0xF000) == 0x5000) || ((instr & 0xE000) == 0x6000) ||
1312 ((instr & 0xE000) == 0x8000)) {
1314 uint16_t opA = instr >> 12;
1315 // uint16_t opB = (instr >> 9) & 7;
1320 uint16_t imm5 = (instr >> 6) & 0x1F;
1321 ThumbRegister Rn(instr, 3);
1322 ThumbRegister Rt(instr, 0);
1323 opcode << ((instr & 0x800) == 0 ? "str" : "ldr");
1330 uint16_t imm8 = instr & 0xFF;
1331 ThumbRegister Rt(instr, 8);
1332 opcode << ((instr & 0x800) == 0 ? "str" : "ldr");
1340 uint16_t imm11 = instr & 0x7FFF;
1353 os << StringPrintf("%p: %04x \t%-7s ", instr_ptr, instr, opcode.str().c_str()) << args.str() << '\n';