|
decompiler 1.0.0
|
Abstract class performing an override of p-code on an instruction. More...
#include <override.hh>
Public Member Functions | |
| virtual | ~Record (void) |
| Destructor. | |
| virtual void | performOverride (const Address &addr, Funcdata &data) const =0 |
| Perform p-code modifications for the instruction at the given address. More... | |
| virtual void | encode (Encoder &encoder, const Address &addr) const =0 |
| Encode this record to stream. More... | |
| virtual void | printRaw (ostream &s, const Address &addr) const =0 |
| Print a description of the override as a console message. More... | |
Static Public Member Functions | |
| static Record * | allocateFlow (const string &name) |
| Return a corresponding flow override record. More... | |
| static Record * | allocateCallDest (const string &name, const Address &dest) |
| Return a corresponding call destination override. More... | |
Abstract class performing an override of p-code on an instruction.
Instances operate directly on raw p-code emitted for a single instruction, prior to incorporation in the syntax tree.
|
static |
Return a corresponding call destination override.
| name | is the particular call destination override name |
| dest | is the new destination address |
References ghidra::Override::CallotherCall::NAME, ghidra::Override::CallotherBranch::NAME, and ghidra::Override::CallCall::NAME.
Referenced by ghidra::Override::decode(), and ghidra::Override::insertDestinationOverride().
|
static |
Return a corresponding flow override record.
Flow records take no additional parameters to construct
| name | is the particular flow override name |
References ghidra::Override::Branch::NAME, ghidra::Override::Call::NAME, ghidra::Override::CallReturn::NAME, and ghidra::Override::Return::NAME.
Referenced by ghidra::Override::decode(), and ghidra::Override::insertFlowOverride().
|
pure virtual |
Encode this record to stream.
| encoder | is the stream |
| addr | is the address of the instruction the override applies to |
Implemented in ghidra::Override::Branch, ghidra::Override::Call, ghidra::Override::CallReturn, ghidra::Override::Return, ghidra::Override::CallotherCall, ghidra::Override::CallotherBranch, and ghidra::Override::CallCall.
|
pure virtual |
Perform p-code modifications for the instruction at the given address.
| addr | is the given address of the instruction |
| data | is the function |
Implemented in ghidra::Override::Branch, ghidra::Override::Call, ghidra::Override::CallReturn, ghidra::Override::Return, ghidra::Override::CallotherCall, ghidra::Override::CallotherBranch, and ghidra::Override::CallCall.
Referenced by ghidra::FlowInfo::processInstruction().
|
pure virtual |
Print a description of the override as a console message.
| s | is the stream to write to |
| addr | is the address this override applies to |
Implemented in ghidra::Override::Branch, ghidra::Override::Call, ghidra::Override::CallReturn, ghidra::Override::Return, ghidra::Override::CallotherCall, ghidra::Override::CallotherBranch, and ghidra::Override::CallCall.