Lines Matching refs:X86II
72 if (X86II::isX86_64ExtendedReg(SrcReg))
166 assert(((TSFlags >> X86II::VEXShift) & X86II::EVEX) &&
169 unsigned CD8E = (TSFlags >> X86II::EVEX_CD8EShift) & X86II::EVEX_CD8EMask;
170 unsigned CD8V = (TSFlags >> X86II::EVEX_CD8VShift) & X86II::EVEX_CD8VMask;
183 bool EVEX_b = (TSFlags >> X86II::VEXShift) & X86II::EVEX_B;
185 unsigned EVEX_LL = ((TSFlags >> X86II::VEXShift) & X86II::VEX_L) ? 1 : 0;
186 EVEX_LL += ((TSFlags >> X86II::VEXShift) & X86II::EVEX_L2) ? 2 : 0;
212 unsigned Size = X86II::getSizeOfImm(TSFlags);
213 bool isPCRel = X86II::isImmPCRel(TSFlags);
375 bool HasEVEX = (TSFlags >> X86II::VEXShift) & X86II::EVEX;
396 int ImmSize = X86II::hasImm(TSFlags) ? X86II::getSizeOfImm(TSFlags) : 0;
533 bool HasEVEX = (TSFlags >> X86II::VEXShift) & X86II::EVEX;
534 bool HasEVEX_K = HasEVEX && ((TSFlags >> X86II::VEXShift) & X86II::EVEX_K);
535 bool HasVEX_4V = (TSFlags >> X86II::VEXShift) & X86II::VEX_4V;
536 bool HasVEX_4VOp3 = (TSFlags >> X86II::VEXShift) & X86II::VEX_4VOp3;
537 bool HasMemOp4 = (TSFlags >> X86II::VEXShift) & X86II::MemOp4;
616 if (TSFlags & X86II::OpSize)
619 if ((TSFlags >> X86II::VEXShift) & X86II::VEX_W)
622 if ((TSFlags >> X86II::VEXShift) & X86II::XOP)
625 if ((TSFlags >> X86II::VEXShift) & X86II::VEX_L)
627 if (HasEVEX && ((TSFlags >> X86II::VEXShift) & X86II::EVEX_L2))
630 if (HasEVEX_K && ((TSFlags >> X86II::VEXShift) & X86II::EVEX_Z))
633 if (HasEVEX && ((TSFlags >> X86II::VEXShift) & X86II::EVEX_B))
636 switch (TSFlags & X86II::Op0Mask) {
638 case X86II::T8: // 0F 38
641 case X86II::TA: // 0F 3A
644 case X86II::T8XS: // F3 0F 38
648 case X86II::T8XD: // F2 0F 38
652 case X86II::TAXD: // F2 0F 3A
656 case X86II::XS: // F3 0F
659 case X86II::XD: // F2 0F
662 case X86II::XOP8:
665 case X86II::XOP9:
668 case X86II::A6: // Bypass: Not used by VEX
669 case X86II::A7: // Bypass: Not used by VEX
670 case X86II::TB: // Bypass: Not used by VEX
695 switch (TSFlags & X86II::FormMask) {
696 case X86II::MRMInitReg: llvm_unreachable("FIXME: Remove this!");
697 case X86II::MRMDestMem: {
703 if (X86II::isX86_64ExtendedReg(MI.getOperand(MemOperand +
706 if (X86II::isX86_64ExtendedReg(MI.getOperand(MemOperand +
709 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(MemOperand +
720 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
727 if (X86II::isX86_64ExtendedReg(MO.getReg()))
729 if (HasEVEX && X86II::is32ExtendedReg(MO.getReg()))
734 case X86II::MRMSrcMem:
744 if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
746 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
755 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
760 if (X86II::isX86_64ExtendedReg(
763 if (X86II::isX86_64ExtendedReg(
766 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(MemOperand +
778 case X86II::MRM0m: case X86II::MRM1m:
779 case X86II::MRM2m: case X86II::MRM3m:
780 case X86II::MRM4m: case X86II::MRM5m:
781 case X86II::MRM6m: case X86II::MRM7m: {
787 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
795 if (X86II::isX86_64ExtendedReg(
798 if (X86II::isX86_64ExtendedReg(
803 case X86II::MRMSrcReg:
812 if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
814 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
823 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
831 if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
833 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
839 case X86II::MRMDestReg:
844 if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
846 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
855 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
860 if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
862 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
865 case X86II::MRM0r: case X86II::MRM1r:
866 case X86II::MRM2r: case X86II::MRM3r:
867 case X86II::MRM4r: case X86II::MRM5r:
868 case X86II::MRM6r: case X86II::MRM7r:
872 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
879 if (X86II::isX86_64ExtendedReg(MI.getOperand(CurOp).getReg()))
881 if (HasEVEX && X86II::is32ExtendedReg(MI.getOperand(CurOp).getReg()))
951 if (TSFlags & X86II::REX_W)
967 if (!X86II::isX86_64NonExtLowByteReg(Reg)) continue;
974 switch (TSFlags & X86II::FormMask) {
975 case X86II::MRMInitReg: llvm_unreachable("FIXME: Remove this!");
976 case X86II::MRMSrcReg:
978 X86II::isX86_64ExtendedReg(MI.getOperand(0).getReg()))
983 if (MO.isReg() && X86II::isX86_64ExtendedReg(MO.getReg()))
987 case X86II::MRMSrcMem: {
989 X86II::isX86_64ExtendedReg(MI.getOperand(0).getReg()))
996 if (X86II::isX86_64ExtendedReg(MO.getReg()))
1003 case X86II::MRM0m: case X86II::MRM1m:
1004 case X86II::MRM2m: case X86II::MRM3m:
1005 case X86II::MRM4m: case X86II::MRM5m:
1006 case X86II::MRM6m: case X86II::MRM7m:
1007 case X86II::MRMDestMem: {
1011 X86II::isX86_64ExtendedReg(MI.getOperand(e).getReg()))
1017 if (X86II::isX86_64ExtendedReg(MO.getReg()))
1026 X86II::isX86_64ExtendedReg(MI.getOperand(0).getReg()))
1031 if (MO.isReg() && X86II::isX86_64ExtendedReg(MO.getReg()))
1044 switch (TSFlags & X86II::SegOvrMask) {
1061 case X86II::FS:
1064 case X86II::GS:
1080 if (TSFlags & X86II::LOCK)
1087 if ((TSFlags & X86II::Op0Mask) == X86II::REP)
1092 if (TSFlags & X86II::AdSize) {
1110 if (TSFlags & X86II::OpSize)
1114 switch (TSFlags & X86II::Op0Mask) {
1117 case X86II::REP: break; // already handled.
1118 case X86II::TB: // Two-byte opcode prefix
1119 case X86II::T8: // 0F 38
1120 case X86II::TA: // 0F 3A
1121 case X86II::A6: // 0F A6
1122 case X86II::A7: // 0F A7
1125 case X86II::T8XS: // F3 0F 38
1129 case X86II::T8XD: // F2 0F 38
1133 case X86II::TAXD: // F2 0F 3A
1137 case X86II::XS: // F3 0F
1141 case X86II::XD: // F2 0F
1145 case X86II::D8: EmitByte(0xD8, CurByte, OS); break;
1146 case X86II::D9: EmitByte(0xD9, CurByte, OS); break;
1147 case X86II::DA: EmitByte(0xDA, CurByte, OS); break;
1148 case X86II::DB: EmitByte(0xDB, CurByte, OS); break;
1149 case X86II::DC: EmitByte(0xDC, CurByte, OS); break;
1150 case X86II::DD: EmitByte(0xDD, CurByte, OS); break;
1151 case X86II::DE: EmitByte(0xDE, CurByte, OS); break;
1152 case X86II::DF: EmitByte(0xDF, CurByte, OS); break;
1167 switch (TSFlags & X86II::Op0Mask) {
1168 case X86II::T8XS: // F3 0F 38
1169 case X86II::T8XD: // F2 0F 38
1170 case X86II::T8: // 0F 38
1173 case X86II::TAXD: // F2 0F 3A
1174 case X86II::TA: // 0F 3A
1177 case X86II::A6: // 0F A6
1180 case X86II::A7: // 0F A7
1194 if ((TSFlags & X86II::FormMask) == X86II::Pseudo)
1198 unsigned CurOp = X86II::getOperandBias(Desc);
1204 bool HasVEXPrefix = (TSFlags >> X86II::VEXShift) & X86II::VEX;
1207 bool HasVEX_4V = (TSFlags >> X86II::VEXShift) & X86II::VEX_4V;
1208 bool HasVEX_4VOp3 = (TSFlags >> X86II::VEXShift) & X86II::VEX_4VOp3;
1209 bool HasMemOp4 = (TSFlags >> X86II::VEXShift) & X86II::MemOp4;
1213 bool HasEVEX = (TSFlags >> X86II::VEXShift) & X86II::EVEX;
1214 bool HasEVEX_K = HasEVEX && ((TSFlags >> X86II::VEXShift) & X86II::EVEX_K);
1217 int MemoryOperand = X86II::getMemoryOperandNo(TSFlags, Opcode);
1225 unsigned char BaseOpcode = X86II::getBaseOpcodeFor(TSFlags);
1227 if ((TSFlags >> X86II::VEXShift) & X86II::Has3DNow0F0FOpcode)
1231 switch (TSFlags & X86II::FormMask) {
1232 case X86II::MRMInitReg:
1234 default: errs() << "FORM: " << (TSFlags & X86II::FormMask) << "\n";
1236 case X86II::Pseudo:
1238 case X86II::RawFrm:
1241 case X86II::RawFrmImm8:
1244 X86II::getSizeOfImm(TSFlags), getImmFixupKind(TSFlags),
1249 case X86II::RawFrmImm16:
1252 X86II::getSizeOfImm(TSFlags), getImmFixupKind(TSFlags),
1258 case X86II::AddRegFrm:
1262 case X86II::MRMDestReg:
1277 case X86II::MRMDestMem:
1293 case X86II::MRMSrcReg:
1315 case X86II::MRMSrcMem: {
1341 case X86II::MRM0r: case X86II::MRM1r:
1342 case X86II::MRM2r: case X86II::MRM3r:
1343 case X86II::MRM4r: case X86II::MRM5r:
1344 case X86II::MRM6r: case X86II::MRM7r:
1349 (TSFlags & X86II::FormMask)-X86II::MRM0r,
1352 case X86II::MRM0m: case X86II::MRM1m:
1353 case X86II::MRM2m: case X86II::MRM3m:
1354 case X86II::MRM4m: case X86II::MRM5m:
1355 case X86II::MRM6m: case X86II::MRM7m:
1359 EmitMemModRMByte(MI, CurOp, (TSFlags & X86II::FormMask)-X86II::MRM0m,
1363 case X86II::MRM_C1: case X86II::MRM_C2: case X86II::MRM_C3:
1364 case X86II::MRM_C4: case X86II::MRM_C8: case X86II::MRM_C9:
1365 case X86II::MRM_CA: case X86II::MRM_CB: case X86II::MRM_D0:
1366 case X86II::MRM_D1: case X86II::MRM_D4: case X86II::MRM_D5:
1367 case X86II::MRM_D6: case X86II::MRM_D8: case X86II::MRM_D9:
1368 case X86II::MRM_DA: case X86II::MRM_DB: case X86II::MRM_DC:
1369 case X86II::MRM_DD: case X86II::MRM_DE: case X86II::MRM_DF:
1370 case X86II::MRM_E8: case X86II::MRM_F0: case X86II::MRM_F8:
1371 case X86II::MRM_F9:
1375 switch (TSFlags & X86II::FormMask) {
1377 case X86II::MRM_C1: MRM = 0xC1; break;
1378 case X86II::MRM_C2: MRM = 0xC2; break;
1379 case X86II::MRM_C3: MRM = 0xC3; break;
1380 case X86II::MRM_C4: MRM = 0xC4; break;
1381 case X86II::MRM_C8: MRM = 0xC8; break;
1382 case X86II::MRM_C9: MRM = 0xC9; break;
1383 case X86II::MRM_CA: MRM = 0xCA; break;
1384 case X86II::MRM_CB: MRM = 0xCB; break;
1385 case X86II::MRM_D0: MRM = 0xD0; break;
1386 case X86II::MRM_D1: MRM = 0xD1; break;
1387 case X86II::MRM_D4: MRM = 0xD4; break;
1388 case X86II::MRM_D5: MRM = 0xD5; break;
1389 case X86II::MRM_D6: MRM = 0xD6; break;
1390 case X86II::MRM_D8: MRM = 0xD8; break;
1391 case X86II::MRM_D9: MRM = 0xD9; break;
1392 case X86II::MRM_DA: MRM = 0xDA; break;
1393 case X86II::MRM_DB: MRM = 0xDB; break;
1394 case X86II::MRM_DC: MRM = 0xDC; break;
1395 case X86II::MRM_DD: MRM = 0xDD; break;
1396 case X86II::MRM_DE: MRM = 0xDE; break;
1397 X86II::MRM_DF: MRM = 0xDF; break;
1398 case X86II::MRM_E8: MRM = 0xE8; break;
1399 case X86II::MRM_F0: MRM = 0xF0; break;
1400 case X86II::MRM_F8: MRM = 0xF8; break;
1401 case X86II::MRM_F9: MRM = 0xF9; break;
1413 if ((TSFlags >> X86II::VEXShift) & X86II::VEX_I8IMM) {
1418 if (X86II::isX86_64ExtendedReg(MO.getReg()))
1443 X86II::getSizeOfImm(TSFlags), MCFixupKind(FixupKind),
1448 if ((TSFlags >> X86II::VEXShift) & X86II::Has3DNow0F0FOpcode)
1449 EmitByte(X86II::getBaseOpcodeFor(TSFlags), CurByte, OS);