Ghidra Decompiler Analysis Engine
|
A container for disassembly context used by the SLEIGH engine. More...
#include <sleigh.hh>
Public Member Functions | |
DisassemblyCache (ContextCache *ccache, AddrSpace *cspace, int4 cachesize, int4 windowsize) | |
Constructor. More... | |
ParserContext * | getParserContext (const Address &addr) |
Get the parser for a particular Address. More... | |
A container for disassembly context used by the SLEIGH engine.
This acts as a factor for the ParserContext objects which are used to disassemble a single instruction. These all share a ContextCache which is a front end for accessing the ContextDatabase and resolving context variables from the SLEIGH spec. ParserContext objects are stored in a hash-table keyed by the address of the instruction.
DisassemblyCache::DisassemblyCache | ( | ContextCache * | ccache, |
AddrSpace * | cspace, | ||
int4 | cachesize, | ||
int4 | windowsize | ||
) |
ccache | is the ContextCache front-end shared across all the parser contexts |
cspace | is the constant address space used for minting constant Varnodes |
cachesize | is the number of distinct ParserContext objects in this cache |
windowsize | is the size of the ParserContext hash-table |
ParserContext * DisassemblyCache::getParserContext | ( | const Address & | addr | ) |
Get the parser for a particular Address.
Return a (possibly cached) ParserContext that is associated with addr If n different calls to this interface are made with n different Addresses, if
then the cacher guarantees that you get all different ParserContext objects
addr | is the Address to disassemble at |