IndexAssemblerasmjit::BaseRegList

asmjit::BaseRegList Class Reference [¶]

Inheritance diagram for asmjit::BaseRegList:
asmjit::Operand asmjit::Operand_ asmjit::RegListT< RegT >

List of physical registers (base).

Note

List of registers is only used by some ARM instructions at the moment.

Static Public Attributes

Constants

Static Public Attributes inherited from asmjit::Operand_

Member Functions

Construction & Destruction

Overloaded Operators

Accessors

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

Additional Inherited Members

Public Attributes inherited from asmjit::Operand_
Public Types inherited from asmjit::Operand_
Static Public Member Functions inherited from asmjit::Operand_

BaseRegList::BaseRegList()constexprnoexcept[1/4][¶]

Creates a dummy register operand.

BaseRegList::BaseRegList(
const BaseRegList& other
)constexprnoexcept[2/4][¶]

Creates a new register operand which is the same as other .

BaseRegList::BaseRegList(
const BaseRegList& other,
RegMask reg_mask
)constexprnoexcept[3/4][¶]

Creates a new register operand compatible with other, but with a different id.

BaseRegList::BaseRegList(
const Signature& signature,
RegMask reg_mask
)constexprnoexcept[4/4][¶]

Creates a register initialized to the given signature and id.

bool BaseRegList::is_valid() constnodiscardconstexprnoexcept[¶]

Tests whether the register-list is valid, which means it has a type and at least a single register in the list.

bool BaseRegList::is_type() constnodiscardconstexprnoexcept[¶]

Tests whether the register type matches type - same as is_reg(type), provided for convenience.

bool BaseRegList::is_group() constnodiscardconstexprnoexcept[¶]

Tests whether the register group matches group.

bool BaseRegList::is_gp() constnodiscardconstexprnoexcept[¶]

Tests whether the register is a general purpose register (any size).

bool BaseRegList::is_vec() constnodiscardconstexprnoexcept[¶]

Tests whether the register is a vector register.

RegType BaseRegList::reg_type() constnodiscardconstexprnoexcept[¶]

Returns the register type.

RegGroup BaseRegList::reg_group() constnodiscardconstexprnoexcept[¶]

Returns the register group.

uint32_t BaseRegList::size() constnodiscardconstexprnoexcept[¶]

Returns the size of a single register in this register-list or 0 if unspecified.

RegMask BaseRegList::list() constnodiscardconstexprnoexcept[¶]

Returns the register list as a mask, where each bit represents one physical register.

void BaseRegList::set_list()constexprnoexcept[¶]

Sets the register list to mask.

void BaseRegList::reset_list()constexprnoexcept[¶]

Remoes all registers from the register-list by making the underlying register-mask zero.

void BaseRegList::add_list()constexprnoexcept[¶]

Adds registers passed by a register mask to the register-list.

void BaseRegList::clear_list()constexprnoexcept[¶]

Removes registers passed by a register mask to the register-list.

void BaseRegList::and_list()constexprnoexcept[¶]

Uses AND operator to combine the current register-list with other register mask.

void BaseRegList::xor_list()constexprnoexcept[¶]

Uses XOR operator to combine the current register-list with other register mask.

bool BaseRegList::has_reg(
uint32_t phys_id
) constnodiscardconstexprnoexcept[¶]

Checks whether a physical register phys_id is in the register-list.

void BaseRegList::add_reg(
uint32_t phys_id
)constexprnoexcept[¶]

Adds a physical register phys_id to the register-list.

void BaseRegList::clear_reg(
uint32_t phys_id
)constexprnoexcept[¶]

Removes a physical register phys_id from the register-list.

BaseRegList BaseRegList::clone() constnodiscardconstexprnoexcept[¶]

Clones the register-list operand.

template<typename RegListT>
RegListT BaseRegList::clone_as() constnodiscardconstexprnoexcept[1/2][¶]

Casts this register to RegT by also changing its signature.

Note

Improper use of clone_as() can lead to hard-to-debug errors.

template<typename RegListT>
RegListT BaseRegList::clone_as(
const RegListT& other
) constnodiscardconstexprnoexcept[2/2][¶]

Casts this register to other by also changing its signature.

Note

Improper use of clone_as() can lead to hard-to-debug errors.