Ghidra 11.3.2
Ghidra internal decompiler documentation.
|
Action converting the parameter's data-type to a pointer, and assigning storage for the pointer. More...
#include <modelrules.hh>
Public Member Functions | |
ConvertToPointer (const ParamListStandard *res) | |
Constructor for use with decode() | |
virtual AssignAction * | clone (const ParamListStandard *newResource) const |
Make a copy of this action. | |
virtual uint4 | assignAddress (Datatype *dt, const PrototypePieces &proto, int4 pos, TypeFactory &tlist, vector< int4 > &status, ParameterPieces &res) const |
Assign an address and other meta-data for a specific parameter or for return storage in context. | |
virtual void | decode (Decoder &decoder) |
Configure any details of how this action should behave from the stream. | |
![]() | |
AssignAction (const ParamListStandard *res) | |
Constructor. | |
bool | canAffectFillinOutput (void) const |
Return true if fillinOutputMap is active. | |
virtual bool | fillinOutputMap (ParamActive *active) const |
Test if this action could produce return value storage matching the given set of trials. | |
Private Attributes | |
AddrSpace * | space |
Address space used for pointer size. | |
Additional Inherited Members | |
![]() | |
enum | { success , fail , no_assignment , hiddenret_ptrparam , hiddenret_specialreg , hiddenret_specialreg_void } |
![]() | |
static AssignAction * | decodeAction (Decoder &decoder, const ParamListStandard *res) |
Read the next model rule action element from the stream. | |
static AssignAction * | decodeSideeffect (Decoder &decoder, const ParamListStandard *res) |
Read the next model rule sideeffect element from the stream. | |
![]() | |
const ParamListStandard * | resource |
Resources to which this action applies. | |
bool | fillinOutputActive |
If true, fillinOutputMap is active. | |
Action converting the parameter's data-type to a pointer, and assigning storage for the pointer.
This assumes the data-type is stored elsewhere and only the pointer is passed as a parameter
|
virtual |
Assign an address and other meta-data for a specific parameter or for return storage in context.
The Address is assigned based on the data-type of the parameter, available register resources, and other details of the function prototype. Consumed resources are marked. This method returns a response code:
dt | is the data-type of the parameter or return value |
proto | is the high-level description of the function prototype |
pos | is the position of the parameter (pos>=0) or return storage (pos=-1) |
tlist | is a data-type factory for (possibly) transforming the data-type |
status | is the resource consumption array |
res | will hold the resulting description of the parameter |
Implements ghidra::AssignAction.
References ghidra::ParamListStandard::assignAddress(), ghidra::ParameterPieces::flags, ghidra::AddrSpace::getAddrSize(), ghidra::TypeFactory::getArch(), ghidra::AddrSpaceManager::getDefaultDataSpace(), ghidra::TypeFactory::getTypePointer(), ghidra::AddrSpace::getWordSize(), ghidra::ParameterPieces::indirectstorage, ghidra::AssignAction::resource, and space.
|
inlinevirtual |
Make a copy of this action.
newResource | is the new resource object that will own the clone |
Implements ghidra::AssignAction.
|
virtual |
Configure any details of how this action should behave from the stream.
decoder | is the given stream decoder |
Implements ghidra::AssignAction.
References ghidra::Decoder::closeElement(), and ghidra::Decoder::openElement().