123 ui8_1 + 1, si8_1 + 1, ui16_1 + 1, si16_1 + 1, ui32_1 + 1, si32_1 + 1,
124 ui64_1 + 1, si64_1 + 1, f_1 + 1, d_1 + 1, ld_1 + 1, (
char*)((
intptr_t)p_1 + 1),
125 ui8_2 + 2, si8_2 + 2, ui16_2 + 2, si16_2 + 2, ui32_2 + 2, si32_2 + 2,
126 ui64_2 + 2, si64_2 + 2, f_2 + 2, d_2 + 2, ld_2 + 2, (
char*)((
intptr_t)p_2 + 2),
127 ui8_3 + 3, si8_3 + 3, ui16_3 + 3, si16_3 + 3, ui32_3 + 3, si32_3 + 3,
128 ui64_3 + 3, si64_3 + 3, f_3 + 3, d_3 + 3, ld_3 + 3, (
char*)((
intptr_t)p_3 + 3),
129 ui8_4 + 4, si8_4 + 4, ui16_4 + 4, si16_4 + 4, ui32_4 + 4, si32_4 + 4,
130 ui64_4 + 4, si64_4 + 4, f_4 + 4, d_4 + 4, ld_4 + 4, (
char*)((
intptr_t)p_4 + 4),
131 ui8_5 + 5, si8_5 + 5};
141 ui8_1, si8_1, ui16_1, si16_1, ui32_1, si32_1, ui64_1, si64_1, f_1, d_1, ld_1, (
unsigned long)p_1,
142 ui8_2, si8_2, ui16_2, si16_2, ui32_2, si32_2, ui64_2, si64_2, f_2, d_2, ld_2, (
unsigned long)p_2,
143 ui8_3, si8_3, ui16_3, si16_3, ui32_3, si32_3, ui64_3, si64_3, f_3, d_3, ld_3, (
unsigned long)p_3,
144 ui8_4, si8_4, ui16_4, si16_4, ui32_4, si32_4, ui64_4, si64_4, f_4, d_4, ld_4, (
unsigned long)p_4, ui8_5, si8_5,
145 retVal.
a, retVal.
b, retVal.
c, retVal.
d, retVal.
e, retVal.
f,
146 retVal.
g, retVal.
h, retVal.
i, retVal.
j, retVal.
k, (
unsigned long)retVal.
l,
147 retVal.
m, retVal.
n, retVal.
o, retVal.
p, retVal.
q, retVal.
r,
148 retVal.
s, retVal.
t, retVal.
u, retVal.
v, retVal.
w, (
unsigned long)retVal.
x,
149 retVal.
y, retVal.
z, retVal.
aa, retVal.
bb, retVal.
cc, retVal.
dd,
150 retVal.
ee, retVal.
ff, retVal.
gg, retVal.
hh, retVal.
ii, (
unsigned long)retVal.
jj,
151 retVal.
kk, retVal.
ll, retVal.
mm, retVal.
nn, retVal.
oo, retVal.
pp,
152 retVal.
qq, retVal.
rr, retVal.
ss, retVal.
tt, retVal.
uu, (
unsigned long)retVal.
vv, retVal.
ww, retVal.
xx);
168 float f_1 = *(
float*)args[8];
169 double d_1 = *(
double*)args[9];
170 long double ld_1 = *(
long double*)args[10];
171 char* p_1 = *(
char**)args[11];
180 float f_2 = *(
float*)args[20];
181 double d_2 = *(
double*)args[21];
182 long double ld_2 = *(
long double*)args[22];
183 char* p_2 = *(
char**)args[23];
192 float f_3 = *(
float*)args[32];
193 double d_3 = *(
double*)args[33];
194 long double ld_3 = *(
long double*)args[34];
195 char* p_3 = *(
char**)args[35];
204 float f_4 = *(
float*)args[44];
205 double d_4 = *(
double*)args[45];
206 long double ld_4 = *(
long double*)args[46];
207 char* p_4 = *(
char**)args[47];
212 ui8_1, si8_1, ui16_1, si16_1, ui32_1, si32_1, ui64_1, si64_1, f_1, d_1, ld_1, p_1,
213 ui8_2, si8_2, ui16_2, si16_2, ui32_2, si32_2, ui64_2, si64_2, f_2, d_2, ld_2, p_2,
214 ui8_3, si8_3, ui16_3, si16_3, ui32_3, si32_3, ui64_3, si64_3, f_3, d_3, ld_3, p_3,
215 ui8_4, si8_4, ui16_4, si16_4, ui32_4, si32_4, ui64_4, si64_4, f_4, d_4, ld_4, p_4,
223 ffi_closure *pcl = ffi_closure_alloc(
sizeof(ffi_closure), &code);
226 ffi_type* argTypes[51];
229 ffi_type ret_struct_type;
230 ffi_type* st_fields[51];
244 char* p = (
char*)0x12345678;
246 memset (&retVal, 0,
sizeof(retVal));
248 ret_struct_type.size = 0;
249 ret_struct_type.alignment = 0;
250 ret_struct_type.type = FFI_TYPE_STRUCT;
251 ret_struct_type.elements = st_fields;
253 st_fields[0] = st_fields[12] = st_fields[24] = st_fields[36] = st_fields[48] = &ffi_type_uint8;
254 st_fields[1] = st_fields[13] = st_fields[25] = st_fields[37] = st_fields[49] = &ffi_type_sint8;
255 st_fields[2] = st_fields[14] = st_fields[26] = st_fields[38] = &ffi_type_uint16;
256 st_fields[3] = st_fields[15] = st_fields[27] = st_fields[39] = &ffi_type_sint16;
257 st_fields[4] = st_fields[16] = st_fields[28] = st_fields[40] = &ffi_type_uint32;
258 st_fields[5] = st_fields[17] = st_fields[29] = st_fields[41] = &ffi_type_sint32;
259 st_fields[6] = st_fields[18] = st_fields[30] = st_fields[42] = &ffi_type_uint64;
260 st_fields[7] = st_fields[19] = st_fields[31] = st_fields[43] = &ffi_type_sint64;
261 st_fields[8] = st_fields[20] = st_fields[32] = st_fields[44] = &ffi_type_float;
262 st_fields[9] = st_fields[21] = st_fields[33] = st_fields[45] = &ffi_type_double;
263 st_fields[10] = st_fields[22] = st_fields[34] = st_fields[46] = &ffi_type_longdouble;
264 st_fields[11] = st_fields[23] = st_fields[35] = st_fields[47] = &ffi_type_pointer;
266 st_fields[50] =
NULL;
268 argTypes[0] = argTypes[12] = argTypes[24] = argTypes[36] = argTypes[48] = &ffi_type_uint8;
269 argValues[0] = argValues[12] = argValues[24] = argValues[36] = argValues[48] = &ui8;
270 argTypes[1] = argTypes[13] = argTypes[25] = argTypes[37] = argTypes[49] = &ffi_type_sint8;
271 argValues[1] = argValues[13] = argValues[25] = argValues[37] = argValues[49] = &si8;
272 argTypes[2] = argTypes[14] = argTypes[26] = argTypes[38] = &ffi_type_uint16;
273 argValues[2] = argValues[14] = argValues[26] = argValues[38] = &ui16;
274 argTypes[3] = argTypes[15] = argTypes[27] = argTypes[39] = &ffi_type_sint16;
275 argValues[3] = argValues[15] = argValues[27] = argValues[39] = &si16;
276 argTypes[4] = argTypes[16] = argTypes[28] = argTypes[40] = &ffi_type_uint32;
277 argValues[4] = argValues[16] = argValues[28] = argValues[40] = &ui32;
278 argTypes[5] = argTypes[17] = argTypes[29] = argTypes[41] = &ffi_type_sint32;
279 argValues[5] = argValues[17] = argValues[29] = argValues[41] = &si32;
280 argTypes[6] = argTypes[18] = argTypes[30] = argTypes[42] = &ffi_type_uint64;
281 argValues[6] = argValues[18] = argValues[30] = argValues[42] = &ui64;
282 argTypes[7] = argTypes[19] = argTypes[31] = argTypes[43] = &ffi_type_sint64;
283 argValues[7] = argValues[19] = argValues[31] = argValues[43] = &si64;
284 argTypes[8] = argTypes[20] = argTypes[32] = argTypes[44] = &ffi_type_float;
285 argValues[8] = argValues[20] = argValues[32] = argValues[44] = &
f;
286 argTypes[9] = argTypes[21] = argTypes[33] = argTypes[45] = &ffi_type_double;
287 argValues[9] = argValues[21] = argValues[33] = argValues[45] = &d;
288 argTypes[10] = argTypes[22] = argTypes[34] = argTypes[46] = &ffi_type_longdouble;
289 argValues[10] = argValues[22] = argValues[34] = argValues[46] = &ld;
290 argTypes[11] = argTypes[23] = argTypes[35] = argTypes[47] = &ffi_type_pointer;
291 argValues[11] = argValues[23] = argValues[35] = argValues[47] = &p;
294 argValues[50] =
NULL;
304 retVal.
a, retVal.
b, retVal.
c, retVal.
d, retVal.
e, retVal.
f,
305 retVal.
g, retVal.
h, retVal.
i, retVal.
j, retVal.
k, (
unsigned long)retVal.
l,
306 retVal.
m, retVal.
n, retVal.
o, retVal.
p, retVal.
q, retVal.
r,
307 retVal.
s, retVal.
t, retVal.
u, retVal.
v, retVal.
w, (
unsigned long)retVal.
x,
308 retVal.
y, retVal.
z, retVal.
aa, retVal.
bb, retVal.
cc, retVal.
dd,
309 retVal.
ee, retVal.
ff, retVal.
gg, retVal.
hh, retVal.
ii, (
unsigned long)retVal.
jj,
310 retVal.
kk, retVal.
ll, retVal.
mm, retVal.
nn, retVal.
oo, retVal.
pp,
311 retVal.
qq, retVal.
rr, retVal.
ss, retVal.
tt, retVal.
uu, (
unsigned long)retVal.
vv, retVal.
ww, retVal.
xx);
317 uint8_t,
int8_t,
uint16_t,
int16_t,
uint32_t,
int32_t,
uint64_t,
int64_t, float,
double,
long double,
char*,
318 uint8_t,
int8_t,
uint16_t,
int16_t,
uint32_t,
int32_t,
uint64_t,
int64_t, float,
double,
long double,
char*,
319 uint8_t,
int8_t,
uint16_t,
int16_t,
uint32_t,
int32_t,
uint64_t,
int64_t, float,
double,
long double,
char*,
320 uint8_t,
int8_t,
uint16_t,
int16_t,
uint32_t,
int32_t,
uint64_t,
int64_t, float,
double,
long double,
char*,
322 ui8, si8, ui16, si16, ui32, si32, ui64, si64,
f, d, ld, p,
323 ui8, si8, ui16, si16, ui32, si32, ui64, si64,
f, d, ld, p,
324 ui8, si8, ui16, si16, ui32, si32, ui64, si64,
f, d, ld, p,
325 ui8, si8, ui16, si16, ui32, si32, ui64, si64,
f, d, ld, p,
332 retVal.
a, retVal.
b, retVal.
c, retVal.
d, retVal.
e, retVal.
f,
333 retVal.
g, retVal.
h, retVal.
i, retVal.
j, retVal.
k, (
unsigned long)retVal.
l,
334 retVal.
m, retVal.
n, retVal.
o, retVal.
p, retVal.
q, retVal.
r,
335 retVal.
s, retVal.
t, retVal.
u, retVal.
v, retVal.
w, (
unsigned long)retVal.
x,
336 retVal.
y, retVal.
z, retVal.
aa, retVal.
bb, retVal.
cc, retVal.
dd,
337 retVal.
ee, retVal.
ff, retVal.
gg, retVal.
hh, retVal.
ii, (
unsigned long)retVal.
jj,
338 retVal.
kk, retVal.
ll, retVal.
mm, retVal.
nn, retVal.
oo, retVal.
pp,
339 retVal.
qq, retVal.
rr, retVal.
ss, retVal.
tt, retVal.
uu, (
unsigned long)retVal.
vv, retVal.
ww, retVal.
xx);