libTriton version 1.0 build 1590
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
triton::arch::Register Class Reference

This class is used when an instruction has a register operand. More...

#include <register.hpp>

Inheritance diagram for triton::arch::Register:

Public Member Functions

TRITON_EXPORT Register ()
 Constructor.
 
TRITON_EXPORT Register (triton::arch::register_e regId, std::string name, triton::arch::register_e parent, triton::uint32 high, triton::uint32 low, bool vmutable)
 Constructor.
 
TRITON_EXPORT Register (const triton::arch::CpuInterface &, triton::arch::register_e regId)
 Constructor.
 
TRITON_EXPORT Register (const Register &other)
 Constructor.
 
TRITON_EXPORT triton::arch::register_e getParent (void) const
 Returns the parent id of the register.
 
TRITON_EXPORT bool isOverlapWith (const Register &other) const
 Returns true if other and self overlap.
 
TRITON_EXPORT bool isMutable (void) const
 Returns true if this register is mutable. Mainly used in AArch64 to define that some registers like XZR are immutable.
 
TRITON_EXPORT std::string getName (void) const
 Returns the name of the register.
 
TRITON_EXPORT triton::arch::register_e getId (void) const
 Returns the id of the register.
 
TRITON_EXPORT triton::uint32 getBitSize (void) const
 Returns the size (in bits) of the register.
 
TRITON_EXPORT triton::uint32 getSize (void) const
 Returns the size (in bytes) of the register.
 
TRITON_EXPORT triton::arch::operand_e getType (void) const
 Returns the type of the operand (triton::arch::OPERAND_REGISTER).
 
TRITON_EXPORT bool operator== (const Register &other) const
 Compare two registers specifications.
 
TRITON_EXPORT bool operator!= (const Register &other) const
 Compare two registers specifications.
 
TRITON_EXPORT Registeroperator= (const Register &other)
 Copies a Register.
 
- Public Member Functions inherited from triton::arch::BitsVector
TRITON_EXPORT BitsVector ()
 Constructor.
 
TRITON_EXPORT BitsVector (triton::uint32 high, triton::uint32 low)
 Constructor.
 
TRITON_EXPORT BitsVector (const triton::arch::BitsVector &other)
 Constructor by copy.
 
TRITON_EXPORT BitsVectoroperator= (const BitsVector &other)
 Copy a BitsVector.
 
TRITON_EXPORT triton::uint32 getHigh (void) const
 Returns the highest bit.
 
TRITON_EXPORT triton::uint32 getLow (void) const
 Returns the lower bit.
 
TRITON_EXPORT triton::uint32 getVectorSize (void) const
 Returns the size in bits of the vector.
 
TRITON_EXPORT triton::uint512 getMaxValue (void) const
 Returns the max possible value of the bitvector.
 
TRITON_EXPORT void setHigh (triton::uint32 v)
 Sets the highest bit position.
 
TRITON_EXPORT void setLow (triton::uint32 v)
 Sets the lower bit position.
 
TRITON_EXPORT void setBits (triton::uint32 high, triton::uint32 low)
 Sets the bits (high, low) position.
 
- Public Member Functions inherited from triton::arch::arm::ArmOperandProperties
TRITON_EXPORT ArmOperandProperties ()
 Constructor.
 
TRITON_EXPORT ArmOperandProperties (const ArmOperandProperties &other)
 Constructor by copy.
 
TRITON_EXPORT triton::arch::arm::shift_e getShiftType (void) const
 Returns the type of the shift.
 
TRITON_EXPORT triton::uint32 getShiftImmediate (void) const
 Returns the value of the shift immediate.
 
TRITON_EXPORT triton::arch::register_e getShiftRegister (void) const
 Returns the value of the shift register.
 
TRITON_EXPORT triton::arch::arm::extend_e getExtendType (void) const
 Returns the type of the extend.
 
TRITON_EXPORT triton::arch::arm::vas_e getVASType (void) const
 Returns the vector arrangement specifier.
 
TRITON_EXPORT triton::sint32 getVectorIndex (void) const
 Returns the vector index (-1 if irrelevant).
 
TRITON_EXPORT std::string getVASName (void) const
 Returns the vector arrangement specifier string name.
 
TRITON_EXPORT triton::uint32 getVASSize (void) const
 Returns the vector arrangement specifier size (64 or 128 bits).
 
TRITON_EXPORT triton::uint32 getExtendSize (void) const
 Returns the size (in bits) of the extend.
 
TRITON_EXPORT bool isSubtracted (void) const
 Returns true if the operand has to be subtracted when computing a memory access.
 
TRITON_EXPORT void setShiftType (triton::arch::arm::shift_e type)
 Sets the type of the shift.
 
TRITON_EXPORT void setShiftValue (triton::uint32 imm)
 Sets the value of the shift immediate.
 
TRITON_EXPORT void setShiftValue (triton::arch::register_e reg)
 Sets the value of the shift register.
 
TRITON_EXPORT void setExtendType (triton::arch::arm::extend_e type)
 Sets the type of the extend.
 
