ROSE
0.11.131.0
|
Base classes for instruction semantics.
Basically, anything that is common to two or more instruction semantic domains will be factored out and placed in this name space.
Classes | |
class | Dispatcher |
Dispatches instructions through the RISC layer. More... | |
class | Exception |
Base class for exceptions thrown by instruction semantics. More... | |
class | Formatter |
Format for printing things. More... | |
class | Indent |
Adjusts a Formatter for one additional level of indentation. More... | |
class | InsnProcessor |
Functor that knows how to dispatch a single kind of instruction. More... | |
class | MemoryCell |
Represents one location in memory. More... | |
class | MemoryCellList |
Simple list-based memory state. More... | |
class | MemoryCellMap |
Simple map-based memory state. More... | |
class | MemoryCellState |
Cell-based memory state. More... | |
class | MemoryState |
Represents all memory in the state. More... | |
class | Merger |
Controls state merge operations. More... | |
class | NotImplemented |
class | RegisterState |
The set of all registers and their values. More... | |
class | RegisterStateGeneric |
A RegisterState for any architecture. More... | |
class | RiscOperators |
Base class for most instruction semantics RISC operators. More... | |
class | State |
Base class for semantics machine states. More... | |
class | SValue |
Base class for semantic values. More... | |
class | SymbolicMemory |
Purely symbolic memory state. More... | |
Typedefs | |
typedef Sawyer::SharedPointer< Merger > | MergerPtr |
Shared-ownership pointer for Merger classes. More... | |
typedef Sawyer::SharedPointer< SValue > | SValuePtr |
Shared-ownership pointer to a semantic value in any domain. More... | |
typedef boost::shared_ptr< RegisterState > | RegisterStatePtr |
Shared-ownership pointer to a register state. More... | |
typedef boost::shared_ptr< MemoryState > | MemoryStatePtr |
Shared-ownership pointer to a memory state. More... | |
typedef boost::shared_ptr< MemoryCell > | MemoryCellPtr |
Shared-ownership pointer to a memory cell. More... | |
typedef boost::shared_ptr< State > | StatePtr |
Shared-ownership pointer to a semantic state. More... | |
typedef boost::shared_ptr< RiscOperators > | RiscOperatorsPtr |
Shared-ownership pointer to a RISC operators object. More... | |
typedef boost::shared_ptr< Dispatcher > | DispatcherPtr |
Shared-ownership pointer to a semantics instruction dispatcher. More... | |
typedef Sawyer::Container::Set< InputOutputProperty > | InputOutputPropertySet |
Set of Boolean properties. More... | |
using | CellList = std::list< MemoryCellPtr > |
List of memory cells. More... | |
typedef boost::shared_ptr< class MemoryCellList > | MemoryCellListPtr |
Shared-ownership pointer to a list-based memory state. More... | |
typedef boost::shared_ptr< class MemoryCellMap > | MemoryCellMapPtr |
Shared-ownership pointer to a map-based memory state. More... | |
typedef boost::shared_ptr< class MemoryCellState > | MemoryCellStatePtr |
Shared-ownership pointer to a cell-based memory state. More... | |
typedef boost::shared_ptr< class RegisterStateGeneric > | RegisterStateGenericPtr |
Shared-ownership pointer to generic register states. More... | |
typedef boost::shared_ptr< class SymbolicMemory > | SymbolicMemoryPtr |
Shared-ownership pointer for symbolic memory state. More... | |
Enumerations | |
enum | InputOutputProperty { IO_READ, IO_WRITE, IO_INIT, IO_READ_BEFORE_WRITE, IO_READ_AFTER_WRITE, IO_READ_UNINITIALIZED } |
Boolean properties related to I/O. More... | |
Functions | |
std::ostream & | operator<< (std::ostream &, const Exception &) |
std::ostream & | operator<< (std::ostream &, const MemoryCell &) |
std::ostream & | operator<< (std::ostream &, const MemoryCell::WithFormatter &) |
std::ostream & | operator<< (std::ostream &, const MemoryState &) |
std::ostream & | operator<< (std::ostream &, const MemoryState::WithFormatter &) |
std::ostream & | operator<< (std::ostream &, const RegisterState &) |
std::ostream & | operator<< (std::ostream &, const RegisterState::WithFormatter &) |
std::ostream & | operator<< (std::ostream &, const RiscOperators &) |
std::ostream & | operator<< (std::ostream &, const RiscOperators::WithFormatter &) |
std::ostream & | operator<< (std::ostream &, const State &) |
std::ostream & | operator<< (std::ostream &, const State::WithFormatter &) |
template<class To , class From > | |
Sawyer::SharedPointer< To > | dynamic_pointer_cast (const Sawyer::SharedPointer< From > &from) |
std::ostream & | operator<< (std::ostream &, const SValue &) |
std::ostream & | operator<< (std::ostream &, const SValue::WithFormatter &) |
typedef Sawyer::SharedPointer<Merger> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MergerPtr |
Shared-ownership pointer for Merger classes.
Definition at line 36 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef Sawyer::SharedPointer<SValue> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::SValuePtr |
Shared-ownership pointer to a semantic value in any domain.
Definition at line 46 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<RegisterState> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::RegisterStatePtr |
Shared-ownership pointer to a register state.
Definition at line 49 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<MemoryState> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryStatePtr |
Shared-ownership pointer to a memory state.
Definition at line 52 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<MemoryCell> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellPtr |
Shared-ownership pointer to a memory cell.
Definition at line 55 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<State> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::StatePtr |
Shared-ownership pointer to a semantic state.
Definition at line 58 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<RiscOperators> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::RiscOperatorsPtr |
Shared-ownership pointer to a RISC operators object.
Definition at line 61 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<Dispatcher> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::DispatcherPtr |
Shared-ownership pointer to a semantics instruction dispatcher.
Definition at line 64 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef Sawyer::Container::Set<InputOutputProperty> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::InputOutputPropertySet |
Set of Boolean properties.
Definition at line 92 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
using Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::CellList = typedef std::list<MemoryCellPtr> |
List of memory cells.
Definition at line 274 of file MemoryCell.h.
typedef boost::shared_ptr<class MemoryCellList> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellListPtr |
Shared-ownership pointer to a list-based memory state.
Definition at line 19 of file MemoryCellList.h.
typedef boost::shared_ptr<class MemoryCellMap> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellMapPtr |
Shared-ownership pointer to a map-based memory state.
Definition at line 21 of file MemoryCellMap.h.
typedef boost::shared_ptr<class MemoryCellState> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::MemoryCellStatePtr |
Shared-ownership pointer to a cell-based memory state.
Definition at line 20 of file BaseSemantics/MemoryCellState.h.
typedef boost::shared_ptr<class RegisterStateGeneric> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::RegisterStateGenericPtr |
Shared-ownership pointer to generic register states.
Definition at line 22 of file RegisterStateGeneric.h.
typedef boost::shared_ptr<class SymbolicMemory> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::SymbolicMemoryPtr |
Shared-ownership pointer for symbolic memory state.
Definition at line 17 of file SymbolicMemory.h.
Boolean properties related to I/O.
These Boolean properties keep track of whether a value was read from and/or written to a register or memory state. Each state implementation has different capabilities, so see the implementation for details. In short, RegisterStateGeneric tracks these properties per bit of each register while memory states generally track them on a byte-by-byte basis.
Although the register and memory state objects provide the data members for storing this information, the properties are generally manipulated by higher layers such as the readRegister
, writeRegister
, readMemory
, and writeMemory
methods in a RiscOperators implementation.
Definition at line 80 of file BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.