Lines Matching defs:Mnemonic

116   bool parseOperand(SmallVectorImpl<MCParsedAsmOperand*> &, StringRef Mnemonic);
139 StringRef splitMnemonic(StringRef Mnemonic, unsigned &PredicationCode,
142 void getMnemonicAcceptInfo(StringRef Mnemonic, bool &CanAcceptCarrySet,
228 bool shouldOmitCCOutOperand(StringRef Mnemonic,
230 bool shouldOmitPredicateOperand(StringRef Mnemonic,
4433 StringRef Mnemonic) {
4438 OperandMatchResultTy ResTy = MatchOperandParserImpl(Operands, Mnemonic);
4455 bool ExpectLabel = Mnemonic == "b" || Mnemonic == "bl";
4465 if (Mnemonic == "vmrs" &&
4587 StringRef ARMAsmParser::splitMnemonic(StringRef Mnemonic,
4599 if ((Mnemonic == "movs" && isThumb()) ||
4600 Mnemonic == "teq" || Mnemonic == "vceq" || Mnemonic == "svc" ||
4601 Mnemonic == "mls" || Mnemonic == "smmls" || Mnemonic == "vcls" ||
4602 Mnemonic == "vmls" || Mnemonic == "vnmls" || Mnemonic == "vacge" ||
4603 Mnemonic == "vcge" || Mnemonic == "vclt" || Mnemonic == "vacgt" ||
4604 Mnemonic == "vaclt" || Mnemonic == "vacle" ||
4605 Mnemonic == "vcgt" || Mnemonic == "vcle" || Mnemonic == "smlal" ||
4606 Mnemonic == "umaal" || Mnemonic == "umlal" || Mnemonic == "vabal" ||
4607 Mnemonic == "vmlal" || Mnemonic == "vpadal" || Mnemonic == "vqdmlal" ||
4608 Mnemonic == "fmuls" || Mnemonic == "vmaxnm" || Mnemonic == "vminnm" ||
4609 Mnemonic == "vcvta" || Mnemonic == "vcvtn" || Mnemonic == "vcvtp" ||
4610 Mnemonic == "vcvtm" || Mnemonic == "vrinta" || Mnemonic == "vrintn" ||
4611 Mnemonic == "vrintp" || Mnemonic == "vrintm" || Mnemonic.startswith("vsel"))
4612 return Mnemonic;
4616 if (Mnemonic != "adcs" && Mnemonic != "bics" && Mnemonic != "movs" &&
4617 Mnemonic != "muls" && Mnemonic != "smlals" && Mnemonic != "smulls" &&
4618 Mnemonic != "umlals" && Mnemonic != "umulls" && Mnemonic != "lsls" &&
4619 Mnemonic != "sbcs" && Mnemonic != "rscs") {
4620 unsigned CC = StringSwitch<unsigned>(Mnemonic.substr(Mnemonic.size()-2))
4640 Mnemonic = Mnemonic.slice(0, Mnemonic.size() - 2);
4647 if (Mnemonic.endswith("s") &&
4648 !(Mnemonic == "cps" || Mnemonic == "mls" ||
4649 Mnemonic == "mrs" || Mnemonic == "smmls" || Mnemonic == "vabs" ||
4650 Mnemonic == "vcls" || Mnemonic == "vmls" || Mnemonic == "vmrs" ||
4651 Mnemonic == "vnmls" || Mnemonic == "vqabs" || Mnemonic == "vrecps" ||
4652 Mnemonic == "vrsqrts" || Mnemonic == "srs" || Mnemonic == "flds" ||
4653 Mnemonic == "fmrs" || Mnemonic == "fsqrts" || Mnemonic == "fsubs" ||
4654 Mnemonic == "fsts" || Mnemonic == "fcpys" || Mnemonic == "fdivs" ||
4655 Mnemonic == "fmuls" || Mnemonic == "fcmps" || Mnemonic == "fcmpzs" ||
4656 Mnemonic == "vfms" || Mnemonic == "vfnms" ||
4657 (Mnemonic == "movs" && isThumb()))) {
4658 Mnemonic = Mnemonic.slice(0, Mnemonic.size() - 1);
4664 if (Mnemonic.startswith("cps")) {
4667 StringSwitch<unsigned>(Mnemonic.substr(Mnemonic.size()-2, 2))
4672 Mnemonic = Mnemonic.slice(0, Mnemonic.size()-2);
4678 if (Mnemonic.startswith("it")) {
4679 ITMask = Mnemonic.slice(2, Mnemonic.size());
4680 Mnemonic = Mnemonic.slice(0, 2);
4683 return Mnemonic;
4691 getMnemonicAcceptInfo(StringRef Mnemonic, bool &CanAcceptCarrySet,
4693 if (Mnemonic == "and" || Mnemonic == "lsl" || Mnemonic == "lsr" ||
4694 Mnemonic == "rrx" || Mnemonic == "ror" || Mnemonic == "sub" ||
4695 Mnemonic == "add" || Mnemonic == "adc" ||
4696 Mnemonic == "mul" || Mnemonic == "bic" || Mnemonic == "asr" ||
4697 Mnemonic == "orr" || Mnemonic == "mvn" ||
4698 Mnemonic == "rsb" || Mnemonic == "rsc" || Mnemonic == "orn" ||
4699 Mnemonic == "sbc" || Mnemonic == "eor" || Mnemonic == "neg" ||
4700 Mnemonic == "vfm" || Mnemonic == "vfnm" ||
4701 (!isThumb() && (Mnemonic == "smull" || Mnemonic == "mov" ||
4702 Mnemonic == "mla" || Mnemonic == "smlal" ||
4703 Mnemonic == "umlal" || Mnemonic == "umull"))) {
4708 if (Mnemonic == "bkpt" || Mnemonic == "cbnz" || Mnemonic == "setend" ||
4709 Mnemonic == "cps" || Mnemonic == "it" || Mnemonic == "cbz" ||
4710 Mnemonic == "trap" || Mnemonic == "setend" ||
4711 Mnemonic.startswith("cps") || Mnemonic.startswith("vsel") ||
4712 Mnemonic == "vmaxnm" || Mnemonic == "vminnm" || Mnemonic == "vcvta" ||
4713 Mnemonic == "vcvtn" || Mnemonic == "vcvtp" || Mnemonic == "vcvtm" ||
4714 Mnemonic == "vrinta" || Mnemonic == "vrintn" || Mnemonic == "vrintp" ||
4715 Mnemonic == "vrintm") {
4721 = Mnemonic != "cdp2" && Mnemonic != "clrex" && Mnemonic != "mcr2" &&
4722 Mnemonic != "mcrr2" && Mnemonic != "mrc2" && Mnemonic != "mrrc2" &&
4723 Mnemonic != "dmb" && Mnemonic != "dsb" && Mnemonic != "isb" &&
4724 Mnemonic != "pld" && Mnemonic != "pli" && Mnemonic != "pldw" &&
4725 Mnemonic != "ldc2" && Mnemonic != "ldc2l" &&
4726 Mnemonic != "stc2" && Mnemonic != "stc2l" &&
4727 !Mnemonic.startswith("rfe") && !Mnemonic.startswith("srs");
4729 CanAcceptPredicationCode = Mnemonic != "nop" && Mnemonic != "movs";
4734 bool ARMAsmParser::shouldOmitCCOutOperand(StringRef Mnemonic,
4747 if (Mnemonic == "mov" && Operands.size() > 4 && !isThumb() &&
4755 if (isThumb() && Mnemonic == "add" && Operands.size() == 5 &&
4764 if (((isThumb() && Mnemonic == "add") ||
4765 (isThumbTwo() && Mnemonic == "sub")) &&
4771 ((Mnemonic == "add" &&static_cast<ARMOperand*>(Operands[5])->isReg()) ||
4779 if (isThumbTwo() && (Mnemonic == "add" || Mnemonic == "sub") &&
4807 if (isThumbTwo() && Mnemonic == "mul" && Operands.size() == 6 &&
4828 if (isThumbTwo() && Mnemonic == "mul" && Operands.size() == 5 &&
4847 if (isThumb() && (Mnemonic == "add" || Mnemonic == "sub") &&
4861 StringRef Mnemonic, SmallVectorImpl<MCParsedAsmOperand *> &Operands) {
4864 if ((Mnemonic == "vrintz" || Mnemonic == "vrintx" || Mnemonic == "vrintr") &&
4900 static bool doesIgnoreDataTypeSuffix(StringRef Mnemonic, StringRef DT) {
4901 return Mnemonic.startswith("vldm") || Mnemonic.startswith("vstm");
4903 static void applyMnemonicAliases(StringRef &Mnemonic, unsigned Features,
4929 StringRef Mnemonic = Name.slice(Start, Next);
4936 Mnemonic = splitMnemonic(Mnemonic, PredicationCode, CarrySetting,
4940 if (isThumbOne() && PredicationCode != ARMCC::AL && Mnemonic != "b") {
4945 Operands.push_back(ARMOperand::CreateToken(Mnemonic, NameLoc));
4952 if (Mnemonic == "it") {
4983 getMnemonicAcceptInfo(Mnemonic, CanAcceptCarrySet, CanAcceptPredicationCode);
4989 return Error(NameLoc, "instruction '" + Mnemonic +
4996 return Error(NameLoc, "instruction '" + Mnemonic +
5002 SMLoc Loc = SMLoc::getFromPointer(NameLoc.getPointer() + Mnemonic.size());
5009 SMLoc Loc = SMLoc::getFromPointer(NameLoc.getPointer() + Mnemonic.size() +
5031 doesIgnoreDataTypeSuffix(Mnemonic, ExtraToken))
5053 if (parseOperand(Operands, Mnemonic)) {
5062 if (parseOperand(Operands, Mnemonic)) {
5084 if (!CarrySetting && shouldOmitCCOutOperand(Mnemonic, Operands)) {
5093 if (shouldOmitPredicateOperand(Mnemonic, Operands)) {
5101 // on the Mnemonic based checking to correctly figure out when to put
5104 if (!isThumb() && Mnemonic == "blx" && Operands.size() == 3 &&
5118 (Mnemonic == "ldrexd" || Mnemonic == "strexd")) {
5119 bool isLoad = (Mnemonic == "ldrexd");
5153 // so the Mnemonic is the original name "subs" and delete the predicate
5155 if (isThumbTwo() && Mnemonic == "sub" && Operands.size() == 6 &&