Lines Matching refs:pInstr
131 bool CidetInstrHasMrmMemOperand(PCCIDETINSTR pInstr)
133 return CIDET_INSTR_TEST_OP_FLAG(pInstr, CIDET_OF_M_RM_ONLY_M);
137 bool CidetInstrHasMrmRegOperand(PCCIDETINSTR pInstr)
139 return CIDET_INSTR_TEST_OP_FLAG(pInstr, CIDET_OF_M_RM_ONLY_R);
143 bool CidetInstrRespondsToOperandSizePrefixes(PCCIDETINSTR pInstr)
145 return CIDET_INSTR_TEST_OP_MASK_VALUE(pInstr, CIDET_OF_Z_MASK, CIDET_OF_Z_VAR_WDQ);
1463 bool CideCoreSetInstruction(PCIDETCORE pThis, PCCIDETINSTR pInstr)
1465 AssertReleaseMsgReturn(RT_VALID_PTR(pInstr), ("%p\n", pInstr), false);
1467 pThis->pCurInstr = pInstr;
1478 pThis->fInstrFlags = pInstr->fFlags;
1479 pThis->cOperands = pInstr->cOperands;
1480 if (pInstr->fFlags & CIDET_IF_MODRM)
1483 for (uint8_t iOp = 0; iOp < pInstr->cOperands; iOp++)
1484 if (pInstr->afOperands[iOp] & CIDET_OF_M_REG)
1487 pThis->fMrmRegOp = pInstr->afOperands[iOp];
1489 else if (pInstr->afOperands[iOp] & CIDET_OF_M_RM)
1492 pThis->fMrmRmOp = pInstr->afOperands[iOp];
1499 for (iOp = 0; iOp < pInstr->cOperands; iOp++)
1501 pThis->aOperands[iOp].fFlags = pInstr->afOperands[iOp];
1504 pThis->aOperands[iOp].fIsImmediate = (pInstr->afOperands[iOp] & CIDET_OF_K_MASK) == CIDET_OF_K_IMM;
1505 pThis->aOperands[iOp].fIsMem = (pInstr->afOperands[iOp] & CIDET_OF_K_MASK) == CIDET_OF_K_MEM;
2338 bool CidetCoreTestInstruction(PCIDETCORE pThis, PCCIDETINSTR pInstr)
2344 if (!CideCoreSetInstruction(pThis, pInstr))