Lines Matching defs:Operands

102   bool generateImmOutOfRangeError(OperandVector &Operands, uint64_t ErrorInfo,
109 OperandVector &Operands, MCStreamer &Out,
119 SMLoc NameLoc, OperandVector &Operands) override;
174 bool checkPseudoAddTPRel(MCInst &Inst, OperandVector &Operands);
180 bool checkPseudoTLSDESCCall(MCInst &Inst, OperandVector &Operands);
183 bool validateInstruction(MCInst &Inst, OperandVector &Operands);
189 bool processInstruction(MCInst &Inst, SMLoc IDLoc, OperandVector &Operands,
196 ParseStatus parseCSRSystemRegister(OperandVector &Operands);
197 ParseStatus parseFPImm(OperandVector &Operands);
198 ParseStatus parseImmediate(OperandVector &Operands);
199 ParseStatus parseRegister(OperandVector &Operands, bool AllowParens = false);
200 ParseStatus parseMemOpBaseReg(OperandVector &Operands);
201 ParseStatus parseZeroOffsetMemOp(OperandVector &Operands);
202 ParseStatus parseOperandWithModifier(OperandVector &Operands);
203 ParseStatus parseBareSymbol(OperandVector &Operands);
204 ParseStatus parseCallSymbol(OperandVector &Operands);
205 ParseStatus parsePseudoJumpSymbol(OperandVector &Operands);
206 ParseStatus parseJALOffset(OperandVector &Operands);
207 ParseStatus parseVTypeI(OperandVector &Operands);
208 ParseStatus parseMaskReg(OperandVector &Operands);
209 ParseStatus parseInsnDirectiveOpcode(OperandVector &Operands);
210 ParseStatus parseInsnCDirectiveOpcode(OperandVector &Operands);
211 ParseStatus parseGPRAsFPR(OperandVector &Operands);
212 ParseStatus parseGPRAsFPR64(OperandVector &Operands);
213 ParseStatus parseGPRPairAsFPR64(OperandVector &Operands);
214 template <bool IsRV64Inst> ParseStatus parseGPRPair(OperandVector &Operands);
215 ParseStatus parseGPRPair(OperandVector &Operands, bool IsRV64Inst);
216 ParseStatus parseFRMArg(OperandVector &Operands);
217 ParseStatus parseFenceArg(OperandVector &Operands);
218 ParseStatus parseReglist(OperandVector &Operands);
219 ParseStatus parseRegReg(OperandVector &Operands);
220 ParseStatus parseRetval(OperandVector &Operands);
221 ParseStatus parseZcmpStackAdj(OperandVector &Operands,
223 ParseStatus parseZcmpNegStackAdj(OperandVector &Operands) {
224 return parseZcmpStackAdj(Operands, /*ExpectNegative*/ true);
227 bool parseOperand(OperandVector &Operands, StringRef Mnemonic);
1440 OperandVector &Operands, uint64_t ErrorInfo, int64_t Lower, int64_t Upper,
1442 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1447 OperandVector &Operands,
1454 auto Result = MatchInstructionImpl(Operands, Inst, ErrorInfo, MissingFeatures,
1460 if (validateInstruction(Inst, Operands))
1462 return processInstruction(Inst, IDLoc, Operands, Out);
1479 ((RISCVOperand &)*Operands[0]).getToken(), FBS, 0);
1485 if (ErrorInfo >= Operands.size())
1488 ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1501 if (ErrorInfo != ~0ULL && ErrorInfo >= Operands.size())
1510 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1513 return generateImmOutOfRangeError(Operands, ErrorInfo,
1518 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1523 Operands, ErrorInfo, std::numeric_limits<int32_t>::min(),
1528 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1533 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 6) - 1);
1534 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 5) - 1);
1537 return generateImmOutOfRangeError(Operands, ErrorInfo, 1, (1 << 6) - 1);
1538 return generateImmOutOfRangeError(Operands, ErrorInfo, 1, (1 << 5) - 1);
1540 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 1) - 1);
1542 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 2) - 1);
1544 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, 2,
1547 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 3) - 1);
1549 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 4) - 1);
1551 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 5) - 1);
1553 return generateImmOutOfRangeError(Operands, ErrorInfo, 1, (1 << 5) - 1);
1555 return generateImmOutOfRangeError(Operands, ErrorInfo, 4, (1 << 5) - 1);
1557 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 6) - 1);
1559 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 7) - 1);
1561 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 8) - 1);
1563 return generateImmOutOfRangeError(Operands, ErrorInfo, 32, (1 << 8) - 1);
1565 return generateImmOutOfRangeError(Operands, ErrorInfo, -(1 << 4),
1568 return generateImmOutOfRangeError(Operands, ErrorInfo, -(1 << 5),
1572 Operands, ErrorInfo, -(1 << 5), (1 << 5) - 1,
1576 Operands, ErrorInfo, 1, (1 << 5) - 1,
1580 Operands, ErrorInfo, 0, (1 << 5) - 2,
1584 Operands, ErrorInfo, 0, (1 << 6) - 2,
1588 Operands, ErrorInfo, 0, (1 << 7) - 4,
1592 Operands, ErrorInfo, 0, (1 << 8) - 4,
1596 Operands, ErrorInfo, 0, (1 << 8) - 8,
1600 Operands, ErrorInfo, -(1 << 8), (1 << 8) - 2,
1604 Operands, ErrorInfo, 0, (1 << 9) - 8,
1608 Operands, ErrorInfo, 4, (1 << 10) - 4,
1612 Operands, ErrorInfo, -(1 << 9), (1 << 9) - 16,
1615 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 10) - 1);
1617 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 11) - 1);
1620 Operands, ErrorInfo, -(1 << 11), (1 << 11) - 1,
1625 Operands, ErrorInfo, -(1 << 11), (1 << 11) - 2,
1629 Operands, ErrorInfo, -(1 << 11), (1 << 11) - 32,
1633 Operands, ErrorInfo, -(1 << 12), (1 << 12) - 2,
1636 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 20) - 1,
1641 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 20) - 1);
1644 Operands, ErrorInfo, 0, (1 << 20) - 1,
1650 Operands, ErrorInfo, -(1 << 20), (1 << 20) - 2,
1653 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, (1 << 12) - 1,
1658 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1662 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1666 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1670 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1674 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1678 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1683 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1687 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1691 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1695 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1699 return generateImmOutOfRangeError(Operands, ErrorInfo, -(1 << 4) + 1,
1704 return generateImmOutOfRangeError(Operands, ErrorInfo, -(1 << 25),
1707 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1713 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1720 return generateImmOutOfRangeError(Operands, ErrorInfo, 0, 10);
1723 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[ErrorInfo]).getStartLoc();
1773 ParseStatus RISCVAsmParser::parseRegister(OperandVector &Operands,
1806 Operands.push_back(RISCVOperand::createToken("(", FirstS));
1810 Operands.push_back(RISCVOperand::createReg(Reg, S, E));
1815 Operands.push_back(RISCVOperand::createToken(")", getLoc()));
1821 ParseStatus RISCVAsmParser::parseInsnDirectiveOpcode(OperandVector &Operands) {
1843 Operands.push_back(RISCVOperand::createImm(Res, S, E, isRV64()));
1861 Operands.push_back(RISCVOperand::createImm(Res, S, E, isRV64()));
1876 ParseStatus RISCVAsmParser::parseInsnCDirectiveOpcode(OperandVector &Operands) {
1898 Operands.push_back(RISCVOperand::createImm(Res, S, E, isRV64()));
1922 Operands.push_back(RISCVOperand::createImm(Res, S, E, isRV64()));
1936 ParseStatus RISCVAsmParser::parseCSRSystemRegister(OperandVector &Operands) {
1975 Operands.push_back(std::move(SysOpnd));
2019 Operands.push_back(
2031 Operands.push_back(std::move(SysOpnd));
2049 ParseStatus RISCVAsmParser::parseFPImm(OperandVector &Operands) {
2056 Operands.push_back(
2060 Operands.push_back(
2064 Operands.push_back(
2093 Operands.push_back(RISCVOperand::createFPImm(
2101 ParseStatus RISCVAsmParser::parseImmediate(OperandVector &Operands) {
2122 return parseOperandWithModifier(Operands);
2125 Operands.push_back(RISCVOperand::createImm(Res, S, E, isRV64()));
2129 ParseStatus RISCVAsmParser::parseOperandWithModifier(OperandVector &Operands) {
2152 Operands.push_back(RISCVOperand::createImm(ModExpr, S, E, isRV64()));
2156 ParseStatus RISCVAsmParser::parseBareSymbol(OperandVector &Operands) {
2189 Operands.push_back(RISCVOperand::createImm(Res, S, E, isRV64()));
2205 Operands.push_back(RISCVOperand::createImm(Res, S, E, isRV64()));
2209 ParseStatus RISCVAsmParser::parseCallSymbol(OperandVector &Operands) {
2232 Operands.push_back(RISCVOperand::createImm(Res, S, E, isRV64()));
2236 ParseStatus RISCVAsmParser::parsePseudoJumpSymbol(OperandVector &Operands) {
2250 Operands.push_back(RISCVOperand::createImm(Res, S, E, isRV64()));
2254 ParseStatus RISCVAsmParser::parseJALOffset(OperandVector &Operands) {
2268 return parseImmediate(Operands);
2337 ParseStatus RISCVAsmParser::parseVTypeI(OperandVector &Operands) {
2378 Operands.push_back(RISCVOperand::createVType(VTypeI, S));
2392 ParseStatus RISCVAsmParser::parseMaskReg(OperandVector &Operands) {
2408 Operands.push_back(RISCVOperand::createReg(Reg, S, E));
2412 ParseStatus RISCVAsmParser::parseGPRAsFPR64(OperandVector &Operands) {
2416 return parseGPRAsFPR(Operands);
2419 ParseStatus RISCVAsmParser::parseGPRAsFPR(OperandVector &Operands) {
2431 Operands.push_back(RISCVOperand::createReg(
2436 ParseStatus RISCVAsmParser::parseGPRPairAsFPR64(OperandVector &Operands) {
2469 Operands.push_back(RISCVOperand::createReg(Pair, S, E, /*isGPRAsFPR=*/true));
2474 ParseStatus RISCVAsmParser::parseGPRPair(OperandVector &Operands) {
2475 return parseGPRPair(Operands, IsRV64);
2478 ParseStatus RISCVAsmParser::parseGPRPair(OperandVector &Operands,
2511 Operands.push_back(RISCVOperand::createReg(Pair, S, E));
2515 ParseStatus RISCVAsmParser::parseFRMArg(OperandVector &Operands) {
2527 Operands.push_back(RISCVOperand::createFRMArg(FRM, getLoc()));
2532 ParseStatus RISCVAsmParser::parseFenceArg(OperandVector &Operands) {
2539 Operands.push_back(RISCVOperand::createFenceArg(0, getLoc()));
2582 Operands.push_back(RISCVOperand::createFenceArg(Imm, getLoc()));
2592 ParseStatus RISCVAsmParser::parseMemOpBaseReg(OperandVector &Operands) {
2595 Operands.push_back(RISCVOperand::createToken("(", getLoc()));
2597 if (!parseRegister(Operands).isSuccess())
2602 Operands.push_back(RISCVOperand::createToken(")", getLoc()));
2607 ParseStatus RISCVAsmParser::parseZeroOffsetMemOp(OperandVector &Operands) {
2621 // parsed register operand to `Operands`.
2639 // nicer), but we don't add it to Operands.
2651 if (!parseRegister(Operands).isSuccess())
2666 ParseStatus RISCVAsmParser::parseRegReg(OperandVector &Operands) {
2692 Operands.push_back(RISCVOperand::createRegReg(Reg, Reg2, getLoc()));
2697 ParseStatus RISCVAsmParser::parseReglist(OperandVector &Operands) {
2788 Operands.push_back(RISCVOperand::createRlist(Encode, S));
2793 ParseStatus RISCVAsmParser::parseZcmpStackAdj(OperandVector &Operands,
2800 unsigned RlistVal = static_cast<RISCVOperand *>(Operands[1].get())->Rlist.Val;
2805 Operands.push_back(RISCVOperand::createSpimm(Spimm << 4, S));
2811 /// information, adding to Operands. If operand was parsed, returns false, else
2813 bool RISCVAsmParser::parseOperand(OperandVector &Operands, StringRef Mnemonic) {
2817 MatchOperandParserImpl(Operands, Mnemonic, /*ParseForAllFeatures=*/true);
2824 if (parseRegister(Operands, true).isSuccess())
2828 if (parseImmediate(Operands).isSuccess()) {
2831 return !parseMemOpBaseReg(Operands).isSuccess();
2842 OperandVector &Operands) {
2859 Operands.push_back(RISCVOperand::createToken(Name, NameLoc));
2868 if (parseOperand(Operands, Name))
2874 if (parseOperand(Operands, Name))
3332 SmallVector<std::unique_ptr<MCParsedAsmOperand>, 8> Operands;
3334 if (parseInstruction(Info, FormatName, L, Operands))
3339 return matchAndEmitInstruction(L, Opcode, Operands, Parser.getStreamer(),
3613 OperandVector &Operands) {
3617 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[3]).getStartLoc();
3626 OperandVector &Operands) {
3630 SMLoc ErrorLoc = ((RISCVOperand &)*Operands[3]).getStartLoc();
3653 OperandVector &Operands) {
3661 SMLoc Loc = Operands.back()->getStartLoc();
3674 SMLoc Loc = Operands[1]->getStartLoc();
3683 SMLoc Loc = Operands[1]->getStartLoc();
3694 SMLoc Loc = Operands.back()->getStartLoc();
3697 SMLoc Loc = Operands.back()->getStartLoc();
3707 // Operands Opcode, Dst, uimm, Dst, Rs2, Rs1 for VC_V_XVW.
3709 SMLoc VCIXDstLoc = Operands[2]->getStartLoc();
3731 // Operands[1] will be the first operand, DestReg.
3732 SMLoc Loc = Operands[1]->getStartLoc();
3771 OperandVector &Operands,
3871 if (checkPseudoAddTPRel(Inst, Operands))
3875 if (checkPseudoTLSDESCCall(Inst, Operands))