Lines Matching defs:Mnemonic

88   bool parseOperand(SmallVectorImpl<MCParsedAsmOperand*> &, StringRef Mnemonic);
98 StringRef splitMnemonic(StringRef Mnemonic, unsigned &PredicationCode,
101 void getMnemonicAcceptInfo(StringRef Mnemonic, bool &CanAcceptCarrySet,
205 bool shouldOmitCCOutOperand(StringRef Mnemonic,
3375 StringRef Mnemonic) {
3380 OperandMatchResultTy ResTy = MatchOperandParserImpl(Operands, Mnemonic);
3402 if (Mnemonic == "vmrs" && Parser.getTok().getString() == "apsr_nzcv") {
3508 StringRef ARMAsmParser::splitMnemonic(StringRef Mnemonic,
3520 if ((Mnemonic == "movs" && isThumb()) ||
3521 Mnemonic == "teq" || Mnemonic == "vceq" || Mnemonic == "svc" ||
3522 Mnemonic == "mls" || Mnemonic == "smmls" || Mnemonic == "vcls" ||
3523 Mnemonic == "vmls" || Mnemonic == "vnmls" || Mnemonic == "vacge" ||
3524 Mnemonic == "vcge" || Mnemonic == "vclt" || Mnemonic == "vacgt" ||
3525 Mnemonic == "vcgt" || Mnemonic == "vcle" || Mnemonic == "smlal" ||
3526 Mnemonic == "umaal" || Mnemonic == "umlal" || Mnemonic == "vabal" ||
3527 Mnemonic == "vmlal" || Mnemonic == "vpadal" || Mnemonic == "vqdmlal")
3528 return Mnemonic;
3532 if (Mnemonic != "adcs" && Mnemonic != "bics" && Mnemonic != "movs" &&
3533 Mnemonic != "muls" && Mnemonic != "smlals" && Mnemonic != "smulls" &&
3534 Mnemonic != "umlals" && Mnemonic != "umulls" && Mnemonic != "lsls" &&
3535 Mnemonic != "sbcs" && Mnemonic != "rscs") {
3536 unsigned CC = StringSwitch<unsigned>(Mnemonic.substr(Mnemonic.size()-2))
3556 Mnemonic = Mnemonic.slice(0, Mnemonic.size() - 2);
3563 if (Mnemonic.endswith("s") &&
3564 !(Mnemonic == "cps" || Mnemonic == "mls" ||
3565 Mnemonic == "mrs" || Mnemonic == "smmls" || Mnemonic == "vabs" ||
3566 Mnemonic == "vcls" || Mnemonic == "vmls" || Mnemonic == "vmrs" ||
3567 Mnemonic == "vnmls" || Mnemonic == "vqabs" || Mnemonic == "vrecps" ||
3568 Mnemonic == "vrsqrts" || Mnemonic == "srs" ||
3569 (Mnemonic == "movs" && isThumb()))) {
3570 Mnemonic = Mnemonic.slice(0, Mnemonic.size() - 1);
3576 if (Mnemonic.startswith("cps")) {
3579 StringSwitch<unsigned>(Mnemonic.substr(Mnemonic.size()-2, 2))
3584 Mnemonic = Mnemonic.slice(0, Mnemonic.size()-2);
3590 if (Mnemonic.startswith("it")) {
3591 ITMask = Mnemonic.slice(2, Mnemonic.size());
3592 Mnemonic = Mnemonic.slice(0, 2);
3595 return Mnemonic;
3603 getMnemonicAcceptInfo(StringRef Mnemonic, bool &CanAcceptCarrySet,
3605 if (Mnemonic == "and" || Mnemonic == "lsl" || Mnemonic == "lsr" ||
3606 Mnemonic == "rrx" || Mnemonic == "ror" || Mnemonic == "sub" ||
3607 Mnemonic == "add" || Mnemonic == "adc" ||
3608 Mnemonic == "mul" || Mnemonic == "bic" || Mnemonic == "asr" ||
3609 Mnemonic == "orr" || Mnemonic == "mvn" ||
3610 Mnemonic == "rsb" || Mnemonic == "rsc" || Mnemonic == "orn" ||
3611 Mnemonic == "sbc" || Mnemonic == "eor" || Mnemonic == "neg" ||
3612 (!isThumb() && (Mnemonic == "smull" || Mnemonic == "mov" ||
3613 Mnemonic == "mla" || Mnemonic == "smlal" ||
3614 Mnemonic == "umlal" || Mnemonic == "umull"))) {
3619 if (Mnemonic == "cbnz" || Mnemonic == "setend" || Mnemonic == "dmb" ||
3620 Mnemonic == "cps" || Mnemonic == "mcr2" || Mnemonic == "it" ||
3621 Mnemonic == "mcrr2" || Mnemonic == "cbz" || Mnemonic == "cdp2" ||
3622 Mnemonic == "trap" || Mnemonic == "mrc2" || Mnemonic == "mrrc2" ||
3623 Mnemonic == "dsb" || Mnemonic == "isb" || Mnemonic == "setend" ||
3624 (Mnemonic == "clrex" && !isThumb()) ||
3625 (Mnemonic == "nop" && isThumbOne()) ||
3626 ((Mnemonic == "pld" || Mnemonic == "pli" || Mnemonic == "pldw" ||
3627 Mnemonic == "ldc2" || Mnemonic == "ldc2l" ||
3628 Mnemonic == "stc2" || Mnemonic == "stc2l") && !isThumb()) ||
3629 ((Mnemonic.startswith("rfe") || Mnemonic.startswith("srs")) &&
3631 Mnemonic.startswith("cps") || (Mnemonic == "movs" && isThumbOne())) {
3637 if (Mnemonic == "bkpt" || Mnemonic == "mcr" || Mnemonic == "mcrr" ||
3638 Mnemonic == "mrc" || Mnemonic == "mrrc" || Mnemonic == "cdp")
3643 bool ARMAsmParser::shouldOmitCCOutOperand(StringRef Mnemonic,
3656 if (Mnemonic == "mov" && Operands.size() > 4 && !isThumb() &&
3664 if (isThumb() && Mnemonic == "add" && Operands.size() == 5 &&
3673 if (((isThumb() && Mnemonic == "add") ||
3674 (isThumbTwo() && Mnemonic == "sub")) &&
3688 if (isThumbTwo() && (Mnemonic == "add" || Mnemonic == "sub") &&
3718 if (isThumbTwo() && Mnemonic == "mul" && Operands.size() == 6 &&
3743 if (isThumb() && (Mnemonic == "add" || Mnemonic == "sub") &&
3758 StringRef Mnemonic = Name.slice(Start, Next);
3765 Mnemonic = splitMnemonic(Mnemonic, PredicationCode, CarrySetting,
3769 if (isThumbOne() && PredicationCode != ARMCC::AL && Mnemonic != "b") {
3774 Operands.push_back(ARMOperand::CreateToken(Mnemonic, NameLoc));
3781 if (Mnemonic == "it") {
3812 getMnemonicAcceptInfo(Mnemonic, CanAcceptCarrySet, CanAcceptPredicationCode);
3818 return Error(NameLoc, "instruction '" + Mnemonic +
3825 return Error(NameLoc, "instruction '" + Mnemonic +
3831 SMLoc Loc = SMLoc::getFromPointer(NameLoc.getPointer() + Mnemonic.size());
3838 SMLoc Loc = SMLoc::getFromPointer(NameLoc.getPointer() + Mnemonic.size() +
3869 if (parseOperand(Operands, Mnemonic)) {
3878 if (parseOperand(Operands, Mnemonic)) {
3900 if (!CarrySetting && shouldOmitCCOutOperand(Mnemonic, Operands)) {
3908 // on the Mnemonic based checking to correctly figure out when to put
3911 if (!isThumb() && Mnemonic == "blx" && Operands.size() == 3 &&
3921 if ((Mnemonic == "vceq" || Mnemonic == "vcge" || Mnemonic == "vcgt" ||
3922 Mnemonic == "vcle" || Mnemonic == "vclt") && Operands.size() == 6 &&
3933 if ((Mnemonic == "vcmp" || Mnemonic == "vcmpe") && Operands.size() == 5 &&
3945 if (Mnemonic == "rsb" && isThumb() && Operands.size() == 6 &&