AsmJit
Low-Latency Machine Code Generation
Instruction node.
Wraps an instruction with its options and operands.
kBaseOpCapacity
)noexcept◆ Creates a new InstNode
instance.
Returns the instruction id, see BaseInst::Id
.
Returns the instruction real id, see BaseInst::Id
.
Sets the instruction id to id
, see BaseInst::Id
.
Returns instruction options, see InstOptions for more details.
Tests whether instruction has the given \option` set/enabled.
Sets instruction options
to the provided value, resetting all others.
Adds instruction options
to the instruction.
Clears instruction options
of the instruction (disables the given options).
Resets instruction options to none - disabling all instruction options.
Tests whether the node has an extra register operand.
Returns extra register operand.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Sets extra register operand to reg
.
Sets extra register operand to reg
.
Resets extra register operand.
Returns operand count.
Returns operand capacity.
Sets operand count.
Returns operands array.
Returns operands array (const).
Returns operand at the given index
.
Returns operand at the given index
(const).
Sets operand at the given index
to op
.
Resets operand at the given index
to none.
Resets operands at [start, end)
range.
Tests whether the given operand type opType
is used by the instruction.
Tests whether the instruction uses at least one register operand.
Tests whether the instruction uses at least one memory operand.
Tests whether the instruction uses at least one immediate operand.
Tests whether the instruction uses at least one label operand.
Returns the index of the given operand type opType
.
A shortcut that calls indexOfOpType(OperandType::kMem)
.
A shortcut that calls indexOfOpType(OperandType::kImm)
.
A shortcut that calls indexOfOpType(OperandType::kLabel)
.
The number of embedded operands for a default InstNode instance that are always allocated as a part of the instruction itself.
Minimum embedded operands is 4, but in 32-bit more pointers are smaller and we can embed 5. The rest (up to 6 operands) is considered extended.
The number of operands InstNode holds is decided when InstNode is created.
Count of maximum number of operands InstNode can hold.
Base instruction data.