ROSE
0.11.87.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 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... | |
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... | |
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 boost::shared_ptr<class MemoryCellList> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::MemoryCellListPtr |
Shared-ownership pointer to a list-based memory state.
See Shared ownership.
Definition at line 19 of file BaseSemantics/MemoryCellList.h.
typedef boost::shared_ptr<class MemoryCellMap> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::MemoryCellMapPtr |
Shared-ownership pointer to a map-based memory state.
See Shared ownership.
Definition at line 21 of file BaseSemantics/MemoryCellMap.h.
typedef boost::shared_ptr<class MemoryCellState> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::MemoryCellStatePtr |
Shared-ownership pointer to a cell-based memory state.
See Shared ownership.
Definition at line 20 of file BaseSemantics/MemoryCellState.h.
typedef boost::shared_ptr<class RegisterStateGeneric> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::RegisterStateGenericPtr |
Shared-ownership pointer to generic register states.
See Shared ownership.
Definition at line 21 of file BaseSemantics/RegisterStateGeneric.h.
typedef boost::shared_ptr<class SymbolicMemory> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::SymbolicMemoryPtr |
Shared-ownership pointer for symbolic memory state.
See Shared ownership.
Definition at line 17 of file BaseSemantics/SymbolicMemory.h.
typedef Sawyer::SharedPointer<Merger> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::MergerPtr |
Shared-ownership pointer for Merger classes.
See Shared ownership.
Definition at line 36 of file InstructionSemantics2/BaseSemantics/Types.h.
typedef Sawyer::SharedPointer<SValue> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::SValuePtr |
Shared-ownership pointer to a semantic value in any domain.
See Shared ownership.
Definition at line 46 of file InstructionSemantics2/BaseSemantics/Types.h.
typedef boost::shared_ptr<RegisterState> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::RegisterStatePtr |
Shared-ownership pointer to a register state.
See Shared ownership.
Definition at line 49 of file InstructionSemantics2/BaseSemantics/Types.h.
typedef boost::shared_ptr<MemoryState> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::MemoryStatePtr |
Shared-ownership pointer to a memory state.
See Shared ownership.
Definition at line 52 of file InstructionSemantics2/BaseSemantics/Types.h.
typedef boost::shared_ptr<MemoryCell> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::MemoryCellPtr |
Shared-ownership pointer to a memory cell.
See Shared ownership.
Definition at line 55 of file InstructionSemantics2/BaseSemantics/Types.h.
typedef boost::shared_ptr<State> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::StatePtr |
Shared-ownership pointer to a semantic state.
See Shared ownership.
Definition at line 58 of file InstructionSemantics2/BaseSemantics/Types.h.
typedef boost::shared_ptr<RiscOperators> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::RiscOperatorsPtr |
Shared-ownership pointer to a RISC operators object.
See Shared ownership.
Definition at line 61 of file InstructionSemantics2/BaseSemantics/Types.h.
typedef boost::shared_ptr<Dispatcher> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::DispatcherPtr |
Shared-ownership pointer to a semantics instruction dispatcher.
See Shared ownership.
Definition at line 64 of file InstructionSemantics2/BaseSemantics/Types.h.
typedef Sawyer::Container::Set<InputOutputProperty> Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics::InputOutputPropertySet |
Set of Boolean properties.
Definition at line 92 of file InstructionSemantics2/BaseSemantics/Types.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 InstructionSemantics2/BaseSemantics/Types.h.