src/x86/ffi.c


Log

Author Commit Date CI Message
Josh Triplett d3695227 2014-04-20T12:03:25 Support fastcall closures libffi on 32-bit x86 now supports closures for all supported ABIs. Thus, rewrite the last remaining duplicated-by-ABI test (closure_stdcall and closure_thiscall) to use the generic ABI_NUM/ABI_ATTR mechanism.
Ole André Vadla Ravnås 3e2b84d2 2014-04-12T01:04:04 Fix Windows regression Introduced by b5fed601948237037513a9b7f967c8fc6c9ff1f6.
Josh Triplett b5fed601 2014-04-05T17:33:42 Fix ABI on 32-bit non-Windows x86: go back to trampoline size 10 The trampoline size is part of the ABI, so it cannot change. Move the logic from the stdcall and thiscall trampolines to the functions they call, to reduce them both to 10 bytes. This drops the previously added support for raw THISCALL closures on non-Windows. (Non-raw THISCALL closures still work.)
Josh Triplett 56be47f8 2014-03-24T21:24:53 Fix a warning on 64-bit Windows When sizeof(size_t) != sizeof(unsigned), adding a size_t to cif->bytes produces a "possible loss of data" warning. However, the size_t in question refers to the size of a single parameter. Use a cast to avoid the warning.
Josh Triplett 48a8eda7 2014-03-24T21:21:12 Avoid referencing undefined ABIs on 64-bit Windows builds 64-bit Windows does not have FFI_STDCALL, FFI_THISCALL, or FFI_FASTCALL.
Josh Triplett e1911f78 2014-03-16T03:25:53 Add support for stdcall, thiscall, and fastcall on non-Windows x86-32 Linux supports the stdcall calling convention, either via functions explicitly declared with the stdcall attribute, or via code compiled with -mrtd which effectively makes stdcall the default. This introduces FFI_STDCALL, FFI_THISCALL, and FFI_FASTCALL on non-Windows x86-32 platforms, as non-default calling conventions.
Zachary Waldowski 13675341 2014-01-09T13:42:08 Darwin/i386: Inhibit Clang previous prototype warnings
Anthony Green 3dc3f32c 2013-12-05T16:23:25 Undo iOS ARM64 changes.
Zachary Waldowski 16ba1b80 2012-04-11T23:26:04 Darwin: Silence Clang warnings.
Vitaly Budovski 6aa15900 2013-09-05T12:05:06 Don't use 16 byte aligned stack for WIN32 This fixes a crash when accessing __stdcall functions in Python ctypes.
Alex Gaynor ee18766b 2013-03-14T15:00:33 Fix for a crasher due to misaligned stack on x86-32. Full information on reproduction (using Python's ctypes available here: http://bugs.python.org/issue17423)
Anthony Green 2d9b3939 2013-01-09T21:14:54 Fix for closures with sunpro compiler
Zachary Waldowski 39dccddb 2012-04-05T12:32:41 Fix building with Clang for Darwin (OS X 10.6+ and iOS 4.0+)
Peter Rosin 0a1ab12a 2012-03-30T08:14:08 Various MSVC-related changes.
Anthony Green 7c5e60b5 2012-03-29T08:48:22 Rebase on fixed GCC sources
Anthony Green dee20f8e 2012-02-10T13:06:46 Rebased from gcc
Anthony Green 1ff9c604 2012-02-01T16:34:30 Rebase from GCC
Anthony Green 0e584399 2011-02-08T07:52:40 Refresh from GCC
Anthony Green c1d28ba8 2010-08-05T08:48:16 stdcall-x86-closure-fix
Anthony Green 10ea8489 2010-08-05T08:24:27 don't copy win64 struct args
Anthony Green f2c2a4fc 2010-04-13T10:19:28 Remove warnings and add OS/2 support
Anthony Green 3de1eb36 2010-03-15T05:57:24 fix-comments patch
Anthony Green cadeba6c 2010-01-15T10:46:51 Microsoft Visual C port
Anthony Green c6dddbd0 2009-10-04T08:11:33 Initial commit