Alexandre Julliard : include: Add a define to enable fastcall wrappers, similar to the thiscall one.
Alexandre Julliard
julliard at winehq.org
Wed Oct 13 15:59:26 CDT 2021
Module: wine
Branch: master
Commit: d5a7d08f636c9c499771203ad2d368f4379ca6b2
URL: https://source.winehq.org/git/wine.git/?a=commit;h=d5a7d08f636c9c499771203ad2d368f4379ca6b2
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Oct 13 21:13:27 2021 +0200
include: Add a define to enable fastcall wrappers, similar to the thiscall one.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/hal/hal.c | 6 +++---
dlls/hidclass.sys/pnp.c | 2 +-
dlls/winebus.sys/main.c | 2 +-
dlls/wineusb.sys/wineusb.c | 2 +-
dlls/winexinput.sys/main.c | 2 +-
include/wine/asm.h | 3 ++-
6 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/dlls/hal/hal.c b/dlls/hal/hal.c
index 21ce6e12c99..55a8891b6fa 100644
--- a/dlls/hal/hal.c
+++ b/dlls/hal/hal.c
@@ -34,7 +34,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(ntoskrnl);
#ifdef __i386__
-#ifndef _WIN32
+#ifdef __ASM_USE_FASTCALL_WRAPPER
extern void * WINAPI wrap_fastcall_func1( void *func, const void *a );
__ASM_STDCALL_FUNC( wrap_fastcall_func1, 8,
@@ -53,12 +53,12 @@ __ASM_STDCALL_FUNC( wrap_fastcall_func2, 12,
#define call_fastcall_func1(func,a) wrap_fastcall_func1(func,a)
#define call_fastcall_func2(func,a,b) wrap_fastcall_func2(func,a,b)
-#else /* _WIN32 */
+#else /* __ASM_USE_FASTCALL_WRAPPER */
#define call_fastcall_func1(func,a) func(a)
#define call_fastcall_func2(func,a,b) func(a,b)
-#endif /* _WIN32 */
+#endif /* __ASM_USE_FASTCALL_WRAPPER */
DEFINE_FASTCALL1_WRAPPER( ExAcquireFastMutex )
void FASTCALL ExAcquireFastMutex( FAST_MUTEX *mutex )
diff --git a/dlls/hidclass.sys/pnp.c b/dlls/hidclass.sys/pnp.c
index dbf04c0a403..6dafa1b95af 100644
--- a/dlls/hidclass.sys/pnp.c
+++ b/dlls/hidclass.sys/pnp.c
@@ -40,7 +40,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(hid);
DEFINE_DEVPROPKEY(DEVPROPKEY_HID_HANDLE, 0xbc62e415, 0xf4fe, 0x405c, 0x8e, 0xda, 0x63, 0x6f, 0xb5, 0x9f, 0x08, 0x98, 2);
DEFINE_GUID(GUID_DEVINTERFACE_WINEXINPUT, 0x6c53d5fd, 0x6480, 0x440f, 0xb6, 0x18, 0x47, 0x67, 0x50, 0xc5, 0xe1, 0xa6);
-#if defined(__i386__) && !defined(_WIN32)
+#ifdef __ASM_USE_FASTCALL_WRAPPER
extern void * WINAPI wrap_fastcall_func1( void *func, const void *a );
__ASM_STDCALL_FUNC( wrap_fastcall_func1, 8,
diff --git a/dlls/winebus.sys/main.c b/dlls/winebus.sys/main.c
index 16192977bef..6f44f4c9722 100644
--- a/dlls/winebus.sys/main.c
+++ b/dlls/winebus.sys/main.c
@@ -343,7 +343,7 @@ static void bus_unlink_hid_device(DEVICE_OBJECT *device)
RtlLeaveCriticalSection(&device_list_cs);
}
-#if defined(__i386__) && !defined(_WIN32)
+#ifdef __ASM_USE_FASTCALL_WRAPPER
extern void * WINAPI wrap_fastcall_func1(void *func, const void *a);
__ASM_STDCALL_FUNC(wrap_fastcall_func1, 8,
"popl %ecx\n\t"
diff --git a/dlls/wineusb.sys/wineusb.c b/dlls/wineusb.sys/wineusb.c
index 085acf77e6f..cca0257bb02 100644
--- a/dlls/wineusb.sys/wineusb.c
+++ b/dlls/wineusb.sys/wineusb.c
@@ -38,7 +38,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(wineusb);
-#if defined(__i386__) && !defined(_WIN32)
+#ifdef __ASM_USE_FASTCALL_WRAPPER
extern void * WINAPI wrap_fastcall_func1( void *func, const void *a );
__ASM_STDCALL_FUNC( wrap_fastcall_func1, 8,
diff --git a/dlls/winexinput.sys/main.c b/dlls/winexinput.sys/main.c
index 05d64b05d4f..abc61e8754f 100644
--- a/dlls/winexinput.sys/main.c
+++ b/dlls/winexinput.sys/main.c
@@ -39,7 +39,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(winexinput);
-#if defined(__i386__) && !defined(_WIN32)
+#ifdef __ASM_USE_FASTCALL_WRAPPER
extern void *WINAPI wrap_fastcall_func1(void *func, const void *a);
__ASM_STDCALL_FUNC(wrap_fastcall_func1, 8,
"popl %ecx\n\t"
diff --git a/include/wine/asm.h b/include/wine/asm.h
index 51f04548731..da1d0d803cd 100644
--- a/include/wine/asm.h
+++ b/include/wine/asm.h
@@ -119,6 +119,7 @@
#if defined(__i386__) && !defined(_WIN32)
+# define __ASM_USE_FASTCALL_WRAPPER
# define DEFINE_FASTCALL1_WRAPPER(func) \
__ASM_FASTCALL_FUNC( func, 4, \
"popl %eax\n\t" \
@@ -144,7 +145,7 @@
#if defined(__i386__) && !defined(__MINGW32__) && (!defined(_MSC_VER) || !defined(__clang__))
-#define __ASM_USE_THISCALL_WRAPPER
+# define __ASM_USE_THISCALL_WRAPPER
# ifdef _MSC_VER
# define DEFINE_THISCALL_WRAPPER(func,args) \
__declspec(naked) void __thiscall_##func(void) \
More information about the wine-cvs
mailing list