15 #ifndef LLVM_MC_MCOBJECTSYMBOLIZER_H
16 #define LLVM_MC_MCOBJECTSYMBOLIZER_H
27 class MCRelocationInfo;
51 int64_t
Value, uint64_t Address,
52 bool IsBranch, uint64_t Offset,
56 int64_t
Value, uint64_t Address);
71 typedef std::vector<object::SectionRef> SortedSectionList;
72 SortedSectionList SortedSections;
75 void buildSectionList();
76 void buildRelocationByAddrMap();
const object::SectionRef * findSectionContaining(uint64_t Addr)
MCObjectSymbolizer(MCContext &Ctx, OwningPtr< MCRelocationInfo > &RelInfo, const object::ObjectFile *Obj)
const object::ObjectFile * Obj
const object::RelocationRef * findRelocationAt(uint64_t Addr)
Symbolize and annotate disassembled instructions.
OwningPtr< MCRelocationInfo > RelInfo
void tryAddingPcLoadReferenceComment(raw_ostream &cStream, int64_t Value, uint64_t Address)
Try to add a comment on the PC-relative load. For instance, in Mach-O, this is used to add annotation...
An ObjectFile-backed symbolizer.
static MCObjectSymbolizer * createObjectSymbolizer(MCContext &Ctx, OwningPtr< MCRelocationInfo > &RelInfo, const object::ObjectFile *Obj)
Create an object symbolizer for Obj.
bool tryAddingSymbolicOperand(MCInst &MI, raw_ostream &cStream, int64_t Value, uint64_t Address, bool IsBranch, uint64_t Offset, uint64_t InstSize)
Try to add a symbolic operand instead of Value to the MCInst.
LLVM Value Representation.
virtual StringRef findExternalFunctionAt(uint64_t Addr)
Look for an external function symbol at Addr. (References through the ELF PLT, Mach-O stubs...