Lines 331-340
Link Here
|
331 |
extern int |
331 |
extern int |
332 |
ffi_call_win64(void (*)(char *, extended_cif *), extended_cif *, |
332 |
ffi_call_win64(void (*)(char *, extended_cif *), extended_cif *, |
333 |
unsigned, unsigned, unsigned *, void (*fn)(void)); |
333 |
unsigned, unsigned, unsigned *, void (*fn)(void)); |
334 |
#else |
334 |
#elif defined(X86_WIN32) |
335 |
extern void |
335 |
extern void |
336 |
ffi_call_win32(void (*)(char *, extended_cif *), extended_cif *, |
336 |
ffi_call_win32(void (*)(char *, extended_cif *), extended_cif *, |
337 |
unsigned, unsigned, unsigned, unsigned *, void (*fn)(void)); |
337 |
unsigned, unsigned, unsigned, unsigned *, void (*fn)(void)); |
|
|
338 |
#else |
338 |
extern void ffi_call_SYSV(void (*)(char *, extended_cif *), extended_cif *, |
339 |
extern void ffi_call_SYSV(void (*)(char *, extended_cif *), extended_cif *, |
339 |
unsigned, unsigned, unsigned *, void (*fn)(void)); |
340 |
unsigned, unsigned, unsigned *, void (*fn)(void)); |
340 |
#endif |
341 |
#endif |
Lines 386-391
Link Here
|
386 |
case FFI_SYSV: |
387 |
case FFI_SYSV: |
387 |
case FFI_MS_CDECL: |
388 |
case FFI_MS_CDECL: |
388 |
#endif |
389 |
#endif |
|
|
390 |
#ifdef X86_WIN32 |
389 |
case FFI_STDCALL: |
391 |
case FFI_STDCALL: |
390 |
ffi_call_win32(ffi_prep_args, &ecif, cif->abi, cif->bytes, cif->flags, |
392 |
ffi_call_win32(ffi_prep_args, &ecif, cif->abi, cif->bytes, cif->flags, |
391 |
ecif.rvalue, fn); |
393 |
ecif.rvalue, fn); |
Lines 420-425
Link Here
|
420 |
} |
422 |
} |
421 |
break; |
423 |
break; |
422 |
#endif |
424 |
#endif |
|
|
425 |
#endif |
423 |
default: |
426 |
default: |
424 |
FFI_ASSERT(0); |
427 |
FFI_ASSERT(0); |
425 |
break; |
428 |
break; |
Lines 674-679
Link Here
|
674 |
&ffi_closure_SYSV, |
677 |
&ffi_closure_SYSV, |
675 |
(void*)codeloc); |
678 |
(void*)codeloc); |
676 |
} |
679 |
} |
|
|
680 |
#ifdef X86_WIN32 |
677 |
else if (cif->abi == FFI_FASTCALL) |
681 |
else if (cif->abi == FFI_FASTCALL) |
678 |
{ |
682 |
{ |
679 |
FFI_INIT_TRAMPOLINE_STDCALL (&closure->tramp[0], |
683 |
FFI_INIT_TRAMPOLINE_STDCALL (&closure->tramp[0], |
Lines 692-697
Link Here
|
692 |
&ffi_closure_STDCALL, |
696 |
&ffi_closure_STDCALL, |
693 |
(void*)codeloc); |
697 |
(void*)codeloc); |
694 |
} |
698 |
} |
|
|
699 |
#endif |
695 |
#ifdef X86_WIN32 |
700 |
#ifdef X86_WIN32 |
696 |
else if (cif->abi == FFI_MS_CDECL) |
701 |
else if (cif->abi == FFI_MS_CDECL) |
697 |
{ |
702 |
{ |
Lines 808-813
Link Here
|
808 |
case FFI_SYSV: |
813 |
case FFI_SYSV: |
809 |
case FFI_MS_CDECL: |
814 |
case FFI_MS_CDECL: |
810 |
#endif |
815 |
#endif |
|
|
816 |
#ifdef X86_WIN32 |
811 |
#ifndef X86_WIN64 |
817 |
#ifndef X86_WIN64 |
812 |
case FFI_STDCALL: |
818 |
case FFI_STDCALL: |
813 |
ffi_call_win32(ffi_prep_args_raw, &ecif, cif->abi, cif->bytes, cif->flags, |
819 |
ffi_call_win32(ffi_prep_args_raw, &ecif, cif->abi, cif->bytes, cif->flags, |
Lines 843-848
Link Here
|
843 |
} |
849 |
} |
844 |
break; |
850 |
break; |
845 |
#endif |
851 |
#endif |
|
|
852 |
#endif |
846 |
default: |
853 |
default: |
847 |
FFI_ASSERT(0); |
854 |
FFI_ASSERT(0); |
848 |
break; |
855 |
break; |