src/x86/win32.S


Log

Author Commit Date CI Message
nielsAD 5d6340ef 2014-08-25T17:29:44 Determine whether register arguments (THISCALL/FASTCALL/REGISTER) are really passed via register to closures. Use stack if not.
nielsAD 6e346487 2014-08-25T12:23:29 Fixed THISCALL/FASTCALL closures and added basic support for PASCAL/REGISTER closures.
nielsAD 098dca6b 2014-08-23T00:18:47 Support for calling functions with PASCAL and REGISTER calling conventions on x86 Windows/Linux. Also changed indentation to be more consistent throughout the (adjusted) files.
Samuli Suominen 978c9540 2014-05-31T08:53:10 Add missing GNU stack markings in win32.S
Josh Triplett 99909eb6 2014-04-22T21:17:52 src/x86/win32.S: Define ffi_closure_FASTCALL in the MASM section, too
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.
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 be50b87a 2014-03-24T21:44:13 Always use configure to detect whether global symbols need underscores 64-bit Windows already used this check; make it universal, and use it in place of an ifdef on X86_WIN32, to handle non-Windows platforms that use the underscore, such as Darwin.
Josh Triplett f0f4138f 2014-03-22T10:00:53 win32.S: Add handling for position-independent code on Darwin Newer versions of Darwin generate the necessary stub functions automatically and just need a call instruction, but accomodating older versions as well requires adding the stub.
Josh Triplett ef5890eb 2014-03-21T11:01:39 win32.S: Use shifting for multiplication rather than repeated addition The jump table code added a register to itself twice to multiply by 4; shift the register left by 2 instead.
Josh Triplett 4fca4890 2014-03-21T11:00:41 win32.S: Make the jump tables position-independent Now that non-Windows platforms include win32.S, it needs to support building as position-independent code. This fixes build failures on target platforms that do not allow text relocations.
Josh Triplett 2087dcf7 2014-03-21T10:57:06 win32.S: Make calls to ffi_closure_SYSV_inner position-independent Now that non-Windows platforms include win32.S, it needs to support building as position-independent code. This fixes one source of build failures on target platforms that do not allow text relocations.
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.
Peter Rosin 3afaa9a3 2012-04-03T07:40:31 Fix return_uc.c test case on windows.
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 bd78c9c3 2012-03-21T08:09:30 More cygwin fixes
Anthony Green dee20f8e 2012-02-10T13:06:46 Rebased from gcc
Anthony Green 1ff9c604 2012-02-01T16:34:30 Rebase from GCC
Anthony Green f2c2a4fc 2010-04-13T10:19:28 Remove warnings and add OS/2 support
Anthony Green cadeba6c 2010-01-15T10:46:51 Microsoft Visual C port
Anthony Green c6dddbd0 2009-10-04T08:11:33 Initial commit