libTriton  version 0.6 build 1375
Modules | Namespaces | Classes | Enumerations | Functions | Variables
Arch
Collaboration diagram for Arch:

Modules

 X86
 

Namespaces

 triton::arch::x86
 The x86 namespace.
 

Classes

class  triton::arch::Architecture
 The abstract architecture class. More...
 
class  triton::arch::BitsVector
 This class is used to deal with registers and memory as bits vector. More...
 
interface  triton::arch::CpuInterface
 This interface is used as abstract CPU interface. All CPU must use this interface. More...
 
class  triton::arch::Immediate
 This class is used to represent an immediate. More...
 
class  triton::arch::Instruction
 This class is used when to represent an instruction. More...
 
class  triton::arch::IrBuilder
 The IR builder. More...
 
class  triton::arch::MemoryAccess
 This class is used to represent a memory access. More...
 
interface  triton::arch::OperandInterface
 This interface is used for instruction operands. More...
 
interface  triton::arch::OperandWrapper
 This class is used as operand wrapper. More...
 
class  triton::arch::Register
 This class is used when an instruction has a register operand. More...
 
interface  triton::arch::SemanticsInterface
 This interface is used as abstract semantics interface. All ISA semantics must use this interface. More...
 

Enumerations

enum  triton::arch::architectures_e { triton::arch::ARCH_INVALID = 0, triton::arch::ARCH_X86, triton::arch::ARCH_X86_64, triton::arch::ARCH_LAST_ITEM }
 
enum  triton::arch::operandType_e { triton::arch::OP_INVALID = 0, triton::arch::OP_IMM, triton::arch::OP_MEM, triton::arch::OP_REG }
 Type Operand. More...
 
enum  triton::arch::registers_e { triton::arch::ID_REG_INVALID = 0, triton::arch::REG_SPEC, triton::arch::REG_SPEC }
 The list of registers. More...
 

Functions

std::ostream & triton::arch::operator<< (std::ostream &stream, const BitsVector &bv)
 Displays a BitsVector.
 
std::ostream & triton::arch::operator<< (std::ostream &stream, const BitsVector *bv)
 Displays a BitsVector.
 
std::ostream & triton::arch::operator<< (std::ostream &stream, const Immediate &imm)
 Displays an Immediate.
 
std::ostream & triton::arch::operator<< (std::ostream &stream, const Immediate *imm)
 Displays an Immediate.
 
bool triton::arch::operator== (const Immediate &imm1, const Immediate &imm2)
 Compares two Immediate.
 
bool triton::arch::operator!= (const Immediate &imm1, const Immediate &imm2)
 Compares two Immediate.
 
bool triton::arch::operator< (const Immediate &imm1, const Immediate &imm2)
 Compares two Immediate (needed for std::map)
 
std::ostream & triton::arch::operator<< (std::ostream &stream, const Instruction &inst)
 Displays an Instruction.
 
std::ostream & triton::arch::operator<< (std::ostream &stream, const Instruction *inst)
 Displays an Instruction.
 
std::ostream & triton::arch::operator<< (std::ostream &stream, const MemoryAccess &mem)
 Displays an MemoryAccess.
 
std::ostream & triton::arch::operator<< (std::ostream &stream, const MemoryAccess *mem)
 Displays an MemoryAccess.
 
bool triton::arch::operator== (const MemoryAccess &mem1, const MemoryAccess &mem2)
 Compares two MemoryAccess.
 
bool triton::arch::operator!= (const MemoryAccess &mem1, const MemoryAccess &mem2)
 Compares two MemoryAccess.
 
bool triton::arch::operator< (const MemoryAccess &mem1, const MemoryAccess &mem2)
 Compares two MemoryAccess (needed for std::map)
 
std::ostream & triton::arch::operator<< (std::ostream &stream, const triton::arch::OperandWrapper &op)
 Displays a OperandWrapper according to the concrete type.
 
