ROSE  0.9.12.28
Classes | Typedefs | Enumerations | Functions
Rose::BinaryAnalysis::InstructionSemantics2::BaseSemantics Namespace Reference

Description

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< MergerMergerPtr
 Shared-ownership pointer for Merger classes. More...
 
typedef Sawyer::SharedPointer< SValueSValuePtr
 Shared-ownership pointer to a semantic value in any domain. More...
 
typedef boost::shared_ptr< RegisterStateRegisterStatePtr
 Shared-ownership pointer to a register state. More...
 
typedef boost::shared_ptr< MemoryStateMemoryStatePtr
 Shared-ownership pointer to a memory state. More...
 
typedef boost::shared_ptr< StateStatePtr
 Shared-ownership pointer to a semantic state. More...
 
typedef boost::shared_ptr< RiscOperatorsRiscOperatorsPtr
 Shared-ownership pointer to a RISC operators object. More...
 
typedef boost::shared_ptr< DispatcherDispatcherPtr
 Shared-ownership pointer to a semantics instruction dispatcher. More...
 
typedef Sawyer::Container::Set< InputOutputPropertyInputOutputPropertySet
 Set of Boolean properties. More...
 
typedef boost::shared_ptr< class MemoryCellMemoryCellPtr
 Shared-ownership pointer to a semantic memory cell. More...
 
typedef boost::shared_ptr< class MemoryCellListMemoryCellListPtr
 Shared-ownership pointer to a list-based memory state. More...
 
typedef boost::shared_ptr< class MemoryCellMapMemoryCellMapPtr
 Shared-ownership pointer to a map-based memory state. More...
 
typedef boost::shared_ptr< class MemoryCellStateMemoryCellStatePtr
 Shared-ownership pointer to a cell-based memory state. More...
 
typedef boost::shared_ptr< class RegisterStateGenericRegisterStateGenericPtr
 Shared-ownership pointer to generic register states. More...
 
typedef boost::shared_ptr< class SymbolicMemorySymbolicMemoryPtr
 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 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 &)
 
std::ostream & operator<< (std::ostream &, const MemoryCell &)
 
std::ostream & operator<< (std::ostream &, const MemoryCell::WithFormatter &)
 

Typedef Documentation

Shared-ownership pointer for Merger classes.

See Shared ownership.

Definition at line 32 of file BaseSemanticsTypes.h.

Shared-ownership pointer to a semantic value in any domain.

See Shared ownership.

Definition at line 42 of file BaseSemanticsTypes.h.

Shared-ownership pointer to a register state.

See Shared ownership.

Definition at line 45 of file BaseSemanticsTypes.h.

Shared-ownership pointer to a memory state.

See Shared ownership.

Definition at line 48 of file BaseSemanticsTypes.h.

Shared-ownership pointer to a semantic state.

See Shared ownership.

Definition at line 51 of file BaseSemanticsTypes.h.

Shared-ownership pointer to a RISC operators object.

See Shared ownership.

Definition at line 54 of file BaseSemanticsTypes.h.

Shared-ownership pointer to a semantics instruction dispatcher.

See Shared ownership.

Definition at line 57 of file BaseSemanticsTypes.h.

Set of Boolean properties.

Definition at line 87 of file BaseSemanticsTypes.h.

Shared-ownership pointer to a semantic memory cell.

See Shared ownership.

Definition at line 15 of file MemoryCell.h.

Shared-ownership pointer to a list-based memory state.

See Shared ownership.

Definition at line 17 of file MemoryCellList.h.

Shared-ownership pointer to a map-based memory state.

See Shared ownership.

Definition at line 19 of file MemoryCellMap.h.

Shared-ownership pointer to a cell-based memory state.

See Shared ownership.

Definition at line 17 of file MemoryCellState.h.

Shared-ownership pointer to generic register states.

See Shared ownership.

Definition at line 17 of file RegisterStateGeneric.h.

Shared-ownership pointer for symbolic memory state.

See Shared ownership.

Definition at line 15 of file SymbolicMemory2.h.

Enumeration Type Documentation

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.

Enumerator
IO_READ 

The location was read on behalf of an instruction.

IO_WRITE 

The location was written on behalf of an instruction.

IO_INIT 

The location was written without an instruction.

This typically happens during state initialization.

IO_READ_BEFORE_WRITE 

The location was read without having the IO_WRITE property.

IO_READ_AFTER_WRITE 

The location was read after being written.

IO_READ_UNINITIALIZED 

The location was read without having the IO_WRITE or IO_INIT property.

Definition at line 75 of file BaseSemanticsTypes.h.