Lines Matching defs:Operands
61 OperandVector *Operands);
66 SMLoc NameLoc, OperandVector &Operands) override;
73 OperandVector &Operands, MCStreamer &Out,
81 ParseStatus parseOperand(OperandVector *Operands, StringRef Mnemonic);
83 ParseStatus parseMemoryOperand(OperandVector &Operands);
649 OperandVector &Operands,
656 switch (MatchInstructionImpl(Operands, Inst, ErrorInfo, MatchingInlineAsm)) {
668 if (ErrorInfo >= Operands.size())
671 ErrorLoc = ((LanaiOperand &)*Operands[ErrorInfo]).getStartLoc();
885 ParseStatus LanaiAsmParser::parseMemoryOperand(OperandVector &Operands) {
898 if (Operands[0]->isToken())
899 Type = static_cast<LanaiOperand *>(Operands[0].get())->getToken();
920 Operands.push_back(std::move(Op));
941 Operands.push_back(LanaiOperand::MorphToMemImm(std::move(Op)));
947 Operands.push_back(LanaiOperand::MorphToMemRegImm(
998 Operands.push_back(
1009 ParseStatus LanaiAsmParser::parseOperand(OperandVector *Operands,
1013 ParseStatus Result = MatchOperandParserImpl(*Operands, Mnemonic);
1037 Operands->push_back(std::move(Op));
1045 OperandVector *Operands) {
1062 Operands->push_back(LanaiOperand::CreateToken(Mnemonic, NameLoc));
1063 Operands->push_back(LanaiOperand::createImm(
1066 Operands->push_back(LanaiOperand::CreateToken(".r", NameLoc));
1091 Operands->push_back(LanaiOperand::CreateToken(Mnemonic, NameLoc));
1092 Operands->push_back(LanaiOperand::createImm(
1098 Operands->push_back(LanaiOperand::CreateToken(Mnemonic, NameLoc));
1100 Operands->push_back(LanaiOperand::CreateToken(".r", NameLoc));
1106 static bool IsMemoryAssignmentError(const OperandVector &Operands) {
1116 if (Operands.size() < 5)
1118 else if (Operands[0]->isToken() && Operands[1]->isReg() &&
1119 Operands[2]->isImm() && Operands[3]->isImm() && Operands[4]->isReg())
1121 else if (Operands[0]->isToken() && Operands[1]->isToken() &&
1122 Operands[2]->isReg() && Operands[3]->isImm() &&
1123 Operands[4]->isImm() && Operands[5]->isReg())
1132 static_cast<LanaiOperand *>(Operands[PossibleAluOpIdx].get()))
1137 return Modifies && Operands[PossibleBaseIdx]->isReg() &&
1138 Operands[PossibleDestIdx]->isReg() &&
1139 Operands[PossibleBaseIdx]->getReg() ==
1140 Operands[PossibleDestIdx]->getReg();
1147 static bool MaybePredicatedInst(const OperandVector &Operands) {
1148 if (Operands.size() < 4 || !IsRegister(*Operands[1]) ||
1149 !IsRegister(*Operands[2]))
1152 static_cast<const LanaiOperand &>(*Operands[0]).getToken())
1166 OperandVector &Operands) {
1168 StringRef Mnemonic = splitMnemonic(Name, NameLoc, &Operands);
1175 if (!parseOperand(&Operands, Mnemonic).isSuccess())
1181 Operands.size() == 2) {
1182 Operands.erase(Operands.begin(), Operands.begin() + 1);
1183 Operands.insert(Operands.begin(), LanaiOperand::CreateToken("s", NameLoc));
1184 Operands.insert(Operands.begin() + 1,
1194 Operands.size() == 3) {
1195 Operands.erase(Operands.begin(), Operands.begin() + 2);
1196 Operands.insert(Operands.begin(), LanaiOperand::CreateToken("bt", NameLoc));
1205 if (!parseOperand(&Operands, Mnemonic).isSuccess())
1209 if (IsMemoryAssignmentError(Operands)) {
1218 if (MaybePredicatedInst(Operands)) {
1219 Operands.insert(Operands.begin() + 1,