Lines Matching refs:X86II
92 if (X86II::isX86_64ExtendedReg(SrcReg))
188 assert((TSFlags & X86II::EncodingMask) >> X86II::EncodingShift == X86II::EVEX &&
191 unsigned CD8E = (TSFlags >> X86II::EVEX_CD8EShift) & X86II::EVEX_CD8EMask;
192 unsigned CD8V = (TSFlags >> X86II::EVEX_CD8VShift) & X86II::EVEX_CD8VMask;
205 bool EVEX_b = (TSFlags >> X86II::VEXShift) & X86II::EVEX_B;
207 unsigned EVEX_LL = ((TSFlags >> X86II::VEXShift) & X86II::VEX_L) ? 1 : 0;
208 EVEX_LL += ((TSFlags >> X86II::VEXShift) & X86II::EVEX_L2) ? 2 : 0;
234 unsigned Size = X86II::getSizeOfImm(TSFlags);
235 bool isPCRel = X86II::isImmPCRel(TSFlags);
237 if (X86II::isImmSigned(TSFlags)) {
396 unsigned char Encoding = (TSFlags & X86II::EncodingMask) >>
397 X86II::EncodingShift;
398 bool HasEVEX = (Encoding == X86II::EVEX);
419 int ImmSize = X86II::hasImm(TSFlags) ? X86II::getSizeOfImm(TSFlags) : 0;
616 unsigned char Encoding = (TSFlags & X86II::EncodingMask) >>
617 X86II::EncodingShift;
618 bool HasEVEX_K = ((TSFlags >> X86II::VEXShift) & X86II::EVEX_K);
619 bool HasVEX_4V = (TSFlags >> X86II::VEXShift) & X86II::VEX_4V;
620 bool HasVEX_4VOp3 = (TSFlags >> X86II::VEXShift) & X86II::VEX_4VOp3;
621 bool HasMemOp4 = (TSFlags >> X86II::VEXShift) & X86II::MemOp4;
622 bool HasEVEX_RC = (TSFlags >> X86II::VEXShift) & X86II::EVEX_RC;
703 if ((TSFlags >> X86II::VEXShift) & X86II::VEX_W)
706 if ((TSFlags >> X86II::VEXShift) & X86II::VEX_L)
708 if (((TSFlags >> X86II::VEXShift) & X86II::EVEX_L2))
711 if (HasEVEX_K && ((TSFlags >> X86II::VEXShift) & X86II::EVEX_Z))
714 if (((TSFlags >> X86II::VEXShift) & X86II::EVEX_B))
717 switch (TSFlags & X86II::OpPrefixMask) {
719 case X86II::PD: VEX_PP = 0x1; break; // 66
720 case X86II::XS: VEX_PP = 0x2; break; // F3
721 case X86II::XD: VEX_PP = 0x3; break; // F2
724 switch (TSFlags & X86II::OpMapMask) {
726 case X86II::TB: VEX_5M = 0x1; break; // 0F
727 case X86II::T8: VEX_5M = 0x2; break; // 0F 38
728 case X86II::TA: VEX_5M = 0x3; break; // 0F 3A
729 case X86II::XOP8: VEX_5M = 0x8; break;
730 case X86II::XOP9: VEX_5M = 0x9; break;
731 case X86II::XOPA: VEX_5M = 0xA; break;
736 unsigned CurOp = X86II::getOperandBias(Desc);
738 switch (TSFlags & X86II::FormMask) {
740 case X86II::RawFrm:
742 case X86II::MRMDestMem: {
748 if (X86II::isX86_64ExtendedReg(MI.getOperand(MemOperand +
751 if (X86II::isX86_64ExtendedReg(MI.getOperand(MemOperand +
754 if (X86II::is32ExtendedReg(MI.getOperand(MemOperand +
765 if (X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
772 if (X86II::isX86_64ExtendedReg(MO.getReg()))
774 if (X86II::is32ExtendedReg(MO.getReg()))
779 case X86II::MRMSrcMem:
789 if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
791 if (X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
800 if (X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
805 if (X86II::isX86_64ExtendedReg(
808 if (X86II::isX86_64ExtendedReg(
811 if (X86II::is32ExtendedReg(MI.getOperand(MemOperand +
823 case X86II::MRM0m: case X86II::MRM1m:
824 case X86II::MRM2m: case X86II::MRM3m:
825 case X86II::MRM4m: case X86II::MRM5m:
826 case X86II::MRM6m: case X86II::MRM7m: {
832 if (X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
840 if (X86II::isX86_64ExtendedReg(
843 if (X86II::isX86_64ExtendedReg(
848 case X86II::MRMSrcReg:
857 if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
859 if (X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
868 if (X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
876 if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
878 if (X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
892 case X86II::MRMDestReg:
897 if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
899 if (X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
908 if (X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
913 if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
915 if (X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
920 case X86II::MRM0r: case X86II::MRM1r:
921 case X86II::MRM2r: case X86II::MRM3r:
922 case X86II::MRM4r: case X86II::MRM5r:
923 case X86II::MRM6r: case X86II::MRM7r:
928 if (X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
935 if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
937 if (X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
942 if (Encoding == X86II::VEX || Encoding == X86II::XOP) {
961 if (Encoding == X86II::VEX && VEX_B && VEX_X && !VEX_W && (VEX_5M == 1)) {
968 EmitByte(Encoding == X86II::XOP ? 0x8F : 0xC4, CurByte, OS);
972 assert(Encoding == X86II::EVEX && "unknown encoding!");
1015 if (TSFlags & X86II::REX_W)
1031 if (!X86II::isX86_64NonExtLowByteReg(Reg)) continue;
1038 switch (TSFlags & X86II::FormMask) {
1039 case X86II::MRMSrcReg:
1041 X86II::isX86_64ExtendedReg(MI.getOperand(0).getReg()))
1046 if (MO.isReg() && X86II::isX86_64ExtendedReg(MO.getReg()))
1050 case X86II::MRMSrcMem: {
1052 X86II::isX86_64ExtendedReg(MI.getOperand(0).getReg()))
1059 if (X86II::isX86_64ExtendedReg(MO.getReg()))
1066 case X86II::MRMXm:
1067 case X86II::MRM0m: case X86II::MRM1m:
1068 case X86II::MRM2m: case X86II::MRM3m:
1069 case X86II::MRM4m: case X86II::MRM5m:
1070 case X86II::MRM6m: case X86II::MRM7m:
1071 case X86II::MRMDestMem: {
1075 X86II::isX86_64ExtendedReg(MI.getOperand(e).getReg()))
1081 if (X86II::isX86_64ExtendedReg(MO.getReg()))
1090 X86II::isX86_64ExtendedReg(MI.getOperand(0).getReg()))
1095 if (MO.isReg() && X86II::isX86_64ExtendedReg(MO.getReg()))
1132 unsigned char OpSize = (TSFlags & X86II::OpSizeMask) >> X86II::OpSizeShift;
1133 if (OpSize == (is16BitMode(STI) ? X86II::OpSize32 : X86II::OpSize16))
1136 switch (TSFlags & X86II::OpPrefixMask) {
1137 case X86II::PD: // 66
1140 case X86II::XS: // F3
1143 case X86II::XD: // F2
1156 switch (TSFlags & X86II::OpMapMask) {
1157 case X86II::TB: // Two-byte opcode map
1158 case X86II::T8: // 0F 38
1159 case X86II::TA: // 0F 3A
1164 switch (TSFlags & X86II::OpMapMask) {
1165 case X86II::T8: // 0F 38
1168 case X86II::TA: // 0F 3A
1183 if ((TSFlags & X86II::FormMask) == X86II::Pseudo)
1187 unsigned CurOp = X86II::getOperandBias(Desc);
1193 unsigned char Encoding = (TSFlags & X86II::EncodingMask) >>
1194 X86II::EncodingShift;
1197 bool HasVEX_4V = (TSFlags >> X86II::VEXShift) & X86II::VEX_4V;
1198 bool HasVEX_4VOp3 = (TSFlags >> X86II::VEXShift) & X86II::VEX_4VOp3;
1199 bool HasMemOp4 = (TSFlags >> X86II::VEXShift) & X86II::MemOp4;
1203 bool HasEVEX_K = ((TSFlags >> X86II::VEXShift) & X86II::EVEX_K);
1204 bool HasEVEX_RC = ((TSFlags >> X86II::VEXShift) & X86II::EVEX_RC);
1207 int MemoryOperand = X86II::getMemoryOperandNo(TSFlags, Opcode);
1211 if (TSFlags & X86II::LOCK)
1220 if (TSFlags & X86II::REP)
1227 if ((!is16BitMode(STI) && TSFlags & X86II::AdSize) ||
1258 unsigned char BaseOpcode = X86II::getBaseOpcodeFor(TSFlags);
1260 if ((TSFlags >> X86II::VEXShift) & X86II::Has3DNow0F0FOpcode)
1264 switch (TSFlags & X86II::FormMask) {
1265 default: errs() << "FORM: " << (TSFlags & X86II::FormMask) << "\n";
1267 case X86II::Pseudo:
1269 case X86II::RawFrmDstSrc: {
1286 case X86II::RawFrmSrc: {
1299 case X86II::RawFrmDst: {
1309 case X86II::RawFrm:
1312 case X86II::RawFrmMemOffs:
1317 X86II::getSizeOfImm(TSFlags), getImmFixupKind(TSFlags),
1321 case X86II::RawFrmImm8:
1324 X86II::getSizeOfImm(TSFlags), getImmFixupKind(TSFlags),
1329 case X86II::RawFrmImm16:
1332 X86II::getSizeOfImm(TSFlags), getImmFixupKind(TSFlags),
1338 case X86II::AddRegFrm:
1342 case X86II::MRMDestReg:
1357 case X86II::MRMDestMem:
1373 case X86II::MRMSrcReg:
1398 case X86II::MRMSrcMem: {
1424 case X86II::MRMXr:
1425 case X86II::MRM0r: case X86II::MRM1r:
1426 case X86II::MRM2r: case X86II::MRM3r:
1427 case X86II::MRM4r: case X86II::MRM5r:
1428 case X86II::MRM6r: case X86II::MRM7r: {
1434 uint64_t Form = TSFlags & X86II::FormMask;
1436 (Form == X86II::MRMXr) ? 0 : Form-X86II::MRM0r,
1441 case X86II::MRMXm:
1442 case X86II::MRM0m: case X86II::MRM1m:
1443 case X86II::MRM2m: case X86II::MRM3m:
1444 case X86II::MRM4m: case X86II::MRM5m:
1445 case X86II::MRM6m: case X86II::MRM7m: {
1451 uint64_t Form = TSFlags & X86II::FormMask;
1452 EmitMemModRMByte(MI, CurOp, (Form == X86II::MRMXm) ? 0 : Form-X86II::MRM0m,
1457 case X86II::MRM_C0: case X86II::MRM_C1: case X86II::MRM_C2:
1458 case X86II::MRM_C3: case X86II::MRM_C4: case X86II::MRM_C8:
1459 case X86II::MRM_C9: case X86II::MRM_CA: case X86II::MRM_CB:
1460 case X86II::MRM_D0: case X86II::MRM_D1: case X86II::MRM_D4:
1461 case X86II::MRM_D5: case X86II::MRM_D6: case X86II::MRM_D8:
1462 case X86II::MRM_D9: case X86II::MRM_DA: case X86II::MRM_DB:
1463 case X86II::MRM_DC: case X86II::MRM_DD: case X86II::MRM_DE:
1464 case X86II::MRM_DF: case X86II::MRM_E0: case X86II::MRM_E1:
1465 case X86II::MRM_E2: case X86II::MRM_E3: case X86II::MRM_E4:
1466 case X86II::MRM_E5: case X86II::MRM_E8: case X86II::MRM_E9:
1467 case X86II::MRM_EA: case X86II::MRM_EB: case X86II::MRM_EC:
1468 case X86II::MRM_ED: case X86II::MRM_EE: case X86II::MRM_F0:
1469 case X86II::MRM_F1: case X86II::MRM_F2: case X86II::MRM_F3:
1470 case X86II::MRM_F4: case X86II::MRM_F5: case X86II::MRM_F6:
1471 case X86II::MRM_F7: case X86II::MRM_F8: case X86II::MRM_F9:
1472 case X86II::MRM_FA: case X86II::MRM_FB: case X86II::MRM_FC:
1473 case X86II::MRM_FD: case X86II::MRM_FE: case X86II::MRM_FF:
1477 switch (TSFlags & X86II::FormMask) {
1479 case X86II::MRM_C0: MRM = 0xC0; break;
1480 case X86II::MRM_C1: MRM = 0xC1; break;
1481 case X86II::MRM_C2: MRM = 0xC2; break;
1482 case X86II::MRM_C3: MRM = 0xC3; break;
1483 case X86II::MRM_C4: MRM = 0xC4; break;
1484 case X86II::MRM_C8: MRM = 0xC8; break;
1485 case X86II::MRM_C9: MRM = 0xC9; break;
1486 case X86II::MRM_CA: MRM = 0xCA; break;
1487 case X86II::MRM_CB: MRM = 0xCB; break;
1488 case X86II::MRM_D0: MRM = 0xD0; break;
1489 case X86II::MRM_D1: MRM = 0xD1; break;
1490 case X86II::MRM_D4: MRM = 0xD4; break;
1491 case X86II::MRM_D5: MRM = 0xD5; break;
1492 case X86II::MRM_D6: MRM = 0xD6; break;
1493 case X86II::MRM_D8: MRM = 0xD8; break;
1494 case X86II::MRM_D9: MRM = 0xD9; break;
1495 case X86II::MRM_DA: MRM = 0xDA; break;
1496 case X86II::MRM_DB: MRM = 0xDB; break;
1497 case X86II::MRM_DC: MRM = 0xDC; break;
1498 case X86II::MRM_DD: MRM = 0xDD; break;
1499 case X86II::MRM_DE: MRM = 0xDE; break;
1500 case X86II::MRM_DF: MRM = 0xDF; break;
1501 case X86II::MRM_E0: MRM = 0xE0; break;
1502 case X86II::MRM_E1: MRM = 0xE1; break;
1503 case X86II::MRM_E2: MRM = 0xE2; break;
1504 case X86II::MRM_E3: MRM = 0xE3; break;
1505 case X86II::MRM_E4: MRM = 0xE4; break;
1506 case X86II::MRM_E5: MRM = 0xE5; break;
1507 case X86II::MRM_E8: MRM = 0xE8; break;
1508 case X86II::MRM_E9: MRM = 0xE9; break;
1509 case X86II::MRM_EA: MRM = 0xEA; break;
1510 case X86II::MRM_EB: MRM = 0xEB; break;
1511 case X86II::MRM_EC: MRM = 0xEC; break;
1512 case X86II::MRM_ED: MRM = 0xED; break;
1513 case X86II::MRM_EE: MRM = 0xEE; break;
1514 case X86II::MRM_F0: MRM = 0xF0; break;
1515 case X86II::MRM_F1: MRM = 0xF1; break;
1516 case X86II::MRM_F2: MRM = 0xF2; break;
1517 case X86II::MRM_F3: MRM = 0xF3; break;
1518 case X86II::MRM_F4: MRM = 0xF4; break;
1519 case X86II::MRM_F5: MRM = 0xF5; break;
1520 case X86II::MRM_F6: MRM = 0xF6; break;
1521 case X86II::MRM_F7: MRM = 0xF7; break;
1522 case X86II::MRM_F8: MRM = 0xF8; break;
1523 case X86II::MRM_F9: MRM = 0xF9; break;
1524 case X86II::MRM_FA: MRM = 0xFA; break;
1525 case X86II::MRM_FB: MRM = 0xFB; break;
1526 case X86II::MRM_FC: MRM = 0xFC; break;
1527 case X86II::MRM_FD: MRM = 0xFD; break;
1528 case X86II::MRM_FE: MRM = 0xFE; break;
1529 case X86II::MRM_FF: MRM = 0xFF; break;
1541 if ((TSFlags >> X86II::VEXShift) & X86II::VEX_I8IMM) {
1546 if (X86II::isX86_64ExtendedReg(MO.getReg()))
1562 X86II::getSizeOfImm(TSFlags), getImmFixupKind(TSFlags),
1567 if ((TSFlags >> X86II::VEXShift) & X86II::Has3DNow0F0FOpcode)
1568 EmitByte(X86II::getBaseOpcodeFor(TSFlags), CurByte, OS);