IndexX86 Backendasmjit::x86::Gp

asmjit::x86::Gp Class Reference [¶]

Inheritance diagram for asmjit::x86::Gp:
asmjit::UniGp asmjit::Reg asmjit::Operand asmjit::Operand_

General purpose register (X86|X86_64).

To get a specific register you can use:

  • specific registers directly, like x86::eax or x86::rbx, etc...
  • construct a register operand dynamically, like x86::gp8(id), x86::gp64(id), etc...
  • use Gp::make_r[8|8lo|8hi|16|32|64](id) API for convenience

To cast a register to a specific type, use Gp::r8(), Gp::r8Lo(), Gp::r8Hi(), Gp::r16(), Gp::r32(), and Gp::r64() member functions. Each cast first clones the register and then changes its signature to match the register it has been casted to.

Public Types

Constants
- Public Types inherited from asmjit::Operand_

Member Functions

Gp Register Accessors
- Public Member Functions inherited from asmjit::UniGp
- Public Member Functions inherited from asmjit::Reg
- Public Member Functions inherited from asmjit::Operand
- Public Member Functions inherited from asmjit::Operand_

Static Functions

Static Constructors
- Static Public Member Functions inherited from asmjit::UniGp
- Static Public Member Functions inherited from asmjit::Reg
- Static Public Member Functions inherited from asmjit::Operand_

Additional Inherited Members

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

x86::Gp::Id : uint32_tenum[¶]

Physical id (X86|X86_64).

Note
Register indexes have been reduced to only support general purpose registers. There is no need to have enumerations with number suffix that expands to the exactly same value as the suffix value itself.
ConstantDescription
kIdAx 

Physical id of AL|AH|AX|EAX|RAX registers.

kIdCx 

Physical id of CL|CH|CX|ECX|RCX registers.

kIdDx 

Physical id of DL|DH|DX|EDX|RDX registers.

kIdBx 

Physical id of BL|BH|BX|EBX|RBX registers.

kIdSp 

Physical id of SPL|SP|ESP|RSP registers.

kIdBp 

Physical id of BPL|BP|EBP|RBP registers.

kIdSi 

Physical id of SIL|SI|ESI|RSI registers.

kIdDi 

Physical id of DIL|DI|EDI|RDI registers.

kIdR8 

Physical id of R8B|R8W|R8D|R8 registers (X86_64).

kIdR9 

Physical id of R9B|R9W|R9D|R9 registers (X86_64).

kIdR10 

Physical id of R10B|R10W|R10D|R10 registers (X86_64).

kIdR11 

Physical id of R11B|R11W|R11D|R11 registers (X86_64).

kIdR12 

Physical id of R12B|R12W|R12D|R12 registers (X86_64).

kIdR13 

Physical id of R13B|R13W|R13D|R13 registers (X86_64).

kIdR14 

Physical id of R14B|R14W|R14D|R14 registers (X86_64).

kIdR15 

Physical id of R15B|R15W|R15D|R15 registers (X86_64).

x86::Gp::Gp()constexprnoexcept[1/5][¶]

Default constructor that only setups basics.

x86::Gp::Gp(
const Gp& other
)constexprnoexcept[2/5][¶]

Makes a copy of the other register operand.

x86::Gp::Gp(
const Reg& other,
uint32_t id
)constexprnoexcept[3/5][¶]

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

x86::Gp::Gp(
const OperandSignature& sgn,
uint32_t id
)constexprnoexcept[4/5][¶]

Creates a register based on signature and id.

x86::Gp::Gp()explicitnoexcept[5/5][¶]

Creates a completely uninitialized Gp register operand (garbage).

Gp x86::Gp::fromTypeAndId(
RegType type,
uint32_t id
)staticnoexcept[¶]

Creates a new register from register type and id.

Gp x86::Gp::clone() constconstexprnoexcept[¶]

Clones the register operand.

Gp x86::Gp::make_r8(
uint32_t regId
)constexprstaticnoexcept[¶]

Creates a new 8-bit low general purpose register (GPB) having the given register id regId.

Gp x86::Gp::make_r8lo(
uint32_t regId
)constexprstaticnoexcept[¶]

Creates a new 8-bit low general purpose register (GPB) having the given register id regId.

Gp x86::Gp::make_r8hi(
uint32_t regId
)constexprstaticnoexcept[¶]

Creates a new 8-bit high general purpose register (GPB) having the given register id regId.

Gp x86::Gp::make_r16(
uint32_t regId
)constexprstaticnoexcept[¶]

Creates a new 16-bit low general purpose register (GPB) having the given register id regId.

Gp x86::Gp::make_r32(
uint32_t regId
)constexprstaticnoexcept[¶]

Creates a new 32-bit low general purpose register (GPB) having the given register id regId.

Gp x86::Gp::make_r64(
uint32_t regId
)constexprstaticnoexcept[¶]

Creates a new 64-bit low general purpose register (GPB) having the given register id regId (X86_64).

Gp x86::Gp::r8() constconstexprnoexcept[¶]

Clones and casts this register to 8-bit (LO) part.

Gp x86::Gp::r8Lo() constconstexprnoexcept[¶]

Clones and casts this register to 8-bit (LO) part.

Gp x86::Gp::r8Hi() constconstexprnoexcept[¶]

Clones and casts this register to 8-bit (HI) part.

Gp x86::Gp::r16() constconstexprnoexcept[¶]

Clones and casts this register to 16-bit.

Gp x86::Gp::r32() constconstexprnoexcept[¶]

Clones and casts this register to 32-bit.

Gp x86::Gp::r64() constconstexprnoexcept[¶]

Clones and casts this register to 64-bit.