ROSE 0.11.145.147
|
Data-Flow transfer functor.
Definition at line 195 of file Partitioner2/DataFlow.h.
#include <Rose/BinaryAnalysis/Partitioner2/DataFlow.h>
Public Member Functions | |
TransferFunction (const InstructionSemantics::BaseSemantics::DispatcherPtr &) | |
Construct from a CPU. | |
InstructionSemantics::BaseSemantics::StatePtr | initialState () const |
Construct an initial state. | |
InstructionSemantics::BaseSemantics::DispatcherPtr | cpu () const |
Property: Virtual CPU. | |
std::string | toString (const InstructionSemantics::BaseSemantics::StatePtr &state) |
InstructionSemantics::BaseSemantics::StatePtr | operator() (const DfCfg &, size_t vertexId, const InstructionSemantics::BaseSemantics::StatePtr &incomingState) const |
CallingConvention::DefinitionPtr | defaultCallingConvention () const |
Property: Default calling convention. | |
void | defaultCallingConvention (const CallingConvention::DefinitionPtr &) |
Property: Default calling convention. | |
bool | ignoringSemanticFailures () const |
Property: Whether to ignore instructions with unknown semantics. | |
void | ignoringSemanticFailures (bool) |
Property: Whether to ignore instructions with unknown semantics. | |
|
explicit |
Construct from a CPU.
Constructs a new transfer function using the specified cpu
.
InstructionSemantics::BaseSemantics::DispatcherPtr Rose::BinaryAnalysis::Partitioner2::DataFlow::TransferFunction::cpu | ( | ) | const |
Property: Virtual CPU.
This is the same pointer specified in the constructor.
CallingConvention::DefinitionPtr Rose::BinaryAnalysis::Partitioner2::DataFlow::TransferFunction::defaultCallingConvention | ( | ) | const |
Property: Default calling convention.
The default calling convention is used whenever a call is made to a function that has no calling convention information. It specifies which registers should be clobbered by the call and how the stack and instruction poniter are adjusted when returning from the call. The default calling convention may be a null pointer to indicate that absolutely nothing is known about the convention of non-analyzed functions.
void Rose::BinaryAnalysis::Partitioner2::DataFlow::TransferFunction::defaultCallingConvention | ( | const CallingConvention::DefinitionPtr & | ) |
Property: Default calling convention.
The default calling convention is used whenever a call is made to a function that has no calling convention information. It specifies which registers should be clobbered by the call and how the stack and instruction poniter are adjusted when returning from the call. The default calling convention may be a null pointer to indicate that absolutely nothing is known about the convention of non-analyzed functions.
bool Rose::BinaryAnalysis::Partitioner2::DataFlow::TransferFunction::ignoringSemanticFailures | ( | ) | const |
Property: Whether to ignore instructions with unknown semantics.
If true, then an instruction with unknown semantics will cause the state to be updated in some way that is not well defined, depending on exactly when the semantic error occurs during the semantic execution of the instruction. If false, then an exception is thrown.
void Rose::BinaryAnalysis::Partitioner2::DataFlow::TransferFunction::ignoringSemanticFailures | ( | bool | ) |
Property: Whether to ignore instructions with unknown semantics.
If true, then an instruction with unknown semantics will cause the state to be updated in some way that is not well defined, depending on exactly when the semantic error occurs during the semantic execution of the instruction. If false, then an exception is thrown.