#include <ffi.h>
#include <ffi_common.h>
#include <stdlib.h>
#include <stdbool.h>
#include <float.h>
#include "ia64_flags.h"
Go to the source code of this file.
|
#define | stf_spill(addr, value) asm ("stf.spill %0 = %1%P0" : "=m" (*addr) : "f"(value)); |
|
#define | ldf_fill(result, addr) asm ("ldf.fill %0 = %1%P1" : "=f"(result) : "m"(*addr)); |
|
|
ffi_status | ffi_prep_cif_machdep (ffi_cif *cif) |
|
int | ffi_call_unix (struct ia64_args *, PTR64, void(*)(void), UINT64) |
|
void | ffi_call (ffi_cif *cif, void(*fn)(void), void *rvalue, void **avalue) |
|
void | ffi_closure_unix () |
|
ffi_status | ffi_prep_closure_loc (ffi_closure *closure, ffi_cif *cif, void(*fun)(ffi_cif *, void *, void **, void *), void *user_data, void *codeloc) |
|
UINT64 | ffi_closure_unix_inner (ffi_closure *closure, struct ia64_args *stack, void *rvalue, void *r8) |
|
◆ ldf_fill
#define ldf_fill |
( |
|
result, |
|
|
|
addr |
|
) |
| asm ("ldf.fill %0 = %1%P1" : "=f"(result) : "m"(*addr)); |
Definition at line 85 of file ffi.c.
◆ stf_spill
#define stf_spill |
( |
|
addr, |
|
|
|
value |
|
) |
| asm ("stf.spill %0 = %1%P0" : "=m" (*addr) : "f"(value)); |
Definition at line 79 of file ffi.c.
◆ __attribute__
typedef void* PTR64 __attribute__((mode(DI))) |
Definition at line 41 of file ffi.c.
◆ ffi_call()
Definition at line 277 of file ffi.c.
References alloca, FFI_ASSERT, FFI_TYPE_LONGDOUBLE, FFI_UNIX, ia64_args::fp_regs, ia64_args::gp_regs, i, memcpy(), NULL, size, and stf_spill.
◆ ffi_call_unix()
◆ ffi_closure_unix()
void ffi_closure_unix |
( |
| ) |
|
◆ ffi_closure_unix_inner()
UINT64 ffi_closure_unix_inner |
( |
ffi_closure * |
closure, |
|
|
struct ia64_args * |
stack, |
|
|
void * |
rvalue, |
|
|
void * |
r8 |
|
) |
| |
◆ ffi_prep_cif_machdep()
ffi_status ffi_prep_cif_machdep |
( |
ffi_cif * |
cif | ) |
|
◆ ffi_prep_closure_loc()
ffi_status ffi_prep_closure_loc |
( |
ffi_closure * |
closure, |
|
|
ffi_cif * |
cif, |
|
|
void(*)(ffi_cif *, void *, void **, void *) |
fun, |
|
|
void * |
user_data, |
|
|
void * |
codeloc |
|
) |
| |