|
| static infix_status | prepare_forward_call_frame_win_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) |
| | The v-table of Windows x64 functions for generating forward trampolines.
|
| |
| static infix_status | generate_forward_prologue_win_x64 (code_buffer *buf, infix_call_frame_layout *layout) |
| |
| static infix_status | generate_forward_argument_moves_win_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_win_x64 (code_buffer *, infix_call_frame_layout *) |
| |
| static infix_status | generate_forward_epilogue_win_x64 (code_buffer *buf, infix_call_frame_layout *layout, infix_type *ret_type) |
| |
| static infix_status | prepare_reverse_call_frame_win_x64 (infix_arena_t *arena, infix_reverse_call_frame_layout **out_layout, infix_reverse_t *context) |
| | The v-table of Windows x64 functions for generating reverse trampolines.
|
| |
| static infix_status | generate_reverse_prologue_win_x64 (code_buffer *buf, infix_reverse_call_frame_layout *layout) |
| |
| static infix_status | generate_reverse_argument_marshalling_win_x64 (code_buffer *buf, infix_reverse_call_frame_layout *layout, infix_reverse_t *context) |
| |
| static infix_status | generate_reverse_dispatcher_call_win_x64 (code_buffer *buf, infix_reverse_call_frame_layout *layout, infix_reverse_t *context) |
| |
| static infix_status | generate_reverse_epilogue_win_x64 (code_buffer *buf, infix_reverse_call_frame_layout *layout, infix_reverse_t *context) |
| |
| static infix_status | prepare_direct_forward_call_frame_win_x64 (infix_arena_t *arena, infix_direct_call_frame_layout **out_layout, infix_type *ret_type, infix_type **arg_types, size_t num_args, infix_direct_arg_handler_t *handlers, void *target_fn) |
| | The v-table for the new Direct Marshalling ABI.
|
| |
| static infix_status | generate_direct_forward_prologue_win_x64 (code_buffer *buf, infix_direct_call_frame_layout *layout) |
| |
| static infix_status | generate_direct_forward_argument_moves_win_x64 (code_buffer *buf, infix_direct_call_frame_layout *layout) |
| |
| static infix_status | generate_direct_forward_call_instruction_win_x64 (code_buffer *buf, infix_direct_call_frame_layout *layout) |
| |
| static infix_status | generate_direct_forward_epilogue_win_x64 (code_buffer *buf, infix_direct_call_frame_layout *layout, infix_type *ret_type) |
| |
| static bool | return_value_is_by_reference (const infix_type *type) |
| |
| static bool | is_passed_by_reference (const infix_type *type) |
| |
| static infix_status | generate_forward_call_instruction_win_x64 (code_buffer *buf, c23_maybe_unused infix_call_frame_layout *layout) |
| |
Implements the FFI logic for the Windows x64 calling convention.
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