IndexAssemblerasmjit::OperandSignature

asmjit::OperandSignature Struct Reference [¶]

Operand signature is a 32-bit number describing Operand and some of its payload.

In AsmJit operand signature is used to store additional payload of register, memory, and immediate operands. In practice the biggest pressure on OperandSignature is from BaseMem and architecture specific memory operands that need to store additional payload that cannot be stored elsewhere as values of all other members are fully specified by BaseMem.

Public Members

Members

Static Public Attributes

Constants

Member Functions

Overloaded Operators

Overloaded operators make OperandSignature behave like regular integer.

Accessors

Static Functions

Static Constructors

OperandSignature OperandSignature::from_bits(
uint32_t bits
)constexprstaticnodiscardnoexcept[¶]

Constructs operand signature from the given bits.

template<uint32_t FieldMask, typename T>
OperandSignature OperandSignature::from_value(
const T& value
)constexprstaticnodiscardnoexcept[¶]

Constructs operand signature from the given value, use FieldMask to describe where the value is in the signature.

OperandSignature OperandSignature::from_op_type()constexprstaticnodiscardnoexcept[¶]

Constructs operand signature describing the given operand type op_type.

OperandSignature OperandSignature::from_reg_type(
RegType reg_type
)constexprstaticnodiscardnoexcept[¶]

Constructs operand signature describing the given register type reg_type.

OperandSignature OperandSignature::from_reg_group(
RegGroup reg_group
)constexprstaticnodiscardnoexcept[¶]

Constructs operand signature describing the given register group reg_group.

OperandSignature OperandSignature::from_reg_type_and_group(
RegType reg_type,
RegGroup reg_group
)constexprstaticnodiscardnoexcept[¶]

Constructs operand signature describing both register type reg_type and register group reg_group.

OperandSignature OperandSignature::from_mem_base_type(
RegType base_type
)constexprstaticnodiscardnoexcept[¶]

Constructs operand signature describing a memory base type base_type.

OperandSignature OperandSignature::from_mem_index_type(
RegType index_type
)constexprstaticnodiscardnoexcept[¶]

Constructs operand signature describing a memory index type index_type.

OperandSignature OperandSignature::from_predicate(
uint32_t predicate
)constexprstaticnodiscardnoexcept[¶]

Constructs operand signature describing a predicate.

OperandSignature OperandSignature::from_size(
uint32_t size
)constexprstaticnodiscardnoexcept[¶]

Constructs operand signature describing a size.

bool OperandSignature::is_valid() constnodiscardconstexprnoexcept[¶]

Tests whether the operand signature is valid (describes a valid operand, and not OperandType::kNone.

OperandType OperandSignature::op_type() constnodiscardconstexprnoexcept[¶]

Returns operand type this operand signature describes.

bool OperandSignature::is_op_type() constnodiscardconstexprnoexcept[¶]

Tests whether the operand type matches op_type.

bool OperandSignature::is_reg() constnodiscardconstexprnoexcept[1/3][¶]

Tests whether the operand signature represents a register.

bool OperandSignature::is_reg(
RegType reg_type
) constnodiscardconstexprnoexcept[2/3][¶]

Tests whether the operand signature represents a register of the given register type reg_type.

bool OperandSignature::is_reg(
RegGroup reg_group
) constnodiscardconstexprnoexcept[3/3][¶]

Tests whether the operand signature represents a register of the given register type reg_type.