Lines Matching refs:Operands

152   bool parseSysAlias(StringRef Name, SMLoc NameLoc, OperandVector &Operands);
153 void createSysAlias(uint16_t Encoding, OperandVector &Operands, SMLoc S);
155 bool parseCondCode(OperandVector &Operands, bool invertCondCode);
157 bool parseRegister(OperandVector &Operands);
159 bool parseNeonVectorList(OperandVector &Operands);
160 bool parseOptionalMulOperand(OperandVector &Operands);
161 bool parseOperand(OperandVector &Operands, bool isCondCode,
165 OperandVector &Operands);
185 OperandVector &Operands, MCStreamer &Out,
199 OperandMatchResultTy tryParseOptionalShiftExtend(OperandVector &Operands);
200 OperandMatchResultTy tryParseBarrierOperand(OperandVector &Operands);
201 OperandMatchResultTy tryParseMRSSystemRegister(OperandVector &Operands);
202 OperandMatchResultTy tryParseSysReg(OperandVector &Operands);
203 OperandMatchResultTy tryParseSysCROperand(OperandVector &Operands);
205 OperandMatchResultTy tryParsePrefetch(OperandVector &Operands);
206 OperandMatchResultTy tryParsePSBHint(OperandVector &Operands);
207 OperandMatchResultTy tryParseBTIHint(OperandVector &Operands);
208 OperandMatchResultTy tryParseAdrpLabel(OperandVector &Operands);
209 OperandMatchResultTy tryParseAdrLabel(OperandVector &Operands);
211 OperandMatchResultTy tryParseFPImm(OperandVector &Operands);
212 OperandMatchResultTy tryParseImmWithOptionalShift(OperandVector &Operands);
213 OperandMatchResultTy tryParseGPR64sp0Operand(OperandVector &Operands);
214 bool tryParseNeonVectorRegister(OperandVector &Operands);
215 OperandMatchResultTy tryParseVectorIndex(OperandVector &Operands);
216 OperandMatchResultTy tryParseGPRSeqPair(OperandVector &Operands);
219 OperandMatchResultTy tryParseGPROperand(OperandVector &Operands);
221 OperandMatchResultTy tryParseSVEDataVector(OperandVector &Operands);
222 OperandMatchResultTy tryParseSVEPredicateVector(OperandVector &Operands);
224 OperandMatchResultTy tryParseVectorList(OperandVector &Operands,
226 OperandMatchResultTy tryParseSVEPattern(OperandVector &Operands);
259 SMLoc NameLoc, OperandVector &Operands) override;
2326 AArch64AsmParser::tryParseSysCROperand(OperandVector &Operands) { in tryParseSysCROperand() argument
2349 Operands.push_back( in tryParseSysCROperand()
2357 AArch64AsmParser::tryParsePrefetch(OperandVector &Operands) { in tryParsePrefetch() argument
2402 Operands.push_back(AArch64Operand::CreatePrefetch( in tryParsePrefetch()
2419 Operands.push_back(AArch64Operand::CreatePrefetch( in tryParsePrefetch()
2426 AArch64AsmParser::tryParsePSBHint(OperandVector &Operands) { in tryParsePSBHint() argument
2442 Operands.push_back(AArch64Operand::CreatePSBHint( in tryParsePSBHint()
2449 AArch64AsmParser::tryParseBTIHint(OperandVector &Operands) { in tryParseBTIHint() argument
2465 Operands.push_back(AArch64Operand::CreateBTIHint( in tryParseBTIHint()
2473 AArch64AsmParser::tryParseAdrpLabel(OperandVector &Operands) { in tryParseAdrpLabel() argument
2516 Operands.push_back(AArch64Operand::CreateImm(Expr, S, E, getContext())); in tryParseAdrpLabel()
2524 AArch64AsmParser::tryParseAdrLabel(OperandVector &Operands) { in tryParseAdrLabel() argument
2554 Operands.push_back(AArch64Operand::CreateImm(Expr, S, E, getContext())); in tryParseAdrLabel()
2561 AArch64AsmParser::tryParseFPImm(OperandVector &Operands) { in tryParseFPImm() argument
2586 Operands.push_back( in tryParseFPImm()
2597 Operands.push_back( in tryParseFPImm()
2599 Operands.push_back( in tryParseFPImm()
2602 Operands.push_back(AArch64Operand::CreateFPImm( in tryParseFPImm()
2614 AArch64AsmParser::tryParseImmWithOptionalShift(OperandVector &Operands) { in tryParseImmWithOptionalShift() argument
2629 Operands.push_back( in tryParseImmWithOptionalShift()
2665 Operands.push_back(AArch64Operand::CreateImm(Imm, S, E, getContext())); in tryParseImmWithOptionalShift()
2670 Operands.push_back(AArch64Operand::CreateShiftedImm(Imm, ShiftAmount, in tryParseImmWithOptionalShift()
2717 bool AArch64AsmParser::parseCondCode(OperandVector &Operands, in parseCondCode() argument
2736 Operands.push_back( in parseCondCode()
2744 AArch64AsmParser::tryParseOptionalShiftExtend(OperandVector &Operands) { in tryParseOptionalShiftExtend() argument
2784 Operands.push_back( in tryParseOptionalShiftExtend()
2810 Operands.push_back(AArch64Operand::CreateShiftExtend( in tryParseOptionalShiftExtend()
2866 void AArch64AsmParser::createSysAlias(uint16_t Encoding, OperandVector &Operands, in createSysAlias() argument
2875 Operands.push_back( in createSysAlias()
2877 Operands.push_back( in createSysAlias()
2879 Operands.push_back( in createSysAlias()
2882 Operands.push_back( in createSysAlias()
2889 OperandVector &Operands) { in parseSysAlias() argument
2894 Operands.push_back( in parseSysAlias()
2911 createSysAlias(IC->Encoding, Operands, S); in parseSysAlias()
2921 createSysAlias(DC->Encoding, Operands, S); in parseSysAlias()
2931 createSysAlias(AT->Encoding, Operands, S); in parseSysAlias()
2941 createSysAlias(TLBI->Encoding, Operands, S); in parseSysAlias()
2958 createSysAlias(PRCTX->Encoding << 3 | PRCTX_Op2 , Operands, S); in parseSysAlias()
2968 if (Tok.isNot(AsmToken::Identifier) || parseRegister(Operands)) in parseSysAlias()
2985 AArch64AsmParser::tryParseBarrierOperand(OperandVector &Operands) { in tryParseBarrierOperand() argument
3009 Operands.push_back(AArch64Operand::CreateBarrier( in tryParseBarrierOperand()
3034 Operands.push_back(AArch64Operand::CreateBarrier( in tryParseBarrierOperand()
3042 AArch64AsmParser::tryParseSysReg(OperandVector &Operands) { in tryParseSysReg() argument
3062 Operands.push_back( in tryParseSysReg()
3071 bool AArch64AsmParser::tryParseNeonVectorRegister(OperandVector &Operands) { in tryParseNeonVectorRegister() argument
3090 Operands.push_back( in tryParseNeonVectorRegister()
3097 Operands.push_back( in tryParseNeonVectorRegister()
3100 return tryParseVectorIndex(Operands) == MatchOperand_ParseFail; in tryParseNeonVectorRegister()
3104 AArch64AsmParser::tryParseVectorIndex(OperandVector &Operands) { in tryParseVectorIndex() argument
3121 Operands.push_back(AArch64Operand::CreateVectorIndex(MCE->getValue(), SIdx, in tryParseVectorIndex()
3167 AArch64AsmParser::tryParseSVEPredicateVector(OperandVector &Operands) { in tryParseSVEPredicateVector() argument
3181 Operands.push_back(AArch64Operand::CreateVectorReg( in tryParseSVEPredicateVector()
3197 Operands.push_back( in tryParseSVEPredicateVector()
3211 Operands.push_back( in tryParseSVEPredicateVector()
3219 bool AArch64AsmParser::parseRegister(OperandVector &Operands) { in parseRegister() argument
3221 if (!tryParseNeonVectorRegister(Operands)) in parseRegister()
3225 if (tryParseGPROperand<false>(Operands) == MatchOperand_Success) in parseRegister()
3303 AArch64AsmParser::tryParseVectorList(OperandVector &Operands, in tryParseVectorList() argument
3415 Operands.push_back(AArch64Operand::CreateVectorList( in tryParseVectorList()
3423 bool AArch64AsmParser::parseNeonVectorList(OperandVector &Operands) { in parseNeonVectorList() argument
3424 auto ParseRes = tryParseVectorList<RegKind::NeonVector>(Operands, true); in parseNeonVectorList()
3428 return tryParseVectorIndex(Operands) == MatchOperand_ParseFail; in parseNeonVectorList()
3432 AArch64AsmParser::tryParseGPR64sp0Operand(OperandVector &Operands) { in tryParseGPR64sp0Operand() argument
3441 Operands.push_back(AArch64Operand::CreateReg( in tryParseGPR64sp0Operand()
3460 Operands.push_back(AArch64Operand::CreateReg( in tryParseGPR64sp0Operand()
3467 AArch64AsmParser::tryParseGPROperand(OperandVector &Operands) { in tryParseGPROperand() argument
3477 Operands.push_back(AArch64Operand::CreateReg( in tryParseGPROperand()
3492 Operands.push_back(AArch64Operand::CreateReg( in tryParseGPROperand()
3500 bool AArch64AsmParser::parseOptionalMulOperand(OperandVector &Operands) { in parseOptionalMulOperand() argument
3512 Operands.push_back( in parseOptionalMulOperand()
3517 Operands.push_back( in parseOptionalMulOperand()
3531 Operands.push_back(AArch64Operand::CreateImm( in parseOptionalMulOperand()
3543 bool AArch64AsmParser::parseOperand(OperandVector &Operands, bool isCondCode, in parseOperand() argument
3548 MatchOperandParserImpl(Operands, Mnemonic, /*ParseForAllFeatures=*/ true); in parseOperand()
3570 Operands.push_back(AArch64Operand::CreateImm(Expr, S, E, getContext())); in parseOperand()
3575 Operands.push_back(AArch64Operand::CreateToken("[", false, Loc, in parseOperand()
3581 return parseOperand(Operands, false, false); in parseOperand()
3584 return parseNeonVectorList(Operands); in parseOperand()
3588 return parseCondCode(Operands, invertCondCode); in parseOperand()
3591 if (!parseRegister(Operands)) in parseOperand()
3596 if (!parseOptionalMulOperand(Operands)) in parseOperand()
3600 OperandMatchResultTy GotShift = tryParseOptionalShiftExtend(Operands); in parseOperand()
3612 Operands.push_back(AArch64Operand::CreateImm(IdVal, S, E, getContext())); in parseOperand()
3648 Operands.push_back( in parseOperand()
3650 Operands.push_back( in parseOperand()
3660 Operands.push_back(AArch64Operand::CreateImm(ImmVal, S, E, getContext())); in parseOperand()
3672 if (Operands.size() < 2 || in parseOperand()
3673 !static_cast<AArch64Operand &>(*Operands[1]).isScalarReg()) in parseOperand()
3678 Operands[1]->getReg()); in parseOperand()
3691 Operands[0] = AArch64Operand::CreateToken("movz", false, Loc, Ctx); in parseOperand()
3692 Operands.push_back(AArch64Operand::CreateImm( in parseOperand()
3695 Operands.push_back(AArch64Operand::CreateShiftExtend(AArch64_AM::LSL, in parseOperand()
3707 Operands.push_back(AArch64Operand::CreateImm(CPLoc, S, E, Ctx)); in parseOperand()
3741 OperandVector &Operands) { in ParseInstruction() argument
3781 return parseSysAlias(Head, NameLoc, Operands); in ParseInstruction()
3783 Operands.push_back( in ParseInstruction()
3798 Operands.push_back( in ParseInstruction()
3800 Operands.push_back( in ParseInstruction()
3811 Operands.push_back( in ParseInstruction()
3838 if (parseOperand(Operands, (N == 4 && condCodeFourthOperand) || in ParseInstruction()
3856 Operands.push_back( in ParseInstruction()
3860 Operands.push_back( in ParseInstruction()
4175 OperandVector &Operands) { in showMatchError() argument
4179 static_cast<const AArch64Operand &>(*Operands[ErrorInfo]) in showMatchError()
4384 ((AArch64Operand &)*Operands[0]).getToken(), in showMatchError()
4492 OperandVector &Operands, in MatchAndEmitInstruction() argument
4496 assert(!Operands.empty() && "Unexpect empty operand list!"); in MatchAndEmitInstruction()
4497 AArch64Operand &Op = static_cast<AArch64Operand &>(*Operands[0]); in MatchAndEmitInstruction()
4501 unsigned NumOperands = Operands.size(); in MatchAndEmitInstruction()
4504 AArch64Operand &Op2 = static_cast<AArch64Operand &>(*Operands[2]); in MatchAndEmitInstruction()
4505 AArch64Operand &Op3 = static_cast<AArch64Operand &>(*Operands[3]); in MatchAndEmitInstruction()
4524 Operands[0] = AArch64Operand::CreateToken( in MatchAndEmitInstruction()
4526 Operands.push_back(AArch64Operand::CreateImm( in MatchAndEmitInstruction()
4528 Operands[3] = AArch64Operand::CreateImm(NewOp3, Op3.getStartLoc(), in MatchAndEmitInstruction()
4534 AArch64Operand &Op1 = static_cast<AArch64Operand &>(*Operands[1]); in MatchAndEmitInstruction()
4535 AArch64Operand LSBOp = static_cast<AArch64Operand &>(*Operands[2]); in MatchAndEmitInstruction()
4536 AArch64Operand WidthOp = static_cast<AArch64Operand &>(*Operands[3]); in MatchAndEmitInstruction()
4574 Operands[0] = AArch64Operand::CreateToken( in MatchAndEmitInstruction()
4576 Operands[2] = AArch64Operand::CreateReg( in MatchAndEmitInstruction()
4579 Operands[3] = AArch64Operand::CreateImm( in MatchAndEmitInstruction()
4581 Operands.emplace_back( in MatchAndEmitInstruction()
4590 AArch64Operand &Op1 = static_cast<AArch64Operand &>(*Operands[1]); in MatchAndEmitInstruction()
4591 AArch64Operand &Op3 = static_cast<AArch64Operand &>(*Operands[3]); in MatchAndEmitInstruction()
4592 AArch64Operand &Op4 = static_cast<AArch64Operand &>(*Operands[4]); in MatchAndEmitInstruction()
4632 Operands[3] = AArch64Operand::CreateImm( in MatchAndEmitInstruction()
4634 Operands[4] = AArch64Operand::CreateImm( in MatchAndEmitInstruction()
4637 Operands[0] = AArch64Operand::CreateToken( in MatchAndEmitInstruction()
4640 Operands[0] = AArch64Operand::CreateToken( in MatchAndEmitInstruction()
4643 Operands[0] = AArch64Operand::CreateToken( in MatchAndEmitInstruction()
4654 AArch64Operand &Op1 = static_cast<AArch64Operand &>(*Operands[1]); in MatchAndEmitInstruction()
4655 AArch64Operand &Op3 = static_cast<AArch64Operand &>(*Operands[3]); in MatchAndEmitInstruction()
4656 AArch64Operand &Op4 = static_cast<AArch64Operand &>(*Operands[4]); in MatchAndEmitInstruction()
4688 Operands[4] = AArch64Operand::CreateImm( in MatchAndEmitInstruction()
4691 Operands[0] = AArch64Operand::CreateToken( in MatchAndEmitInstruction()
4694 Operands[0] = AArch64Operand::CreateToken( in MatchAndEmitInstruction()
4697 Operands[0] = AArch64Operand::CreateToken( in MatchAndEmitInstruction()
4712 AArch64Operand &Op1 = static_cast<AArch64Operand &>(*Operands[1]); in MatchAndEmitInstruction()
4713 AArch64Operand &Op2 = static_cast<AArch64Operand &>(*Operands[2]); in MatchAndEmitInstruction()
4714 AArch64Operand &Op3 = static_cast<AArch64Operand &>(*Operands[3]); in MatchAndEmitInstruction()
4724 Operands[Idx] = AArch64Operand::CreateToken(".16b", false, IDLoc, in MatchAndEmitInstruction()
4736 AArch64Operand &Op = static_cast<AArch64Operand &>(*Operands[2]); in MatchAndEmitInstruction()
4739 Operands[2] = AArch64Operand::CreateReg(Reg, RegKind::Scalar, in MatchAndEmitInstruction()
4746 AArch64Operand &Op = static_cast<AArch64Operand &>(*Operands[1]); in MatchAndEmitInstruction()
4752 AArch64Operand &Op = static_cast<AArch64Operand &>(*Operands[2]); in MatchAndEmitInstruction()
4755 Operands[2] = AArch64Operand::CreateReg(Reg, RegKind::Scalar, in MatchAndEmitInstruction()
4763 AArch64Operand &Op = static_cast<AArch64Operand &>(*Operands[1]); in MatchAndEmitInstruction()
4769 AArch64Operand &Op = static_cast<AArch64Operand &>(*Operands[1]); in MatchAndEmitInstruction()
4772 Operands[1] = AArch64Operand::CreateReg(Reg, RegKind::Scalar, in MatchAndEmitInstruction()
4783 MatchInstructionImpl(Operands, Inst, ErrorInfo, MatchingInlineAsm, 1); in MatchAndEmitInstruction()
4794 MatchInstructionImpl(Operands, Inst, ErrorInfo, MatchingInlineAsm, 0); in MatchAndEmitInstruction()
4800 Operands.size() > 1 && ((AArch64Operand &)*Operands[1]).isToken() && in MatchAndEmitInstruction()
4801 ((AArch64Operand &)*Operands[1]).isTokenSuffix()) { in MatchAndEmitInstruction()
4811 NumOperands = Operands.size(); in MatchAndEmitInstruction()
4813 OperandLocs.push_back(Operands[i]->getStartLoc()); in MatchAndEmitInstruction()
4837 return showMatchError(IDLoc, MatchResult, ErrorInfo, Operands); in MatchAndEmitInstruction()
4842 if (ErrorInfo >= Operands.size()) in MatchAndEmitInstruction()
4846 ErrorLoc = ((AArch64Operand &)*Operands[ErrorInfo]).getStartLoc(); in MatchAndEmitInstruction()
4852 if (((AArch64Operand &)*Operands[ErrorInfo]).isToken() && in MatchAndEmitInstruction()
4853 ((AArch64Operand &)*Operands[ErrorInfo]).isTokenSuffix()) in MatchAndEmitInstruction()
4856 return showMatchError(ErrorLoc, MatchResult, ErrorInfo, Operands); in MatchAndEmitInstruction()
5000 if (ErrorInfo >= Operands.size()) in MatchAndEmitInstruction()
5001 …return Error(IDLoc, "too few operands for instruction", SMRange(IDLoc, (*Operands.back()).getEndLo… in MatchAndEmitInstruction()
5004 SMLoc ErrorLoc = ((AArch64Operand &)*Operands[ErrorInfo]).getStartLoc(); in MatchAndEmitInstruction()
5007 return showMatchError(ErrorLoc, MatchResult, ErrorInfo, Operands); in MatchAndEmitInstruction()
5592 AArch64AsmParser::tryParseGPRSeqPair(OperandVector &Operands) { in tryParseGPRSeqPair() argument
5658 Operands.push_back(AArch64Operand::CreateReg(Pair, RegKind::Scalar, S, in tryParseGPRSeqPair()
5666 AArch64AsmParser::tryParseSVEDataVector(OperandVector &Operands) { in tryParseSVEDataVector() argument
5689 Operands.push_back(AArch64Operand::CreateVectorReg( in tryParseSVEDataVector()
5692 OperandMatchResultTy Res = tryParseVectorIndex(Operands); in tryParseSVEDataVector()
5708 Operands.push_back(AArch64Operand::CreateVectorReg( in tryParseSVEDataVector()
5717 AArch64AsmParser::tryParseSVEPattern(OperandVector &Operands) { in tryParseSVEPattern() argument
5753 Operands.push_back( in tryParseSVEPattern()