ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
Loading...
Searching...
No Matches
Classes | Namespaces | Typedefs | Functions
Instruction.h File Reference

contains container classes to store instruction definitions + translation functions and build a translatio tree. More...

#include "etiss/Misc.h"
#include <climits>
#include <cstring>
#include <iomanip>
#include <sstream>
#include <stdexcept>
#include <string>
#include <boost/dynamic_bitset.hpp>
Include dependency graph for Instruction.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  etiss::instr::Buffer
 Buffer for reading data from memory while instructions are being fetched. More...
 
class  etiss::instr::BitArray
 stores a bit vector More...
 
class  etiss::instr::BitArrayRange
 Reading through it will only return bits within the range. More...
 
class  etiss::instr::OPCode
 defines the relevant bits and their value to identify an instruction. More...
 
struct  etiss::instr::less
 calls operator< of the objects. More...
 
class  etiss::instr::InstructionContext
 this class contains parameters that persist in between instruction lookpus/translation within a translation block. More...
 
class  etiss::instr::Instruction
 holds information and translation callbacks for an instruction. More...
 
class  etiss::instr::InstructionSet
 holds etiss::instr::Instruction instances and handles automatic instruction tree creation. More...
 
class  etiss::instr::VariableInstructionSet
 holds etiss::instr::InstructionSet instances with different bit widths. More...
 
class  etiss::instr::ModedInstructionSet
 holds etiss::instr::VariableInstructionSet instances for different modes. More...
 
class  etiss::instr::InstructionCollection
 maps to ModedInstructionSet More...
 
class  etiss::instr::InstructionClass
 maps to VariableInstructionSet More...
 
class  etiss::instr::InstructionGroup
 maps to InstructionSet More...
 
class  etiss::instr::InstructionDefinition
 maps to Instruction More...
 

Namespaces

namespace  etiss
 forwards: include/jit/*
 
namespace  etiss::instr
 

Typedefs

typedef uint32_t etiss::instr::I
 
typedef std::set< Instruction * > etiss::instr::Node
 Holding unique instruction sets code chunks after permutation.
 

Functions

uint32_t etiss::instr::parse_i32 (const char *s)
 
template<typename T_ >
std::enable_if< std::is_integral< T_ >::value, typenamestd::make_unsigned< T_ >::type >::type etiss::instr::parse_i (const char *s, bool *good=0)
 this parser basically allows to write as a string hexadecimal values which will be appended as if it is one hexadecimal sequence and the "0x" prefix is replaced by a "<decimal number>x" [e.g.
 

Detailed Description

contains container classes to store instruction definitions + translation functions and build a translatio tree.

the classes can be seperated into 3 types. general storage classes for bit vectors and related (BitArray,BitArrayReader,OPCode), classes that contain defined instructions and their translation functions (VariableInstructionSet,ModedInstructionSet,InstructionSet,Instruction) and classes that contain instruction definitions and can be added to the previous type of classes. For example use of these definition classes please have a look at the OR1K architecture implementation

Definition in file Instruction.h.