40 ArmOperandProperties(other) {
45 void Register::copy(
const Register& other) {
88 if (this->
getLow() <= other.
getLow() && other.
getLow() <= this->getHigh())
return true;
89 if (other.
getLow() <= this->getLow() && this->getLow() <= other.
getHigh())
return true;
106 return !(*
this == other);
111 ArmOperandProperties::operator=(other);
This class is used to deal with registers and memory as bits vector.
TRITON_EXPORT triton::uint32 getHigh(void) const
Returns the highest bit.
TRITON_EXPORT triton::uint32 getVectorSize(void) const
Returns the size in bits of the vector.
TRITON_EXPORT triton::uint32 getLow(void) const
Returns the lower bit.
TRITON_EXPORT BitsVector & operator=(const BitsVector &other)
Copy a BitsVector.
This interface is used as abstract CPU interface. All CPU must use this interface.
This class is used when an instruction has a register operand.
TRITON_EXPORT triton::uint32 getBitSize(void) const
Returns the size (in bits) of the register.
TRITON_EXPORT triton::arch::register_e getParent(void) const
Returns the parent id of the register.
TRITON_EXPORT triton::arch::register_e getId(void) const
Returns the id of the register.
triton::arch::register_e parent
The parent id of the register.
TRITON_EXPORT bool operator!=(const Register &other) const
Compare two registers specifications.
TRITON_EXPORT bool isOverlapWith(const Register &other) const
Returns true if other and self overlap.
TRITON_EXPORT Register & operator=(const Register &other)
Copies a 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 Register()
Constructor.
bool vmutable
True if the register is mutable. For example XZR in AArch64 is immutable.
triton::arch::register_e id
The id of the register.
TRITON_EXPORT bool isMutable(void) const
Returns true if this register is mutable. Mainly used in AArch64 to define that some registers like X...
std::string name
The name of the register.
TRITON_EXPORT std::string getName(void) const
Returns the name of the register.
TRITON_EXPORT triton::uint32 getSize(void) const
Returns the size (in bytes) of the register.
TRITON_EXPORT std::string getVASName(void) const
Returns the vector arrangement specifier string name.
TRITON_EXPORT triton::arch::arm::vas_e getVASType(void) const
Returns the vector arrangement specifier.
std::ostream & operator<<(std::ostream &stream, BasicBlock &block)
Displays an BasicBlock.
bool operator<(const Immediate &imm1, const Immediate &imm2)
Compares two Immediate (needed for std::map)
register_e
Types of register.
@ ID_REG_INVALID
invalid = 0
constexpr triton::uint32 byte
byte size in bit
std::uint32_t uint32
unisgned 32-bits