Lines Matching refs:Operands

438   bool validatetLDMRegList(const MCInst &Inst, const OperandVector &Operands,
441 bool validatetSTMRegList(const MCInst &Inst, const OperandVector &Operands,
518 bool CarrySetting, OperandVector &Operands,
521 bool CDEConvertDualRegOperand(StringRef Mnemonic, OperandVector &Operands,
665 OperandVector &Operands,
669 void fixupGNULDRDAlias(StringRef Mnemonic, OperandVector &Operands,
671 bool validateLDRDSTRD(MCInst &Inst, const OperandVector &Operands, bool Load,
716 SMLoc NameLoc, OperandVector &Operands) override;
724 const OperandVector &Operands) override;
727 OperandVector &Operands, MCStreamer &Out,
730 unsigned MatchInstruction(OperandVector &Operands, MCInst &Inst,
744 SMLoc IDLoc, OperandVector &Operands);
746 OperandVector &Operands);
4152 static unsigned getMnemonicOpsEndInd(const OperandVector &Operands) { in getMnemonicOpsEndInd() argument
4156 if (Operands[0]->isToken() && in getMnemonicOpsEndInd()
4157 static_cast<ARMOperand &>(*Operands[0]).getToken() == "cps") { in getMnemonicOpsEndInd()
4158 if (Operands.size() > 1 && Operands[1]->isImm() && in getMnemonicOpsEndInd()
4159 static_cast<ARMOperand &>(*Operands[1]).getImm()->getKind() == in getMnemonicOpsEndInd()
4162 static_cast<ARMOperand &>(*Operands[1]).getImm()) in getMnemonicOpsEndInd()
4165 static_cast<ARMOperand &>(*Operands[1]).getImm()) in getMnemonicOpsEndInd()
4172 while (MnemonicOpsEndInd < Operands.size()) { in getMnemonicOpsEndInd()
4173 auto Op = static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd]); in getMnemonicOpsEndInd()
4296 int ARMAsmParser::tryParseShiftRegister(OperandVector &Operands) { in tryParseShiftRegister() argument
4311 (ARMOperand *)Operands.pop_back_val().release()); in tryParseShiftRegister()
4371 Operands.push_back(ARMOperand::CreateShiftedRegister( in tryParseShiftRegister()
4374 Operands.push_back(ARMOperand::CreateShiftedImmediate(ShiftTy, SrcReg, Imm, in tryParseShiftRegister()
4386 bool ARMAsmParser::tryParseRegisterWithWriteBack(OperandVector &Operands) { in tryParseRegisterWithWriteBack() argument
4394 Operands.push_back( in tryParseRegisterWithWriteBack()
4399 Operands.push_back(ARMOperand::CreateToken(ExclaimTok.getString(), in tryParseRegisterWithWriteBack()
4425 Operands.push_back(ARMOperand::CreateVectorIndex(MCE->getValue(), SIdx, E, in tryParseRegisterWithWriteBack()
4482 ParseStatus ARMAsmParser::parseITCondCode(OperandVector &Operands) { in parseITCondCode() argument
4493 Operands.push_back( in parseITCondCode()
4502 ParseStatus ARMAsmParser::parseCoprocNumOperand(OperandVector &Operands) { in parseCoprocNumOperand() argument
4516 Operands.push_back(ARMOperand::CreateCoprocNum(Num, S, *this)); in parseCoprocNumOperand()
4523 ParseStatus ARMAsmParser::parseCoprocRegOperand(OperandVector &Operands) { in parseCoprocRegOperand() argument
4535 Operands.push_back(ARMOperand::CreateCoprocReg(Reg, S, *this)); in parseCoprocRegOperand()
4541 ParseStatus ARMAsmParser::parseCoprocOptionOperand(OperandVector &Operands) { in parseCoprocOptionOperand() argument
4566 Operands.push_back(ARMOperand::CreateCoprocOption(Val, S, E, *this)); in parseCoprocOptionOperand()
4611 bool ARMAsmParser::parseRegisterList(OperandVector &Operands, bool EnforceOrder, in parseRegisterList() argument
4769 Operands.push_back(ARMOperand::CreateRegList(Registers, S, E, *this)); in parseRegisterList()
4773 Operands.push_back( in parseRegisterList()
4826 ParseStatus ARMAsmParser::parseVectorList(OperandVector &Operands) { in parseVectorList() argument
4847 Operands.push_back(ARMOperand::CreateReg(Reg, S, E, *this)); in parseVectorList()
4850 Operands.push_back( in parseVectorList()
4854 Operands.push_back(ARMOperand::CreateVectorListIndexed( in parseVectorList()
4867 Operands.push_back(ARMOperand::CreateReg(Reg, S, E, *this)); in parseVectorList()
4872 Operands.push_back( in parseVectorList()
4876 Operands.push_back(ARMOperand::CreateVectorListIndexed( in parseVectorList()
4882 Operands.push_back(ARMOperand::CreateReg(Reg, S, E, *this)); in parseVectorList()
5036 Operands.push_back(Create(FirstReg, Count, (Spacing == 2), S, E, *this)); in parseVectorList()
5040 Operands.push_back(ARMOperand::CreateVectorListIndexed( in parseVectorList()
5048 ParseStatus ARMAsmParser::parseMemBarrierOptOperand(OperandVector &Operands) { in parseMemBarrierOptOperand() argument
5108 Operands.push_back( in parseMemBarrierOptOperand()
5114 ARMAsmParser::parseTraceSyncBarrierOptOperand(OperandVector &Operands) { in parseTraceSyncBarrierOptOperand() argument
5127 Operands.push_back( in parseTraceSyncBarrierOptOperand()
5134 ARMAsmParser::parseInstSyncBarrierOptOperand(OperandVector &Operands) { in parseInstSyncBarrierOptOperand() argument
5172 Operands.push_back(ARMOperand::CreateInstSyncBarrierOpt( in parseInstSyncBarrierOptOperand()
5178 ParseStatus ARMAsmParser::parseProcIFlagsOperand(OperandVector &Operands) { in parseProcIFlagsOperand() argument
5207 Operands.push_back( in parseProcIFlagsOperand()
5213 ParseStatus ARMAsmParser::parseMSRMaskOperand(OperandVector &Operands) { in parseMSRMaskOperand() argument
5215 if (static_cast<ARMOperand &>(*Operands.back()).isMSRMask() || in parseMSRMaskOperand()
5216 static_cast<ARMOperand &>(*Operands.back()).isBankedReg()) in parseMSRMaskOperand()
5229 Operands.push_back(ARMOperand::CreateMSRMask(SYSmvalue, S, *this)); in parseMSRMaskOperand()
5245 Operands.push_back(ARMOperand::CreateMSRMask(SYSmvalue, S, *this)); in parseMSRMaskOperand()
5308 Operands.push_back(ARMOperand::CreateMSRMask(FlagsVal, S, *this)); in parseMSRMaskOperand()
5314 ParseStatus ARMAsmParser::parseBankedRegOperand(OperandVector &Operands) { in parseBankedRegOperand() argument
5316 if (static_cast<ARMOperand &>(*Operands.back()).isBankedReg() || in parseBankedRegOperand()
5317 static_cast<ARMOperand &>(*Operands.back()).isMSRMask()) in parseBankedRegOperand()
5332 Operands.push_back(ARMOperand::CreateBankedReg(Encoding, S, *this)); in parseBankedRegOperand()
5339 ParseStatus ARMAsmParser::parsePKHImm(OperandVector &Operands, in parsePKHImm() argument
5374 Operands.push_back(ARMOperand::CreateImm(CE, Loc, EndLoc, *this)); in parsePKHImm()
5379 ParseStatus ARMAsmParser::parseSetEndImm(OperandVector &Operands) { in parseSetEndImm() argument
5393 Operands.push_back(ARMOperand::CreateImm( in parseSetEndImm()
5403 ParseStatus ARMAsmParser::parseShifterImm(OperandVector &Operands) { in parseShifterImm() argument
5449 Operands.push_back( in parseShifterImm()
5458 ParseStatus ARMAsmParser::parseRotImm(OperandVector &Operands) { in parseRotImm() argument
5491 Operands.push_back(ARMOperand::CreateRotImm(Val, S, EndLoc, *this)); in parseRotImm()
5496 ParseStatus ARMAsmParser::parseModImm(OperandVector &Operands) { in parseModImm() argument
5541 Operands.push_back(ARMOperand::CreateModImm( in parseModImm()
5553 Operands.push_back(ARMOperand::CreateImm(Imm1Exp, Sx1, Ex1, *this)); in parseModImm()
5559 Operands.push_back(ARMOperand::CreateImm(Imm1Exp, Sx1, Ex1, *this)); in parseModImm()
5593 Operands.push_back(ARMOperand::CreateModImm(Imm1, Imm2, S, Ex2, *this)); in parseModImm()
5603 ParseStatus ARMAsmParser::parseBitfield(OperandVector &Operands) { in parseBitfield() argument
5648 Operands.push_back(ARMOperand::CreateBitfield(LSB, Width, S, EndLoc, *this)); in parseBitfield()
5653 ParseStatus ARMAsmParser::parsePostIdxReg(OperandVector &Operands) { in parsePostIdxReg() argument
5695 Operands.push_back( in parsePostIdxReg()
5701 ParseStatus ARMAsmParser::parseAM3Offset(OperandVector &Operands) { in parseAM3Offset() argument
5737 Operands.push_back(ARMOperand::CreateImm( in parseAM3Offset()
5762 Operands.push_back(ARMOperand::CreatePostIdxReg( in parseAM3Offset()
5769 unsigned findCondCodeInd(const OperandVector &Operands, in findCondCodeInd() argument
5772 auto Op = static_cast<ARMOperand &>(*Operands[I]); in findCondCodeInd()
5779 unsigned findCCOutInd(const OperandVector &Operands, in findCCOutInd() argument
5782 auto Op = static_cast<ARMOperand &>(*Operands[I]); in findCCOutInd()
5793 const OperandVector &Operands) { in cvtThumbMultiply() argument
5794 unsigned MnemonicOpsEndInd = getMnemonicOpsEndInd(Operands); in cvtThumbMultiply()
5795 unsigned CondI = findCondCodeInd(Operands, MnemonicOpsEndInd); in cvtThumbMultiply()
5796 unsigned CondOutI = findCCOutInd(Operands, MnemonicOpsEndInd); in cvtThumbMultiply()
5803 if (Operands.size() == MnemonicOpsEndInd + 3) { in cvtThumbMultiply()
5806 if (((ARMOperand &)*Operands[RegRd]).getReg() == in cvtThumbMultiply()
5807 ((ARMOperand &)*Operands[MnemonicOpsEndInd + 1]).getReg()) { in cvtThumbMultiply()
5817 ((ARMOperand &)*Operands[RegRd]).addRegOperands(Inst, 1); in cvtThumbMultiply()
5820 ((ARMOperand &)*Operands[CondOutI]).addCCOutOperands(Inst, 1); in cvtThumbMultiply()
5823 *ARMOperand::CreateCCOut(0, Operands[0]->getEndLoc(), *this); in cvtThumbMultiply()
5827 ((ARMOperand &)*Operands[RegRn]).addRegOperands(Inst, 1); in cvtThumbMultiply()
5829 ((ARMOperand &)*Operands[RegRm]).addRegOperands(Inst, 1); in cvtThumbMultiply()
5833 ((ARMOperand &)*Operands[CondI]).addCondCodeOperands(Inst, 2); in cvtThumbMultiply()
5836 llvm::ARMCC::AL, Operands[0]->getEndLoc(), *this); in cvtThumbMultiply()
5842 const OperandVector &Operands) { in cvtThumbBranches() argument
5843 unsigned MnemonicOpsEndInd = getMnemonicOpsEndInd(Operands); in cvtThumbBranches()
5844 unsigned CondI = findCondCodeInd(Operands, MnemonicOpsEndInd); in cvtThumbBranches()
5847 : static_cast<ARMOperand &>(*Operands[CondI]).getCondCode()); in cvtThumbBranches()
5875 ARMOperand &op = static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd]); in cvtThumbBranches()
5882 ARMOperand &op = static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd]); in cvtThumbBranches()
5888 ((ARMOperand &)*Operands[MnemonicOpsEndInd]).addImmOperands(Inst, 1); in cvtThumbBranches()
5890 ((ARMOperand &)*Operands[CondI]).addCondCodeOperands(Inst, 2); in cvtThumbBranches()
5893 llvm::ARMCC::AL, Operands[0]->getEndLoc(), *this); in cvtThumbBranches()
5899 MCInst &Inst, const OperandVector &Operands) { in cvtMVEVMOVQtoDReg() argument
5901 unsigned MnemonicOpsEndInd = getMnemonicOpsEndInd(Operands); in cvtMVEVMOVQtoDReg()
5902 unsigned CondI = findCondCodeInd(Operands, MnemonicOpsEndInd); in cvtMVEVMOVQtoDReg()
5905 assert(Operands.size() == MnemonicOpsEndInd + 6); in cvtMVEVMOVQtoDReg()
5907 ((ARMOperand &)*Operands[MnemonicOpsEndInd]).addRegOperands(Inst, 1); // Rt in cvtMVEVMOVQtoDReg()
5908 ((ARMOperand &)*Operands[MnemonicOpsEndInd + 1]) in cvtMVEVMOVQtoDReg()
5910 ((ARMOperand &)*Operands[MnemonicOpsEndInd + 2]) in cvtMVEVMOVQtoDReg()
5912 ((ARMOperand &)*Operands[MnemonicOpsEndInd + 3]) in cvtMVEVMOVQtoDReg()
5915 ((ARMOperand &)*Operands[MnemonicOpsEndInd + 5]) in cvtMVEVMOVQtoDReg()
5918 ((ARMOperand &)*Operands[CondI]) in cvtMVEVMOVQtoDReg()
5922 *ARMOperand::CreateCondCode(ARMCC::AL, Operands[0]->getEndLoc(), *this); in cvtMVEVMOVQtoDReg()
5929 bool ARMAsmParser::parseMemory(OperandVector &Operands) { in parseMemory() argument
5952 Operands.push_back(ARMOperand::CreateMem( in parseMemory()
5958 Operands.push_back( in parseMemory()
6009 Operands.push_back(ARMOperand::CreateMem(BaseRegNum, nullptr, 0, in parseMemory()
6016 Operands.push_back( in parseMemory()
6053 Operands.push_back(ARMOperand::CreateMem(BaseRegNum, AdjustedOffset, 0, in parseMemory()
6066 Operands.push_back( in parseMemory()
6104 Operands.push_back(ARMOperand::CreateMem(BaseRegNum, nullptr, OffsetRegNum, in parseMemory()
6111 Operands.push_back( in parseMemory()
6186 ParseStatus ARMAsmParser::parseFPImm(OperandVector &Operands) { in parseFPImm() argument
6187 LLVM_DEBUG(dbgs() << "PARSE FPImm, Ops: " << Operands.size()); in parseFPImm()
6217 unsigned MnemonicOpsEndInd = getMnemonicOpsEndInd(Operands); in parseFPImm()
6219 ARMOperand &TyOp = static_cast<ARMOperand &>(*Operands[I]); in parseFPImm()
6228 ARMOperand &Mnemonic = static_cast<ARMOperand &>(*Operands[0]); in parseFPImm()
6250 Operands.push_back( in parseFPImm()
6265 Operands.push_back( in parseFPImm()
6276 bool ARMAsmParser::parseOperand(OperandVector &Operands, StringRef Mnemonic) { in parseOperand() argument
6282 ParseStatus ResTy = MatchOperandParserImpl(Operands, Mnemonic); in parseOperand()
6301 if (!tryParseRegisterWithWriteBack(Operands)) in parseOperand()
6303 int Res = tryParseShiftRegister(Operands); in parseOperand()
6313 Operands.push_back(ARMOperand::CreateToken("APSR_nzcv", S, *this)); in parseOperand()
6333 Operands.push_back(ARMOperand::CreateImm(IdVal, S, E, *this)); in parseOperand()
6337 return parseMemory(Operands); in parseOperand()
6340 return parseRegisterList(Operands, !Mnemonic.starts_with("clr"), false, in parseOperand()
6377 Operands.push_back(ARMOperand::CreateImm(ImmVal, S, E, *this)); in parseOperand()
6383 Operands.push_back(ARMOperand::CreateToken( in parseOperand()
6409 Operands.push_back(ARMOperand::CreateImm(ExprVal, S, E, *this)); in parseOperand()
6424 Operands.push_back( in parseOperand()
6744 bool operandsContainWide(OperandVector &Operands, unsigned MnemonicOpsEndInd) { in operandsContainWide() argument
6746 auto &Op = static_cast<ARMOperand &>(*Operands[I]); in operandsContainWide()
6759 OperandVector &Operands, unsigned MnemonicOpsEndInd) { in tryConvertingToTwoOperandForm() argument
6761 if (operandsContainWide(Operands, MnemonicOpsEndInd)) in tryConvertingToTwoOperandForm()
6763 if (Operands.size() != MnemonicOpsEndInd + 3) in tryConvertingToTwoOperandForm()
6766 const auto &Op3 = static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd]); in tryConvertingToTwoOperandForm()
6767 auto &Op4 = static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]); in tryConvertingToTwoOperandForm()
6778 auto &Op5 = static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 2]); in tryConvertingToTwoOperandForm()
6838 Operands.erase(Operands.begin() + MnemonicOpsEndInd); in tryConvertingToTwoOperandForm()
6864 StringRef Mnemonic, OperandVector &Operands, unsigned MnemonicOpsEndInd) { in shouldOmitVectorPredicateOperand() argument
6865 if (!hasMVE() || Operands.size() <= MnemonicOpsEndInd) in shouldOmitVectorPredicateOperand()
6878 for (auto &Operand : Operands) { in shouldOmitVectorPredicateOperand()
6890 for (auto &Operand : Operands) { in shouldOmitVectorPredicateOperand()
6923 OperandVector &Operands, in fixupGNULDRDAlias() argument
6933 if (Operands.size() < IdX + 2) in fixupGNULDRDAlias()
6936 ARMOperand &Op2 = static_cast<ARMOperand &>(*Operands[IdX]); in fixupGNULDRDAlias()
6937 ARMOperand &Op3 = static_cast<ARMOperand &>(*Operands[IdX + 1]); in fixupGNULDRDAlias()
6961 Operands.insert(Operands.begin() + IdX + 1, in fixupGNULDRDAlias()
6972 OperandVector &Operands, in CDEConvertDualRegOperand() argument
6976 if (Operands.size() < 3 + MnemonicOpsEndInd) in CDEConvertDualRegOperand()
6982 const MCParsedAsmOperand &Op2 = *Operands[MnemonicOpsEndInd + 1]; in CDEConvertDualRegOperand()
7017 const MCParsedAsmOperand &Op3 = *Operands[MnemonicOpsEndInd + 2]; in CDEConvertDualRegOperand()
7021 Operands.erase(Operands.begin() + MnemonicOpsEndInd + 2); in CDEConvertDualRegOperand()
7022 Operands[MnemonicOpsEndInd + 1] = in CDEConvertDualRegOperand()
7027 void removeCondCode(OperandVector &Operands, unsigned &MnemonicOpsEndInd) { in removeCondCode() argument
7029 if (static_cast<ARMOperand &>(*Operands[I]).isCondCode()) { in removeCondCode()
7030 Operands.erase(Operands.begin() + I); in removeCondCode()
7036 void removeCCOut(OperandVector &Operands, unsigned &MnemonicOpsEndInd) { in removeCCOut() argument
7038 if (static_cast<ARMOperand &>(*Operands[I]).isCCOut()) { in removeCCOut()
7039 Operands.erase(Operands.begin() + I); in removeCCOut()
7045 void removeVPTCondCode(OperandVector &Operands, unsigned &MnemonicOpsEndInd) { in removeVPTCondCode() argument
7047 if (static_cast<ARMOperand &>(*Operands[I]).isVPTPred()) { in removeVPTCondCode()
7048 Operands.erase(Operands.begin() + I); in removeVPTCondCode()
7056 SMLoc NameLoc, OperandVector &Operands) { in ParseInstruction() argument
7096 Operands.push_back(ARMOperand::CreateToken(Mnemonic, NameLoc, *this)); in ParseInstruction()
7128 Operands.push_back(ARMOperand::CreateITMask(Mask, Loc, *this)); in ParseInstruction()
7168 Operands.push_back( in ParseInstruction()
7176 Operands.push_back(ARMOperand::CreateCondCode( in ParseInstruction()
7188 Operands.push_back(ARMOperand::CreateVPTPred( in ParseInstruction()
7194 Operands.push_back(ARMOperand::CreateImm( in ParseInstruction()
7225 Operands.push_back(ARMOperand::CreateToken(ExtraToken, Loc, *this)); in ParseInstruction()
7232 unsigned MnemonicOpsEndInd = Operands.size(); in ParseInstruction()
7237 if (parseOperand(Operands, Mnemonic)) { in ParseInstruction()
7243 if (parseOperand(Operands, Mnemonic)) { in ParseInstruction()
7253 Operands, MnemonicOpsEndInd); in ParseInstruction()
7265 CDEConvertDualRegOperand(Mnemonic, Operands, MnemonicOpsEndInd); in ParseInstruction()
7272 if (!shouldOmitVectorPredicateOperand(Mnemonic, Operands, in ParseInstruction()
7278 Operands.erase(Operands.begin() + 1); in ParseInstruction()
7279 Operands.erase(Operands.begin()); in ParseInstruction()
7283 Operands.insert(Operands.begin(), in ParseInstruction()
7285 Operands.insert(Operands.begin(), ARMOperand::CreateToken( in ParseInstruction()
7288 !shouldOmitVectorPredicateOperand(Mnemonic, Operands, in ParseInstruction()
7294 Operands.erase(Operands.begin() + 1); in ParseInstruction()
7295 Operands.erase(Operands.begin()); in ParseInstruction()
7299 Operands.insert(Operands.begin(), in ParseInstruction()
7301 Operands.insert(Operands.begin(), in ParseInstruction()
7304 !shouldOmitVectorPredicateOperand(Mnemonic, Operands, in ParseInstruction()
7309 removeCondCode(Operands, MnemonicOpsEndInd); in ParseInstruction()
7310 Operands.erase(Operands.begin()); in ParseInstruction()
7312 Operands.insert(Operands.begin(), ARMOperand::CreateToken( in ParseInstruction()
7318 if (!shouldOmitVectorPredicateOperand(Mnemonic, Operands, in ParseInstruction()
7328 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd - 2]); in ParseInstruction()
7330 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd - 1]); in ParseInstruction()
7333 Operands.erase(Operands.begin()); in ParseInstruction()
7338 Operands.insert(Operands.begin(), in ParseInstruction()
7345 Operands.insert(Operands.begin() + 1, in ParseInstruction()
7354 if (shouldOmitVectorPredicateOperand(Mnemonic, Operands, in ParseInstruction()
7356 removeVPTCondCode(Operands, MnemonicOpsEndInd); in ParseInstruction()
7363 for (unsigned I = 1; I < Operands.size(); ++I) in ParseInstruction()
7364 if (static_cast<ARMOperand &>(*Operands[I]).isVPTPred()) in ParseInstruction()
7375 Operands.erase(Operands.begin()); in ParseInstruction()
7376 Operands.insert(Operands.begin(), in ParseInstruction()
7387 Operands.size() == MnemonicOpsEndInd + 1 && in ParseInstruction()
7388 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd]).isImm()) in ParseInstruction()
7389 removeCondCode(Operands, MnemonicOpsEndInd); in ParseInstruction()
7392 fixupGNULDRDAlias(Mnemonic, Operands, MnemonicOpsEndInd); in ParseInstruction()
7402 if (!isThumb() && Operands.size() > MnemonicOpsEndInd + 1 + (!IsLoad) && in ParseInstruction()
7406 ARMOperand &Op1 = static_cast<ARMOperand &>(*Operands[Idx]); in ParseInstruction()
7407 ARMOperand &Op2 = static_cast<ARMOperand &>(*Operands[Idx + 1]); in ParseInstruction()
7431 Operands[Idx] = ARMOperand::CreateReg(NewReg, Op1.getStartLoc(), in ParseInstruction()
7433 Operands.erase(Operands.begin() + Idx + 1); in ParseInstruction()
7443 Operands.size() == MnemonicOpsEndInd + 3 && in ParseInstruction()
7444 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd]).isReg() && in ParseInstruction()
7445 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd]).getReg() == in ParseInstruction()
7447 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]).isReg() && in ParseInstruction()
7448 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]).getReg() == in ParseInstruction()
7450 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 2]).isImm()) { in ParseInstruction()
7451 Operands.front() = ARMOperand::CreateToken(Name, NameLoc, *this); in ParseInstruction()
7452 removeCCOut(Operands, MnemonicOpsEndInd); in ParseInstruction()
7497 unsigned getRegListInd(const OperandVector &Operands, in getRegListInd() argument
7499 for (unsigned I = MnemonicOpsEndInd; I < Operands.size(); ++I) { in getRegListInd()
7500 const ARMOperand &Op = static_cast<const ARMOperand &>(*Operands[I]); in getRegListInd()
7509 const OperandVector &Operands, in validatetLDMRegList() argument
7518 Operands[getRegListInd(Operands, MnemonicOpsEndInd)]->getStartLoc(), in validatetLDMRegList()
7522 Operands[getRegListInd(Operands, MnemonicOpsEndInd)]->getStartLoc(), in validatetLDMRegList()
7528 const OperandVector &Operands, in validatetSTMRegList() argument
7536 Operands[getRegListInd(Operands, MnemonicOpsEndInd)]->getStartLoc(), in validatetSTMRegList()
7540 Operands[getRegListInd(Operands, MnemonicOpsEndInd)]->getStartLoc(), in validatetSTMRegList()
7544 Operands[getRegListInd(Operands, MnemonicOpsEndInd)]->getStartLoc(), in validatetSTMRegList()
7549 bool ARMAsmParser::validateLDRDSTRD(MCInst &Inst, const OperandVector &Operands, in validateLDRDSTRD() argument
7559 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateLDRDSTRD()
7564 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateLDRDSTRD()
7570 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateLDRDSTRD()
7573 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateLDRDSTRD()
7583 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateLDRDSTRD()
7592 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateLDRDSTRD()
7596 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateLDRDSTRD()
7634 const OperandVector &Operands, in validateInstruction() argument
7637 SMLoc Loc = Operands[0]->getStartLoc(); in validateInstruction()
7650 SMLoc CondLoc = Operands[0]->getEndLoc(); in validateInstruction()
7651 for (unsigned I = 1; I < Operands.size(); ++I) in validateInstruction()
7652 if (static_cast<ARMOperand &>(*Operands[I]).isCondCode()) in validateInstruction()
7653 CondLoc = Operands[I]->getStartLoc(); in validateInstruction()
7698 for (unsigned I = 1; I < Operands.size(); ++I) in validateInstruction()
7699 if (static_cast<ARMOperand &>(*Operands[I]).isVPTPred()) in validateInstruction()
7700 PredLoc = Operands[I]->getStartLoc(); in validateInstruction()
7720 if (Operands.size() == in validateInstruction()
7723 *Operands[MnemonicOpsEndInd + 1]); // the register list, a dpr_reglist in validateInstruction()
7757 if (validateLDRDSTRD(Inst, Operands, /*Load*/ true, /*ARMMode*/ true, in validateInstruction()
7763 if (validateLDRDSTRD(Inst, Operands, /*Load*/ true, /*ARMMode*/ true, in validateInstruction()
7768 if (validateLDRDSTRD(Inst, Operands, /*Load*/ true, /*ARMMode*/ false, in validateInstruction()
7774 if (validateLDRDSTRD(Inst, Operands, /*Load*/ true, /*ARMMode*/ false, in validateInstruction()
7782 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
7787 if (validateLDRDSTRD(Inst, Operands, /*Load*/ false, /*ARMMode*/ true, in validateInstruction()
7793 if (validateLDRDSTRD(Inst, Operands, /*Load*/ false, /*ARMMode*/ true, in validateInstruction()
7799 if (validateLDRDSTRD(Inst, Operands, /*Load*/ false, /*ARMMode*/ false, in validateInstruction()
7824 return Error(Operands[MnemonicOpsEndInd + 1]->getStartLoc(), in validateInstruction()
7837 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
7843 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
7849 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
7868 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
7874 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
7878 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
7896 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
7902 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
7906 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
7919 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
7924 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
7928 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
7941 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
7946 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
7950 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
7985 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8029 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8045 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
8059 (static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]) in validateInstruction()
8061 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]) in validateInstruction()
8067 Operands[getRegListInd(Operands, MnemonicOpsEndInd)]->getStartLoc(), in validateInstruction()
8072 Operands[getRegListInd(Operands, MnemonicOpsEndInd)]->getStartLoc(), in validateInstruction()
8077 return Error(Operands[MnemonicOpsEndInd + 1]->getStartLoc(), in validateInstruction()
8081 if (validatetLDMRegList(Inst, Operands, MnemonicOpsEndInd, 3)) in validateInstruction()
8094 return Error(Operands.back()->getStartLoc(), in validateInstruction()
8099 if (validatetLDMRegList(Inst, Operands, MnemonicOpsEndInd, 3)) in validateInstruction()
8104 if (validatetSTMRegList(Inst, Operands, MnemonicOpsEndInd, 3)) in validateInstruction()
8112 return Error(Operands.back()->getStartLoc(), in validateInstruction()
8116 if (validatetLDMRegList(Inst, Operands, MnemonicOpsEndInd, 3)) in validateInstruction()
8119 if (validatetSTMRegList(Inst, Operands, MnemonicOpsEndInd, 3)) in validateInstruction()
8129 return Error(Operands[MnemonicOpsEndInd + 1]->getStartLoc(), in validateInstruction()
8137 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8146 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8148 if (validatetLDMRegList(Inst, Operands, MnemonicOpsEndInd, 2, !isMClass())) in validateInstruction()
8156 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8158 if (validatetSTMRegList(Inst, Operands, MnemonicOpsEndInd, 2)) in validateInstruction()
8167 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
8173 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8177 if (validatetSTMRegList(Inst, Operands, MnemonicOpsEndInd, 4)) in validateInstruction()
8186 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
8197 return Error(Operands[MnemonicOpsEndInd + 1]->getStartLoc(), in validateInstruction()
8203 if (!(static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd])) in validateInstruction()
8205 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8209 int op = (Operands[MnemonicOpsEndInd]->isImm()) ? MnemonicOpsEndInd in validateInstruction()
8211 ARMOperand &Operand = static_cast<ARMOperand &>(*Operands[op]); in validateInstruction()
8215 return Error(Operands[op]->getStartLoc(), "branch target out of range"); in validateInstruction()
8220 if (!static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd]) in validateInstruction()
8222 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8226 int Op = (Operands[MnemonicOpsEndInd]->isImm()) ? MnemonicOpsEndInd in validateInstruction()
8228 if (!static_cast<ARMOperand &>(*Operands[Op]).isSignedOffset<20, 1>()) in validateInstruction()
8229 return Error(Operands[Op]->getStartLoc(), "branch target out of range"); in validateInstruction()
8234 if (!static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]) in validateInstruction()
8236 return Error(Operands[MnemonicOpsEndInd + 1]->getStartLoc(), in validateInstruction()
8251 int i = (Operands[MnemonicOpsEndInd]->isImm()) ? MnemonicOpsEndInd in validateInstruction()
8253 ARMOperand &Op = static_cast<ARMOperand &>(*Operands[i]); in validateInstruction()
8267 MCParsedAsmOperand &Op = *Operands[MnemonicOpsEndInd + 1]; in validateInstruction()
8275 MCParsedAsmOperand &Op = *Operands[MnemonicOpsEndInd]; in validateInstruction()
8289 return Error(Operands[1]->getStartLoc(), "instruction 'esb' is not " in validateInstruction()
8293 return Error(Operands[1]->getStartLoc(), "instruction 'csdb' is not " in validateInstruction()
8302 if (!static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd]) in validateInstruction()
8305 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8310 if (!static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]) in validateInstruction()
8312 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8315 if (!static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]) in validateInstruction()
8317 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8323 if (!static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd]) in validateInstruction()
8326 return Error(Operands[1]->getStartLoc(), in validateInstruction()
8329 if (!static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]) in validateInstruction()
8331 return Error(Operands[MnemonicOpsEndInd + 1]->getStartLoc(), in validateInstruction()
8342 Operands[3]->getStartLoc(), in validateInstruction()
8352 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8370 return Error(Operands[1]->getStartLoc(), in validateInstruction()
8374 return Error(Operands[1]->getStartLoc(), in validateInstruction()
8384 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
8393 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8400 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]); in validateInstruction()
8403 return Error(Operands[MnemonicOpsEndInd + 1]->getStartLoc(), in validateInstruction()
8414 if (Operands[MnemonicOpsEndInd]->getReg() == in validateInstruction()
8415 Operands[MnemonicOpsEndInd + 1]->getReg()) { in validateInstruction()
8416 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8419 if (Operands[MnemonicOpsEndInd]->getReg() == in validateInstruction()
8420 Operands[MnemonicOpsEndInd + 2]->getReg()) { in validateInstruction()
8421 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8431 if (Operands[MnemonicOpsEndInd]->getReg() == in validateInstruction()
8432 Operands[MnemonicOpsEndInd + 1]->getReg()) { in validateInstruction()
8433 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8441 if (Operands[MnemonicOpsEndInd]->getReg() == in validateInstruction()
8442 Operands[MnemonicOpsEndInd + 2]->getReg()) { in validateInstruction()
8443 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8449 if (Operands[MnemonicOpsEndInd + 2]->getReg() != in validateInstruction()
8450 Operands[MnemonicOpsEndInd + 4]->getReg()) in validateInstruction()
8451 return Error(Operands[MnemonicOpsEndInd + 2]->getStartLoc(), in validateInstruction()
8453 if (static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 3]) in validateInstruction()
8455 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 5]) in validateInstruction()
8458 return Error(Operands[MnemonicOpsEndInd + 3]->getStartLoc(), in validateInstruction()
8463 if (Operands[MnemonicOpsEndInd]->getReg() != in validateInstruction()
8464 Operands[MnemonicOpsEndInd + 2]->getReg()) in validateInstruction()
8465 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8467 if (static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]) in validateInstruction()
8469 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 3]) in validateInstruction()
8472 return Error(Operands[MnemonicOpsEndInd + 1]->getStartLoc(), in validateInstruction()
8478 if (Operands[MnemonicOpsEndInd]->getReg() == in validateInstruction()
8479 Operands[MnemonicOpsEndInd + 1]->getReg()) { in validateInstruction()
8480 return Error(Operands[MnemonicOpsEndInd]->getStartLoc(), in validateInstruction()
8554 return Error(Operands[1]->getStartLoc(), in validateInstruction()
8557 return Error(Operands[1]->getStartLoc(), in validateInstruction()
8617 return Error(Operands[2]->getStartLoc(), in validateInstruction()
8883 const OperandVector &Operands, in processInstruction() argument
8889 for (auto &Op : Operands) { in processInstruction()
8902 if (Operands.size() == in processInstruction()
8905 *Operands[MnemonicOpsEndInd + 1]); // the register list, a dpr_reglist in processInstruction()
9232 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]); in processInstruction()
10594 if (static_cast<ARMOperand &>(*Operands[0]).getToken() == "pop" && in processInstruction()
10612 if (static_cast<ARMOperand &>(*Operands[0]).getToken() == "push" && in processInstruction()
10631 const StringRef Token = static_cast<ARMOperand &>(*Operands[0]).getToken(); in processInstruction()
10660 Operands.size() == MnemonicOpsEndInd + 3) { in processInstruction()
10671 Operands.size() == MnemonicOpsEndInd + 3) { in processInstruction()
10791 (static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]) in processInstruction()
10793 static_cast<ARMOperand &>(*Operands[MnemonicOpsEndInd + 1]) in processInstruction()
11095 const OperandVector &Operands) { in checkEarlyTargetMatchPredicate() argument
11101 if (Operands[0]->isToken() && in checkEarlyTargetMatchPredicate()
11102 static_cast<ARMOperand &>(*Operands[0]).getToken() == "nop" && in checkEarlyTargetMatchPredicate()
11265 unsigned ARMAsmParser::MatchInstruction(OperandVector &Operands, MCInst &Inst, in MatchInstruction() argument
11272 return MatchInstructionImpl(Operands, Inst, &NearMisses, MatchingInlineAsm); in MatchInstruction()
11278 if (MatchInstructionImpl(Operands, Inst, nullptr, MatchingInlineAsm) == in MatchInstruction()
11304 MatchInstructionImpl(Operands, Inst, &NearMisses, MatchingInlineAsm); in MatchInstruction()
11331 if (MatchInstructionImpl(Operands, Inst, nullptr, MatchingInlineAsm) == in MatchInstruction()
11355 OperandVector &Operands, in MatchAndEmitInstruction() argument
11363 MatchResult = MatchInstruction(Operands, Inst, NearMisses, MatchingInlineAsm, in MatchAndEmitInstruction()
11367 unsigned MnemonicOpsEndInd = getMnemonicOpsEndInd(Operands); in MatchAndEmitInstruction()
11377 if (validateInstruction(Inst, Operands, MnemonicOpsEndInd)) { in MatchAndEmitInstruction()
11390 while (processInstruction(Inst, Operands, MnemonicOpsEndInd, Out)) in MatchAndEmitInstruction()
11417 ReportNearMisses(NearMisses, IDLoc, Operands); in MatchAndEmitInstruction()
11422 ((ARMOperand &)*Operands[0]).getToken(), FBS); in MatchAndEmitInstruction()
11424 ((ARMOperand &)*Operands[0]).getLocRange()); in MatchAndEmitInstruction()
12167 SmallVector<std::unique_ptr<MCParsedAsmOperand>, 1> Operands; in parseDirectiveRegSave() local
12170 if (parseRegisterList(Operands, true, true) || parseEOL()) in parseDirectiveRegSave()
12172 ARMOperand &Op = (ARMOperand &)*Operands[0]; in parseDirectiveRegSave()
12516 SmallVector<std::unique_ptr<MCParsedAsmOperand>, 1> Operands; in parseDirectiveSEHSaveRegs() local
12518 if (parseRegisterList(Operands) || parseEOL()) in parseDirectiveSEHSaveRegs()
12520 ARMOperand &Op = (ARMOperand &)*Operands[0]; in parseDirectiveSEHSaveRegs()
12558 SmallVector<std::unique_ptr<MCParsedAsmOperand>, 1> Operands; in parseDirectiveSEHSaveFRegs() local
12560 if (parseRegisterList(Operands) || parseEOL()) in parseDirectiveSEHSaveFRegs()
12562 ARMOperand &Op = (ARMOperand &)*Operands[0]; in parseDirectiveSEHSaveFRegs()
12714 SMLoc IDLoc, OperandVector &Operands) { in FilterNearMisses() argument
12731 unsigned MnemonicOpsEndInd = getMnemonicOpsEndInd(Operands); in FilterNearMisses()
12739 ((ARMOperand &)*Operands[I.getOperandIndex()]).getStartLoc(); in FilterNearMisses()
12842 ARMOperand &Op = static_cast<ARMOperand &>(*Operands[0]); in FilterNearMisses()
12845 Message.Loc = Operands[MnemonicOpsEndInd]->getStartLoc(); in FilterNearMisses()
12863 SMLoc EndLoc = ((ARMOperand &)*Operands.back()).getEndLoc(); in FilterNearMisses()
12879 SMLoc IDLoc, OperandVector &Operands) { in ReportNearMisses() argument
12881 FilterNearMisses(NearMisses, Messages, IDLoc, Operands); in ReportNearMisses()