IndexAssemblerasmjit::Imm
asmjit::Imm Class Reference
Inheritance diagram for asmjit::Imm:
asmjit::Operand asmjit::Operand_

Immediate operands are encoded with instruction data.

Member Functions

Construction & Destruction
Overloaded Operators
Accessors
Utilities
- 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_

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

Creates a new immediate value (initial value is 0).

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

Creates a new immediate value from other.

Imm::Imm(
const arm::Shift& shift
)constexprnoexcept[3/4][¶]

Creates a new immediate value from ARM/AArch64 specific shift.

template<typename T, typename = typename std::enable_if<IsConstexprConstructibleAsImmType<typename std::decay<T>::type>::value>::type>
Imm::Imm(
const T& val,
const uint32_t predicate = 0
)constexprnoexcept[4/4][¶]

Creates a new signed immediate value, assigning the value to val and an architecture-specific predicate to predicate.

Note
Predicate is currently only used by ARM architectures.

Imm& Imm::operator=(
const Imm& other
)noexcept[¶]

Assigns the value of the other operand to this immediate.

ImmType Imm::type() constconstexprnoexcept[¶]

Returns immediate type.

void Imm::setType(
ImmType type
)noexcept[¶]

Sets the immediate type to type.

void Imm::resetType()noexcept[¶]

Resets immediate type to ImmType::kInt.

uint32_t Imm::predicate() constconstexprnoexcept[¶]

Returns operation predicate of the immediate.

The meaning depends on architecture, for example on ARM hardware this describes arm::ShiftOp of the immediate.

void Imm::setPredicate(
uint32_t predicate
)noexcept[¶]

Sets operation predicate of the immediate to predicate.

The meaning depends on architecture, for example on ARM hardware this describes arm::ShiftOp of the immediate.

void Imm::resetPredicate()noexcept[¶]

Resets the shift operation type of the immediate to the default value (no operation).

int64_t Imm::value() constconstexprnoexcept[¶]

Returns the immediate value as int64_t, which is the internal format Imm uses.

uint32_t Imm::isInt() constconstexprnoexcept[¶]

Tests whether this immediate value is integer of any size.

uint32_t Imm::isDouble() constconstexprnoexcept[¶]

Tests whether this immediate value is a double precision floating point value.

bool Imm::isInt8() constconstexprnoexcept[¶]

Tests whether the immediate can be casted to 8-bit signed integer.

bool Imm::isUInt8() constconstexprnoexcept[¶]

Tests whether the immediate can be casted to 8-bit unsigned integer.

bool Imm::isInt16() constconstexprnoexcept[¶]

Tests whether the immediate can be casted to 16-bit signed integer.

bool Imm::isUInt16() constconstexprnoexcept[¶]

Tests whether the immediate can be casted to 16-bit unsigned integer.

bool Imm::isInt32() constconstexprnoexcept[¶]

Tests whether the immediate can be casted to 32-bit signed integer.

bool Imm::isUInt32() constconstexprnoexcept[¶]

Tests whether the immediate can be casted to 32-bit unsigned integer.

template<typename T>
T Imm::valueAs() constnoexcept[¶]

Returns the immediate value casted to T.

The value is masked before it's casted to T so the returned value is simply the representation of T considering the original value's lowest bits.

int32_t Imm::int32Lo() constconstexprnoexcept[¶]

Returns low 32-bit signed integer.

int32_t Imm::int32Hi() constconstexprnoexcept[¶]

Returns high 32-bit signed integer.

uint32_t Imm::uint32Lo() constconstexprnoexcept[¶]

Returns low 32-bit signed integer.

uint32_t Imm::uint32Hi() constconstexprnoexcept[¶]

Returns high 32-bit signed integer.

template<typename T>
void Imm::setValue(
const T& val
)noexcept[¶]

Sets immediate value to val, the value is casted to a signed 64-bit integer.

Imm Imm::clone() constconstexprnoexcept[¶]

Clones the immediate operand.