diff options
author | Quentin Colombet <qcolombet@apple.com> | 2013-05-24 22:51:52 +0000 |
---|---|---|
committer | Quentin Colombet <qcolombet@apple.com> | 2013-05-24 22:51:52 +0000 |
commit | de7cbbfcce5c068f0699bdcb6dac093c0c91ba6f (patch) | |
tree | 5ab055706a3d1e3379dd568d4ee386fa2563f518 /include/llvm/MC/MCDisassembler.h | |
parent | fce7b6b5d9905bf35641ee7f001b6b66dbc26c2d (diff) | |
download | llvm-de7cbbfcce5c068f0699bdcb6dac093c0c91ba6f.tar.gz llvm-de7cbbfcce5c068f0699bdcb6dac093c0c91ba6f.tar.bz2 llvm-de7cbbfcce5c068f0699bdcb6dac093c0c91ba6f.tar.xz |
Follow up of the introduction of MCSymbolizer.
- Ressurect old MCDisassemble API to soften transition.
- Extend MCTargetDesc to set target specific symbolizer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182688 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/MC/MCDisassembler.h')
-rw-r--r-- | include/llvm/MC/MCDisassembler.h | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/include/llvm/MC/MCDisassembler.h b/include/llvm/MC/MCDisassembler.h index 5ad2d98019..e82b0c1229 100644 --- a/include/llvm/MC/MCDisassembler.h +++ b/include/llvm/MC/MCDisassembler.h @@ -56,7 +56,9 @@ public: }; /// Constructor - Performs initial setup for the disassembler. - MCDisassembler(const MCSubtargetInfo &STI) : STI(STI), Symbolizer(0), + MCDisassembler(const MCSubtargetInfo &STI) : GetOpInfo(0), SymbolLookUp(0), + DisInfo(0), Ctx(0), + STI(STI), Symbolizer(0), CommentStream(0) {} virtual ~MCDisassembler(); @@ -83,12 +85,23 @@ public: uint64_t address, raw_ostream &vStream, raw_ostream &cStream) const = 0; +private: + // + // Hooks for symbolic disassembly via the public 'C' interface. + // + // The function to get the symbolic information for operands. + LLVMOpInfoCallback GetOpInfo; + // The function to lookup a symbol name. + LLVMSymbolLookupCallback SymbolLookUp; + // The pointer to the block of symbolic information for above call back. + void *DisInfo; + // The assembly context for creating symbols and MCExprs in place of + // immediate operands when there is symbolic information. + MCContext *Ctx; protected: // Subtarget information, for instruction decoding predicates if required. const MCSubtargetInfo &STI; - -private: OwningPtr<MCSymbolizer> Symbolizer; public: @@ -111,6 +124,13 @@ public: MCContext *Ctx, OwningPtr<MCRelocationInfo> &RelInfo); + LLVMOpInfoCallback getLLVMOpInfoCallback() const { return GetOpInfo; } + LLVMSymbolLookupCallback getLLVMSymbolLookupCallback() const { + return SymbolLookUp; + } + void *getDisInfoBlock() const { return DisInfo; } + MCContext *getMCContext() const { return Ctx; } + // Marked mutable because we cache it inside the disassembler, rather than // having to pass it around as an argument through all the autogenerated code. mutable raw_ostream *CommentStream; |