Lines Matching defs:CurOp
377 PrefixKind emitPrefixImpl(unsigned &CurOp, const MCInst &MI,
499 unsigned CurOp = X86II::getOperandBias(Desc);
500 const MCOperand &Op = MI.getOperand(CurOp);
889 PrefixKind X86MCCodeEmitter::emitPrefixImpl(unsigned &CurOp, const MCInst &MI,
897 MemoryOperand += CurOp;
921 CurOp += 3; // Consume operands.
928 CurOp += 2; // Consume operands.
932 ++CurOp; // Consume operand.
1068 unsigned CurOp = X86II::getOperandBias(Desc);
1076 Prefix.setRR2(MI, CurOp++);
1079 CurOp += X86::AddrNumOperands;
1080 Prefix.set4VV2(MI, CurOp++);
1101 Prefix.set4VV2(MI, CurOp++);
1103 CurOp += X86::AddrNumOperands;
1106 Prefix.setAAA(MI, CurOp++);
1109 Prefix.set4VV2(MI, CurOp++);
1111 Prefix.setRR2(MI, CurOp++);
1113 Prefix.set4V(MI, CurOp++, /*IsImm=*/true);
1114 Prefix.setSC(MI, CurOp++);
1133 Prefix.set4VV2(MI, CurOp++);
1135 Prefix.setRR2(MI, CurOp++);
1138 Prefix.setAAA(MI, CurOp++);
1141 Prefix.set4VV2(MI, CurOp++);
1146 CurOp += X86::AddrNumOperands;
1148 Prefix.set4V(MI, CurOp++, /*IsImm=*/true);
1149 Prefix.setSC(MI, CurOp++);
1156 Prefix.setRR2(MI, CurOp++);
1159 Prefix.set4VV2(MI, CurOp + X86::AddrNumOperands);
1164 Prefix.setR(MI, CurOp++);
1165 Prefix.set4V(MI, CurOp++);
1183 Prefix.set4VV2(MI, CurOp++);
1186 Prefix.setAAA(MI, CurOp++);
1191 CurOp += X86::AddrNumOperands + 1; // Skip first imm.
1193 Prefix.set4V(MI, CurOp++, /*IsImm=*/true);
1194 Prefix.setSC(MI, CurOp++);
1211 Prefix.set4VV2(MI, CurOp++);
1212 Prefix.setRR2(MI, CurOp++);
1215 Prefix.setAAA(MI, CurOp++);
1218 Prefix.set4VV2(MI, CurOp++);
1220 Prefix.setBB2(MI, CurOp);
1221 Prefix.setX(MI, CurOp, 4);
1222 ++CurOp;
1225 Prefix.set4V(MI, CurOp++, /*IsImm=*/true);
1226 Prefix.setSC(MI, CurOp++);
1233 assert(RcOperand >= CurOp);
1244 Prefix.setRR2(MI, CurOp++);
1245 Prefix.setBB2(MI, CurOp++);
1246 Prefix.set4VV2(MI, CurOp++);
1251 Prefix.setR(MI, CurOp++);
1252 Prefix.set4V(MI, CurOp++);
1254 ++CurOp;
1256 Prefix.setB(MI, CurOp);
1257 Prefix.setX(MI, CurOp, 4);
1258 ++CurOp;
1271 Prefix.set4VV2(MI, CurOp++);
1272 Prefix.setBB2(MI, CurOp);
1273 Prefix.setX(MI, CurOp, 4);
1274 ++CurOp;
1277 Prefix.setAAA(MI, CurOp++);
1280 Prefix.set4VV2(MI, CurOp++);
1282 Prefix.setRR2(MI, CurOp++);
1284 Prefix.set4V(MI, CurOp++, /*IsImm=*/true);
1285 Prefix.setSC(MI, CurOp++);
1295 Prefix.setRR2(MI, CurOp++);
1310 Prefix.set4VV2(MI, CurOp++);
1313 Prefix.setAAA(MI, CurOp++);
1315 Prefix.setBB2(MI, CurOp);
1316 Prefix.setX(MI, CurOp, 4);
1317 ++CurOp;
1319 Prefix.set4V(MI, ++CurOp, /*IsImm=*/true);
1320 Prefix.setSC(MI, ++CurOp);
1354 unsigned CurOp = NumOps ? X86II::getOperandBias(Desc) : 0;
1355 for (unsigned i = CurOp; i != NumOps; ++i) {
1396 Prefix.setBB2(MI, CurOp++);
1400 Prefix.setRR2(MI, CurOp++);
1401 Prefix.setBB2(MI, CurOp++);
1405 Prefix.setRR2(MI, CurOp++);
1408 CurOp += X86::AddrNumOperands;
1411 Prefix.setBB2(MI, CurOp++);
1412 Prefix.setRR2(MI, CurOp++);
1417 CurOp += X86::AddrNumOperands;
1418 Prefix.setRR2(MI, CurOp++);
1443 Prefix.setBB2(MI, CurOp++);
1541 unsigned CurOp = X86II::getOperandBias(Desc);
1543 emitPrefixImpl(CurOp, MI, STI, CB);
1564 unsigned CurOp = X86II::getOperandBias(Desc);
1568 PrefixKind Kind = emitPrefixImpl(CurOp, MI, STI, CB);
1616 const MCOperand &Op = MI.getOperand(CurOp++);
1624 emitImmediate(MI.getOperand(CurOp++), MI.getLoc(),
1627 ++CurOp; // skip segment operand
1631 emitImmediate(MI.getOperand(CurOp++), MI.getLoc(),
1634 emitImmediate(MI.getOperand(CurOp++), MI.getLoc(), 1, FK_Data_1, StartByte,
1639 emitImmediate(MI.getOperand(CurOp++), MI.getLoc(),
1642 emitImmediate(MI.getOperand(CurOp++), MI.getLoc(), 2, FK_Data_2, StartByte,
1647 emitByte(BaseOpcode + getX86RegNum(MI.getOperand(CurOp++)), CB);
1652 unsigned SrcRegNum = CurOp + 1;
1660 ++CurOp;
1662 emitRegModRMByte(MI.getOperand(CurOp),
1664 CurOp = SrcRegNum + 1;
1668 unsigned FirstOp = CurOp++;
1669 unsigned SecondOp = CurOp++;
1670 unsigned CC = MI.getOperand(CurOp++).getImm();
1679 unsigned SrcRegNum = CurOp + X86::AddrNumOperands;
1680 emitMemModRMByte(MI, CurOp + 1, getX86RegNum(MI.getOperand(0)), TSFlags,
1682 CurOp = SrcRegNum + 3; // skip reg, VEX_V4 and CC
1688 unsigned SrcRegNum = CurOp + X86::AddrNumOperands;
1697 ++CurOp;
1700 emitMemModRMByte(MI, CurOp, getX86RegNum(MI.getOperand(SrcRegNum)), TSFlags,
1702 CurOp = SrcRegNum + 1;
1706 unsigned MemOp = CurOp;
1707 CurOp = MemOp + X86::AddrNumOperands;
1708 unsigned RegOp = CurOp++;
1709 unsigned CC = MI.getOperand(CurOp++).getImm();
1717 unsigned SrcRegNum = CurOp + 1;
1726 ++CurOp;
1729 getX86RegNum(MI.getOperand(CurOp)), CB);
1730 CurOp = SrcRegNum + 1;
1732 I8RegNum = getX86RegEncoding(MI, CurOp++);
1740 unsigned SrcRegNum = CurOp + 1;
1743 getX86RegNum(MI.getOperand(CurOp)), CB);
1744 CurOp = SrcRegNum + 1;
1745 ++CurOp; // Encoded in VEX.VVVV
1750 unsigned SrcRegNum = CurOp + 1;
1760 getX86RegNum(MI.getOperand(CurOp)), CB);
1761 CurOp = SrcRegNum + 1;
1766 ++CurOp;
1767 unsigned FirstOp = CurOp++;
1768 unsigned SecondOp = CurOp++;
1770 unsigned CC = MI.getOperand(CurOp++).getImm();
1779 unsigned FirstMemOp = CurOp + 1;
1782 CurOp++;
1793 emitMemModRMByte(MI, FirstMemOp, getX86RegNum(MI.getOperand(CurOp)),
1795 CurOp = FirstMemOp + X86::AddrNumOperands;
1797 I8RegNum = getX86RegEncoding(MI, CurOp++);
1801 unsigned FirstMemOp = CurOp + 1;
1805 emitMemModRMByte(MI, FirstMemOp, getX86RegNum(MI.getOperand(CurOp)),
1807 CurOp = FirstMemOp + X86::AddrNumOperands;
1808 ++CurOp; // Encoded in VEX.VVVV.
1812 unsigned FirstMemOp = CurOp + 1;
1822 emitMemModRMByte(MI, FirstMemOp, getX86RegNum(MI.getOperand(CurOp)),
1824 CurOp = FirstMemOp + X86::AddrNumOperands;
1829 ++CurOp;
1830 unsigned RegOp = CurOp++;
1831 unsigned FirstMemOp = CurOp;
1832 CurOp = FirstMemOp + X86::AddrNumOperands;
1834 unsigned CC = MI.getOperand(CurOp++).getImm();
1843 unsigned RegOp = CurOp++;
1845 unsigned CC = MI.getOperand(CurOp++).getImm();
1861 ++CurOp;
1863 ++CurOp;
1865 emitRegModRMByte(MI.getOperand(CurOp++),
1870 emitByte(modRMByte(3, getX86RegNum(MI.getOperand(CurOp++)), 0), CB);
1874 unsigned FirstMemOp = CurOp;
1875 CurOp = FirstMemOp + X86::AddrNumOperands;
1877 unsigned CC = MI.getOperand(CurOp++).getImm();
1895 ++CurOp;
1897 ++CurOp;
1899 emitMemModRMByte(MI, CurOp,
1902 CurOp += X86::AddrNumOperands;
1991 if (CurOp != NumOps) {
1992 unsigned Val = MI.getOperand(CurOp++).getImm();
2004 unsigned RemaningOps = NumOps - CurOp - 2 * HasTwoConditionalOps;
2006 emitImmediate(MI.getOperand(CurOp++), MI.getLoc(),
2011 CurOp += 2 * HasTwoConditionalOps;
2021 if (/*!Desc.isVariadic() &&*/ CurOp != NumOps) {