ROSE  0.9.9.109
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  RegisterStateX86
 The set of all registers and their values for a 32-bit x86 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::Container::Set< InputOutputPropertyInputOutputPropertySet
 Set of Boolean properties. More...
 
typedef Sawyer::SharedPointer< class MergerMergerPtr
 Shared-ownership pointer for Merger classes. More...
 
typedef Sawyer::SharedPointer< class SValueSValuePtr
 Shared-ownership pointer to a semantic value in any domain. More...
 
typedef boost::shared_ptr< class RegisterStateRegisterStatePtr
 Shared-ownership pointer to a register state. More...
 
typedef boost::shared_ptr< class RegisterStateX86RegisterStateX86Ptr
 Shared-ownership pointer to an x86 register state. More...
 
typedef boost::shared_ptr< class MemoryStateMemoryStatePtr
 Shared-ownership pointer to a memory state. More...
 
typedef boost::shared_ptr< class StateStatePtr
 Shared-ownership pointer to a semantic state. More...
 
typedef boost::shared_ptr< class RiscOperatorsRiscOperatorsPtr
 Shared-ownership pointer to a RISC operators object. More...
 
typedef boost::shared_ptr< class DispatcherDispatcherPtr
 Shared-ownership pointer to a semantics instruction dispatcher. 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

template<class To , class From >
Sawyer::SharedPointer< To > dynamic_pointer_cast (const Sawyer::SharedPointer< From > &from)
 
std::ostream & operator<< (std::ostream &, const Exception &)
 
std::ostream & operator<< (std::ostream &, const SValue &)
 
std::ostream & operator<< (std::ostream &, const SValue::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 State &)
 
std::ostream & operator<< (std::ostream &, const State::WithFormatter &)
 
std::ostream & operator<< (std::ostream &, const RiscOperators &)
 
std::ostream & operator<< (std::ostream &, const RiscOperators::WithFormatter &)
 
std::ostream & operator<< (std::ostream &, const MemoryCell &)
 
std::ostream & operator<< (std::ostream &, const MemoryCell::WithFormatter &)
 

Typedef Documentation

Set of Boolean properties.

Definition at line 447 of file BaseSemantics2.h.

Shared-ownership pointer for Merger classes.

See Shared ownership.

Definition at line 476 of file BaseSemantics2.h.

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

See Shared ownership.

Definition at line 522 of file BaseSemantics2.h.

Shared-ownership pointer to a register state.

See Shared ownership.

Definition at line 753 of file BaseSemantics2.h.

Shared-ownership pointer to an x86 register state.

See Shared ownership.

Definition at line 929 of file BaseSemantics2.h.

Shared-ownership pointer to a memory state.

See Shared ownership.

Definition at line 1056 of file BaseSemantics2.h.

Shared-ownership pointer to a semantic state.

See Shared ownership.

Definition at line 1254 of file BaseSemantics2.h.

Shared-ownership pointer to a RISC operators object.

See Shared ownership.

Definition at line 1509 of file BaseSemantics2.h.

Shared-ownership pointer to a semantics instruction dispatcher.

See Shared ownership.

Definition at line 2222 of file BaseSemantics2.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 16 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 435 of file BaseSemantics2.h.