Ruby
2.4.2p198(2017-09-14revision59899)
|
Go to the source code of this file.
Macros | |
#define | ASM_NEEDS_REGISTERS 4 |
#define | NUM_GPR_ARG_REGISTERS 8 |
#define | NUM_FPR_ARG_REGISTERS 8 |
#define | MIN_CACHE_LINE_SIZE 8 |
Functions | |
static int | translate_float (int abi, int type) |
static ffi_status | ffi_prep_cif_sysv_core (ffi_cif *cif) |
ffi_status FFI_HIDDEN | ffi_prep_cif_sysv (ffi_cif *cif) |
void FFI_HIDDEN | ffi_prep_args_SYSV (extended_cif *ecif, unsigned *const stack) |
static void | flush_icache (char *wraddr, char *xaddr, int size) |
ffi_status FFI_HIDDEN | ffi_prep_closure_loc_sysv (ffi_closure *closure, ffi_cif *cif, void(*fun)(ffi_cif *, void *, void **, void *), void *user_data, void *codeloc) |
int | ffi_closure_helper_SYSV (ffi_closure *closure, void *rvalue, unsigned long *pgr, ffi_dblfl *pfr, unsigned long *pst) |
#define ASM_NEEDS_REGISTERS 4 |
Definition at line 39 of file ffi_sysv.c.
Referenced by ffi_prep_args_SYSV(), and ffi_prep_cif_sysv_core().
#define MIN_CACHE_LINE_SIZE 8 |
Definition at line 629 of file ffi_sysv.c.
Referenced by flush_icache().
#define NUM_FPR_ARG_REGISTERS 8 |
Definition at line 41 of file ffi_sysv.c.
Referenced by ffi_closure_helper_SYSV(), ffi_prep_args_SYSV(), and ffi_prep_cif_sysv_core().
#define NUM_GPR_ARG_REGISTERS 8 |
Definition at line 40 of file ffi_sysv.c.
Referenced by ffi_closure_helper_SYSV(), ffi_prep_args_SYSV(), and ffi_prep_cif_sysv_core().
int ffi_closure_helper_SYSV | ( | ffi_closure * | closure, |
void * | rvalue, | ||
unsigned long * | pgr, | ||
ffi_dblfl * | pfr, | ||
unsigned long * | pst | ||
) |
Definition at line 685 of file ffi_sysv.c.
References alloca(), ffi_dblfl::d, ffi_dblfl::f, FFI_ASSERT, FFI_SYSV_STRUCT_RET, FFI_SYSV_TYPE_SMALL_STRUCT, FFI_TYPE_LONGDOUBLE, FFI_TYPE_UINT128, NUM_FPR_ARG_REGISTERS, NUM_GPR_ARG_REGISTERS, size, and translate_float().
void FFI_HIDDEN ffi_prep_args_SYSV | ( | extended_cif * | ecif, |
unsigned *const | stack | ||
) |
Definition at line 350 of file ffi_sysv.c.
References ASM_NEEDS_REGISTERS, extended_cif::avalue, extended_cif::cif, f, FFI_ASSERT, FFI_TYPE_LONGDOUBLE, FFI_TYPE_UINT128, FLAG_4_GPR_ARGUMENTS, FLAG_ARG_NEEDS_COPY, FLAG_FP_ARGUMENTS, FLAG_RETVAL_REFERENCE, memcpy, NUM_FPR_ARG_REGISTERS, NUM_GPR_ARG_REGISTERS, extended_cif::rvalue, and translate_float().
ffi_status FFI_HIDDEN ffi_prep_cif_sysv | ( | ffi_cif * | cif | ) |
Definition at line 290 of file ffi_sysv.c.
References FFI_COMPAT_GCC_SYSV, FFI_COMPAT_LINUX, FFI_COMPAT_LINUX_SOFT_FLOAT, FFI_COMPAT_SYSV, FFI_HIDDEN, ffi_prep_cif_sysv_core(), FFI_SYSV, FFI_SYSV_IBM_LONG_DOUBLE, FFI_SYSV_LONG_DOUBLE_128, FFI_SYSV_SOFT_FLOAT, FFI_SYSV_STRUCT_RET, and FLAG_COMPAT.
Referenced by ffi_prep_cif_machdep(), and ffi_prep_cif_machdep_var().
|
static |
Definition at line 92 of file ffi_sysv.c.
References ASM_NEEDS_REGISTERS, FFI_ASSERT, FFI_HIDDEN, FFI_SYSV_STRUCT_RET, FFI_TYPE_LONGDOUBLE, FFI_TYPE_UINT128, FLAG_4_GPR_ARGUMENTS, FLAG_ARG_NEEDS_COPY, FLAG_FP_ARGUMENTS, FLAG_RETURNS_128BITS, FLAG_RETURNS_64BITS, FLAG_RETURNS_FP, FLAG_RETURNS_NOTHING, FLAG_RETURNS_SMST, FLAG_RETVAL_REFERENCE, NUM_FPR_ARG_REGISTERS, NUM_GPR_ARG_REGISTERS, size, and translate_float().
Referenced by ffi_prep_cif_sysv().
ffi_status FFI_HIDDEN ffi_prep_closure_loc_sysv | ( | ffi_closure * | closure, |
ffi_cif * | cif, | ||
void(*)(ffi_cif *, void *, void **, void *) | fun, | ||
void * | user_data, | ||
void * | codeloc | ||
) |
Definition at line 644 of file ffi_sysv.c.
References ffi_closure_SYSV(), FFI_LAST_ABI, FFI_SYSV, FFI_TRAMPOLINE_SIZE, and flush_icache().
Referenced by ffi_prep_closure_loc().
|
static |
Definition at line 632 of file ffi_sysv.c.
References __asm__, FFI_HIDDEN, MIN_CACHE_LINE_SIZE, and size.
Referenced by ffi_prep_closure_loc_sysv().
|
static |
Definition at line 64 of file ffi_sysv.c.
References FFI_SYSV_IBM_LONG_DOUBLE, FFI_SYSV_LONG_DOUBLE_128, FFI_SYSV_SOFT_FLOAT, FFI_TYPE_LONGDOUBLE, and FFI_TYPE_UINT128.
Referenced by ffi_closure_helper_SYSV(), ffi_prep_args_SYSV(), and ffi_prep_cif_sysv_core().