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