asmjit::x86::Reg Class Reference

Register (X86).

Public Types

- Public Types inherited from asmjit::BaseReg
- Public Types inherited from asmjit::Operand_

Member Functions

- Public Member Functions inherited from asmjit::BaseReg
- Public Member Functions inherited from asmjit::Operand
- Public Member Functions inherited from asmjit::Operand_

Static Functions

- Static Public Member Functions inherited from asmjit::BaseReg
- Static Public Member Functions inherited from asmjit::Operand_

Additional Inherited Members

- Public Attributes inherited from asmjit::Operand_
- Static Public Attributes inherited from asmjit::BaseReg

Member Enumeration Documentation

x86::Reg::RegType : uint32_tenum

Register type.

ConstantDescription
kTypeNone 

No register type or invalid register.

kTypeGpbLo 

Low GPB register (AL, BL, CL, DL, ...).

kTypeGpbHi 

High GPB register (AH, BH, CH, DH only).

kTypeGpw 

GPW register.

kTypeGpd 

GPD register.

kTypeGpq 

GPQ register (64-bit).

kTypeXmm 

XMM register (SSE+).

kTypeYmm 

YMM register (AVX+).

kTypeZmm 

ZMM register (AVX512+).

kTypeMm 

MMX register.

kTypeKReg 

K register (AVX512+).

kTypeRip 

Instruction pointer (EIP, RIP).

kTypeSReg 

Segment register (None, ES, CS, SS, DS, FS, GS).

kTypeCReg 

Control register (CR).

kTypeDReg 

Debug register (DR).

kTypeSt 

FPU (x87) register.

kTypeBnd 

Bound register (BND).

kTypeTmm 

TMM register (AMX_TILE)

kTypeCount 

Count of register types.

x86::Reg::RegGroup : uint32_tenum

Register group.

ConstantDescription
kGroupGp 

GP register group or none (universal).

kGroupVec 

XMM|YMM|ZMM register group (universal).

kGroupMm 

MMX register group (legacy).

kGroupKReg 

K register group.

kGroupSReg 

Segment register group.

kGroupCReg 

Control register group.

kGroupDReg 

Debug register group.

kGroupSt 

FPU register group.

kGroupBnd 

Bound register group.

kGroupTmm 

TMM register group.

kGroupRip 

Instrucion pointer (IP).

kGroupCount 

Count of all register groups.

Constructor & Destructor Documentation

x86::Reg::Reg()constexprconstexprnoexcept[1/5]

Default constructor that only setups basics.

x86::Reg::Reg(const Reg& other)constexprconstexprnoexcept[2/5]

Makes a copy of the other register operand.

x86::Reg::Reg(const BaseReg& other, uint32_t rId)constexprconstexprnoexcept[3/5]

Makes a copy of the other register having id set to rId

x86::Reg::Reg(const SignatureAndId& sid)constexprexplicitconstexprnoexcept[4/5]

Creates a register based on signature and rId.

x86::Reg::Reg(Globals::NoInit_)explicitnoexcept[5/5]

Creates a completely uninitialized Reg register operand (garbage).

Member Function Documentation

Reg x86::Reg::fromTypeAndId(uint32_t rType, uint32_t rId)staticnoexcept

Creates a new register from register type and id.

Reg x86::Reg::fromSignatureAndId(uint32_t rSgn, uint32_t rId)staticnoexcept

Creates a new register from register signature and id.

Reg x86::Reg::clone() constconstexprconstexprnoexcept

Clones the register operand.

bool x86::Reg::isGpb() constconstexprconstexprnoexcept[1/2]

Tests whether the register is a GPB register (8-bit).

bool x86::Reg::isGpbLo() constconstexprconstexprnoexcept

Tests whether the register is a low GPB register (8-bit).

bool x86::Reg::isGpbHi() constconstexprconstexprnoexcept

Tests whether the register is a high GPB register (8-bit).

bool x86::Reg::isGpw() constconstexprconstexprnoexcept

Tests whether the register is a GPW register (16-bit).

bool x86::Reg::isGpd() constconstexprconstexprnoexcept

Tests whether the register is a GPD register (32-bit).

bool x86::Reg::isGpq() constconstexprconstexprnoexcept

Tests whether the register is a GPQ register (64-bit).

bool x86::Reg::isXmm() constconstexprconstexprnoexcept

Tests whether the register is an XMM register (128-bit).

bool x86::Reg::isYmm() constconstexprconstexprnoexcept

Tests whether the register is a YMM register (256-bit).

bool x86::Reg::isZmm() constconstexprconstexprnoexcept

Tests whether the register is a ZMM register (512-bit).

bool x86::Reg::isMm() constconstexprconstexprnoexcept

Tests whether the register is an MMX register (64-bit).

bool x86::Reg::isKReg() constconstexprconstexprnoexcept

Tests whether the register is a K register (64-bit).

bool x86::Reg::isSReg() constconstexprconstexprnoexcept

Tests whether the register is a segment register.

bool x86::Reg::isCReg() constconstexprconstexprnoexcept

Tests whether the register is a control register.

bool x86::Reg::isDReg() constconstexprconstexprnoexcept

Tests whether the register is a debug register.

bool x86::Reg::isSt() constconstexprconstexprnoexcept

Tests whether the register is an FPU register (80-bit).

bool x86::Reg::isBnd() constconstexprconstexprnoexcept

Tests whether the register is a bound register.

bool x86::Reg::isTmm() constconstexprconstexprnoexcept

Tests whether the register is a TMM register.

bool x86::Reg::isRip() constconstexprconstexprnoexcept

Tests whether the register is RIP.

bool x86::Reg::isGpb(const Operand_& op)staticnoexcept[2/2]

Tests whether the op operand is either a low or high 8-bit GPB register.