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).