AsmJit
Low-Latency Machine Code Generation
Memory operand specific to X86 and X86_64 architecture.
Additional bits of operand's signature used by x86::Mem
.
Creates a default Mem
operand that points to [0].
Clones the memory operand.
Creates a copy of this memory operand adjusted by off
.
Creates a copy of this memory operand resized to size
.
Creates a copy of this memory operand with a broadcast bcst
.
Converts memory baseType
and baseId
to x86::Reg
instance.
The memory must have a valid base register otherwise the result will be wrong.
Converts memory indexType
and indexId
to x86::Reg
instance.
The memory must have a valid index register otherwise the result will be wrong.
Tests whether the memory operand specifies a size (i.e. the size is not zero).
Tests whether the memory operand size matches size s
.
Returns the size of the memory operand in bytes.
inc [mem], immediate
requires size to distinguish between 8-bit, 16-bit, 32-bit, and 64-bit increments. Sets the memory operand size (in bytes).
Returns the address type of the memory operand.
By default, address type of newly created memory operands is always AddrType::kDefault.
Sets the address type to addrType
.
Resets the address type to AddrType::kDefault.
Tests whether the address type is AddrType::kAbs.
Sets the address type to AddrType::kAbs.
Tests whether the address type is AddrType::kRel.
Sets the address type to AddrType::kRel.
Tests whether the memory operand has a segment override.
Returns the associated segment override as SReg
operand.
Returns segment override register id, see SReg::Id
.
Sets the segment override to seg
.
Sets the segment override to id
.
Resets the segment override.
Tests whether the memory operand has shift (aka scale) value.
Returns the memory operand's shift (aka scale) value.
Sets the memory operand's shift (aka scale) value.
Resets the memory operand's shift (aka scale) value to zero.
Tests whether the memory operand has broadcast {1tox}.
Returns the memory operand's broadcast.
Sets the memory operand's broadcast.
Resets the memory operand's broadcast to none.
Returns a new Mem
without a broadcast (the possible broadcast is cleared).
Returns a new Mem
with {1to2} broadcast (AVX-512).
Returns a new Mem
with {1to4} broadcast (AVX-512).
Returns a new Mem
with {1to8} broadcast (AVX-512).
Returns a new Mem
with {1to16} broadcast (AVX-512).
Returns a new Mem
with {1to32} broadcast (AVX-512).
Returns a new Mem
with {1to64} broadcast (AVX-512).
Sets the index register to type and id of the given index
operand.