Lines Matching defs:Operands
135 unsigned MatchInstruction(const OperandVector &Operands, MCInst &Inst,
141 unsigned rv = MatchInstructionImpl(Operands, Inst, ErrorInfo,
1117 AddDefaultSrcDestOperands(OperandVector &Operands,
1122 bool parseOperand(OperandVector &Operands, StringRef Name);
1123 bool parseATTOperand(OperandVector &Operands);
1124 bool parseIntelOperand(OperandVector &Operands, StringRef Name);
1132 bool ParseRoundingModeOp(SMLoc Start, OperandVector &Operands);
1133 bool parseCFlagsOp(OperandVector &Operands);
1149 SMLoc EndLoc, OperandVector &Operands);
1159 OperandVector &Operands);
1195 void emitInstruction(MCInst &Inst, OperandVector &Operands, MCStreamer &Out);
1198 OperandVector &Operands, MCStreamer &Out,
1202 void MatchFPUWaitAlias(SMLoc IDLoc, X86Operand &Op, OperandVector &Operands,
1209 OperandVector &Operands, MCStreamer &Out,
1213 OperandVector &Operands, MCStreamer &Out,
1220 /// and memory broadcasting ({1to<NUM>}) primitives, updating Operands vector if required.
1222 bool HandleAVX512Operand(OperandVector &Operands);
1293 SMLoc NameLoc, OperandVector &Operands) override;
1655 OperandVector& Operands, std::unique_ptr<llvm::MCParsedAsmOperand> &&Src,
1658 Operands.push_back(std::move(Dst));
1659 Operands.push_back(std::move(Src));
1662 Operands.push_back(std::move(Src));
1663 Operands.push_back(std::move(Dst));
1749 bool X86AsmParser::parseOperand(OperandVector &Operands, StringRef Name) {
1751 return parseIntelOperand(Operands, Name);
1753 return parseATTOperand(Operands);
1762 OperandVector &Operands) {
1768 Operands.push_back(X86Operand::CreateMem(getPointerWidth(), Disp, Start,
1789 Operands.push_back(X86Operand::CreateMem(getPointerWidth(), Disp, Start,
1797 Operands.push_back(X86Operand::CreateMem(
2273 bool X86AsmParser::ParseRoundingModeOp(SMLoc Start, OperandVector &Operands) {
2300 Operands.push_back(X86Operand::CreateImm(RndModeOp, Start, End));
2308 Operands.push_back(X86Operand::CreateToken("{sae}", consumedToken));
2316 bool X86AsmParser::parseCFlagsOp(OperandVector &Operands) {
2336 Operands.push_back(X86Operand::CreateImm(
2361 Operands.push_back(X86Operand::CreateImm(
2581 bool X86AsmParser::parseIntelOperand(OperandVector &Operands, StringRef Name) {
2596 return ParseRoundingModeOp(Start, Operands);
2608 Operands.push_back(X86Operand::CreateReg(RegNo, Start, End));
2642 Operands.push_back(X86Operand::CreateImm(Disp, Start, End,
2649 Operands.push_back(X86Operand::CreateImm(Disp, Start, End));
2702 SM.getIdentifierInfo(), Operands);
2742 Operands.push_back(X86Operand::CreateMem(
2747 Operands.push_back(X86Operand::CreateMem(
2754 bool X86AsmParser::parseATTOperand(OperandVector &Operands) {
2770 Operands.push_back(X86Operand::CreateImm(Val, Start, End));
2775 return ParseRoundingModeOp(Start, Operands);
2805 Operands.push_back(X86Operand::CreateReg(Reg, Loc, EndLoc));
2813 Operands.push_back(X86Operand::CreateToken("*", consumeToken()));
2817 return ParseMemOperand(Reg, Expr, Loc, EndLoc, Operands);
2867 bool X86AsmParser::HandleAVX512Operand(OperandVector &Operands) {
2901 Operands.push_back(X86Operand::CreateToken(BroadcastPrimitive,
2928 Operands.push_back(X86Operand::CreateToken("{", StartLoc));
2929 Operands.push_back(
2931 Operands.push_back(X86Operand::CreateToken("}", consumeToken()));
2948 Operands.push_back(std::move(Z));
2959 OperandVector &Operands) {
3034 Operands.push_back(
3037 Operands.push_back(X86Operand::CreateMem(getPointerWidth(), SegReg, Disp,
3124 Operands.push_back(X86Operand::CreateDXReg(BaseLoc, BaseLoc));
3162 Operands.push_back(X86Operand::CreateMem(getPointerWidth(), SegReg, Disp,
3166 Operands.push_back(
3189 SMLoc NameLoc, OperandVector &Operands) {
3527 Operands.push_back(X86Operand::CreateToken(PatchedName, NameLoc));
3533 Operands.push_back(X86Operand::CreateImm(ImmOp, NameLoc, NameLoc));
3538 parseCFlagsOp(Operands))
3548 Operands.push_back(X86Operand::CreateToken("*", consumeToken()));
3552 if (parseOperand(Operands, Name))
3554 if (HandleAVX512Operand(Operands))
3577 Operands.push_back(X86Operand::CreateImm(ImmOp, NameLoc, NameLoc));
3594 if (IsFp && Operands.size() == 1) {
3600 static_cast<X86Operand &>(*Operands[0]).setTokenValue(Repl);
3604 (Operands.size() == 3)) {
3605 X86Operand &Op1 = (X86Operand &)*Operands[1];
3606 X86Operand &Op2 = (X86Operand &)*Operands[2];
3618 Operands[0] = X86Operand::CreateToken(Name, NameLoc);
3623 Operands[1] = X86Operand::CreateReg(Reg, Loc, Loc);
3632 Operands.size() == 3) {
3633 X86Operand &Op = (X86Operand &)*Operands.back();
3635 Operands.back() = X86Operand::CreateReg(X86::DX, Op.getStartLoc(),
3641 Operands.size() == 3) {
3642 X86Operand &Op = (X86Operand &)*Operands[1];
3644 Operands[1] = X86Operand::CreateReg(X86::DX, Op.getStartLoc(),
3653 (Operands.size() == 1 || Operands.size() == 3) &&
3660 HadVerifyError = VerifyAndAdjustOperands(Operands, TmpOperands);
3665 (Operands.size() == 1 || Operands.size() == 3) &&
3670 HadVerifyError = VerifyAndAdjustOperands(Operands, TmpOperands);
3677 (Operands.size() == 1 || Operands.size() == 2) &&
3681 HadVerifyError = VerifyAndAdjustOperands(Operands, TmpOperands);
3688 (Operands.size() == 1 || Operands.size() == 2) &&
3692 HadVerifyError = VerifyAndAdjustOperands(Operands, TmpOperands);
3699 (Operands.size() == 1 || Operands.size() == 2) &&
3703 HadVerifyError = VerifyAndAdjustOperands(Operands, TmpOperands);
3708 (Operands.size() == 1 || Operands.size() == 3) &&
3713 HadVerifyError = VerifyAndAdjustOperands(Operands, TmpOperands);
3723 (Operands.size() == 1 || Operands.size() == 3)) {
3724 if (Name == "movsd" && Operands.size() == 1 && !isParsingIntelSyntax())
3725 Operands.back() = X86Operand::CreateToken("movsl", NameLoc);
3728 HadVerifyError = VerifyAndAdjustOperands(Operands, TmpOperands);
3737 if ((Name == "xlat" || Name == "xlatb") && Operands.size() == 2) {
3738 X86Operand &Op1 = static_cast<X86Operand &>(*Operands[1]);
3742 Operands.pop_back();
3743 static_cast<X86Operand &>(*Operands[0]).setTokenValue("xlatb");
3748 Operands.push_back(X86Operand::CreatePrefix(Flags, NameLoc, NameLoc));
4029 void X86AsmParser::emitInstruction(MCInst &Inst, OperandVector &Operands,
4042 static unsigned getPrefixes(OperandVector &Operands) {
4044 X86Operand &Prefix = static_cast<X86Operand &>(*Operands.back());
4047 Operands.pop_back();
4053 OperandVector &Operands,
4056 assert(!Operands.empty() && "Unexpect empty operand list!");
4057 assert((*Operands[0]).isToken() && "Leading operand should always be a mnemonic!");
4060 MatchFPUWaitAlias(IDLoc, static_cast<X86Operand &>(*Operands[0]), Operands,
4062 unsigned Prefixes = getPrefixes(Operands);
4091 ? matchAndEmitIntelInstruction(IDLoc, Opcode, Inst, Operands, Out,
4093 : matchAndEmitATTInstruction(IDLoc, Opcode, Inst, Operands, Out,
4098 OperandVector &Operands, MCStreamer &Out,
4118 emitInstruction(Inst, Operands, Out);
4119 Operands[0] = X86Operand::CreateToken(Repl, IDLoc);
4177 SMLoc IDLoc, unsigned &Opcode, MCInst &Inst, OperandVector &Operands,
4179 X86Operand &Op = static_cast<X86Operand &>(*Operands[0]);
4187 unsigned OriginalError = MatchInstruction(Operands, Inst, ErrorInfo,
4197 if (!MatchingInlineAsm && validateInstruction(Inst, Operands))
4203 while (processInstruction(Inst, Operands))
4208 emitInstruction(Inst, Operands, Out);
4212 SMLoc ErrorLoc = ((X86Operand &)*Operands[ErrorInfo]).getStartLoc();
4265 for (const auto &Op : Operands) {
4285 MatchInstruction(Operands, Inst, ErrorInfoIgnore, MissingFeatures,
4301 if (!MatchingInlineAsm && validateInstruction(Inst, Operands))
4307 while (processInstruction(Inst, Operands))
4312 emitInstruction(Inst, Operands, Out);
4359 if (ErrorInfo >= Operands.size())
4363 X86Operand &Operand = (X86Operand &)*Operands[ErrorInfo];
4403 SMLoc IDLoc, unsigned &Opcode, MCInst &Inst, OperandVector &Operands,
4405 X86Operand &Op = static_cast<X86Operand &>(*Operands[0]);
4409 for (const auto &Op : Operands) {
4421 StringRef Mnemonic = (static_cast<X86Operand &>(*Operands[0])).getToken();
4435 StringRef Base = (static_cast<X86Operand &>(*Operands[0])).getToken();
4439 if (Mnemonic == "push" && Operands.size() == 2) {
4440 auto *X86Op = static_cast<X86Operand *>(Operands[1].get());
4454 Match.push_back(MatchInstruction(Operands, Inst, ErrorInfo,
4471 unsigned M = MatchInstruction(Operands, Inst, ErrorInfoIgnore,
4491 Operands, Inst, ErrorInfo, MissingFeatures, MatchingInlineAsm,
4516 Operands, Inst, ErrorInfo, MissingFeatures, MatchingInlineAsm,
4532 if (!MatchingInlineAsm && validateInstruction(Inst, Operands))
4538 while (processInstruction(Inst, Operands))
4542 emitInstruction(Inst, Operands, Out);
4575 SMLoc ErrorLoc = ((X86Operand &)*Operands[ErrorInfo]).getStartLoc();