IndexFunctionasmjit::FuncDetail

asmjit::FuncDetail Class Reference [¶]

Function detail - CallConv and expanded FuncSignature.

Function detail is architecture and OS dependent representation of a function. It contains a materialized calling convention and expanded function signature so all arguments have assigned either register type/id or stack address.

Static Public Attributes

Constants

Member Functions

Construction & Destruction

Overloaded Operators

Reset

Accessors

FuncDetail::FuncDetail()noexcept[1/2][¶]

Creates a default constructed FuncDetail.

FuncDetail::FuncDetail(
const FuncDetail& other
)defaultnoexcept[2/2][¶]

Copy constructor.

Function details are copyable.

Error FuncDetail::init(
const FuncSignature& signature,
const Environment& environment
)noexcept[¶]

Initializes this FuncDetail to the given signature.

FuncDetail& FuncDetail::operator=(
const FuncDetail& other
)defaultnoexcept[¶]

Assignment operator, copies other to this FuncDetail.

void FuncDetail::reset()noexcept[¶]

Resets the function detail to its default constructed state.

const CallConv& FuncDetail::call_conv() constnodiscardnoexcept[¶]

Returns the function's calling convention, see CallConv.

CallConvFlags FuncDetail::flags() constnodiscardnoexcept[¶]

Returns the associated calling convention flags, see CallConv::Flags.

bool FuncDetail::has_flag() constnodiscardnoexcept[¶]

Checks whether a CallConv flag is set, see CallConv::Flags.

bool FuncDetail::has_ret() constnodiscardnoexcept[¶]

Tests whether the function has a return value.

uint32_t FuncDetail::arg_count() constnodiscardnoexcept[¶]

Returns the number of function arguments.

FuncValuePack& FuncDetail::ret_pack()nodiscardnoexcept[1/2][¶]

Returns function return values.

const FuncValuePack& FuncDetail::ret_pack() constnodiscardnoexcept[2/2][¶]

Returns function return values.

FuncValue& FuncDetail::ret(
size_t value_index = 0
)nodiscardnoexcept[1/2][¶]

Returns a function return value associated with the given value_index.

const FuncValue& FuncDetail::ret(
size_t value_index = 0
) constnodiscardnoexcept[2/2][¶]

Returns a function return value associated with the given value_index (const).

FuncValuePack* FuncDetail::arg_packs()nodiscardnoexcept[1/2][¶]

Returns function argument packs array.

const FuncValuePack* FuncDetail::arg_packs() constnodiscardnoexcept[2/2][¶]

Returns function argument packs array (const).

FuncValuePack& FuncDetail::arg_pack(
size_t arg_index
)nodiscardnoexcept[1/2][¶]

Returns function argument pack at the given arg_index.

const FuncValuePack& FuncDetail::arg_pack(
size_t arg_index
) constnodiscardnoexcept[2/2][¶]

Returns function argument pack at the given arg_index (const).

FuncValue& FuncDetail::arg(
size_t arg_index,
size_t value_index = 0
)nodiscardnoexcept[1/2][¶]

Returns an argument at value_index from the argument pack at the given arg_index.

const FuncValue& FuncDetail::arg(
size_t arg_index,
size_t value_index = 0
) constnodiscardnoexcept[2/2][¶]

Returns an argument at value_index from the argument pack at the given arg_index (const).

void FuncDetail::reset_arg(
size_t arg_index
)noexcept[¶]

Resets an argument at the given arg_index.

If the argument is a parameter pack (has multiple values) all values are reset.

bool FuncDetail::has_var_args() constnodiscardnoexcept[¶]

Tests whether the function has variable arguments.

uint32_t FuncDetail::va_index() constnodiscardnoexcept[¶]

Returns an index of a first variable argument.

bool FuncDetail::has_stack_args() constnodiscardnoexcept[¶]

Tests whether the function passes one or more argument by stack.

uint32_t FuncDetail::arg_stack_size() constnodiscardnoexcept[¶]

Returns stack size needed for function arguments passed on the stack.

uint32_t FuncDetail::red_zone_size() constnodiscardnoexcept[¶]

Returns red zone size.

uint32_t FuncDetail::spill_zone_size() constnodiscardnoexcept[¶]

Returns spill zone size.

uint32_t FuncDetail::natural_stack_alignment() constnodiscardnoexcept[¶]

Returns natural stack alignment.

RegMask FuncDetail::passed_regs() constnodiscardnoexcept[¶]

Returns a mask of all passed registers of the given register group.

RegMask FuncDetail::preserved_regs() constnodiscardnoexcept[¶]

Returns a mask of all preserved registers of the given register group.

RegMask FuncDetail::used_regs() constnodiscardnoexcept[¶]

Returns a mask of all used registers of the given register group.

void FuncDetail::add_used_regs(
RegGroup group,
)noexcept[¶]

Adds regs to the mask of used registers of the given register group.

uint8_t FuncDetail::kNoVarArgs = 0xFFustaticconstexpr[¶]

Function doesn't have a variable number of arguments (...).

CallConv FuncDetail::_call_conv {}[¶]

Calling convention.

uint8_t FuncDetail::_arg_count = 0[¶]

Number of function arguments.

uint8_t FuncDetail::_va_index = 0[¶]

Variable arguments index of kNoVarArgs.

uint16_t FuncDetail::_reserved = 0[¶]

Reserved for future use.

Support::Array<RegMask, Globals::kNumVirtGroups>FuncDetail::_used_regs {}[¶]

Registers that contain arguments.

uint32_t FuncDetail::_arg_stack_size = 0[¶]

Size of arguments passed by stack.

FuncValuePack FuncDetail::_rets {}[¶]

Function return value(s).

FuncValuePack FuncDetail::_args[Globals::kMaxFuncArgs] {}[¶]

Function arguments.