diff options
Diffstat (limited to 'tools/edis/EDDisassembler.h')
-rw-r--r-- | tools/edis/EDDisassembler.h | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/tools/edis/EDDisassembler.h b/tools/edis/EDDisassembler.h index 6be9152facb6..74a260e82532 100644 --- a/tools/edis/EDDisassembler.h +++ b/tools/edis/EDDisassembler.h @@ -48,6 +48,8 @@ template <typename T> class SmallVectorImpl; class SourceMgr; class Target; class TargetRegisterInfo; + +struct EDInstInfo; } /// EDDisassembler - Encapsulates a disassembler for a single architecture and @@ -113,13 +115,13 @@ struct EDDisassembler { // Per-object members // //////////////////////// - /// True only if the object has been fully and successfully initialized + /// True only if the object has been successfully initialized bool Valid; + /// True if the disassembler can provide semantic information + bool HasSemantics; - /// The string that stores disassembler errors from the backend - std::string ErrorString; - /// The stream that wraps the ErrorString - llvm::raw_string_ostream ErrorStream; + /// The stream to write errors to + llvm::raw_ostream &ErrorStream; /// The architecture/syntax pair for the current architecture CPUKey Key; @@ -143,7 +145,7 @@ struct EDDisassembler { llvm::sys::Mutex PrinterMutex; /// The array of instruction information provided by the TableGen backend for /// the target architecture - const InstInfo *InstInfos; + const llvm::EDInstInfo *InstInfos; /// The target-specific lexer for use in tokenizing strings, in /// target-independent and target-specific portions llvm::OwningPtr<llvm::AsmLexer> GenericAsmLexer; @@ -180,6 +182,12 @@ struct EDDisassembler { return Valid; } + /// hasSemantics - reports whether the disassembler can provide operands and + /// tokens. + bool hasSemantics() { + return HasSemantics; + } + ~EDDisassembler(); /// createInst - creates and returns an instruction given a callback and |