mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-02-07 14:33:15 +00:00
Add a MnemonicIsValid method to the asm matcher.
Patch by Bill Wendling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124328 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
4a95c19977
commit
1fe3aa15e9
@ -1897,6 +1897,7 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
|
||||
OS << " Match_Success, Match_MnemonicFail, Match_InvalidOperand,\n";
|
||||
OS << " Match_MissingFeature\n";
|
||||
OS << " };\n";
|
||||
OS << " bool MnemonicIsValid(StringRef Mnemonic);\n";
|
||||
OS << " MatchResultTy MatchInstructionImpl(\n";
|
||||
OS << " const SmallVectorImpl<MCParsedAsmOperand*> &Operands,\n";
|
||||
OS << " MCInst &Inst, unsigned &ErrorInfo);\n\n";
|
||||
@ -2013,6 +2014,16 @@ void AsmMatcherEmitter::run(raw_ostream &OS) {
|
||||
|
||||
OS << "};\n\n";
|
||||
|
||||
// A method to determine if a mnemonic is in the list.
|
||||
OS << "bool " << Target.getName() << ClassName << "::\n"
|
||||
<< "MnemonicIsValid(StringRef Mnemonic) {\n";
|
||||
OS << " // Search the table.\n";
|
||||
OS << " std::pair<const MatchEntry*, const MatchEntry*> MnemonicRange =\n";
|
||||
OS << " std::equal_range(MatchTable, MatchTable+"
|
||||
<< Info.Matchables.size() << ", Mnemonic, LessOpcode());\n";
|
||||
OS << " return MnemonicRange.first != MnemonicRange.second;\n";
|
||||
OS << "}\n\n";
|
||||
|
||||
// Finally, build the match function.
|
||||
OS << Target.getName() << ClassName << "::MatchResultTy "
|
||||
<< Target.getName() << ClassName << "::\n"
|
||||
|
Loading…
x
Reference in New Issue
Block a user