libTriton  version 1.0 build 1549
Modules | Namespaces | Classes | Enumerations | Functions | Variables
Arch
Collaboration diagram for Arch:

Modules

 Arm
 
 X86
 

Namespaces

namespace  triton::arch::arm
 The ARM namespace.
 
namespace  triton::arch::x86
 The x86 namespace.
 

Classes

class  triton::arch::Architecture
 The abstract architecture class. More...
 
class  triton::arch::BasicBlock
 This class is used to represent a basic block. 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 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::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...
 
class  triton::arch::ShortcutRegister
 This is used as a shortcut to access to registers. More...
 

Enumerations

enum  triton::arch::architecture_e {
  triton::arch::ARCH_INVALID = 0 , triton::arch::ARCH_AARCH64 , triton::arch::ARCH_ARM32 , triton::arch::ARCH_X86 ,
  triton::arch::ARCH_X86_64
}
 
enum  triton::arch::endianness_e { triton::arch::LE_ENDIANNESS , triton::arch::BE_ENDIANNESS }
 
enum  triton::arch::operand_e { triton::arch::OP_INVALID = 0 , triton::arch::OP_IMM , triton::arch::OP_MEM , triton::arch::OP_REG }
 
enum  triton::arch::exception_e {
  triton::arch::NO_FAULT = 0 , triton::arch::FAULT_DE , triton::arch::FAULT_BP , triton::arch::FAULT_UD ,
  triton::arch::FAULT_GP
}
 
enum  triton::arch::register_e { triton::arch::ID_REG_INVALID = 0 , triton::arch::ID_REG_LAST_ITEM }
 Types of register. More...
 

Functions

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

Variables

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

Detailed Description

Enumeration Type Documentation

◆ architecture_e

Types of architecture

Enumerator
ARCH_INVALID 

Invalid architecture.

ARCH_AARCH64 

AArch64 architecture.

ARCH_ARM32 

ARM32 architecture.

ARCH_X86 

X86 architecture.

ARCH_X86_64 

X86_64 architecture.

Definition at line 32 of file archEnums.hpp.

◆ endianness_e

Types of endianness

Enumerator
LE_ENDIANNESS 

Little endian.

BE_ENDIANNESS 

Big endian.

Definition at line 41 of file archEnums.hpp.

◆ exception_e

Types of exceptions

Enumerator
NO_FAULT 

Succeed, no fault.

FAULT_DE 

Fault raised: Divide-by-zero.

FAULT_BP 

Fault raised: Breakpoint.

FAULT_UD 

Fault raised: Instruction not supported.

FAULT_GP 

Fault raised: General Protection Fault.

Definition at line 55 of file archEnums.hpp.

◆ operand_e

Types of operand

Enumerator
OP_INVALID 

Invalid operand

OP_IMM 

Immediate operand

OP_MEM 

Memory operand

OP_REG 

Register operand

Definition at line 47 of file archEnums.hpp.

◆ register_e

Types of register.

Enumerator
ID_REG_INVALID 

invalid = 0

ID_REG_LAST_ITEM 

must be the last item

Definition at line 64 of file archEnums.hpp.

Function Documentation

◆ operator!=() [1/2]

TRITON_EXPORT bool triton::arch::operator!= ( const Immediate imm1,
const Immediate imm2 
)

Compares two Immediate.

Definition at line 137 of file immediate.cpp.

◆ operator!=() [2/2]

TRITON_EXPORT bool triton::arch::operator!= ( const MemoryAccess mem1,
const MemoryAccess mem2 
)

Compares two MemoryAccess.

Definition at line 238 of file memoryAccess.cpp.

◆ operator<() [1/3]

TRITON_EXPORT bool triton::arch::operator< ( const Immediate imm1,
const Immediate imm2 
)

Compares two Immediate (needed for std::map)

Definition at line 142 of file immediate.cpp.

◆ operator<() [2/3]

TRITON_EXPORT bool triton::arch::operator< ( const MemoryAccess mem1,
const MemoryAccess mem2 
)

Compares two MemoryAccess (needed for std::map)

Definition at line 243 of file memoryAccess.cpp.

◆ operator<() [3/3]

TRITON_EXPORT bool triton::arch::operator< ( const Register reg1,
const Register reg2 
)

Compares two Register.

Definition at line 134 of file register.cpp.

◆ operator<<() [1/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
BasicBlock block 
)

Displays an BasicBlock.

Definition at line 82 of file basicBlock.cpp.

◆ operator<<() [2/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
BasicBlock block 
)

Displays an BasicBlock.

Definition at line 94 of file basicBlock.cpp.

◆ operator<<() [3/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
const BitsVector bv 
)

Displays a BitsVector.

Definition at line 91 of file bitsVector.cpp.

◆ operator<<() [4/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
const BitsVector bv 
)

Displays a BitsVector.

Definition at line 97 of file bitsVector.cpp.

◆ operator<<() [5/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
const Immediate imm 
)

Displays an Immediate.

Definition at line 108 of file immediate.cpp.

◆ operator<<() [6/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
const Immediate imm 
)

Displays an Immediate.

Definition at line 122 of file immediate.cpp.

◆ operator<<() [7/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
const Instruction inst 
)

Displays an Instruction.

Definition at line 547 of file instruction.cpp.

◆ operator<<() [8/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
const Instruction inst 
)

Displays an Instruction.

Definition at line 554 of file instruction.cpp.

◆ operator<<() [9/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
const MemoryAccess mem 
)

Displays an MemoryAccess.

Definition at line 197 of file memoryAccess.cpp.

◆ operator<<() [10/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
const MemoryAccess mem 
)

Displays an MemoryAccess.

Definition at line 211 of file memoryAccess.cpp.

◆ operator<<() [11/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
const Register reg 
)

Displays a Register.

Definition at line 115 of file register.cpp.

◆ operator<<() [12/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
const Register reg 
)

Displays a Register.

Definition at line 128 of file register.cpp.

◆ operator<<() [13/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
const triton::arch::OperandWrapper op 
)

Displays a OperandWrapper according to the concrete type.

Definition at line 185 of file operandWrapper.cpp.

◆ operator<<() [14/14]

TRITON_EXPORT std::ostream & triton::arch::operator<< ( std::ostream &  stream,
const triton::arch::OperandWrapper op 
)

Displays a OperandWrapper according to the concrete type.

Definition at line 197 of file operandWrapper.cpp.

◆ operator==() [1/2]

TRITON_EXPORT bool triton::arch::operator== ( const Immediate imm1,
const Immediate imm2 
)

Compares two Immediate.

Definition at line 128 of file immediate.cpp.

◆ operator==() [2/2]

TRITON_EXPORT bool triton::arch::operator== ( const MemoryAccess mem1,
const MemoryAccess mem2 
)

Compares two MemoryAccess.

Definition at line 217 of file memoryAccess.cpp.

Variable Documentation

◆ FORCE_MEMORY_INITIALIZATION

const bool triton::arch::FORCE_MEMORY_INITIALIZATION = true

Defines the force memory initialization constant.

Definition at line 175 of file memoryAccess.hpp.