Ruby 2.7.6p219 (2022-04-12 revision c9c2245c0a25176072e02db9254f0e0c84c805cd)
|
Go to the source code of this file.
Macros | |
#define | ROUND_UP(v, a) (((size_t)(v) + (a) - 1) & ~((a) - 1)) |
#define | MIN_STACK_SIZE 64 |
#define | FIRST_ARG_SLOT 9 |
#define | DEBUG_LEVEL 0 |
#define | fldw(addr, fpreg) __asm__ volatile ("fldw 0(%0), %%" #fpreg "L" : : "r"(addr) : #fpreg) |
#define | fstw(fpreg, addr) __asm__ volatile ("fstw %%" #fpreg "L, 0(%0)" : : "r"(addr)) |
#define | fldd(addr, fpreg) __asm__ volatile ("fldd 0(%0), %%" #fpreg : : "r"(addr) : #fpreg) |
#define | fstd(fpreg, addr) __asm__ volatile ("fstd %%" #fpreg "L, 0(%0)" : : "r"(addr)) |
#define | debug(lvl, x...) do { if (lvl <= DEBUG_LEVEL) { printf(x); } } while (0) |
Functions | |
void | ffi_prep_args_pa32 (UINT32 *stack, extended_cif *ecif, unsigned bytes) |
ffi_status | ffi_prep_cif_machdep (ffi_cif *cif) |
void | ffi_call_pa32 (void(*)(UINT32 *, extended_cif *, unsigned), extended_cif *, unsigned, unsigned, unsigned *, void(*fn)(void)) |
void | ffi_call (ffi_cif *cif, void(*fn)(void), void *rvalue, void **avalue) |
#define debug | ( | lvl, | |
x... | |||
) | do { if (lvl <= DEBUG_LEVEL) { printf(x); } } while (0) |
Definition at line 376 of file ffi.c.
References alloca, extended_cif::avalue, extended_cif::cif, debug, FFI_ASSERT, ffi_call_pa32(), ffi_prep_args_pa32(), FFI_TYPE_LONGDOUBLE, NULL, and extended_cif::rvalue.
void ffi_call_pa32 | ( | void(*)(UINT32 *, extended_cif *, unsigned) | , |
extended_cif * | , | ||
unsigned | , | ||
unsigned | , | ||
unsigned * | , | ||
void(*)(void) | fn | ||
) |
Referenced by ffi_call().
void ffi_prep_args_pa32 | ( | UINT32 * | stack, |
extended_cif * | ecif, | ||
unsigned | bytes | ||
) |
Definition at line 142 of file ffi.c.
References extended_cif::avalue, extended_cif::cif, debug, FFI_ASSERT, FFI_TYPE_LONGDOUBLE, FIRST_ARG_SLOT, fldd, fldw, i, len, memcpy(), and n.
Referenced by ffi_call().
ffi_status ffi_prep_cif_machdep | ( | ffi_cif * | cif | ) |
Definition at line 319 of file ffi.c.
References FFI_TYPE_LONGDOUBLE, and unsigned.