Lines Matching defs:Mnemonic
84 // 1. A operand match table is built, each entry contains a mnemonic, an
86 // class/mnemonic and target features to be checked while trying to match.
89 // mnemonic and will check if the target feature for this mnemonic also
415 /// Mnemonic - This is the first token of the matched instruction, its
416 /// mnemonic.
417 StringRef Mnemonic;
421 /// This directly corresponds to the tokenized AsmString after the mnemonic is
488 // The primary comparator is the instruction mnemonic.
489 if (Mnemonic != RHS.Mnemonic)
490 return Mnemonic < RHS.Mnemonic;
520 // The primary comparator is the instruction mnemonic.
521 if (Mnemonic != RHS.Mnemonic)
870 // The first token of the instruction is the mnemonic, which must be a
875 Mnemonic = AsmOperands[0].Token;
876 if (Mnemonic.empty())
878 "Missing instruction mnemonic");
880 if (Mnemonic[0] == '$')
882 "Invalid instruction mnemonic '" + Mnemonic + "'!");
884 // Remove the first operand, it is tracked in the mnemonic field.
1307 // Generate operand match info for each mnemonic/operand class pair.
1418 // Parse the tokens after the mnemonic.
2367 // Keep track of all the aliases from a mnemonic. Use an std::map so that the
2382 // Process each alias a "from" mnemonic at a time, building the code executed
2404 // We can't have two aliases from the same mnemonic with no predicate.
2406 "two MnemonicAliases with the same 'from' mnemonic!");
2419 MatchCode += " Mnemonic = \"" +R->getValueAsString("ToMnemonic")+"\";\n";
2426 MatchCode += "Mnemonic = \"" + R->getValueAsString("ToMnemonic")+"\";\n";
2433 StringMatcher("Mnemonic", Cases, OS).Emit(Indent);
2448 OS << "static void applyMnemonicAliases(StringRef &Mnemonic, "
2488 << " Mnemonic;\n";
2494 OS << " return StringRef(MnemonicTable + Mnemonic + 1,\n";
2495 OS << " MnemonicTable[Mnemonic]);\n";
2518 OS << " /* Operand List Mask, Mnemonic, Operand Class, Features */\n";
2536 // Store a pascal-style length byte in the mnemonic.
2537 std::string LenMnemonic = char(II.Mnemonic.size()) + II.Mnemonic.str();
2539 << " /* " << II.Mnemonic << " */, ";
2588 << " &Operands,\n StringRef Mnemonic) {\n";
2602 << Info.OperandMatchInfo.size() << ", Mnemonic,\n"
2611 OS << " // equal_range guarantees that instruction mnemonic matches.\n";
2612 OS << " assert(Mnemonic == it->getMnemonic());\n\n";
2701 OS << " bool mnemonicIsValid(StringRef Mnemonic, unsigned VariantID) override;\n";
2718 OS << " StringRef Mnemonic);\n";
2758 // Generate the function that remaps for mnemonic aliases.
2794 // Store a pascal-style length byte in the mnemonic.
2795 std::string LenMnemonic = char(II.Mnemonic.size()) + II.Mnemonic.str();
2813 // following the mnemonic.
2817 << " Mnemonic;\n";
2826 OS << " return StringRef(MnemonicTable + Mnemonic + 1,\n";
2827 OS << " MnemonicTable[Mnemonic]);\n";
2860 // Store a pascal-style length byte in the mnemonic.
2861 std::string LenMnemonic = char(II.Mnemonic.size()) + II.Mnemonic.str();
2863 << " /* " << II.Mnemonic << " */, "
2890 // A method to determine if a mnemonic is in the list.
2892 << "mnemonicIsValid(StringRef Mnemonic, unsigned VariantID) {\n";
2906 OS << " std::equal_range(Start, End, Mnemonic, LessOpcode());\n";
2927 OS << " // Get the instruction mnemonic, which is the first token.\n";
2928 OS << " StringRef Mnemonic = ((" << Target.getName()
2932 OS << " // Process all MnemonicAliases to remap the mnemonic.\n";
2933 OS << " applyMnemonicAliases(Mnemonic, AvailableFeatures, VariantID);\n\n";
2960 OS << " std::equal_range(Start, End, Mnemonic, LessOpcode());\n\n";
2970 OS << " // equal_range guarantees that instruction mnemonic matches.\n";
2971 OS << " assert(Mnemonic == it->getMnemonic());\n";
2996 OS << " // mnemonic, keep track of it so we can report loc info.\n";
3006 OS << " // Otherwise, just reject this instance of the mnemonic.\n";