• Home
  • Raw
  • Download

Lines Matching refs:Mnemonic

202   bool parseOperand(OperandVector &, StringRef Mnemonic);
238 StringRef splitMnemonic(StringRef Mnemonic, unsigned &PredicationCode,
241 void getMnemonicAcceptInfo(StringRef Mnemonic, StringRef FullInst,
245 void tryConvertingToTwoOperandForm(StringRef Mnemonic, bool CarrySetting,
356 bool shouldOmitCCOutOperand(StringRef Mnemonic, OperandVector &Operands);
357 bool shouldOmitPredicateOperand(StringRef Mnemonic, OperandVector &Operands);
5117 ARMOperand &Mnemonic = static_cast<ARMOperand &>(*Operands[0]); in parseFPImm() local
5118 bool isFconst = Mnemonic.isToken() && (Mnemonic.getToken() == "fconstd" || in parseFPImm()
5119 Mnemonic.getToken() == "fconsts"); in parseFPImm()
5168 bool ARMAsmParser::parseOperand(OperandVector &Operands, StringRef Mnemonic) { in parseOperand() argument
5174 OperandMatchResultTy ResTy = MatchOperandParserImpl(Operands, Mnemonic); in parseOperand()
5191 bool ExpectLabel = Mnemonic == "b" || Mnemonic == "bl"; in parseOperand()
5201 if (Mnemonic == "vmrs" && in parseOperand()
5285 if (Mnemonic != "ldr") // only parse for ldr pseudo (e.g. ldr r0, =val) in parseOperand()
5379 StringRef ARMAsmParser::splitMnemonic(StringRef Mnemonic, in splitMnemonic() argument
5391 if ((Mnemonic == "movs" && isThumb()) || in splitMnemonic()
5392 Mnemonic == "teq" || Mnemonic == "vceq" || Mnemonic == "svc" || in splitMnemonic()
5393 Mnemonic == "mls" || Mnemonic == "smmls" || Mnemonic == "vcls" || in splitMnemonic()
5394 Mnemonic == "vmls" || Mnemonic == "vnmls" || Mnemonic == "vacge" || in splitMnemonic()
5395 Mnemonic == "vcge" || Mnemonic == "vclt" || Mnemonic == "vacgt" || in splitMnemonic()
5396 Mnemonic == "vaclt" || Mnemonic == "vacle" || Mnemonic == "hlt" || in splitMnemonic()
5397 Mnemonic == "vcgt" || Mnemonic == "vcle" || Mnemonic == "smlal" || in splitMnemonic()
5398 Mnemonic == "umaal" || Mnemonic == "umlal" || Mnemonic == "vabal" || in splitMnemonic()
5399 Mnemonic == "vmlal" || Mnemonic == "vpadal" || Mnemonic == "vqdmlal" || in splitMnemonic()
5400 Mnemonic == "fmuls" || Mnemonic == "vmaxnm" || Mnemonic == "vminnm" || in splitMnemonic()
5401 Mnemonic == "vcvta" || Mnemonic == "vcvtn" || Mnemonic == "vcvtp" || in splitMnemonic()
5402 Mnemonic == "vcvtm" || Mnemonic == "vrinta" || Mnemonic == "vrintn" || in splitMnemonic()
5403 Mnemonic == "vrintp" || Mnemonic == "vrintm" || Mnemonic == "hvc" || in splitMnemonic()
5404 Mnemonic.startswith("vsel") || Mnemonic == "vins" || Mnemonic == "vmovx" || in splitMnemonic()
5405 Mnemonic == "bxns" || Mnemonic == "blxns") in splitMnemonic()
5406 return Mnemonic; in splitMnemonic()
5410 if (Mnemonic != "adcs" && Mnemonic != "bics" && Mnemonic != "movs" && in splitMnemonic()
5411 Mnemonic != "muls" && Mnemonic != "smlals" && Mnemonic != "smulls" && in splitMnemonic()
5412 Mnemonic != "umlals" && Mnemonic != "umulls" && Mnemonic != "lsls" && in splitMnemonic()
5413 Mnemonic != "sbcs" && Mnemonic != "rscs") { in splitMnemonic()
5414 unsigned CC = StringSwitch<unsigned>(Mnemonic.substr(Mnemonic.size()-2)) in splitMnemonic()
5434 Mnemonic = Mnemonic.slice(0, Mnemonic.size() - 2); in splitMnemonic()
5441 if (Mnemonic.endswith("s") && in splitMnemonic()
5442 !(Mnemonic == "cps" || Mnemonic == "mls" || in splitMnemonic()
5443 Mnemonic == "mrs" || Mnemonic == "smmls" || Mnemonic == "vabs" || in splitMnemonic()
5444 Mnemonic == "vcls" || Mnemonic == "vmls" || Mnemonic == "vmrs" || in splitMnemonic()
5445 Mnemonic == "vnmls" || Mnemonic == "vqabs" || Mnemonic == "vrecps" || in splitMnemonic()
5446 Mnemonic == "vrsqrts" || Mnemonic == "srs" || Mnemonic == "flds" || in splitMnemonic()
5447 Mnemonic == "fmrs" || Mnemonic == "fsqrts" || Mnemonic == "fsubs" || in splitMnemonic()
5448 Mnemonic == "fsts" || Mnemonic == "fcpys" || Mnemonic == "fdivs" || in splitMnemonic()
5449 Mnemonic == "fmuls" || Mnemonic == "fcmps" || Mnemonic == "fcmpzs" || in splitMnemonic()
5450 Mnemonic == "vfms" || Mnemonic == "vfnms" || Mnemonic == "fconsts" || in splitMnemonic()
5451 Mnemonic == "bxns" || Mnemonic == "blxns" || in splitMnemonic()
5452 (Mnemonic == "movs" && isThumb()))) { in splitMnemonic()
5453 Mnemonic = Mnemonic.slice(0, Mnemonic.size() - 1); in splitMnemonic()
5459 if (Mnemonic.startswith("cps")) { in splitMnemonic()
5462 StringSwitch<unsigned>(Mnemonic.substr(Mnemonic.size()-2, 2)) in splitMnemonic()
5467 Mnemonic = Mnemonic.slice(0, Mnemonic.size()-2); in splitMnemonic()
5473 if (Mnemonic.startswith("it")) { in splitMnemonic()
5474 ITMask = Mnemonic.slice(2, Mnemonic.size()); in splitMnemonic()
5475 Mnemonic = Mnemonic.slice(0, 2); in splitMnemonic()
5478 return Mnemonic; in splitMnemonic()
5485 void ARMAsmParser::getMnemonicAcceptInfo(StringRef Mnemonic, StringRef FullInst, in getMnemonicAcceptInfo() argument
5489 Mnemonic == "and" || Mnemonic == "lsl" || Mnemonic == "lsr" || in getMnemonicAcceptInfo()
5490 Mnemonic == "rrx" || Mnemonic == "ror" || Mnemonic == "sub" || in getMnemonicAcceptInfo()
5491 Mnemonic == "add" || Mnemonic == "adc" || Mnemonic == "mul" || in getMnemonicAcceptInfo()
5492 Mnemonic == "bic" || Mnemonic == "asr" || Mnemonic == "orr" || in getMnemonicAcceptInfo()
5493 Mnemonic == "mvn" || Mnemonic == "rsb" || Mnemonic == "rsc" || in getMnemonicAcceptInfo()
5494 Mnemonic == "orn" || Mnemonic == "sbc" || Mnemonic == "eor" || in getMnemonicAcceptInfo()
5495 Mnemonic == "neg" || Mnemonic == "vfm" || Mnemonic == "vfnm" || in getMnemonicAcceptInfo()
5497 (Mnemonic == "smull" || Mnemonic == "mov" || Mnemonic == "mla" || in getMnemonicAcceptInfo()
5498 Mnemonic == "smlal" || Mnemonic == "umlal" || Mnemonic == "umull")); in getMnemonicAcceptInfo()
5500 if (Mnemonic == "bkpt" || Mnemonic == "cbnz" || Mnemonic == "setend" || in getMnemonicAcceptInfo()
5501 Mnemonic == "cps" || Mnemonic == "it" || Mnemonic == "cbz" || in getMnemonicAcceptInfo()
5502 Mnemonic == "trap" || Mnemonic == "hlt" || Mnemonic == "udf" || in getMnemonicAcceptInfo()
5503 Mnemonic.startswith("crc32") || Mnemonic.startswith("cps") || in getMnemonicAcceptInfo()
5504 Mnemonic.startswith("vsel") || Mnemonic == "vmaxnm" || in getMnemonicAcceptInfo()
5505 Mnemonic == "vminnm" || Mnemonic == "vcvta" || Mnemonic == "vcvtn" || in getMnemonicAcceptInfo()
5506 Mnemonic == "vcvtp" || Mnemonic == "vcvtm" || Mnemonic == "vrinta" || in getMnemonicAcceptInfo()
5507 Mnemonic == "vrintn" || Mnemonic == "vrintp" || Mnemonic == "vrintm" || in getMnemonicAcceptInfo()
5508 Mnemonic.startswith("aes") || Mnemonic == "hvc" || Mnemonic == "setpan" || in getMnemonicAcceptInfo()
5509 Mnemonic.startswith("sha1") || Mnemonic.startswith("sha256") || in getMnemonicAcceptInfo()
5511 Mnemonic == "vmovx" || Mnemonic == "vins") { in getMnemonicAcceptInfo()
5517 Mnemonic != "cdp2" && Mnemonic != "clrex" && Mnemonic != "mcr2" && in getMnemonicAcceptInfo()
5518 Mnemonic != "mcrr2" && Mnemonic != "mrc2" && Mnemonic != "mrrc2" && in getMnemonicAcceptInfo()
5519 Mnemonic != "dmb" && Mnemonic != "dsb" && Mnemonic != "isb" && in getMnemonicAcceptInfo()
5520 Mnemonic != "pld" && Mnemonic != "pli" && Mnemonic != "pldw" && in getMnemonicAcceptInfo()
5521 Mnemonic != "ldc2" && Mnemonic != "ldc2l" && Mnemonic != "stc2" && in getMnemonicAcceptInfo()
5522 Mnemonic != "stc2l" && !Mnemonic.startswith("rfe") && in getMnemonicAcceptInfo()
5523 !Mnemonic.startswith("srs"); in getMnemonicAcceptInfo()
5526 CanAcceptPredicationCode = Mnemonic != "movs"; in getMnemonicAcceptInfo()
5528 CanAcceptPredicationCode = Mnemonic != "nop" && Mnemonic != "movs"; in getMnemonicAcceptInfo()
5537 void ARMAsmParser::tryConvertingToTwoOperandForm(StringRef Mnemonic, in tryConvertingToTwoOperandForm() argument
5557 if (Mnemonic != "add") in tryConvertingToTwoOperandForm()
5572 if (!(Mnemonic == "add" || Mnemonic == "sub" || Mnemonic == "and" || in tryConvertingToTwoOperandForm()
5573 Mnemonic == "eor" || Mnemonic == "lsl" || Mnemonic == "lsr" || in tryConvertingToTwoOperandForm()
5574 Mnemonic == "asr" || Mnemonic == "adc" || Mnemonic == "sbc" || in tryConvertingToTwoOperandForm()
5575 Mnemonic == "ror" || Mnemonic == "orr" || Mnemonic == "bic")) in tryConvertingToTwoOperandForm()
5589 ((Mnemonic == "add" && Op4Reg != ARM::SP) || in tryConvertingToTwoOperandForm()
5590 Mnemonic == "and" || Mnemonic == "eor" || in tryConvertingToTwoOperandForm()
5591 Mnemonic == "adc" || Mnemonic == "orr")) { in tryConvertingToTwoOperandForm()
5602 if (((Mnemonic == "add" && CarrySetting) || Mnemonic == "sub") && in tryConvertingToTwoOperandForm()
5608 if ((Mnemonic == "add" || Mnemonic == "sub") && LastOp->isImm0_7()) in tryConvertingToTwoOperandForm()
5619 bool ARMAsmParser::shouldOmitCCOutOperand(StringRef Mnemonic, in shouldOmitCCOutOperand() argument
5632 if (Mnemonic == "mov" && Operands.size() > 4 && !isThumb() && in shouldOmitCCOutOperand()
5640 if (isThumb() && Mnemonic == "add" && Operands.size() == 5 && in shouldOmitCCOutOperand()
5649 if (((isThumb() && Mnemonic == "add") || in shouldOmitCCOutOperand()
5650 (isThumbTwo() && Mnemonic == "sub")) && in shouldOmitCCOutOperand()
5655 ((Mnemonic == "add" && static_cast<ARMOperand &>(*Operands[5]).isReg()) || in shouldOmitCCOutOperand()
5663 if (isThumbTwo() && (Mnemonic == "add" || Mnemonic == "sub") && in shouldOmitCCOutOperand()
5690 if (isThumbTwo() && Mnemonic == "mul" && Operands.size() == 6 && in shouldOmitCCOutOperand()
5710 if (isThumbTwo() && Mnemonic == "mul" && Operands.size() == 5 && in shouldOmitCCOutOperand()
5729 if (isThumb() && (Mnemonic == "add" || Mnemonic == "sub") && in shouldOmitCCOutOperand()
5742 bool ARMAsmParser::shouldOmitPredicateOperand(StringRef Mnemonic, in shouldOmitPredicateOperand() argument
5746 if ((Mnemonic == "vrintz" || Mnemonic == "vrintx" || Mnemonic == "vrintr") && in shouldOmitPredicateOperand()
5776 static bool doesIgnoreDataTypeSuffix(StringRef Mnemonic, StringRef DT) { in doesIgnoreDataTypeSuffix() argument
5777 return Mnemonic.startswith("vldm") || Mnemonic.startswith("vstm"); in doesIgnoreDataTypeSuffix()
5779 static void applyMnemonicAliases(StringRef &Mnemonic, uint64_t Features,
5833 StringRef Mnemonic = Name.slice(Start, Next); in ParseInstruction() local
5840 Mnemonic = splitMnemonic(Mnemonic, PredicationCode, CarrySetting, in ParseInstruction()
5844 if (isThumbOne() && PredicationCode != ARMCC::AL && Mnemonic != "b") { in ParseInstruction()
5849 Operands.push_back(ARMOperand::CreateToken(Mnemonic, NameLoc)); in ParseInstruction()
5856 if (Mnemonic == "it") { in ParseInstruction()
5887 getMnemonicAcceptInfo(Mnemonic, Name, CanAcceptCarrySet, CanAcceptPredicationCode); in ParseInstruction()
5893 return Error(NameLoc, "instruction '" + Mnemonic + in ParseInstruction()
5900 return Error(NameLoc, "instruction '" + Mnemonic + in ParseInstruction()
5906 SMLoc Loc = SMLoc::getFromPointer(NameLoc.getPointer() + Mnemonic.size()); in ParseInstruction()
5913 SMLoc Loc = SMLoc::getFromPointer(NameLoc.getPointer() + Mnemonic.size() + in ParseInstruction()
5924 } else if (Mnemonic == "cps" && isMClass()) { in ParseInstruction()
5937 doesIgnoreDataTypeSuffix(Mnemonic, ExtraToken)) in ParseInstruction()
5960 if (parseOperand(Operands, Mnemonic)) { in ParseInstruction()
5969 if (parseOperand(Operands, Mnemonic)) { in ParseInstruction()
5994 tryConvertingToTwoOperandForm(Mnemonic, CarrySetting, Operands); in ParseInstruction()
6003 if (!CarrySetting && shouldOmitCCOutOperand(Mnemonic, Operands)) in ParseInstruction()
6009 if (shouldOmitPredicateOperand(Mnemonic, Operands)) in ParseInstruction()
6017 if (!isThumb() && Mnemonic == "blx" && Operands.size() == 3 && in ParseInstruction()
6028 (Mnemonic == "ldrexd" || Mnemonic == "strexd" || Mnemonic == "ldaexd" || in ParseInstruction()
6029 Mnemonic == "stlexd")) { in ParseInstruction()
6030 bool isLoad = (Mnemonic == "ldrexd" || Mnemonic == "ldaexd"); in ParseInstruction()
6060 if ((Mnemonic == "ldrd" || Mnemonic == "strd")) { in ParseInstruction()
6084 if (isThumbTwo() && Mnemonic == "sub" && Operands.size() == 6 && in ParseInstruction()