Lines Matching refs:decision
201 /// getDecisionType - Determines whether a ModRM decision with 255 entries can
204 /// @param decision - The decision to be compacted.
205 /// @return - The compactest available representation for the decision.
206 static ModRMDecisionType getDecisionType(ModRMDecision &decision)
214 if (decision.instructionIDs[index] != decision.instructionIDs[0])
218 (decision.instructionIDs[index] != decision.instructionIDs[0xc0]))
222 (decision.instructionIDs[index] != decision.instructionIDs[0x00]))
236 /// to a particular decision type.
238 /// @param dt - The decision type.
246 llvm_unreachable("Unknown decision type");
291 ModRMDecision &decision)
295 ModRMDecisionType dt = getDecisionType(decision);
298 if (dt == MODRM_ONEENTRY && decision.instructionIDs[0] == 0)
315 llvm_unreachable("Unknown decision type");
332 llvm_unreachable("Unknown decision type");
334 emitOneID(o1, i1, decision.instructionIDs[0], false);
337 emitOneID(o1, i1, decision.instructionIDs[0x00], true); // mod = 0b00
338 emitOneID(o1, i1, decision.instructionIDs[0xc0], false); // mod = 0b11
342 emitOneID(o1, i1, decision.instructionIDs[index], index < 255);
367 OpcodeDecision &decision) const {
380 emitModRMDecision(o1, o2, i1, i2, decision.modRMDecisions[index]);
399 ContextDecision &decision,
414 emitOpcodeDecision(o1, o2, i1, i2, decision.opcodeDecisions[index]);
608 void DisassemblerTables::setTableFields(ModRMDecision &decision,
616 if (decision.instructionIDs[index] == uid)
619 if (decision.instructionIDs[index] != 0) {
623 InstructionSpecifiers[decision.instructionIDs[index]];
649 decision.instructionIDs[index] = uid;
663 ContextDecision &decision = *Tables[type];
671 setTableFields(decision.opcodeDecisions[index].modRMDecisions[opcode],