TRITON_EXPORT void setVASType (triton::arch::arm::vas_e type)
 Sets the type of vector arrangement specifier.
 
TRITON_EXPORT void setExtendedSize (triton::uint32 dstSize)
 Sets the extended size (in bits) after extension.
 
TRITON_EXPORT void setVectorIndex (triton::sint32 index)
 Sets the vector index.
 
TRITON_EXPORT void setSubtracted (bool value)
 Sets subtracted flag.
 
TRITON_EXPORT ArmOperandPropertiesoperator= (const ArmOperandProperties &other)
 Copy an ArmOperandProperties.
 

Protected Attributes

std::string name
 The name of the register.
 
triton::arch::register_e id
 The id of the register.
 
triton::arch::register_e parent
 The parent id of the register.
 
bool vmutable
 True if the register is mutable. For example XZR in AArch64 is immutable.
 
- Protected Attributes inherited from triton::arch::BitsVector
triton::uint32 high
 The highest bit of the bitvector.
 
triton::uint32 low
 The lower bit of the bitvector.
 
- Protected Attributes inherited from triton::arch::arm::ArmOperandProperties
triton::arch::arm::shift_e shiftType
 The shift type.
 
triton::uint32 shiftValueImmediate
 The shift value immediate.
 
triton::arch::register_e shiftValueRegister
 The shift value register.
 
triton::arch::arm::extend_e extendType
 The extend type.
 
triton::arch::arm::vas_e vasType
 Vector arrangement specifier.
 
triton::sint32 vectorIndex
 Vector index (-1 if irrelevant).
 
triton::uint32 extendSize
 The extend size (in bits).
 
bool subtracted
 The subtracted flag. Used in memory access operands and determines whether this operand has to be added or subtracted to the base register.
 

Detailed Description

This class is used when an instruction has a register operand.

Definition at line 44 of file register.hpp.

Constructor & Destructor Documentation

◆ Register() [1/4]

triton::arch::Register::Register ( )

Constructor.

Definition at line 16 of file register.cpp.

◆ Register() [2/4]

triton::arch::Register::Register ( triton::arch::register_e  regId,
std::string  name,
triton::arch::register_e  parent,
triton::uint32  high,
triton::uint32  low,
bool  vmutable 
)

Constructor.

Definition at line 21 of file register.cpp.

◆ Register() [3/4]

triton::arch::Register::Register ( const triton::arch::CpuInterface cpu,
triton::arch::register_e  regId 
)

Constructor.

Definition at line 30 of file register.cpp.

◆ Register() [4/4]

triton::arch::Register::Register ( const Register other)

Constructor.

Definition at line 38 of file register.cpp.

Member Function Documentation

◆ getBitSize()

triton::uint32 triton::arch::Register::getBitSize ( void  ) const

Returns the size (in bits) of the register.

Definition at line 63 of file register.cpp.

◆ getId()

triton::arch::register_e triton::arch::Register::getId ( void  ) const

Returns the id of the register.

Definition at line 53 of file register.cpp.

◆ getName()

std::string triton::arch::Register::getName ( void  ) const

Returns the name of the register.

Definition at line 73 of file register.cpp.

◆ getParent()

triton::arch::register_e triton::arch::Register::getParent ( void  ) const

Returns the parent id of the register.

Definition at line 58 of file register.cpp.

◆ getSize()

triton::uint32 triton::arch::Register::getSize ( void  ) const

Returns the size (in bytes) of the register.

Definition at line 68 of file register.cpp.

◆ getType()

triton::arch::operand_e triton::arch::Register::getType ( void  ) const

Returns the type of the operand (triton::arch::OPERAND_REGISTER).

Definition at line 81 of file register.cpp.

◆ isMutable()

bool triton::arch::Register::isMutable ( void  ) const

Returns true if this register is mutable. Mainly used in AArch64 to define that some registers like XZR are immutable.

Definition at line 95 of file register.cpp.

◆ isOverlapWith()

bool triton::arch::Register::isOverlapWith ( const Register other) const

Returns true if other and self overlap.

Definition at line 86 of file register.cpp.

◆ operator!=()

bool triton::arch::Register::operator!= ( const Register other) const

Compare two registers specifications.

Definition at line 105 of file register.cpp.

◆ operator=()

Register & triton::arch::Register::operator= ( const Register other)

Copies a Register.

Definition at line 110 of file register.cpp.

◆ operator==()

bool triton::arch::Register::operator== ( const Register other) const

Compare two registers specifications.

Definition at line 100 of file register.cpp.

Member Data Documentation

◆ id

triton::arch::register_e triton::arch::Register::id
protected

The id of the register.

Definition at line 50 of file register.hpp.

◆ name

std::string triton::arch::Register::name
protected

The name of the register.

Definition at line 47 of file register.hpp.

◆ parent

triton::arch::register_e triton::arch::Register::parent
protected

The parent id of the register.

Definition at line 53 of file register.hpp.

◆ vmutable

bool triton::arch::Register::vmutable
protected

True if the register is mutable. For example XZR in AArch64 is immutable.

Definition at line 56 of file register.hpp.


The documentation for this class was generated from the following files: