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);
A region where processor data is stored.
Definition: space.hh:73
Replace primary BRANCH or CALL with a suitable RETURN operation.
Definition: override.hh:48
Replace primary CALL or RETURN with suitable BRANCH operation.
Definition: override.hh:45
A class for analyzing parameters to a sub-function call.
Definition: fspec.hh:1436
static uint4 stringToType(const string &nm)
Convert a string to a flow override type.
Definition: override.cc:434
void applyIndirect(Funcdata &data, FuncCallSpecs &fspecs) const
Look for and apply destination overrides of indirect calls.
Definition: override.cc:167
void applyDeadCodeDelay(Funcdata &data) const
Apply any dead-code delay overrides.
Definition: override.cc:207
void applyPrototype(Funcdata &data, FuncCallSpecs &fspecs) const
Look for and apply a function prototype override.
Definition: override.cc:150
Replace primary BRANCH or RETURN with suitable CALL/RETURN operation.
Definition: override.hh:47
Container for data structures associated with a single function.
Definition: funcdata.hh:45
void insertForceGoto(const Address &targetpc, const Address &destpc)
Force a specific branch instruction to be an unstructured goto.
Definition: override.cc:56
void insertFlowOverride(const Address &addr, uint4 type)
Mark a branch instruction with a different flow type.
Definition: override.cc:138
void insertProtoOverride(const Address &callpoint, FuncProto *p)
Override the assumed function prototype at a specific call site.
Definition: override.cc:111
bool hasFlowOverride(void) const
Are there any flow overrides.
Definition: override.hh:74
No override.
Definition: override.hh:44
A low-level machine address for labelling bytes and data.
Definition: address.hh:46
bool queryMultistageJumptable(const Address &addr) const
Check for a multistage marker for a specific indirect jump.
Definition: override.cc:181
Manager for all the major decompiler subsystems.
Definition: architecture.hh:117
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
An XML element. A node in the DOM tree.
Definition: xml.hh:150
void insertIndirectOverride(const Address &callpoint, const Address &directcall)
Override an indirect call turning it into a direct call.
Definition: override.cc:99
void generateOverrideMessages(vector< string > &messagelist, Architecture *glb) const
Create warning messages that describe current overrides.
Definition: override.cc:269
A container of commands that override the decompiler's default behavior for a single function...
Definition: override.hh:40
void insertDeadcodeDelay(AddrSpace *spc, int4 delay)
Override the number of passes that are executed before dead-code elimination starts.
Definition: override.cc:69
Symbol and Scope objects for the decompiler.
A function prototype.
Definition: fspec.hh:1147
uint4 getFlowOverride(const Address &addr) const
Return the particular flow override at a given address.
Definition: override.cc:223
void insertMultistageJump(const Address &addr)
Flag an indirect jump for multistage analysis.
Definition: override.cc:127
static string typeToString(uint4 tp)
Convert a flow override type to a string.
Definition: override.cc:418
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
bool hasDeadcodeDelay(AddrSpace *spc) const
Check if a delay override is already installed for an address space.
Definition: override.cc:82
~Override(void)
Destructor.
Definition: override.hh:60
void restoreXml(const Element *el, Architecture *glb)
Read in override commands from XML.
Definition: override.cc:349