reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp
  856   dbgprintf(insn, "getID()");
  860   if (insn->mode == MODE_64BIT)
  863   if (insn->vectorExtensionType != TYPE_NO_VEX_XOP) {
  864     attrMask |= (insn->vectorExtensionType == TYPE_EVEX) ? ATTR_EVEX : ATTR_VEX;
  866     if (insn->vectorExtensionType == TYPE_EVEX) {
  867       switch (ppFromEVEX3of4(insn->vectorExtensionPrefix[2])) {
  879       if (zFromEVEX4of4(insn->vectorExtensionPrefix[3]))
  881       if (bFromEVEX4of4(insn->vectorExtensionPrefix[3]))
  883       if (aaaFromEVEX4of4(insn->vectorExtensionPrefix[3]))
  885       if (lFromEVEX4of4(insn->vectorExtensionPrefix[3]))
  887       if (l2FromEVEX4of4(insn->vectorExtensionPrefix[3]))
  889     } else if (insn->vectorExtensionType == TYPE_VEX_3B) {
  890       switch (ppFromVEX3of3(insn->vectorExtensionPrefix[2])) {
  902       if (lFromVEX3of3(insn->vectorExtensionPrefix[2]))
  904     } else if (insn->vectorExtensionType == TYPE_VEX_2B) {
  905       switch (ppFromVEX2of2(insn->vectorExtensionPrefix[1])) {
  917       if (lFromVEX2of2(insn->vectorExtensionPrefix[1]))
  919     } else if (insn->vectorExtensionType == TYPE_XOP) {
  920       switch (ppFromXOP3of3(insn->vectorExtensionPrefix[2])) {
  932       if (lFromXOP3of3(insn->vectorExtensionPrefix[2]))
  937   } else if (!insn->mandatoryPrefix) {
  939     if (insn->hasOpSize && (insn->mode != MODE_16BIT))
  939     if (insn->hasOpSize && (insn->mode != MODE_16BIT))
  941     if (insn->hasAdSize)
  943     if (insn->opcodeType == ONEBYTE) {
  944       if (insn->repeatPrefix == 0xf3 && (insn->opcode == 0x90))
  944       if (insn->repeatPrefix == 0xf3 && (insn->opcode == 0x90))
  948       if (insn->repeatPrefix == 0xf2)
  950       else if (insn->repeatPrefix == 0xf3)
  954     switch (insn->mandatoryPrefix) {
  962       if (insn->mode != MODE_16BIT)
  972   if (insn->rexPrefix & 0x08) {
  981   if (insn->mode == MODE_16BIT && insn->opcodeType == ONEBYTE &&
  981   if (insn->mode == MODE_16BIT && insn->opcodeType == ONEBYTE &&
  982       insn->opcode == 0xE3)
  988   if (insn->mode == MODE_16BIT && !insn->hasOpSize &&
  988   if (insn->mode == MODE_16BIT && !insn->hasOpSize &&
  989       insn->opcodeType == ONEBYTE &&
  990       (insn->opcode == 0xE8 || insn->opcode == 0xE9))
  990       (insn->opcode == 0xE8 || insn->opcode == 0xE9))
  993   if (insn->mode == MODE_16BIT && !insn->hasOpSize &&
  993   if (insn->mode == MODE_16BIT && !insn->hasOpSize &&
  994       insn->opcodeType == TWOBYTE &&
  995       insn->opcode >= 0x80 && insn->opcode <= 0x8F)
  995       insn->opcode >= 0x80 && insn->opcode <= 0x8F)
  998   if (getIDWithAttrMask(&instructionID, insn, attrMask))
 1003   if (insn->mode != MODE_64BIT &&
 1004       insn->vectorExtensionType != TYPE_NO_VEX_XOP) {
 1009     if ((insn->vectorExtensionType == TYPE_EVEX &&
 1010          wFromEVEX3of4(insn->vectorExtensionPrefix[2])) ||
 1011         (insn->vectorExtensionType == TYPE_VEX_3B &&
 1012          wFromVEX3of3(insn->vectorExtensionPrefix[2])) ||
 1013         (insn->vectorExtensionType == TYPE_XOP &&
 1014          wFromXOP3of3(insn->vectorExtensionPrefix[2]))) {
 1018                             insn, attrMask | ATTR_REXW)) {
 1019         insn->instructionID = instructionID;
 1020         insn->spec = specifierForUID(instructionID);
 1027         insn->instructionID = instructionIDWithREXW;
 1028         insn->spec = specifierForUID(instructionIDWithREXW);
 1041   if ((insn->opcodeType == ONEBYTE && ((insn->opcode & 0xFC) == 0xA0)) ||
 1041   if ((insn->opcodeType == ONEBYTE && ((insn->opcode & 0xFC) == 0xA0)) ||
 1042       (insn->opcodeType == TWOBYTE && (insn->opcode == 0xAE)) ||
 1042       (insn->opcodeType == TWOBYTE && (insn->opcode == 0xAE)) ||
 1043       (insn->opcodeType == THREEBYTE_38 && insn->opcode == 0xF8)) {
 1043       (insn->opcodeType == THREEBYTE_38 && insn->opcode == 0xF8)) {
 1045     if (insn->hasAdSize)
 1047     if (insn->hasOpSize)
 1051     if (insn->mode == MODE_16BIT) {
 1055       if (insn->opcodeType == ONEBYTE && ((insn->opcode & 0xFC) == 0xA0))
 1055       if (insn->opcodeType == ONEBYTE && ((insn->opcode & 0xFC) == 0xA0))
 1059     if (getIDWithAttrMask(&instructionID, insn, attrMask))
 1062     insn->instructionID = instructionID;
 1063     insn->spec = specifierForUID(instructionID);
 1067   if ((insn->mode == MODE_16BIT || insn->hasOpSize) &&
 1067   if ((insn->mode == MODE_16BIT || insn->hasOpSize) &&
 1084                           insn,
 1091       insn->instructionID = instructionID;
 1092       insn->spec = spec;
 1100         (insn->mode == MODE_16BIT) ^ insn->hasOpSize) {
 1100         (insn->mode == MODE_16BIT) ^ insn->hasOpSize) {
 1101       insn->instructionID = instructionIDWithOpsize;
 1102       insn->spec = specifierForUID(instructionIDWithOpsize);
 1104       insn->instructionID = instructionID;
 1105       insn->spec = spec;
 1110   if (insn->opcodeType == ONEBYTE && insn->opcode == 0x90 &&
 1110   if (insn->opcodeType == ONEBYTE && insn->opcode == 0x90 &&
 1111       insn->rexPrefix & 0x01) {
 1124     insn->opcode = 0x91;
 1127                           insn,
 1129       insn->opcode = 0x90;
 1131       insn->instructionID = instructionID;
 1132       insn->spec = spec;
 1139     insn->opcode = 0x90;
 1141     insn->instructionID = instructionIDWithNewOpcode;
 1142     insn->spec = specWithNewOpcode;
 1147   insn->instructionID = instructionID;
 1148   insn->spec = specifierForUID(insn->instructionID);
 1148   insn->spec = specifierForUID(insn->instructionID);