1 #ifndef ROSE_BinaryAnalysis_ModelChecker_InstructionUnit_H
2 #define ROSE_BinaryAnalysis_ModelChecker_InstructionUnit_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
6 #include <Rose/BinaryAnalysis/ModelChecker/ExecutionUnit.h>
9 namespace BinaryAnalysis {
10 namespace ModelChecker {
17 using Ptr = InstructionUnitPtr;
47 virtual void printSteps(
const SettingsPtr&, std::ostream&,
const std::string &prefix,
48 size_t stepOrigin,
size_t maxSteps)
const override;
49 virtual void toYamlHeader(
const SettingsPtr&, std::ostream&,
const std::string &prefix)
const override;
50 virtual void toYamlSteps(
const SettingsPtr&, std::ostream&,
const std::string &prefix,
51 size_t stepOrigin,
size_t maxSteps)
const override;
52 virtual size_t nSteps()
const override;
55 virtual std::vector<TagPtr>
56 execute(
const SettingsPtr&,
const SemanticCallbacksPtr&,
boost::shared_ptr< RiscOperators > RiscOperatorsPtr
Shared-ownership pointer to a RISC operators object.
Information about a source location.
Base class for machine instructions.
An execution unit for a single instruction.
virtual void toYamlSteps(const SettingsPtr &, std::ostream &, const std::string &prefix, size_t stepOrigin, size_t maxSteps) const override
Print the steps for this execution unit in YAML format.
Main namespace for the ROSE library.
virtual Sawyer::Optional< rose_addr_t > address() const override
Property: Address if it has one.
virtual std::string printableName() const override
Property: Printable name.
ExecutionUnitPtr Ptr
Shared ownership pointer for an execution unit.
SgAsmInstruction * instruction() const
Property: Instruction.
virtual void printSteps(const SettingsPtr &, std::ostream &, const std::string &prefix, size_t stepOrigin, size_t maxSteps) const override
Print the steps for this execution unit.
virtual void toYamlHeader(const SettingsPtr &, std::ostream &, const std::string &prefix) const override
Print the header information in YAML format.
virtual size_t nSteps() const override
Property: Number of steps required to execute this unit.
static Ptr instance(SgAsmInstruction *, const SourceLocation &)
Allocating constructor.
virtual std::vector< TagPtr > execute(const SettingsPtr &, const SemanticCallbacksPtr &, const InstructionSemantics2::BaseSemantics::RiscOperatorsPtr &) override
Execute the unit to create a new state.