Ghidra Decompiler Analysis Engine
|
Build p-code from a pre-parsed instruction. More...
#include <sleigh.hh>
Public Member Functions | |
SleighBuilder (ParserWalker *w, DisassemblyCache *dcache, PcodeCacher *pc, AddrSpace *cspc, AddrSpace *uspc, uint4 umask) | |
Constructor. More... | |
virtual void | appendBuild (OpTpl *bld, int4 secnum) |
virtual void | delaySlot (OpTpl *op) |
virtual void | setLabel (OpTpl *op) |
virtual void | appendCrossBuild (OpTpl *bld, int4 secnum) |
Public Member Functions inherited from PcodeBuilder | |
PcodeBuilder (uint4 lbcnt) | |
uint4 | getLabelBase (void) const |
ParserWalker * | getCurrentWalker () const |
void | build (ConstructTpl *construct, int4 secnum) |
Additional Inherited Members | |
Protected Attributes inherited from PcodeBuilder | |
ParserWalker * | walker |
Build p-code from a pre-parsed instruction.
Through the build() method, this walks the parse tree and prepares data for final emission as p-code. (The final emitting is done separately through the PcodeCacher.emit() method). Generally, only p-code for one instruction is prepared. But, through the delay-slot mechanism, build() may recursively visit additional instructions.
SleighBuilder::SleighBuilder | ( | ParserWalker * | w, |
DisassemblyCache * | dcache, | ||
PcodeCacher * | pc, | ||
AddrSpace * | cspc, | ||
AddrSpace * | uspc, | ||
uint4 | umask | ||
) |
w | is the parsed instruction |
dcache | is a cache of nearby instruction parses |
pc | will hold the PcodeData and VarnodeData objects produced by this builder |
cspc | is the constant address space |
uspc | is the unique address space |
umask | is the mask to use to find unique bits within an Address |