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.
Overloaded operators make OperandSignature
behave like regular integer.
constexpr bool operator!()
const noexcept constexpr operator bool()
const noexcept constexpr bool operator==(
uint32_t x)
const noexcept constexpr bool operator!=(
uint32_t x)
const noexcept
constexpr uint32_t bits()
const noexcept void setBits(
uint32_t bits)
noexcept template<uint32_t kFieldMask> constexpr bool hasField() const noexcept
template<uint32_t kFieldMask> constexpr bool hasField(uint32_t value) const noexcept
template<uint32_t kFieldMask> constexpr uint32_t getField() const noexcept
template<uint32_t kFieldMask> void setField(uint32_t value) noexcept
template<uint32_t kFieldMask, uint32_t kFieldShift = Support::ConstCTZ<kFieldMask>::value> template<uint32_t kFieldMask> constexpr bool matchesSignature(
const OperandSignature& signature)
const noexcept template<uint32_t kFieldMask> constexpr bool matchesFields(uint32_t bits) const noexcept
template<uint32_t kFieldMask> constexpr bool isValid()
const noexcept constexpr RegType regType()
const noexcept constexpr RegGroup regGroup()
const noexcept constexpr RegType memBaseType()
const noexcept constexpr RegType memIndexType()
const noexcept constexpr uint32_t predicate()
const noexcept constexpr uint32_t size()
const noexcept void setRegType(
RegType regType)
noexcept void setRegGroup(
RegGroup regGroup)
noexcept void setMemBaseType(
RegType baseType)
noexcept void setMemIndexType(
RegType indexType)
noexcept void setPredicate(
uint32_t predicate)
noexcept void setSize(
uint32_t size)
noexcept
template<uint32_t kFieldMask, typename T>