infix
A JIT-Powered FFI Library for C
Loading...
Searching...
No Matches
infix_call_frame_layout Struct Reference

A complete layout blueprint for a forward call frame. More...

#include <infix_internals.h>

Collaboration diagram for infix_call_frame_layout:
[legend]

Public Attributes

size_t total_stack_alloc
 
uint8_t num_gpr_args
 
uint8_t num_xmm_args
 
infix_arg_locationarg_locations
 
bool return_value_in_memory
 
bool is_variadic
 
size_t num_stack_args
 
size_t num_args
 
void * target_fn
 

Detailed Description

A complete layout blueprint for a forward call frame.

This structure is the primary output of prepare_forward_call_frame. It serves as a complete plan for the JIT engine, detailing every register and stack slot that needs to be populated before making the call instruction.

Member Data Documentation

◆ arg_locations

infix_arg_location* infix_call_frame_layout::arg_locations

An array of location info for each argument.

◆ is_variadic

bool infix_call_frame_layout::is_variadic

true if the function is variadic.

◆ num_args

size_t infix_call_frame_layout::num_args

The total number of arguments.

◆ num_gpr_args

uint8_t infix_call_frame_layout::num_gpr_args

The number of GPRs used for arguments.

◆ num_stack_args

size_t infix_call_frame_layout::num_stack_args

The number of arguments passed on the stack.

◆ num_xmm_args

uint8_t infix_call_frame_layout::num_xmm_args

The number of XMMs used for arguments.

◆ return_value_in_memory

bool infix_call_frame_layout::return_value_in_memory

true if the return value uses a hidden pointer argument (struct return).

◆ target_fn

void* infix_call_frame_layout::target_fn

The target function address.

◆ total_stack_alloc

size_t infix_call_frame_layout::total_stack_alloc

Total bytes to allocate on the stack for arguments and ABI-required space.


The documentation for this struct was generated from the following file: