26 this->GetOpInfo = GetOpInfo;
27 this->SymbolLookUp = SymbolLookUp;
28 this->DisInfo = DisInfo;
30 assert(Ctx != 0 &&
"No MCContext given for symbolic disassembly");
33 SymbolLookUp, DisInfo));
37 uint64_t Address,
bool IsBranch,
39 uint64_t InstSize)
const {
42 return Symbolizer->tryAddingSymbolicOperand(Inst, cStream, Value, Address,
43 IsBranch, Offset, InstSize);
48 uint64_t Address)
const {
51 Symbolizer->tryAddingPcLoadReferenceComment(cStream, Value, Address);
const char *(* LLVMSymbolLookupCallback)(void *DisInfo, uint64_t ReferenceValue, uint64_t *ReferenceType, uint64_t ReferencePC, const char **ReferenceName)
raw_ostream * CommentStream
Symbolize using user-provided, C API, callbacks.
OwningPtr< MCSymbolizer > Symbolizer
void setSymbolizer(OwningPtr< MCSymbolizer > &Symzer)
virtual ~MCDisassembler()
bool tryAddingSymbolicOperand(MCInst &Inst, int64_t Value, uint64_t Address, bool IsBranch, uint64_t Offset, uint64_t InstSize) const
void setupForSymbolicDisassembly(LLVMOpInfoCallback GetOpInfo, LLVMSymbolLookupCallback SymbolLookUp, void *DisInfo, MCContext *Ctx, OwningPtr< MCRelocationInfo > &RelInfo)
Sets up an external symbolizer that uses the C API callbacks.
LLVM Value Representation.
raw_ostream & nulls()
nulls() - This returns a reference to a raw_ostream which discards output.
void tryAddingPcLoadReferenceComment(int64_t Value, uint64_t Address) const
int(* LLVMOpInfoCallback)(void *DisInfo, uint64_t PC, uint64_t Offset, uint64_t Size, int TagType, void *TagBuf)