Commit 99909eb6184b62408d88b6b4e7ab38e84e6d0bf3

Josh Triplett 2014-04-22T21:17:52

src/x86/win32.S: Define ffi_closure_FASTCALL in the MASM section, too

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
diff --git a/src/x86/win32.S b/src/x86/win32.S
index 699ea46..daf0e79 100644
--- a/src/x86/win32.S
+++ b/src/x86/win32.S
@@ -201,6 +201,15 @@ ffi_closure_THISCALL PROC NEAR
 	jmp	ffi_closure_STDCALL
 ffi_closure_THISCALL ENDP
 
+ffi_closure_FASTCALL PROC NEAR
+	;; Insert the register argument on the stack as the first argument
+	xchg	DWORD PTR [esp+4], edx
+	xchg	DWORD PTR [esp], ecx
+	push	edx
+	push	ecx
+	jmp	ffi_closure_STDCALL
+ffi_closure_FASTCALL ENDP
+
 ffi_closure_SYSV PROC NEAR FORCEFRAME
     ;; the ffi_closure ctx is passed in eax by the trampoline.