Commit 31e0d4ecff6dc2a6c75a066ee099b52a43f6ba27

Anthony Green 2014-04-23T19:24:47

Merge pull request #119 from joshtriplett/fastcall-fastball 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.