|
static infix_status | prepare_forward_call_frame_sysv_x64 (infix_arena_t *arena, infix_call_frame_layout **out_layout, infix_type *ret_type, infix_type **arg_types, size_t num_args, size_t num_fixed_args, void *target_fn) |
|
static infix_status | generate_forward_prologue_sysv_x64 (code_buffer *buf, infix_call_frame_layout *layout) |
|
static infix_status | generate_forward_argument_moves_sysv_x64 (code_buffer *buf, infix_call_frame_layout *layout, infix_type **arg_types, size_t num_args, size_t num_fixed_args) |
|
static infix_status | generate_forward_call_instruction_sysv_x64 (code_buffer *, infix_call_frame_layout *) |
|
static infix_status | generate_forward_epilogue_sysv_x64 (code_buffer *buf, infix_call_frame_layout *layout, infix_type *ret_type) |
|
static infix_status | prepare_reverse_call_frame_sysv_x64 (infix_arena_t *arena, infix_reverse_call_frame_layout **out_layout, infix_reverse_t *context) |
|
static infix_status | generate_reverse_prologue_sysv_x64 (code_buffer *buf, infix_reverse_call_frame_layout *layout) |
|
static infix_status | generate_reverse_argument_marshalling_sysv_x64 (code_buffer *buf, infix_reverse_call_frame_layout *layout, infix_reverse_t *context) |
|
static infix_status | generate_reverse_dispatcher_call_sysv_x64 (code_buffer *buf, infix_reverse_call_frame_layout *layout, infix_reverse_t *context) |
|
static infix_status | generate_reverse_epilogue_sysv_x64 (code_buffer *buf, infix_reverse_call_frame_layout *layout, infix_reverse_t *context) |
|
static bool | classify_recursive (infix_type *type, size_t offset, arg_class_t classes[2], int depth, size_t *field_count) |
|
static void | classify_aggregate_sysv (infix_type *type, arg_class_t classes[2], size_t *num_classes) |
|
static infix_status | generate_forward_argument_moves_sysv_x64 (code_buffer *buf, infix_call_frame_layout *layout, infix_type **arg_types, size_t num_args, c23_maybe_unused size_t num_fixed_args) |
|
static infix_status | generate_forward_call_instruction_sysv_x64 (code_buffer *buf, c23_maybe_unused infix_call_frame_layout *layout) |
|
Implements the FFI logic for the System V AMD64 ABI.
Copyright (c) 2025 Sanko Robinson
This source code is dual-licensed under the Artistic License 2.0 or the MIT License. You may choose to use this code under the terms of either license.
SPDX-License-Identifier: (Artistic-2.0 OR MIT)
The documentation blocks within this file are licensed under the Creative Commons Attribution 4.0 International License (CC BY 4.0).
SPDX-License-Identifier: CC-BY-4.0