Function invocation, used by BaseCompiler.
}
};
union {
};
union {
};
const Operand&
ret(
size_t valueIndex = 0)
const noexcept Operand&
arg(
size_t argIndex,
size_t valueIndex)
noexcept const Operand&
arg(
size_t argIndex,
size_t valueIndex)
const noexcept void setArg(
size_t argIndex,
size_t valueIndex,
const BaseReg& reg)
noexcept void setArg(
size_t argIndex,
size_t valueIndex,
const Imm&
imm)
noexcept InstNode(
const InstNode& other) =
delete const BaseInst&
baseInst()
const noexcept void resetOptions()
noexcept const Operand&
op(
uint32_t index)
const noexcept void resetOp(
uint32_t index)
noexcept bool hasRegOp()
const noexcept bool hasMemOp()
const noexcept bool hasImmOp()
const noexcept bool hasLabelOp()
const noexcept uint32_t indexOfOpType(
OperandType opType)
const noexcept uint32_t indexOfMemOp()
const noexcept uint32_t indexOfImmOp()
const noexcept uint32_t indexOfLabelOp()
const noexcept BaseNode(
const BaseNode& other) =
delete template<typename T>
template<typename T>
const T*
as()
const noexcept template<typename T>
template<typename T>
template<typename T>
template<typename T>
enum : uint32_t
Creates a new InvokeNode
instance.
Error InvokeNode::init(const FuncSignature& signature, const Environment& environment)noexcept◆
Sets the function signature.
FuncDetail& InvokeNode::detail()noexcept[1/2]◆
Returns the function detail.
const FuncDetail& InvokeNode::detail() constnoexcept[2/2]◆
Returns the function detail.
Operand& InvokeNode::target()noexcept[1/2]◆
Returns the target operand.
const Operand& InvokeNode::target() constnoexcept[2/2]◆
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
bool InvokeNode::hasRet() constnoexcept◆
Returns the number of function return values.
uint32_t InvokeNode::argCount() constnoexcept◆
Returns the number of function arguments.
OperandPack& InvokeNode::retPack()noexcept[1/2]◆
Returns operand pack representing function return value(s).
const OperandPack& InvokeNode::retPack() constnoexcept[2/2]◆
Returns operand pack representing function return value(s).
Operand& InvokeNode::ret(size_t valueIndex = 0
)noexcept[1/2]◆
Returns the return value at the given valueIndex
.
const Operand& InvokeNode::ret(size_t valueIndex = 0
) constnoexcept[2/2]◆
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
OperandPack& InvokeNode::argPack(size_t argIndex)noexcept[1/2]◆
Returns operand pack representing function return value(s).
const OperandPack& InvokeNode::argPack(size_t argIndex) constnoexcept[2/2]◆
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Operand& InvokeNode::arg(size_t argIndex, size_t valueIndex)noexcept[1/2]◆
Returns a function argument at the given argIndex
.
const Operand& InvokeNode::arg(size_t argIndex, size_t valueIndex) constnoexcept[2/2]◆
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
void InvokeNode::_setRet(size_t valueIndex, const Operand_& op)noexcept◆
Sets the function return value at i
to op
.
void InvokeNode::_setArg(size_t argIndex, size_t valueIndex, const Operand_& op)noexcept◆
Sets the function argument at i
to op
.
void InvokeNode::setRet(size_t valueIndex, const BaseReg& reg)noexcept◆
Sets the function return value at valueIndex
to reg
.
void InvokeNode::setArg(size_t argIndex, const BaseReg& reg)noexcept[1/4]◆
Sets the first function argument in a value-pack at argIndex
to reg
.
void InvokeNode::setArg(size_t argIndex, const Imm& imm)noexcept[2/4]◆
Sets the first function argument in a value-pack at argIndex
to imm
.
void InvokeNode::setArg(size_t argIndex, size_t valueIndex, const BaseReg& reg)noexcept[3/4]◆
Sets the function argument at argIndex
and valueIndex
to reg
.
void InvokeNode::setArg(size_t argIndex, size_t valueIndex, const Imm& imm)noexcept[4/4]◆
Sets the function argument at argIndex
and valueIndex
to imm
.
FuncDetail InvokeNode::_funcDetail◆
Function return value(s).