15 #ifndef LLVM_MC_MCOBJECTDISASSEMBLER_H
16 #define LLVM_MC_MCOBJECTDISASSEMBLER_H
21 #include "llvm/Support/DataTypes.h"
78 MOS = ObjectSymbolizer;
146 uint64_t VMAddrSlide;
147 uint64_t HeaderLoadAddress;
162 uint64_t HeaderLoadAddress);
MCModule * buildEmptyModule()
const object::ObjectFile & Obj
The main container class for the LLVM Intermediate Representation.
MCModule * buildModule(bool withCFG=false)
Build an MCModule, creating atoms and optionally functions.
MCMachOObjectDisassembler(const object::MachOObjectFile &MOOF, const MCDisassembler &Dis, const MCInstrAnalysis &MIA, uint64_t VMAddrSlide, uint64_t HeaderLoadAddress)
Construct a Mach-O specific object disassembler.
virtual uint64_t getEffectiveLoadAddr(uint64_t Addr)
const MCInstrAnalysis & MIA
void setSymbolizer(MCObjectSymbolizer *ObjectSymbolizer)
Set the symbolizer to use to get information on external functions. Note that this isn't used to do i...
Represents a function in machine code, containing MCBasicBlocks. MCFunctions are created by MCModule...
MCFunction * createFunction(MCModule *Module, uint64_t BeginAddr, AddressSetTy &CallTargets, AddressSetTy &TailCallTargets)
virtual ArrayRef< uint64_t > getStaticInitFunctions()
uint64_t getEffectiveLoadAddr(uint64_t Addr) LLVM_OVERRIDE
A single entry single exit Region.
virtual ArrayRef< uint64_t > getStaticExitFunctions()
Disassemble an ObjectFile to an MCModule and MCFunctions. This class builds on MCDisassembler to disa...
uint64_t getEntrypoint() LLVM_OVERRIDE
Get the effective address of the entrypoint, or 0 if there is none.
An ObjectFile-backed symbolizer.
const MCDisassembler & Dis
Basic block containing a sequence of disassembled instructions. The basic block is backed by an MCTex...
ArrayRef< uint64_t > getStaticExitFunctions() LLVM_OVERRIDE
virtual uint64_t getOriginalLoadAddr(uint64_t EffectiveAddr)
Compute the original load address, as specified in the objectfile. This is the inverse of getEffectiv...
OwningPtr< MemoryObject > FallbackRegion
The fallback memory region, outside the object file.
ArrayRef< uint64_t > getStaticInitFunctions() LLVM_OVERRIDE
A completely disassembled object file or executable. It comprises a list of MCAtom's, each representing a contiguous range of either instructions or data. An MCModule is created using MCObjectDisassembler::buildModule.
std::vector< uint64_t > AddressSetTy
MemoryObject * getRegionFor(uint64_t Addr)
Return a memory region suitable for reading starting at Addr. In most cases, this returns a StringRef...
void setFallbackRegion(OwningPtr< MemoryObject > &Region)
Set the region on which to fallback if disassembly was requested somewhere not accessible in the obje...
MCObjectDisassembler(const object::ObjectFile &Obj, const MCDisassembler &Dis, const MCInstrAnalysis &MIA)
virtual ~MCObjectDisassembler()
virtual uint64_t getEntrypoint()
Get the effective address of the entrypoint, or 0 if there is none.
uint64_t getOriginalLoadAddr(uint64_t EffectiveAddr) LLVM_OVERRIDE
Compute the original load address, as specified in the objectfile. This is the inverse of getEffectiv...