26 long double r = a1 + a2 + a3 + a4 + a5 + a6 + a7 + a8;
28 printf(
"%Lg %Lg %Lg %Lg %Lg %Lg %Lg %Lg: %Lg\n",
29 a1, a2, a3, a4, a5, a6, a7, a8, r);
36 void** args,
void* userdata __UNUSED__)
38 long double a1 = *(
long double*)args[0];
39 long double a2 = *(
long double*)args[1];
40 long double a3 = *(
long double*)args[2];
41 long double a4 = *(
long double*)args[3];
42 long double a5 = *(
long double*)args[4];
43 long double a6 = *(
long double*)args[5];
44 long double a7 = *(
long double*)args[6];
45 long double a8 = *(
long double*)args[7];
48 a1, a2, a3, a4, a5, a6, a7, a8);
55 ffi_closure* pcl = ffi_closure_alloc(
sizeof(ffi_closure), &code);
57 ffi_type* arg_types[9];
69 arg_types[0] = &ffi_type_longdouble;
70 arg_types[1] = &ffi_type_longdouble;
71 arg_types[2] = &ffi_type_longdouble;
72 arg_types[3] = &ffi_type_longdouble;
73 arg_types[4] = &ffi_type_longdouble;
74 arg_types[5] = &ffi_type_longdouble;
75 arg_types[6] = &ffi_type_longdouble;
76 arg_types[7] = &ffi_type_longdouble;
80 arg_types) == FFI_OK);
94 printf(
"res: %Lg\n", res);
99 res = ((
long double(*)(
long double,
long double,
long double,
long double,
100 long double,
long double,
long double,
long double))(code))(arg1, arg2,
101 arg3, arg4, arg5, arg6, arg7, arg8);
103 printf(
"res: %Lg\n", res);
static void cls_ldouble_gn(ffi_cif *cif __UNUSED__, void *resp, void **args, void *userdata __UNUSED__)
long double cls_ldouble_fn(long double a1, long double a2, long double a3, long double a4, long double a5, long double a6, long double a7, long double a8)
ffi_status ffi_prep_closure_loc(ffi_closure *closure, ffi_cif *cif, void(*fun)(ffi_cif *, void *, void **, void *), void *user_data, void *codeloc)
void ffi_call(ffi_cif *cif, void(*fn)(void), void *rvalue, void **avalue)
ffi_status ffi_prep_cif(ffi_cif *cif, ffi_abi abi, unsigned int nargs, ffi_type *rtype, ffi_type **atypes)