Ghidra Decompiler Analysis Engine
|
Go to the documentation of this file.
51 map<Address,Address> forcegoto;
52 vector<int4> deadcodedelay;
53 map<Address,Address> indirectover;
54 map<Address,FuncProto *> protoover;
55 vector<Address> multistagejump;
56 map<Address,uint4> flowoverride;
58 static string generateDeadcodeDelayMessage(int4 index,
Architecture *glb);
74 bool hasFlowOverride(
void)
const {
return (!flowoverride.empty()); }
A region where processor data is stored.
Definition: space.hh:73
void restoreXml(const Element *el, Architecture *glb)
Read in override commands from XML.
Definition: override.cc:349
void applyIndirect(Funcdata &data, FuncCallSpecs &fspecs) const
Look for and apply destination overrides of indirect calls.
Definition: override.cc:167
@ BRANCH
Replace primary CALL or RETURN with suitable BRANCH operation.
Definition: override.hh:45
void insertMultistageJump(const Address &addr)
Flag an indirect jump for multistage analysis.
Definition: override.cc:127
A container of commands that override the decompiler's default behavior for a single function.
Definition: override.hh:40
uint4 getFlowOverride(const Address &addr) const
Return the particular flow override at a given address.
Definition: override.cc:223
void printRaw(ostream &s, Architecture *glb) const
Dump a description of the overrides to stream.
Definition: override.cc:238
void applyForceGoto(Funcdata &data) const
Push all the force-goto overrides into the function.
Definition: override.cc:194
A class for analyzing parameters to a sub-function call.
Definition: fspec.hh:1449
void applyDeadCodeDelay(Funcdata &data) const
Apply any dead-code delay overrides.
Definition: override.cc:207
An XML element. A node in the DOM tree.
Definition: xml.hh:150
Manager for all the major decompiler subsystems.
Definition: architecture.hh:119
void insertFlowOverride(const Address &addr, uint4 type)
Mark a branch instruction with a different flow type.
Definition: override.cc:138
static uint4 stringToType(const string &nm)
Convert a string to a flow override type.
Definition: override.cc:434
void applyPrototype(Funcdata &data, FuncCallSpecs &fspecs) const
Look for and apply a function prototype override.
Definition: override.cc:150
@ CALL_RETURN
Replace primary BRANCH or RETURN with suitable CALL/RETURN operation.
Definition: override.hh:47
bool hasDeadcodeDelay(AddrSpace *spc) const
Check if a delay override is already installed for an address space.
Definition: override.cc:82
static string typeToString(uint4 tp)
Convert a flow override type to a string.
Definition: override.cc:418
bool queryMultistageJumptable(const Address &addr) const
Check for a multistage marker for a specific indirect jump.
Definition: override.cc:181
A low-level machine address for labelling bytes and data.
Definition: address.hh:46
Container for data structures associated with a single function.
Definition: funcdata.hh:45
void generateOverrideMessages(vector< string > &messagelist, Architecture *glb) const
Create warning messages that describe current overrides.
Definition: override.cc:269
void insertIndirectOverride(const Address &callpoint, const Address &directcall)
Override an indirect call turning it into a direct call.
Definition: override.cc:99
@ NONE
No override.
Definition: override.hh:44
Symbol and Scope objects for the decompiler.
void insertForceGoto(const Address &targetpc, const Address &destpc)
Force a specific branch instruction to be an unstructured goto.
Definition: override.cc:56
void insertProtoOverride(const Address &callpoint, FuncProto *p)
Override the assumed function prototype at a specific call site.
Definition: override.cc:111
@ CALL
Replace primary BRANCH or RETURN with suitable CALL operation.
Definition: override.hh:46
void saveXml(ostream &s, Architecture *glb) const
Write the override commands to an XML stream.
Definition: override.cc:284
A function prototype.
Definition: fspec.hh:1164
@ RETURN
Replace primary BRANCH or CALL with a suitable RETURN operation.
Definition: override.hh:48
void insertDeadcodeDelay(AddrSpace *spc, int4 delay)
Override the number of passes that are executed before dead-code elimination starts.
Definition: override.cc:69