Lines Matching refs:CurOp
85 bool emitPrefixImpl(unsigned &CurOp, const MCInst &MI,
203 unsigned CurOp = X86II::getOperandBias(Desc); in isPCRel32Branch() local
204 const MCOperand &Op = MI.getOperand(CurOp); in isPCRel32Branch()
596 bool X86MCCodeEmitter::emitPrefixImpl(unsigned &CurOp, const MCInst &MI, in emitPrefixImpl() argument
604 MemoryOperand += CurOp; in emitPrefixImpl()
628 CurOp += 3; // Consume operands. in emitPrefixImpl()
635 CurOp += 2; // Consume operands. in emitPrefixImpl()
639 ++CurOp; // Consume operand. in emitPrefixImpl()
799 unsigned CurOp = X86II::getOperandBias(Desc); in emitVEXOpcodePrefix() local
823 CurOp += X86::AddrNumOperands; in emitVEXOpcodePrefix()
826 EVEX_aaa = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
829 unsigned VRegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
834 unsigned RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
849 unsigned RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
854 EVEX_aaa = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
857 unsigned VRegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
875 unsigned RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
884 VEX_4V = ~getX86RegEncoding(MI, CurOp + X86::AddrNumOperands) & 0xf; in emitVEXOpcodePrefix()
889 unsigned RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
892 unsigned VRegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
914 unsigned VRegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
920 EVEX_aaa = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
940 unsigned RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
945 EVEX_aaa = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
948 unsigned VRegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
953 RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
960 assert(RcOperand >= CurOp); in emitVEXOpcodePrefix()
971 unsigned RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
974 RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
977 VEX_4V = ~getX86RegEncoding(MI, CurOp++) & 0xf; in emitVEXOpcodePrefix()
982 unsigned RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
985 unsigned VRegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
989 ++CurOp; in emitVEXOpcodePrefix()
991 RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
1001 unsigned RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
1006 EVEX_aaa = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
1009 unsigned VRegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
1014 RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
1025 unsigned RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
1041 unsigned VRegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
1046 EVEX_aaa = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
1048 unsigned RegEnc = getX86RegEncoding(MI, CurOp++); in emitVEXOpcodePrefix()
1134 unsigned CurOp = X86II::getOperandBias(Desc); in emitREXPrefix() local
1137 for (unsigned i = CurOp; i != NumOps; ++i) { in emitREXPrefix()
1164 REX |= isREXExtendedReg(MI, CurOp++) << 0; // REX.B in emitREXPrefix()
1168 REX |= isREXExtendedReg(MI, CurOp++) << 2; // REX.R in emitREXPrefix()
1169 REX |= isREXExtendedReg(MI, CurOp++) << 0; // REX.B in emitREXPrefix()
1173 REX |= isREXExtendedReg(MI, CurOp++) << 2; // REX.R in emitREXPrefix()
1176 CurOp += X86::AddrNumOperands; in emitREXPrefix()
1179 REX |= isREXExtendedReg(MI, CurOp++) << 0; // REX.B in emitREXPrefix()
1180 REX |= isREXExtendedReg(MI, CurOp++) << 2; // REX.R in emitREXPrefix()
1185 CurOp += X86::AddrNumOperands; in emitREXPrefix()
1186 REX |= isREXExtendedReg(MI, CurOp++) << 2; // REX.R in emitREXPrefix()
1211 REX |= isREXExtendedReg(MI, CurOp++) << 0; // REX.B in emitREXPrefix()
1214 REX |= isREXExtendedReg(MI, CurOp++) << 2; // REX.R in emitREXPrefix()
1317 unsigned CurOp = X86II::getOperandBias(Desc); in emitPrefix() local
1319 emitPrefixImpl(CurOp, MI, STI, OS); in emitPrefix()
1334 unsigned CurOp = X86II::getOperandBias(Desc); in encodeInstruction() local
1338 bool HasREX = emitPrefixImpl(CurOp, MI, STI, OS); in encodeInstruction()
1383 const MCOperand &Op = MI.getOperand(CurOp++); in encodeInstruction()
1391 emitImmediate(MI.getOperand(CurOp++), MI.getLoc(), in encodeInstruction()
1394 ++CurOp; // skip segment operand in encodeInstruction()
1398 emitImmediate(MI.getOperand(CurOp++), MI.getLoc(), in encodeInstruction()
1401 emitImmediate(MI.getOperand(CurOp++), MI.getLoc(), 1, FK_Data_1, StartByte, in encodeInstruction()
1406 emitImmediate(MI.getOperand(CurOp++), MI.getLoc(), in encodeInstruction()
1409 emitImmediate(MI.getOperand(CurOp++), MI.getLoc(), 2, FK_Data_2, StartByte, in encodeInstruction()
1414 emitByte(BaseOpcode + getX86RegNum(MI.getOperand(CurOp++)), OS); in encodeInstruction()
1419 unsigned SrcRegNum = CurOp + 1; in encodeInstruction()
1427 emitRegModRMByte(MI.getOperand(CurOp), in encodeInstruction()
1429 CurOp = SrcRegNum + 1; in encodeInstruction()
1435 unsigned SrcRegNum = CurOp + X86::AddrNumOperands; in encodeInstruction()
1444 emitMemModRMByte(MI, CurOp, getX86RegNum(MI.getOperand(SrcRegNum)), TSFlags, in encodeInstruction()
1446 CurOp = SrcRegNum + 1; in encodeInstruction()
1451 unsigned SrcRegNum = CurOp + 1; in encodeInstruction()
1460 getX86RegNum(MI.getOperand(CurOp)), OS); in encodeInstruction()
1461 CurOp = SrcRegNum + 1; in encodeInstruction()
1463 I8RegNum = getX86RegEncoding(MI, CurOp++); in encodeInstruction()
1471 unsigned SrcRegNum = CurOp + 1; in encodeInstruction()
1474 getX86RegNum(MI.getOperand(CurOp)), OS); in encodeInstruction()
1475 CurOp = SrcRegNum + 1; in encodeInstruction()
1476 ++CurOp; // Encoded in VEX.VVVV in encodeInstruction()
1481 unsigned SrcRegNum = CurOp + 1; in encodeInstruction()
1491 getX86RegNum(MI.getOperand(CurOp)), OS); in encodeInstruction()
1492 CurOp = SrcRegNum + 1; in encodeInstruction()
1496 unsigned FirstOp = CurOp++; in encodeInstruction()
1497 unsigned SecondOp = CurOp++; in encodeInstruction()
1499 unsigned CC = MI.getOperand(CurOp++).getImm(); in encodeInstruction()
1508 unsigned FirstMemOp = CurOp + 1; in encodeInstruction()
1519 emitMemModRMByte(MI, FirstMemOp, getX86RegNum(MI.getOperand(CurOp)), in encodeInstruction()
1521 CurOp = FirstMemOp + X86::AddrNumOperands; in encodeInstruction()
1523 I8RegNum = getX86RegEncoding(MI, CurOp++); in encodeInstruction()
1527 unsigned FirstMemOp = CurOp + 1; in encodeInstruction()
1531 emitMemModRMByte(MI, FirstMemOp, getX86RegNum(MI.getOperand(CurOp)), in encodeInstruction()
1533 CurOp = FirstMemOp + X86::AddrNumOperands; in encodeInstruction()
1534 ++CurOp; // Encoded in VEX.VVVV. in encodeInstruction()
1538 unsigned FirstMemOp = CurOp + 1; in encodeInstruction()
1548 emitMemModRMByte(MI, FirstMemOp, getX86RegNum(MI.getOperand(CurOp)), in encodeInstruction()
1550 CurOp = FirstMemOp + X86::AddrNumOperands; in encodeInstruction()
1554 unsigned RegOp = CurOp++; in encodeInstruction()
1555 unsigned FirstMemOp = CurOp; in encodeInstruction()
1556 CurOp = FirstMemOp + X86::AddrNumOperands; in encodeInstruction()
1558 unsigned CC = MI.getOperand(CurOp++).getImm(); in encodeInstruction()
1567 unsigned RegOp = CurOp++; in encodeInstruction()
1569 unsigned CC = MI.getOperand(CurOp++).getImm(); in encodeInstruction()
1585 ++CurOp; in encodeInstruction()
1587 ++CurOp; in encodeInstruction()
1589 emitRegModRMByte(MI.getOperand(CurOp++), in encodeInstruction()
1594 emitByte(modRMByte(3, getX86RegNum(MI.getOperand(CurOp++)),0), OS); in encodeInstruction()
1598 unsigned FirstMemOp = CurOp; in encodeInstruction()
1599 CurOp = FirstMemOp + X86::AddrNumOperands; in encodeInstruction()
1601 unsigned CC = MI.getOperand(CurOp++).getImm(); in encodeInstruction()
1619 ++CurOp; in encodeInstruction()
1621 ++CurOp; in encodeInstruction()
1623 emitMemModRMByte(MI, CurOp, in encodeInstruction()
1626 CurOp += X86::AddrNumOperands; in encodeInstruction()
1715 if (CurOp != NumOps) { in encodeInstruction()
1716 unsigned Val = MI.getOperand(CurOp++).getImm(); in encodeInstruction()
1726 while (CurOp != NumOps && NumOps - CurOp <= 2) { in encodeInstruction()
1727 emitImmediate(MI.getOperand(CurOp++), MI.getLoc(), in encodeInstruction()
1740 if (/*!Desc.isVariadic() &&*/ CurOp != NumOps) { in encodeInstruction()