ROSE 0.11.145.147
|
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. | |
typedef Sawyer::SharedPointer< SValue > | SValuePtr |
Shared-ownership pointer to a semantic value in any domain. | |
typedef boost::shared_ptr< RegisterState > | RegisterStatePtr |
Shared-ownership pointer to a register state. | |
typedef boost::shared_ptr< class RegisterStateGeneric > | RegisterStateGenericPtr |
Shared-ownership pointer to generic register states. | |
typedef boost::shared_ptr< MemoryState > | MemoryStatePtr |
Shared-ownership pointer to a memory state. | |
typedef boost::shared_ptr< MemoryCell > | MemoryCellPtr |
Shared-ownership pointer to a memory cell. | |
typedef boost::shared_ptr< State > | StatePtr |
Shared-ownership pointer to a semantic state. | |
typedef boost::shared_ptr< RiscOperators > | RiscOperatorsPtr |
Shared-ownership pointer to a RISC operators object. | |
typedef boost::shared_ptr< Dispatcher > | DispatcherPtr |
Shared-ownership pointer to a semantics instruction dispatcher. | |
typedef Sawyer::Container::Set< InputOutputProperty > | InputOutputPropertySet |
Set of Boolean properties. | |
using | CellList = std::list< MemoryCellPtr > |
List of memory cells. | |
typedef boost::shared_ptr< class MemoryCellList > | MemoryCellListPtr |
Shared-ownership pointer to a list-based memory state. | |
typedef boost::shared_ptr< class MemoryCellMap > | MemoryCellMapPtr |
Shared-ownership pointer to a map-based memory state. | |
typedef boost::shared_ptr< class MemoryCellState > | MemoryCellStatePtr |
Shared-ownership pointer to a cell-based memory state. | |
typedef boost::shared_ptr< class SymbolicMemory > | SymbolicMemoryPtr |
Shared-ownership pointer for symbolic memory state. | |
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 45 of file Rose/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 48 of file Rose/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 51 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef boost::shared_ptr<class RegisterStateGeneric> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::RegisterStateGenericPtr |
Shared-ownership pointer to generic register states.
Definition at line 54 of file Rose/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 57 of file Rose/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 60 of file Rose/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 63 of file Rose/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 66 of file Rose/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 69 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
typedef Sawyer::Container::Set<InputOutputProperty> Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::InputOutputPropertySet |
Set of Boolean properties.
Definition at line 97 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
using Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::CellList = typedef std::list<MemoryCellPtr> |
List of memory cells.
Definition at line 276 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 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 85 of file Rose/BinaryAnalysis/InstructionSemantics/BaseSemantics/BasicTypes.h.
Sawyer::SharedPointer< To > Rose::BinaryAnalysis::InstructionSemantics::BaseSemantics::dynamic_pointer_cast | ( | const Sawyer::SharedPointer< From > & | from | ) |