Ruby  2.4.2p198(2017-09-14revision59899)
Macros | Functions
ffi_sysv.c File Reference
#include "ffi.h"
#include "ffi_common.h"
#include "ffi_powerpc.h"
Include dependency graph for ffi_sysv.c:

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)
 

Macro Definition Documentation

◆ ASM_NEEDS_REGISTERS

#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().

◆ MIN_CACHE_LINE_SIZE

#define MIN_CACHE_LINE_SIZE   8

Definition at line 629 of file ffi_sysv.c.

Referenced by flush_icache().

◆ NUM_FPR_ARG_REGISTERS

#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().

◆ NUM_GPR_ARG_REGISTERS

#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().

Function Documentation

◆ ffi_closure_helper_SYSV()

int ffi_closure_helper_SYSV ( ffi_closure *  closure,
void *  rvalue,
unsigned long *  pgr,
ffi_dblfl pfr,
unsigned long *  pst 
)

◆ ffi_prep_args_SYSV()

void FFI_HIDDEN ffi_prep_args_SYSV ( extended_cif ecif,
unsigned *const  stack 
)

◆ ffi_prep_cif_sysv()

ffi_status FFI_HIDDEN ffi_prep_cif_sysv ( ffi_cif *  cif)

◆ ffi_prep_cif_sysv_core()

static ffi_status ffi_prep_cif_sysv_core ( ffi_cif *  cif)
static

◆ ffi_prep_closure_loc_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().

◆ flush_icache()

static void flush_icache ( char *  wraddr,
char *  xaddr,
int  size 
)
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().

◆ translate_float()

static int translate_float ( int  abi,
int  type 
)
static