mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-25 13:24:46 +00:00
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
This commit is contained in:
@@ -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;
|
||||
|
Reference in New Issue
Block a user