40 result.
a = b0.
a + b1.
a + b2.
a + b3.
a;
41 result.
b = b0.
b + b1.
b + b2.
b + b3.
b;
42 result.
c = b0.
c + b1.
c + b2.
c + b3.
c;
43 result.
d = b0.
d + b1.
d + b2.
d + b3.
d;
44 result.
e = b0.
e + b1.
e + b2.
e + b3.
e;
45 result.
f = b0.
f + b1.
f + b2.
f + b3.
f;
46 result.
g = b0.
g + b1.
g + b2.
g + b3.
g;
47 result.
h = b0.
h + b1.
h + b2.
h + b3.
h;
48 result.
i = b0.
i + b1.
i + b2.
i + b3.
i;
49 result.
j = b0.
j + b1.
j + b2.
j + b3.
j;
50 result.
k = b0.
k + b1.
k + b2.
k + b3.
k;
51 result.
l = b0.
l + b1.
l + b2.
l + b3.
l;
52 result.
m = b0.
m + b1.
m + b2.
m + b3.
m;
53 result.
n = b0.
n + b1.
n + b2.
n + b3.
n;
55 printf(
"%g %g %g %g %g %g %g %g %g %g %g %g %g %d\n", result.
a, result.
b, result.
c,
56 result.
d, result.
e, result.
f, result.
g, result.
h, result.
i,
57 result.
j, result.
k, result.
l, result.
m, result.
n);
79 ffi_closure *pcl = ffi_closure_alloc(
sizeof(ffi_closure), &code);
81 ffi_type* cls_struct_fields[15];
82 ffi_type cls_struct_type;
83 ffi_type* dbl_arg_types[5];
85 struct_108byte e_dbl = { 9.0, 2.0, 6.0, 5.0, 3.0, 4.0, 8.0, 1.0, 1.0, 2.0, 3.0, 7.0, 2.0, 7 };
86 struct_108byte f_dbl = { 1.0, 2.0, 3.0, 7.0, 2.0, 5.0, 6.0, 7.0, 4.0, 5.0, 7.0, 9.0, 1.0, 4 };
87 struct_108byte g_dbl = { 4.0, 5.0, 7.0, 9.0, 1.0, 1.0, 2.0, 9.0, 8.0, 6.0, 1.0, 4.0, 0.0, 3 };
88 struct_108byte h_dbl = { 8.0, 6.0, 1.0, 4.0, 0.0, 3.0, 3.0, 1.0, 9.0, 2.0, 6.0, 5.0, 3.0, 2 };
91 cls_struct_type.size = 0;
92 cls_struct_type.alignment = 0;
93 cls_struct_type.type = FFI_TYPE_STRUCT;
94 cls_struct_type.elements = cls_struct_fields;
96 cls_struct_fields[0] = &ffi_type_double;
97 cls_struct_fields[1] = &ffi_type_double;
98 cls_struct_fields[2] = &ffi_type_double;
99 cls_struct_fields[3] = &ffi_type_double;
100 cls_struct_fields[4] = &ffi_type_double;
101 cls_struct_fields[5] = &ffi_type_double;
102 cls_struct_fields[6] = &ffi_type_double;
103 cls_struct_fields[7] = &ffi_type_double;
104 cls_struct_fields[8] = &ffi_type_double;
105 cls_struct_fields[9] = &ffi_type_double;
106 cls_struct_fields[10] = &ffi_type_double;
107 cls_struct_fields[11] = &ffi_type_double;
108 cls_struct_fields[12] = &ffi_type_double;
109 cls_struct_fields[13] = &ffi_type_sint32;
110 cls_struct_fields[14] =
NULL;
112 dbl_arg_types[0] = &cls_struct_type;
113 dbl_arg_types[1] = &cls_struct_type;
114 dbl_arg_types[2] = &cls_struct_type;
115 dbl_arg_types[3] = &cls_struct_type;
116 dbl_arg_types[4] =
NULL;
119 dbl_arg_types) == FFI_OK);
121 args_dbl[0] = &e_dbl;
122 args_dbl[1] = &f_dbl;
123 args_dbl[2] = &g_dbl;
124 args_dbl[3] = &h_dbl;
129 printf(
"res: %g %g %g %g %g %g %g %g %g %g %g %g %g %d\n", res_dbl.
a, res_dbl.
b,
130 res_dbl.
c, res_dbl.
d, res_dbl.
e, res_dbl.
f, res_dbl.
g, res_dbl.
h, res_dbl.
i,
131 res_dbl.
j, res_dbl.
k, res_dbl.
l, res_dbl.
m, res_dbl.
n);
139 printf(
"res: %g %g %g %g %g %g %g %g %g %g %g %g %g %d\n", res_dbl.
a, res_dbl.
b,
140 res_dbl.
c, res_dbl.
d, res_dbl.
e, res_dbl.
f, res_dbl.
g, res_dbl.
h, res_dbl.
i,
141 res_dbl.
j, res_dbl.
k, res_dbl.
l, res_dbl.
m, res_dbl.
n);
static void cls_struct_108byte_gn(ffi_cif *cif __UNUSED__, void *resp, void **args, void *userdata __UNUSED__)
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)
struct struct_108byte struct_108byte
struct_108byte cls_struct_108byte_fn(struct_108byte b0, struct_108byte b1, struct_108byte b2, struct_108byte b3)
ffi_status ffi_prep_cif(ffi_cif *cif, ffi_abi abi, unsigned int nargs, ffi_type *rtype, ffi_type **atypes)