ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
|
Classes | |
class | BitArray |
stores a bit vector More... | |
class | BitArrayRange |
Reading through it will only return bits within the range. More... | |
class | Buffer |
Buffer for reading data from memory while instructions are being fetched. More... | |
class | Instruction |
holds information and translation callbacks for an instruction. More... | |
class | InstructionClass |
maps to VariableInstructionSet More... | |
class | InstructionCollection |
maps to ModedInstructionSet More... | |
class | InstructionContext |
this class contains parameters that persist in between instruction lookpus/translation within a translation block. More... | |
class | InstructionDefinition |
maps to Instruction More... | |
class | InstructionGroup |
maps to InstructionSet More... | |
class | InstructionSet |
holds etiss::instr::Instruction instances and handles automatic instruction tree creation. More... | |
struct | less |
calls operator< of the objects. More... | |
class | ModedInstructionSet |
holds etiss::instr::VariableInstructionSet instances for different modes. More... | |
class | OPCode |
defines the relevant bits and their value to identify an instruction. More... | |
class | VariableInstructionSet |
holds etiss::instr::InstructionSet instances with different bit widths. More... | |
Typedefs | |
typedef uint32_t | I |
typedef std::set< Instruction * > | Node |
Holding unique instruction sets code chunks after permutation. | |
typedef BitArray::size_type | size_type |
Functions | |
uint32_t | parse_i32 (const char *s) |
template<typename T_ > | |
std::enable_if< std::is_integral< T_ >::value, typenamestd::make_unsigned< T_ >::type >::type | 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. | |
typedef uint32_t etiss::instr::I |
Definition at line 80 of file Instruction.h.
typedef std::set<Instruction*> etiss::instr::Node |
Holding unique instruction sets code chunks after permutation.
Definition at line 155 of file Instruction.h.
typedef BitArray::size_type etiss::instr::size_type |
Definition at line 67 of file Instruction.cpp.
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.
12x] that defines the length in bits. e.g. "2xF 2x0 4xF" -> 0xCF
syntax: string: definition [' ' string] definition: bit_count 'x' bit_value bit_count: digit [bit_count] digit: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' bit_value: hdigit [bit_value] hdigit: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | 'A' | 'B' | 'C' | 'D' | 'E' | 'F'
bit_count is a decimal number that defines the length in bits of the definition. bit_value defines the values of the bits of the definition in hexadecimal format. the definitions are alwas placed at the least significant bits and are left shifted by definitions to the right from them. the total sum of bit_count occurences in a string must match the width of the return type otherwise an error message is printed the behaviour is undefined in case of a bit_value that has less bits than defined by the bit_count.
example parsing process of "2xF 2x0 2xF 10x0": initial value: 0x0000 parse 1. definition: 0x0003 parse 2. definition: 0x000C parse 3. definition: 0x0033 parse 4. definition: 0xCC00
Definition at line 791 of file Instruction.h.
References etiss::ERROR, etiss::log(), and s.
uint32_t etiss::instr::parse_i32 | ( | const char * | s | ) |
Definition at line 762 of file Instruction.cpp.
References s.