std::ostream & triton::arch::operator<< (std::ostream &stream, const triton::arch::OperandWrapper *op)
 Displays a OperandWrapper according to the concrete type.
 
std::ostream & triton::arch::operator<< (std::ostream &stream, const Register &reg)
 Displays a Register.
 
std::ostream & triton::arch::operator<< (std::ostream &stream, const Register *reg)
 Displays a Register.
 
bool triton::arch::operator< (const Register &reg1, const Register &reg2)
 Compares two Register.
 

Variables

const bool triton::arch::FORCE_MEMORY_INITIALIZATION = true
 Defines the force memory initialization constant.
 

Detailed Description

Enumeration Type Documentation

◆ architectures_e

The architectures

Enumerator
ARCH_INVALID 

invalid architecture.

ARCH_X86 

x86 architecture.

ARCH_X86_64 

x86_64 architecture.

ARCH_LAST_ITEM 

must be the last item.

Definition at line 41 of file architecture.hpp.

◆ operandType_e

Type Operand.

Enumerator
OP_INVALID 

invalid operand

OP_IMM 

immediate operand

OP_MEM 

memory operand

OP_REG 

register operand

Definition at line 32 of file operandInterface.hpp.

◆ registers_e

The list of registers.

Enumerator
ID_REG_INVALID 

invalid = 0

REG_SPEC 

rax

rbx rcx rdx rdi rsi rbp rsp rip r8 r8d r8w r8b r9 r9d r9w r9b r10 r10d r10w r10b r11 r11d r11w r11b r12 r12d r12w r12b r13 r13d r13w r13b r14 r14d r14w r14b r15 r15d r15w r15b eax ax ah al ebx bx bh bl ecx cx ch cl edx dx dh dl edi di dil esi si sil ebp bp bpl esp sp spl eip ip eflags mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 mxcsr xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 cr0 cr1 cr2 cr3 cr4 cr5 cr6 cr7 cr8 cr9 cr10 cr11 cr12 cr13 cr14 cr15 ac af cf df id if nt of pf rf sf tf vif vip vm zf ie (Invalid Operation Flag) de (Denormal Flag) ze (Divide By Zero Flag) oe (Overflow Flag) ue (Underflow Flag) pe (Precision Flag) daz (Invalid Operation Flag) im (Invalid Operation Mask) dm (Denormal Mask) zm (Divide By Zero Mask) om (Overflow Mask) um (Underflow Mask) pm (Precision Mask) rl (Round Negative) rh (Round Positive) fz (Flush To Zero) Code Segment Data Segment Extra Segment F Segment G Segment Stack Segment must be the last item

REG_SPEC 

rax

rbx rcx rdx rdi rsi rbp rsp rip r8 r8d r8w r8b r9 r9d r9w r9b r10 r10d r10w r10b r11 r11d r11w r11b r12 r12d r12w r12b r13 r13d r13w r13b r14 r14d r14w r14b r15 r15d r15w r15b eax ax ah al ebx bx bh bl ecx cx ch cl edx dx dh dl edi di dil esi si sil ebp bp bpl esp sp spl eip ip eflags mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 mxcsr xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 cr0 cr1 cr2 cr3 cr4 cr5 cr6 cr7 cr8 cr9 cr10 cr11 cr12 cr13 cr14 cr15 ac af cf df id if nt of pf rf sf tf vif vip vm zf ie (Invalid Operation Flag) de (Denormal Flag) ze (Divide By Zero Flag) oe (Overflow Flag) ue (Underflow Flag) pe (Precision Flag) daz (Invalid Operation Flag) im (Invalid Operation Mask) dm (Denormal Mask) zm (Divide By Zero Mask) om (Overflow Mask) um (Underflow Mask) pm (Precision Mask) rl (Round Negative) rh (Round Positive) fz (Flush To Zero) Code Segment Data Segment Extra Segment F Segment G Segment Stack Segment must be the last item

Definition at line 28 of file registers_e.hpp.