asmjit::Reg Class Reference [¶]

Unified physical or virtual register operand.
Unified physical or virtual register operand.
Creates a dummy register operand.
Creates a new register operand which is the same as other
.
Creates a new register operand compatible with other
, but with a different id
.
Creates a register initialized to the given signature
and id
.
Creates a new register from register type and id.
Returns base signature of the register associated with each register type.
Base signature only contains the operand type, register type, register group, and register size. It doesn't contain element type, predicate, or other architecture-specific data. Base signature is a signature that is provided by RegTraits.
Tests whether the operand's base signature matches the given signature signature
.
Tests whether the operand's base signature matches the given signature signature
.
Tests whether the operand's base signature matches the base signature of the other
operand.
Returns the group this register belongs to.
Tests whether this register is the same as other
.
This is just an optimization. Registers by default only use the first 8 bytes of Operand data, so this method takes advantage of this knowledge and only compares these 8 bytes. If both operands were created correctly both equals() and is_same() should give the same answer, however, if any of these two contains garbage or other metadata in the upper 8 bytes then is_same() may return true
in cases in which equals() returns false.
Tests whether the register is valid (either virtual or physical).
Tests whether this is a physical register.
Tests whether this is a virtual register.
Tests whether the register is of the given register type reg_type
.
Tests whether the register is of the given register type reg_type
having the given id reg_id
.
Tests whether the register is of the given register group reg_group
.
Tests whether the register is of the given register group reg_group
having the given id reg_id
.
Tests whether the operand is a general purpose register of any type.
Tests whether the register is a general purpose register of any type.
Tests whether the register is a general purpose register of any type having the given id reg_id
.
Tests whether the register is an 8-bit low or high general purpose register (X86|X86_64).
Tests whether the register is an 8-bit low or high general purpose register having the given id reg_id
(X86|X86_64).
Tests whether the register is an 8-bit low general purpose register (X86|X86_64).
Tests whether the register is an 8-bit low general purpose register having the given id reg_id
(X86|X86_64).
Tests whether the register is an 8-bit high general purpose register (X86|X86_64 only - AH, BH, CH, DH).
Tests whether the register is an 8-bit high general purpose register having the given id reg_id
(X86|X86_64).
Tests whether the register is a 16-bit general purpose register (X86|X86_64).
Tests whether the register is a 16-bit general purpose register having the given id reg_id
(X86|X86_64).
Tests whether the register is a 32-bit general purpose register.
Tests whether the register is a 32-bit general purpose register having the given id reg_id
.
Tests whether the register is a 64-bit general purpose register.
Tests whether the register is a 64-bit general purpose register having the given id reg_id
.
Tests whether the register is a vector register of any size.
Tests whether the register is a vector register of any size having the given id reg_id
.
Tests whether the register is an 8-bit vector register or view (AArch64).
Tests whether the register is an 8-bit vector register or view having the given id reg_id
(AArch64).
Tests whether the register is a 16-bit vector register or view (AArch64).
Tests whether the register is a 16-bit vector register or view having the given id reg_id
(AArch64).
Tests whether the register is a 32-bit vector register or view (AArch32, AArch64).
Tests whether the register is a 32-bit vector register or view having the given id reg_id
(AArch32/AArch64).
Tests whether the register is a 64-bit vector register or view (AArch32/AArch64).
Tests whether the register is a 64-bit vector register or view having the given id reg_id
(AArch32/AArch64).
Tests whether the register is a 128-bit vector register or view (X86|X86_64/AArch32/AArch64).
Tests whether the register is a 128-bit vector register or view having the given id reg_id
(X86|X86_64/AArch32/AArch64).
Tests whether the register is a 256-bit vector register or view (X86|X86_64).
Tests whether the register is a 256-bit vector register or view having the given id reg_id
(X86|X86_64).
Tests whether the register is a 512-bit vector register or view (X86|X86_64).
Tests whether the register is a 512-bit vector register or view having the given id reg_id
(X86|X86_64).
Tests whether the register is a mask register of any size.
Tests whether the register is a mask register of any size having the given id reg_id
(X86|X86_64/AArch64).
Tests whether the register is a mask register (K
register on X86|X86_64) - alias of is_mask_reg().
Tests whether the register is a mask register (K
register on X86|X86_64) of any size having the given id reg_id
(X86|X86_64/AArch64).
Tests whether the register is a tile register.
Tests whether the register is a tile register of the given id reg_id
.
Tests whether the register is a tile register (TMM
register on X86_64) - alias of is_tile_reg().
Tests whether the register is a tile register (TMM
register on X86_64) of the given id reg_id
- alias of is_tile_reg().
Tests whether the register is a segment register (X86|X86_64).
Tests whether the register is a segment register having the given id reg_id
(X86|X86_64).
Tests whether the register is a control register (X86|X86_64).
Tests whether the register is a control register having the given id reg_id
(X86|X86_64).
Tests whether the register is a debug register (X86|X86_64).
Tests whether the register is a debug register of the given id reg_id
(X86|X86_64).
Tests whether the register is an MMX register (X86|X64).
Tests whether the register is an MMX register of the given id reg_id
(X86|X64).
Tests whether the register is an FPU register (ST
register on X86|X86_64) (X86|X64).
Tests whether the register is an FPU register (ST
register on X86|X86_64) of the given id reg_id
(X86|X64).
Tests whether the register is a BND register (X86|X64).
Tests whether the register is a BND register of the given id reg_id
(X86|X64).
Tests whether the register specifies a size (i.e. the size is not zero).
Tests whether the register size matches size s
.
Returns the size of the register in bytes. If the register size depends on architecture (like x86::CReg
and x86::DReg
) the size returned should be the greatest possible (so it should return 64-bit size in such case).
Returns operation predicate of the register (ARM/AArch64).
The meaning depends on architecture, for example on ARM hardware this describes arm::ShiftOp of the register.
Sets operation predicate of the register to predicate
(ARM/AArch64).
The meaning depends on architecture, for example on ARM hardware this describes arm::ShiftOp of the register.
Resets shift operation type of the register to the default value (ARM/AArch64).
Casts this register to RegT
by also changing its signature.
Improper use of clone_as()
can lead to hard-to-debug errors.
Casts this register to other
by also changing its signature.
Improper use of clone_as()
can lead to hard-to-debug errors.
Sets the register id to id
.
Sets the register signature
and id
.
Tests whether the operand is a register (OperandType::kReg
).
None or any register (mostly internal).