Lines Matching defs:pOp

560 static size_t disParseInstruction(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis)
562 Assert(pOp); Assert(pDis);
565 pDis->pCurInstr = pOp;
572 if ((pOp->fOpType & pDis->fFilter) == 0)
585 pDis->Param1.fParam = pOp->fParam1;
586 pDis->Param2.fParam = pOp->fParam2;
587 pDis->Param3.fParam = pOp->fParam3;
588 pDis->Param4.fParam = pOp->fParam4;
593 if (pOp->fOpType & DISOPTYPE_FORCED_64_OP_SIZE)
596 if ( (pOp->fOpType & DISOPTYPE_DEFAULT_64_OP_SIZE)
601 if (pOp->fOpType & DISOPTYPE_FORCED_32_OP_SIZE_X86)
608 if (pOp->idxParse1 != IDX_ParseNop)
610 offInstr = pDis->pfnDisasmFnTable[pOp->idxParse1](offInstr, pOp, pDis, &pDis->Param1);
614 if (pOp->idxParse2 != IDX_ParseNop)
616 offInstr = pDis->pfnDisasmFnTable[pOp->idxParse2](offInstr, pOp, pDis, &pDis->Param2);
620 if (pOp->idxParse3 != IDX_ParseNop)
622 offInstr = pDis->pfnDisasmFnTable[pOp->idxParse3](offInstr, pOp, pDis, &pDis->Param3);
626 if (pOp->idxParse4 != IDX_ParseNop)
628 offInstr = pDis->pfnDisasmFnTable[pOp->idxParse4](offInstr, pOp, pDis, &pDis->Param4);
638 static size_t ParseEscFP(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
641 NOREF(pOp);
760 static size_t ParseSIB(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
762 NOREF(pOp); NOREF(pParam);
791 static size_t ParseSIB_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
793 NOREF(pOp); NOREF(pParam);
830 static void disasmModRMReg(unsigned idx, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam, int fRegAddr)
832 NOREF(pOp); NOREF(pDis);
904 static void disasmModRMReg16(unsigned idx, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
909 NOREF(pDis); NOREF(pOp);
921 static void disasmModRMSReg(unsigned idx, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
923 NOREF(pOp);
936 static size_t UseModRM(size_t const offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
946 disasmModRMReg(reg, pOp, pDis, pParam, 0);
987 disasmModRMSReg(reg, pOp, pDis, pParam);
1057 disasmModRMReg(rm, pOp, pDis, pParam, 1);
1067 disasmModRMReg(rm, pOp, pDis, pParam, 1);
1079 disasmModRMReg(rm, pOp, pDis, pParam, 1);
1086 disasmModRMReg(rm, pOp, pDis, pParam, 0);
1103 disasmModRMReg16(rm, pOp, pDis, pParam);
1108 disasmModRMReg16(rm, pOp, pDis, pParam);
1114 disasmModRMReg16(rm, pOp, pDis, pParam);
1120 disasmModRMReg(rm, pOp, pDis, pParam, 0);
1129 static size_t QueryModRM(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1142 offInstr = ParseSIB(offInstr, pOp, pDis, pParam);
1202 static size_t QueryModRM_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1215 offInstr = ParseSIB_SizeOnly(offInstr, pOp, pDis, pParam);
1265 static size_t ParseIllegal(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1267 NOREF(pOp); NOREF(pParam); NOREF(pDis);
1273 static size_t ParseModRM(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1288 if (pOp->fOpType & DISOPTYPE_MOD_FIXED_11)
1308 offInstr = QueryModRM(offInstr, pOp, pDis, pParam);
1310 return UseModRM(offInstr, pOp, pDis, pParam);
1314 static size_t ParseModRM_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1329 if (pOp->fOpType & DISOPTYPE_MOD_FIXED_11)
1350 offInstr = QueryModRM_SizeOnly(offInstr, pOp, pDis, pParam);
1357 static size_t ParseModFence(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1359 NOREF(pOp); NOREF(pParam); NOREF(pDis);
1365 static size_t ParseImmByte(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1367 NOREF(pOp);
1389 static size_t ParseImmByte_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1391 NOREF(pOp); NOREF(pParam); NOREF(pDis);
1396 static size_t ParseImmByteSX(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1398 NOREF(pOp);
1422 static size_t ParseImmByteSX_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1424 NOREF(pOp); NOREF(pParam); NOREF(pDis);
1429 static size_t ParseImmUshort(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1431 NOREF(pOp);
1439 static size_t ParseImmUshort_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1441 NOREF(pOp); NOREF(pParam); NOREF(pDis);
1446 static size_t ParseImmUlong(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1448 NOREF(pOp);
1456 static size_t ParseImmUlong_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1458 NOREF(pOp); NOREF(pParam); NOREF(pDis);
1463 static size_t ParseImmQword(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1465 NOREF(pOp);
1473 static size_t ParseImmQword_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1475 NOREF(offInstr); NOREF(pOp); NOREF(pParam); NOREF(pDis);
1480 static size_t ParseImmV(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1482 NOREF(pOp);
1506 static size_t ParseImmV_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1508 NOREF(offInstr); NOREF(pOp); NOREF(pParam);
1517 static size_t ParseImmZ(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1519 NOREF(pOp);
1546 static size_t ParseImmZ_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1548 NOREF(offInstr); NOREF(pOp); NOREF(pParam);
1558 static size_t ParseImmBRel(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1560 NOREF(pOp);
1569 static size_t ParseImmBRel_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1571 NOREF(offInstr); NOREF(pOp); NOREF(pParam); NOREF(pDis);
1577 static size_t ParseImmVRel(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1579 NOREF(pOp);
1605 static size_t ParseImmVRel_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1607 NOREF(offInstr); NOREF(pOp); NOREF(pParam);
1615 static size_t ParseImmAddr(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1617 NOREF(pOp);
1678 static size_t ParseImmAddr_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1680 NOREF(offInstr); NOREF(pOp);
1698 static size_t ParseImmAddrF(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1700 NOREF(pOp);
1722 static size_t ParseImmAddrF_SizeOnly(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1724 NOREF(offInstr); NOREF(pOp);
1734 static size_t ParseFixedReg(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1779 if ( (pOp->fOpType & DISOPTYPE_REXB_EXTENDS_OPREG)
1810 && (pOp->fOpType & DISOPTYPE_REXB_EXTENDS_OPREG)
1836 static size_t ParseXv(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1838 NOREF(pOp);
1861 static size_t ParseXb(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1863 NOREF(pOp);
1886 static size_t ParseYv(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1888 NOREF(pOp);
1911 static size_t ParseYb(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1913 NOREF(pOp);
1936 static size_t ParseInvOpModRm(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1938 NOREF(pOp); NOREF(pDis); NOREF(pParam);
1945 static size_t ParseVexDest(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1947 NOREF(pOp);
1979 static size_t ParseTwoByteEsc(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
1981 NOREF(pOp); NOREF(pParam);
2042 static size_t ParseThreeByteEsc4(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2044 NOREF(pOp); NOREF(pParam);
2144 static size_t ParseThreeByteEsc5(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2146 NOREF(pOp); NOREF(pParam);
2188 static size_t ParseNopPause(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2194 pOp = &g_aMapX86_NopPause[1]; /* PAUSE */
2198 pOp = &g_aMapX86_NopPause[0]; /* NOP */
2200 return disParseInstruction(offInstr, pOp, pDis);
2204 static size_t ParseImmGrpl(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2212 pOp = &g_aMapX86_Group1[idx+reg];
2214 return disParseInstruction(offInstr, pOp, pDis);
2218 static size_t ParseShiftGrp2(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2246 pOp = &g_aMapX86_Group2[idx+reg];
2248 return disParseInstruction(offInstr, pOp, pDis);
2252 static size_t ParseGrp3(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2260 pOp = &g_aMapX86_Group3[idx+reg];
2262 return disParseInstruction(offInstr, pOp, pDis);
2266 static size_t ParseGrp4(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2273 pOp = &g_aMapX86_Group4[reg];
2275 return disParseInstruction(offInstr, pOp, pDis);
2279 static size_t ParseGrp5(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2286 pOp = &g_aMapX86_Group5[reg];
2288 return disParseInstruction(offInstr, pOp, pDis);
2296 static size_t Parse3DNow(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2305 size_t offRet = QueryModRM(offInstr + 1, pOp, pDis, pParam);
2309 pOp = &g_aTwoByteMapX86_3DNow[opcode];
2311 size_t offStrict = disParseInstruction(offInstr, pOp, pDis);
2313 AssertMsg(offStrict == offRet - 1 /* the imm8_opcode */ || pOp->uOpcode == OP_INVALID,
2314 ("offStrict=%#x offRet=%#x uOpCode=%u\n", offStrict, offRet, pOp->uOpcode));
2321 static size_t ParseGrp6(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2328 pOp = &g_aMapX86_Group6[reg];
2330 return disParseInstruction(offInstr, pOp, pDis);
2334 static size_t ParseGrp7(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2344 pOp = &g_aMapX86_Group7_mod11_rm000[reg];
2347 pOp = &g_aMapX86_Group7_mod11_rm001[reg];
2349 pOp = &g_aMapX86_Group7_mem[reg];
2353 if (pOp->idxParse1 != IDX_ParseModRM && pOp->idxParse2 != IDX_ParseModRM)
2356 return disParseInstruction(offInstr, pOp, pDis);
2360 static size_t ParseGrp8(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2367 pOp = &g_aMapX86_Group8[reg];
2369 return disParseInstruction(offInstr, pOp, pDis);
2373 static size_t ParseGrp9(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2380 pOp = &g_aMapX86_Group9[reg];
2382 return disParseInstruction(offInstr, pOp, pDis);
2386 static size_t ParseGrp10(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2393 pOp = &g_aMapX86_Group10[reg];
2395 return disParseInstruction(offInstr, pOp, pDis);
2399 static size_t ParseGrp12(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2409 pOp = &g_aMapX86_Group12[reg];
2411 return disParseInstruction(offInstr, pOp, pDis);
2415 static size_t ParseGrp13(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2424 pOp = &g_aMapX86_Group13[reg];
2426 return disParseInstruction(offInstr, pOp, pDis);
2430 static size_t ParseGrp14(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2439 pOp = &g_aMapX86_Group14[reg];
2441 return disParseInstruction(offInstr, pOp, pDis);
2445 static size_t ParseGrp15(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2455 pOp = &g_aMapX86_Group15_mod11_rm000[reg];
2457 pOp = &g_aMapX86_Group15_mem[reg];
2459 return disParseInstruction(offInstr, pOp, pDis);
2463 static size_t ParseGrp16(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2468 pOp = &g_aMapX86_Group16[MODRM_REG(modrm)];
2470 return disParseInstruction(offInstr, pOp, pDis);
2474 static size_t ParseVex2b(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2476 NOREF(pOp); NOREF(pParam);
2521 static size_t ParseVex3b(size_t offInstr, PCDISOPCODE pOp, PDISSTATE pDis, PDISOPPARAM pParam)
2523 NOREF(pOp); NOREF(pParam);