libTriton version 1.0 build 1592
|
This class is used to represent an instruction. More...
#include <instruction.hpp>
Public Member Functions | |
TRITON_EXPORT | Instruction () |
Constructor. | |
TRITON_EXPORT | Instruction (const void *opcode, triton::uint32 opSize) |
Constructor with opcode. | |
TRITON_EXPORT | Instruction (triton::uint64 addr, const void *opcode, triton::uint32 opSize) |
Constructor with opcode and address. | |
TRITON_EXPORT | Instruction (const Instruction &other) |
Constructor by copy. | |
TRITON_EXPORT Instruction & | operator= (const Instruction &other) |
Copies an Instruction. | |
TRITON_EXPORT | ~Instruction () |
Destructor. | |
TRITON_EXPORT triton::arch::architecture_e | getArchitecture (void) const |
Returns the instruction's architecture. | |
TRITON_EXPORT triton::uint32 | getThreadId (void) const |
Returns the thread id of the instruction. | |
TRITON_EXPORT void | setThreadId (triton::uint32 tid) |
Sets the thread id of the instruction. | |
TRITON_EXPORT triton::uint64 | getAddress (void) const |
Returns the address of the instruction. | |
TRITON_EXPORT triton::uint64 | getNextAddress (void) const |
Returns the next address of the instruction. | |
TRITON_EXPORT void | setAddress (triton::uint64 addr) |
Sets the address of the instruction. | |
TRITON_EXPORT std::string | getDisassembly (void) const |
Returns the disassembly of the instruction. | |
TRITON_EXPORT const triton::uint8 * | getOpcode (void) const |
Returns the opcode of the instruction. | |
TRITON_EXPORT triton::uint32 | getType (void) const |
Returns the type of the instruction. | |
TRITON_EXPORT triton::arch::x86::prefix_e | getPrefix (void) const |
Returns the prefix of the instruction (mainly for X86). | |
TRITON_EXPORT triton::arch::arm::condition_e | getCodeCondition (void) const |
Returns the code codition of the instruction (mainly for AArch64). | |
TRITON_EXPORT std::set< std::pair< triton::arch::MemoryAccess, triton::ast::SharedAbstractNode > > & | getLoadAccess (void) |
Returns the list of all implicit and explicit load access. | |
TRITON_EXPORT std::set< std::pair< triton::arch::MemoryAccess, triton::ast::SharedAbstractNode > > & | getStoreAccess (void) |
Returns the list of all implicit and explicit store access. | |
TRITON_EXPORT std::set< std::pair< triton::arch::Register, triton::ast::SharedAbstractNode > > & | getReadRegisters (void) |
Returns the list of all implicit and explicit register (flags includes) inputs (read) | |
TRITON_EXPORT std::set< std::pair< triton::arch::Register, triton::ast::SharedAbstractNode > > & | getWrittenRegisters (void) |
Returns the list of all implicit and explicit register (flags includes) outputs (write) | |
TRITON_EXPORT std::set< std::pair< triton::arch::Immediate, triton::ast::SharedAbstractNode > > & | getReadImmediates (void) |
Returns the list of all implicit and explicit immediate inputs (read) | |
TRITON_EXPORT std::set< triton::arch::Register > & | getUndefinedRegisters (void) |
Returns the list of all implicit and explicit undefined registers. | |
TRITON_EXPORT void | setOpcode (const void *opcode, triton::uint32 size) |
Sets the opcode of the instruction. | |
TRITON_EXPORT triton::uint32 | getSize (void) const |
Returns the size of the instruction. | |
TRITON_EXPORT void | setLoadAccess (const triton::arch::MemoryAccess &mem, const triton::ast::SharedAbstractNode &node) |
Sets a load access. | |
TRITON_EXPORT void | removeLoadAccess (const triton::arch::MemoryAccess &mem) |
Removes a load access. | |
TRITON_EXPORT void | setStoreAccess (const triton::arch::MemoryAccess &mem, const triton::ast::SharedAbstractNode &node) |
Sets a store access. | |
TRITON_EXPORT void | removeStoreAccess (const triton::arch::MemoryAccess &mem) |
Removes a store access. | |
TRITON_EXPORT void | setReadRegister (const triton::arch::Register ®, const triton::ast::SharedAbstractNode &node) |
Sets a read register. | |
TRITON_EXPORT void | removeReadRegister (const triton::arch::Register ®) |
Removes a read register. | |
TRITON_EXPORT void | setWrittenRegister (const triton::arch::Register ®, const triton::ast::SharedAbstractNode &node) |
Sets a written register. | |
TRITON_EXPORT void | removeWrittenRegister (const triton::arch::Register ®) |
Removes a written register. | |
TRITON_EXPORT void | setReadImmediate (const triton::arch::Immediate &imm, const triton::ast::SharedAbstractNode &node) |
Sets a read immediate. | |
TRITON_EXPORT void | removeReadImmediate (const triton::arch::Immediate &imm) |
Removes a read immediate. | |
TRITON_EXPORT void | setUndefinedRegister (const triton::arch::Register ®) |
Sets an undefined register. | |
TRITON_EXPORT void | removeUndefinedRegister (const triton::arch::Register ®) |
Removes an undefined register. | |
TRITON_EXPORT void | setSize (triton::uint32 size) |
Sets the size of the instruction. | |
TRITON_EXPORT void | setArchitecture (triton::arch::architecture_e arch) |
Sets the instruction's architecture. | |
TRITON_EXPORT void | setType (triton::uint32 type) |
Sets the type of the instruction. | |
TRITON_EXPORT void | setPrefix (triton::arch::x86::prefix_e prefix) |
Sets the prefix of the instruction (mainly for X86). | |
TRITON_EXPORT void | setCodeCondition (triton::arch::arm::condition_e codeCondition) |
Sets the code condition of the instruction (mainly for AArch64). | |
TRITON_EXPORT void | setDisassembly (const std::string &str) |
Sets the disassembly of the instruction. | |
TRITON_EXPORT void | setTaint (bool state) |
Sets the taint of the instruction. | |
TRITON_EXPORT void | setTaint (void) |
Sets the taint of the instruction based on its expressions. | |
TRITON_EXPORT void | setWriteBack (bool state) |
Sets the writeBack flag of the instruction. | |
TRITON_EXPORT void | setUpdateFlag (bool state) |
Sets the updateFlag of the instruction. | |
TRITON_EXPORT void | setThumb (bool state) |
Sets the Thumb mode of the instruction. | |
TRITON_EXPORT void | addSymbolicExpression (const triton::engines::symbolic::SharedSymbolicExpression &expr) |
Adds a symbolic expression. | |
TRITON_EXPORT bool | isBranch (void) const |
Returns true if this instruction is a branch. | |
TRITON_EXPORT bool | isControlFlow (void) const |
Returns true if this instruction changes the control flow (e.g x86: JMP, JCC, CALL, RET, ...) | |
TRITON_EXPORT bool | isConditionTaken (void) const |
Returns true if the condition is taken (e.g x86: jcc, cmovcc, setcc, ...). | |
TRITON_EXPORT bool | isTainted (void) const |
Returns true if at least one of its expressions is tainted. | |
TRITON_EXPORT bool | isSymbolized (void) const |
Returns true if at least one of its expressions contains a symbolic variable. | |
TRITON_EXPORT bool | isMemoryRead (void) const |
Returns true if the instruction contains an expression which reads the memory. | |
TRITON_EXPORT bool | isMemoryWrite (void) const |
Returns true if the instruction contains an expression which writes into the memory. | |
TRITON_EXPORT bool | isWriteTo (const triton::arch::OperandWrapper &target) const |
Returns whether the instruction writes the specified operand. | |
TRITON_EXPORT bool | isReadFrom (const triton::arch::OperandWrapper &target) const |
Returns whether the instruction reads the specified operand. | |
TRITON_EXPORT bool | isPrefixed (void) const |
Returns true if the instruction has a prefix (mainly for X86). | |
TRITON_EXPORT bool | isWriteBack (void) const |
Returns true if the instruction performs a write back. Mainly used for AArch64 instructions like LDR. | |
TRITON_EXPORT bool | isUpdateFlag (void) const |
Returns true if the instruction updates flags. Mainly used for AArch64 instructions like ADDS. | |
TRITON_EXPORT bool | isThumb (void) const |
Returns true if it is a Thumb instruction. | |
TRITON_EXPORT void | setBranch (bool flag) |
Sets flag to define this instruction as branch or not. | |
TRITON_EXPORT void | setControlFlow (bool flag) |
Sets flag to define this instruction changes the control flow or not. | |
TRITON_EXPORT void | setConditionTaken (bool flag) |
Sets flag to define if the condition is taken or not. | |
TRITON_EXPORT void | clear (void) |
Clears all instruction information. | |
Public Attributes | |
std::vector< triton::arch::OperandWrapper > | operands |
A list of operands. | |
std::vector< triton::engines::symbolic::SharedSymbolicExpression > | symbolicExpressions |
The semantics set of the instruction. | |
Protected Attributes | |
triton::arch::architecture_e | arch |
The instruction's architecture. | |
triton::uint32 | tid |
The thread id of the instruction. | |
triton::uint64 | address |
The address of the instruction. | |
std::stringstream | disassembly |
The disassembly of the instruction. This field is set at the disassembly level. | |
triton::uint8 | opcode [16] |
The opcode of the instruction. | |
triton::uint32 | size |
The size of the instruction. | |
triton::uint32 | type |
The type of the instruction. This field is set at the disassembly level. | |
triton::arch::x86::prefix_e | prefix |
The prefix of the instruction. This field is set at the disassembly level. Mainly used for X86. | |
triton::arch::arm::condition_e | codeCondition |
The code condition of the instruction. This field is set at the disassembly level. Mainly used for AArch64. | |
std::set< std::pair< triton::arch::MemoryAccess, triton::ast::SharedAbstractNode > > | loadAccess |
Implicit and explicit load access (read). This field is set at the semantics level. | |
std::set< std::pair< triton::arch::MemoryAccess, triton::ast::SharedAbstractNode > > | storeAccess |
Implicit and explicit store access (write). This field is set at the semantics level. | |
std::set< std::pair< triton::arch::Register, triton::ast::SharedAbstractNode > > | readRegisters |
Implicit and explicit register inputs (read). This field is set at the semantics level. | |
std::set< std::pair< triton::arch::Register, triton::ast::SharedAbstractNode > > | writtenRegisters |
Implicit and explicit register outputs (write). This field is set at the semantics level. | |
std::set< std::pair< triton::arch::Immediate, triton::ast::SharedAbstractNode > > | readImmediates |
Implicit and explicit immediate inputs (read). This field is set at the semantics level. | |
std::set< triton::arch::Register > | undefinedRegisters |
Implicit and explicit undefined registers. This field is set at the semantics level. | |
bool | branch |
True if this instruction is a branch. This field is set at the disassembly level. | |
bool | controlFlow |
True if this instruction changes the control flow. This field is set at the disassembly level. | |
bool | conditionTaken |
True if the condition is taken (i.g x86: jcc, cmocc, setcc, ...). This field is set at the semantics level. | |
bool | tainted |
True if this instruction is tainted. This field is set at the semantics level. | |
bool | writeBack |
True if this instruction performs a write back. Mainly used for AArch64 instruction like LDR. | |
bool | updateFlag |
True if this instruction updartes flags. Mainly used for AArch64 instruction like ADDS. | |
bool | thumb |
True if this is a Thumb instruction. (Note that isThumb() in Arm32Cpu is used to determine the current execution mode, while in Instruction it indicates whether the instruction itself is a Thumb instruction.) | |
This class is used to represent an instruction.
Definition at line 48 of file instruction.hpp.
triton::arch::Instruction::Instruction | ( | ) |
Constructor.
Definition at line 20 of file instruction.cpp.
triton::arch::Instruction::Instruction | ( | const void * | opcode, |
triton::uint32 | opSize ) |
Constructor with opcode.
Definition at line 40 of file instruction.cpp.
triton::arch::Instruction::Instruction | ( | triton::uint64 | addr, |
const void * | opcode, | ||
triton::uint32 | opSize ) |
Constructor with opcode and address.
Definition at line 46 of file instruction.cpp.
triton::arch::Instruction::Instruction | ( | const Instruction & | other | ) |
Constructor by copy.
Definition at line 52 of file instruction.cpp.
triton::arch::Instruction::~Instruction | ( | ) |
Destructor.
Definition at line 57 of file instruction.cpp.
void triton::arch::Instruction::addSymbolicExpression | ( | const triton::engines::symbolic::SharedSymbolicExpression & | expr | ) |
Adds a symbolic expression.
Definition at line 358 of file instruction.cpp.
void triton::arch::Instruction::clear | ( | void | ) |
Clears all instruction information.
Definition at line 519 of file instruction.cpp.
triton::uint64 triton::arch::Instruction::getAddress | ( | void | ) | const |
Returns the address of the instruction.
Definition at line 114 of file instruction.cpp.
triton::arch::architecture_e triton::arch::Instruction::getArchitecture | ( | void | ) | const |
Returns the instruction's architecture.
Definition at line 157 of file instruction.cpp.
triton::arch::arm::condition_e triton::arch::Instruction::getCodeCondition | ( | void | ) | const |
Returns the code codition of the instruction (mainly for AArch64).
Definition at line 167 of file instruction.cpp.
std::string triton::arch::Instruction::getDisassembly | ( | void | ) | const |
Returns the disassembly of the instruction.
Definition at line 129 of file instruction.cpp.
std::set< std::pair< triton::arch::MemoryAccess, triton::ast::SharedAbstractNode > > & triton::arch::Instruction::getLoadAccess | ( | void | ) |
Returns the list of all implicit and explicit load access.
Definition at line 172 of file instruction.cpp.
triton::uint64 triton::arch::Instruction::getNextAddress | ( | void | ) | const |
Returns the next address of the instruction.
Definition at line 119 of file instruction.cpp.
const triton::uint8 * triton::arch::Instruction::getOpcode | ( | void | ) | const |
Returns the opcode of the instruction.
Definition at line 134 of file instruction.cpp.
triton::arch::x86::prefix_e triton::arch::Instruction::getPrefix | ( | void | ) | const |
Returns the prefix of the instruction (mainly for X86).
Definition at line 162 of file instruction.cpp.
std::set< std::pair< triton::arch::Immediate, triton::ast::SharedAbstractNode > > & triton::arch::Instruction::getReadImmediates | ( | void | ) |
Returns the list of all implicit and explicit immediate inputs (read)
Definition at line 192 of file instruction.cpp.
std::set< std::pair< triton::arch::Register, triton::ast::SharedAbstractNode > > & triton::arch::Instruction::getReadRegisters | ( | void | ) |
Returns the list of all implicit and explicit register (flags includes) inputs (read)
Definition at line 182 of file instruction.cpp.
triton::uint32 triton::arch::Instruction::getSize | ( | void | ) | const |
Returns the size of the instruction.
Definition at line 147 of file instruction.cpp.
std::set< std::pair< triton::arch::MemoryAccess, triton::ast::SharedAbstractNode > > & triton::arch::Instruction::getStoreAccess | ( | void | ) |
Returns the list of all implicit and explicit store access.
Definition at line 177 of file instruction.cpp.
triton::uint32 triton::arch::Instruction::getThreadId | ( | void | ) | const |
Returns the thread id of the instruction.
Definition at line 104 of file instruction.cpp.
triton::uint32 triton::arch::Instruction::getType | ( | void | ) | const |
Returns the type of the instruction.
Definition at line 152 of file instruction.cpp.
std::set< triton::arch::Register > & triton::arch::Instruction::getUndefinedRegisters | ( | void | ) |
Returns the list of all implicit and explicit undefined registers.
Definition at line 197 of file instruction.cpp.
std::set< std::pair< triton::arch::Register, triton::ast::SharedAbstractNode > > & triton::arch::Instruction::getWrittenRegisters | ( | void | ) |
Returns the list of all implicit and explicit register (flags includes) outputs (write)
Definition at line 187 of file instruction.cpp.
bool triton::arch::Instruction::isBranch | ( | void | ) | const |
Returns true if this instruction is a branch.
Definition at line 367 of file instruction.cpp.
bool triton::arch::Instruction::isConditionTaken | ( | void | ) | const |
Returns true if the condition is taken (e.g x86: jcc, cmovcc, setcc, ...).
Definition at line 377 of file instruction.cpp.
bool triton::arch::Instruction::isControlFlow | ( | void | ) | const |
Returns true if this instruction changes the control flow (e.g x86: JMP, JCC, CALL, RET, ...)
Definition at line 372 of file instruction.cpp.
bool triton::arch::Instruction::isMemoryRead | ( | void | ) | const |
Returns true if the instruction contains an expression which reads the memory.
Definition at line 396 of file instruction.cpp.
bool triton::arch::Instruction::isMemoryWrite | ( | void | ) | const |
Returns true if the instruction contains an expression which writes into the memory.
Definition at line 403 of file instruction.cpp.
bool triton::arch::Instruction::isPrefixed | ( | void | ) | const |
Returns true if the instruction has a prefix (mainly for X86).
Definition at line 482 of file instruction.cpp.
bool triton::arch::Instruction::isReadFrom | ( | const triton::arch::OperandWrapper & | target | ) | const |
Returns whether the instruction reads the specified operand.
Definition at line 410 of file instruction.cpp.
bool triton::arch::Instruction::isSymbolized | ( | void | ) | const |
Returns true if at least one of its expressions contains a symbolic variable.
Definition at line 387 of file instruction.cpp.
bool triton::arch::Instruction::isTainted | ( | void | ) | const |
Returns true if at least one of its expressions is tainted.
Definition at line 382 of file instruction.cpp.
bool triton::arch::Instruction::isThumb | ( | void | ) | const |
Returns true if it is a Thumb instruction.
Definition at line 499 of file instruction.cpp.
bool triton::arch::Instruction::isUpdateFlag | ( | void | ) | const |
Returns true if the instruction updates flags. Mainly used for AArch64 instructions like ADDS.
Definition at line 494 of file instruction.cpp.
bool triton::arch::Instruction::isWriteBack | ( | void | ) | const |
Returns true if the instruction performs a write back. Mainly used for AArch64 instructions like LDR.
Definition at line 489 of file instruction.cpp.
bool triton::arch::Instruction::isWriteTo | ( | const triton::arch::OperandWrapper & | target | ) | const |
Returns whether the instruction writes the specified operand.
Definition at line 448 of file instruction.cpp.
Instruction & triton::arch::Instruction::operator= | ( | const Instruction & | other | ) |
Copies an Instruction.
Definition at line 68 of file instruction.cpp.
void triton::arch::Instruction::removeLoadAccess | ( | const triton::arch::MemoryAccess & | mem | ) |
Removes a load access.
Definition at line 207 of file instruction.cpp.
void triton::arch::Instruction::removeReadImmediate | ( | const triton::arch::Immediate & | imm | ) |
Removes a read immediate.
Definition at line 275 of file instruction.cpp.
void triton::arch::Instruction::removeReadRegister | ( | const triton::arch::Register & | reg | ) |
Removes a read register.
Definition at line 241 of file instruction.cpp.
void triton::arch::Instruction::removeStoreAccess | ( | const triton::arch::MemoryAccess & | mem | ) |
Removes a store access.
Definition at line 224 of file instruction.cpp.
void triton::arch::Instruction::removeUndefinedRegister | ( | const triton::arch::Register & | reg | ) |
Removes an undefined register.
Definition at line 292 of file instruction.cpp.
void triton::arch::Instruction::removeWrittenRegister | ( | const triton::arch::Register & | reg | ) |
Removes a written register.
Definition at line 258 of file instruction.cpp.
void triton::arch::Instruction::setAddress | ( | triton::uint64 | addr | ) |
Sets the address of the instruction.
Definition at line 124 of file instruction.cpp.
void triton::arch::Instruction::setArchitecture | ( | triton::arch::architecture_e | arch | ) |
Sets the instruction's architecture.
Definition at line 297 of file instruction.cpp.
void triton::arch::Instruction::setBranch | ( | bool | flag | ) |
Sets flag to define this instruction as branch or not.
Definition at line 504 of file instruction.cpp.
void triton::arch::Instruction::setCodeCondition | ( | triton::arch::arm::condition_e | codeCondition | ) |
Sets the code condition of the instruction (mainly for AArch64).
Definition at line 327 of file instruction.cpp.
void triton::arch::Instruction::setConditionTaken | ( | bool | flag | ) |
Sets flag to define if the condition is taken or not.
Definition at line 514 of file instruction.cpp.
void triton::arch::Instruction::setControlFlow | ( | bool | flag | ) |
Sets flag to define this instruction changes the control flow or not.
Definition at line 509 of file instruction.cpp.
void triton::arch::Instruction::setDisassembly | ( | const std::string & | str | ) |
Sets the disassembly of the instruction.
Definition at line 337 of file instruction.cpp.
void triton::arch::Instruction::setLoadAccess | ( | const triton::arch::MemoryAccess & | mem, |
const triton::ast::SharedAbstractNode & | node ) |
Sets a load access.
Definition at line 202 of file instruction.cpp.
void triton::arch::Instruction::setOpcode | ( | const void * | opcode, |
triton::uint32 | size ) |
Sets the opcode of the instruction.
Definition at line 139 of file instruction.cpp.
void triton::arch::Instruction::setPrefix | ( | triton::arch::x86::prefix_e | prefix | ) |
Sets the prefix of the instruction (mainly for X86).
Definition at line 312 of file instruction.cpp.
void triton::arch::Instruction::setReadImmediate | ( | const triton::arch::Immediate & | imm, |
const triton::ast::SharedAbstractNode & | node ) |
Sets a read immediate.
Definition at line 270 of file instruction.cpp.
void triton::arch::Instruction::setReadRegister | ( | const triton::arch::Register & | reg, |
const triton::ast::SharedAbstractNode & | node ) |
Sets a read register.
Definition at line 236 of file instruction.cpp.
void triton::arch::Instruction::setSize | ( | triton::uint32 | size | ) |
Sets the size of the instruction.
Definition at line 302 of file instruction.cpp.
void triton::arch::Instruction::setStoreAccess | ( | const triton::arch::MemoryAccess & | mem, |
const triton::ast::SharedAbstractNode & | node ) |
Sets a store access.
Definition at line 219 of file instruction.cpp.
void triton::arch::Instruction::setTaint | ( | bool | state | ) |
Sets the taint of the instruction.
Definition at line 343 of file instruction.cpp.
void triton::arch::Instruction::setTaint | ( | void | ) |
Sets the taint of the instruction based on its expressions.
Definition at line 348 of file instruction.cpp.
void triton::arch::Instruction::setThreadId | ( | triton::uint32 | tid | ) |
Sets the thread id of the instruction.
Definition at line 109 of file instruction.cpp.
void triton::arch::Instruction::setThumb | ( | bool | state | ) |
Sets the Thumb mode of the instruction.
Definition at line 332 of file instruction.cpp.
void triton::arch::Instruction::setType | ( | triton::uint32 | type | ) |
Sets the type of the instruction.
Definition at line 307 of file instruction.cpp.
void triton::arch::Instruction::setUndefinedRegister | ( | const triton::arch::Register & | reg | ) |
Sets an undefined register.
Definition at line 287 of file instruction.cpp.
void triton::arch::Instruction::setUpdateFlag | ( | bool | state | ) |
Sets the updateFlag of the instruction.
Definition at line 322 of file instruction.cpp.
void triton::arch::Instruction::setWriteBack | ( | bool | state | ) |
Sets the writeBack flag of the instruction.
Definition at line 317 of file instruction.cpp.
void triton::arch::Instruction::setWrittenRegister | ( | const triton::arch::Register & | reg, |
const triton::ast::SharedAbstractNode & | node ) |
Sets a written register.
Definition at line 253 of file instruction.cpp.
|
protected |
The address of the instruction.
Definition at line 57 of file instruction.hpp.
|
protected |
The instruction's architecture.
Definition at line 51 of file instruction.hpp.
|
protected |
True if this instruction is a branch. This field is set at the disassembly level.
Definition at line 96 of file instruction.hpp.
|
protected |
The code condition of the instruction. This field is set at the disassembly level. Mainly used for AArch64.
Definition at line 75 of file instruction.hpp.
|
protected |
True if the condition is taken (i.g x86: jcc, cmocc, setcc, ...). This field is set at the semantics level.
Definition at line 102 of file instruction.hpp.
|
protected |
True if this instruction changes the control flow. This field is set at the disassembly level.
Definition at line 99 of file instruction.hpp.
|
protected |
The disassembly of the instruction. This field is set at the disassembly level.
Definition at line 60 of file instruction.hpp.
|
protected |
Implicit and explicit load access (read). This field is set at the semantics level.
Definition at line 78 of file instruction.hpp.
|
protected |
The opcode of the instruction.
Definition at line 63 of file instruction.hpp.
std::vector<triton::arch::OperandWrapper> triton::arch::Instruction::operands |
A list of operands.
Definition at line 122 of file instruction.hpp.
|
protected |
The prefix of the instruction. This field is set at the disassembly level. Mainly used for X86.
Definition at line 72 of file instruction.hpp.
|
protected |
Implicit and explicit immediate inputs (read). This field is set at the semantics level.
Definition at line 90 of file instruction.hpp.
|
protected |
Implicit and explicit register inputs (read). This field is set at the semantics level.
Definition at line 84 of file instruction.hpp.
|
protected |
The size of the instruction.
Definition at line 66 of file instruction.hpp.
|
protected |
Implicit and explicit store access (write). This field is set at the semantics level.
Definition at line 81 of file instruction.hpp.
std::vector<triton::engines::symbolic::SharedSymbolicExpression> triton::arch::Instruction::symbolicExpressions |
The semantics set of the instruction.
Definition at line 125 of file instruction.hpp.
|
protected |
True if this instruction is tainted. This field is set at the semantics level.
Definition at line 105 of file instruction.hpp.
|
protected |
True if this is a Thumb instruction. (Note that isThumb() in Arm32Cpu is used to determine the current execution mode, while in Instruction it indicates whether the instruction itself is a Thumb instruction.)
Definition at line 114 of file instruction.hpp.
|
protected |
The thread id of the instruction.
Definition at line 54 of file instruction.hpp.
|
protected |
The type of the instruction. This field is set at the disassembly level.
Definition at line 69 of file instruction.hpp.
|
protected |
Implicit and explicit undefined registers. This field is set at the semantics level.
Definition at line 93 of file instruction.hpp.
|
protected |
True if this instruction updartes flags. Mainly used for AArch64 instruction like ADDS.
Definition at line 111 of file instruction.hpp.
|
protected |
True if this instruction performs a write back. Mainly used for AArch64 instruction like LDR.
Definition at line 108 of file instruction.hpp.
|
protected |
Implicit and explicit register outputs (write). This field is set at the semantics level.
Definition at line 87 of file instruction.hpp.