From d717a066c6ddaff401b9259579b265eeafb83b6e Mon Sep 17 00:00:00 2001 From: Chad Rosier Date: Fri, 21 Sep 2012 22:21:26 +0000 Subject: [PATCH] [ms-inline asm] Expose the mnemonicIsValid() function in the AsmParser. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164420 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/MC/MCTargetAsmParser.h | 4 ++++ lib/Target/ARM/AsmParser/ARMAsmParser.cpp | 4 ++++ lib/Target/MBlaze/AsmParser/MBlazeAsmParser.cpp | 4 ++++ lib/Target/Mips/AsmParser/MipsAsmParser.cpp | 4 ++++ lib/Target/X86/AsmParser/X86AsmParser.cpp | 4 ++++ utils/TableGen/AsmMatcherEmitter.cpp | 4 ++-- 6 files changed, 22 insertions(+), 2 deletions(-) diff --git a/include/llvm/MC/MCTargetAsmParser.h b/include/llvm/MC/MCTargetAsmParser.h index 709c2d245cc..a771ed7a9d6 100644 --- a/include/llvm/MC/MCTargetAsmParser.h +++ b/include/llvm/MC/MCTargetAsmParser.h @@ -78,6 +78,10 @@ public: /// \param DirectiveID - the identifier token of the directive. virtual bool ParseDirective(AsmToken DirectiveID) = 0; + /// mnemonicIsValid - This returns true if this is a valid mnemonic and false + /// otherwise. + virtual bool mnemonicIsValid(StringRef Mnemonic) = 0; + /// MatchInstruction - Recognize a series of operands of a parsed instruction /// as an actual MCInst. This returns false on success and returns true on /// failure to match. diff --git a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp index 6431b75c548..3e68a0b865a 100644 --- a/lib/Target/ARM/AsmParser/ARMAsmParser.cpp +++ b/lib/Target/ARM/AsmParser/ARMAsmParser.cpp @@ -257,6 +257,10 @@ public: SmallVectorImpl &Operands); bool ParseDirective(AsmToken DirectiveID); + bool mnemonicIsValid(StringRef Mnemonic) { + return mnemonicIsValidImpl(Mnemonic); + } + unsigned checkTargetMatchPredicate(MCInst &Inst); bool MatchAndEmitInstruction(SMLoc IDLoc, diff --git a/lib/Target/MBlaze/AsmParser/MBlazeAsmParser.cpp b/lib/Target/MBlaze/AsmParser/MBlazeAsmParser.cpp index 40594030e57..daceb88076d 100644 --- a/lib/Target/MBlaze/AsmParser/MBlazeAsmParser.cpp +++ b/lib/Target/MBlaze/AsmParser/MBlazeAsmParser.cpp @@ -44,6 +44,10 @@ class MBlazeAsmParser : public MCTargetAsmParser { bool ParseDirectiveWord(unsigned Size, SMLoc L); + bool mnemonicIsValid(StringRef Mnemonic) { + return mnemonicIsValidImpl(Mnemonic); + } + bool MatchAndEmitInstruction(SMLoc IDLoc, SmallVectorImpl &Operands, MCStreamer &Out); diff --git a/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/lib/Target/Mips/AsmParser/MipsAsmParser.cpp index 8418b7542f2..4cbd4c8e128 100644 --- a/lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ b/lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -41,6 +41,10 @@ class MipsAsmParser : public MCTargetAsmParser { #define GET_ASSEMBLER_HEADER #include "MipsGenAsmMatcher.inc" + bool mnemonicIsValid(StringRef Mnemonic) { + return mnemonicIsValidImpl(Mnemonic); + } + bool MatchAndEmitInstruction(SMLoc IDLoc, SmallVectorImpl &Operands, MCStreamer &Out); diff --git a/lib/Target/X86/AsmParser/X86AsmParser.cpp b/lib/Target/X86/AsmParser/X86AsmParser.cpp index 28cf5d3e6a2..77961e53aec 100644 --- a/lib/Target/X86/AsmParser/X86AsmParser.cpp +++ b/lib/Target/X86/AsmParser/X86AsmParser.cpp @@ -60,6 +60,10 @@ private: bool ParseDirectiveWord(unsigned Size, SMLoc L); bool ParseDirectiveCode(StringRef IDVal, SMLoc L); + bool mnemonicIsValid(StringRef Mnemonic) { + return mnemonicIsValidImpl(Mnemonic); + } + bool processInstruction(MCInst &Inst, const SmallVectorImpl &Ops); diff --git a/utils/TableGen/AsmMatcherEmitter.cpp b/utils/TableGen/AsmMatcherEmitter.cpp index 3d74c904f37..593de698a94 100644 --- a/utils/TableGen/AsmMatcherEmitter.cpp +++ b/utils/TableGen/AsmMatcherEmitter.cpp @@ -2621,7 +2621,7 @@ void AsmMatcherEmitter::run(raw_ostream &OS) { << " const " << "SmallVectorImpl &Operands,\n " << " unsigned OperandNum, unsigned &NumMCOperands);\n"; - OS << " bool MnemonicIsValid(StringRef Mnemonic);\n"; + OS << " bool mnemonicIsValidImpl(StringRef Mnemonic);\n"; OS << " unsigned MatchInstructionImpl(\n" << " const SmallVectorImpl &Operands,\n" << " unsigned &Kind, MCInst &Inst, " @@ -2800,7 +2800,7 @@ void AsmMatcherEmitter::run(raw_ostream &OS) { // A method to determine if a mnemonic is in the list. OS << "bool " << Target.getName() << ClassName << "::\n" - << "MnemonicIsValid(StringRef Mnemonic) {\n"; + << "mnemonicIsValidImpl(StringRef Mnemonic) {\n"; OS << " // Search the table.\n"; OS << " std::pair MnemonicRange =\n"; OS << " std::equal_range(MatchTable, MatchTable+"