diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-05-04 00:33:13 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-05-04 00:33:13 +0000 |
commit | 4f83e73a6d4d96a1a83bfd258b3bf937297c2957 (patch) | |
tree | cbe179374fc62ab678f36193ced58acd4daa80ae /utils/TableGen | |
parent | 31e8e1d08566c9b169df003d499a7e22856e5408 (diff) | |
download | llvm-4f83e73a6d4d96a1a83bfd258b3bf937297c2957.tar.gz llvm-4f83e73a6d4d96a1a83bfd258b3bf937297c2957.tar.bz2 llvm-4f83e73a6d4d96a1a83bfd258b3bf937297c2957.tar.xz |
MC/Matcher: Add support for over-riding the default MatchInstruction function
name (for example, to allow targets to interpose the actual MatchInstruction
function).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102987 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'utils/TableGen')
-rw-r--r-- | utils/TableGen/AsmMatcherEmitter.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/utils/TableGen/AsmMatcherEmitter.cpp b/utils/TableGen/AsmMatcherEmitter.cpp index e5c068bcdf..1947824cbf 100644 --- a/utils/TableGen/AsmMatcherEmitter.cpp +++ b/utils/TableGen/AsmMatcherEmitter.cpp @@ -1564,10 +1564,14 @@ void AsmMatcherEmitter::run(raw_ostream &OS) { Info.Instructions.begin(), ie = Info.Instructions.end(); it != ie; ++it) MaxNumOperands = std::max(MaxNumOperands, (*it)->Operands.size()); - - OS << "bool " << Target.getName() << ClassName - << "::\nMatchInstruction(const SmallVectorImpl<MCParsedAsmOperand*> " - "&Operands,\n MCInst &Inst) {\n"; + + const std::string &MatchName = + AsmParser->getValueAsString("MatchInstructionName"); + OS << "bool " << Target.getName() << ClassName << "::\n" + << MatchName + << "(const SmallVectorImpl<MCParsedAsmOperand*> &Operands,\n"; + OS.indent(MatchName.size() + 1); + OS << "MCInst &Inst) {\n"; // Emit the static match table; unused classes get initalized to 0 which is // guaranteed to be InvalidMatchClass. |