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.

Public Types

Constants
- Public Types 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_
- Static Public Member Functions inherited from asmjit::Operand_

Constructor & Destructor Documentation

BaseRegList::BaseRegList()constexprconstexprnoexcept[1/4]◆ 

Creates a dummy register operand.

BaseRegList::BaseRegList(const BaseRegList& other)constexprconstexprnoexcept[2/4]◆ 

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

BaseRegList::BaseRegList(const BaseRegList& other, RegMask regMask)constexprconstexprnoexcept[3/4]◆ 

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

BaseRegList::BaseRegList(const Signature& signature, RegMask regMask)constexprconstexprnoexcept[4/4]◆ 

Creates a register initialized to the given signature and id.

Member Function Documentation

bool BaseRegList::isValid() constconstexprconstexprnoexcept◆ 

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

bool BaseRegList::isType(RegType type) constconstexprconstexprnoexcept◆ 

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

bool BaseRegList::isGroup(RegGroup group) constconstexprconstexprnoexcept◆ 

Tests whether the register group matches group.

bool BaseRegList::isGp() constconstexprconstexprnoexcept◆ 

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

bool BaseRegList::isVec() constconstexprconstexprnoexcept◆ 

Tests whether the register is a vector register.

RegType BaseRegList::type() constconstexprconstexprnoexcept◆ 

Returns the register type.

RegGroup BaseRegList::group() constconstexprconstexprnoexcept◆ 

Returns the register group.

uint32_t BaseRegList::size() constconstexprconstexprnoexcept◆ 

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

RegMask BaseRegList::list() constconstexprconstexprnoexcept◆ 

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

void BaseRegList::setList(RegMask mask)noexcept◆ 

Sets the register list to mask.

void BaseRegList::resetList()noexcept◆ 

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

void BaseRegList::addList(RegMask mask)noexcept◆ 

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

void BaseRegList::clearList(RegMask mask)noexcept◆ 

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

void BaseRegList::andList(RegMask mask)noexcept◆ 

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

void BaseRegList::xorList(RegMask mask)noexcept◆ 

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

bool BaseRegList::hasReg(uint32_t physId) constnoexcept◆ 

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

void BaseRegList::addReg(uint32_t physId)noexcept◆ 

Adds a physical register physId to the register-list.

void BaseRegList::clearReg(uint32_t physId)noexcept◆ 

Removes a physical register physId from the register-list.

BaseRegList BaseRegList::clone() constconstexprconstexprnoexcept◆ 

Clones the register-list operand.

template<typename RegListT>
RegListT BaseRegList::cloneAs() constconstexprconstexprnoexcept[1/2]◆ 

Casts this register to RegT by also changing its signature.

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

template<typename RegListT>
RegListT BaseRegList::cloneAs(const RegListT& other) constconstexprconstexprnoexcept[2/2]◆ 

Casts this register to other by also changing its signature.

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