ROSE 0.11.145.192
Public Member Functions | List of all members
Rose::BinaryAnalysis::Partitioner2::DataFlow::TransferFunction Class Reference

Description

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.
 

Constructor & Destructor Documentation

◆ TransferFunction()

Rose::BinaryAnalysis::Partitioner2::DataFlow::TransferFunction::TransferFunction ( const InstructionSemantics::BaseSemantics::DispatcherPtr )
explicit

Construct from a CPU.

Constructs a new transfer function using the specified cpu.

Member Function Documentation

◆ cpu()

InstructionSemantics::BaseSemantics::DispatcherPtr Rose::BinaryAnalysis::Partitioner2::DataFlow::TransferFunction::cpu ( ) const

Property: Virtual CPU.

This is the same pointer specified in the constructor.

◆ defaultCallingConvention() [1/2]

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.

◆ defaultCallingConvention() [2/2]

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.

◆ ignoringSemanticFailures() [1/2]

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.

◆ ignoringSemanticFailures() [2/2]

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.


The documentation for this class was generated from the following file: