Alexandre Julliard : ntdll: Use the fastcall flag for RtlInterlockedPushListSList.
Alexandre Julliard
julliard at winehq.org
Thu Feb 28 16:09:42 CST 2019
Module: wine
Branch: master
Commit: 24721eccac8c0f7d4a64daa5e6e4016ae22be61e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=24721eccac8c0f7d4a64daa5e6e4016ae22be61e
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Feb 27 17:13:18 2019 +0100
ntdll: Use the fastcall flag for RtlInterlockedPushListSList.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
.../api-ms-win-core-interlocked-l1-1-0.spec | 2 +-
dlls/kernel32/kernel32.spec | 2 +-
dlls/kernelbase/kernelbase.spec | 2 +-
dlls/ntdll/ntdll.spec | 2 +-
dlls/ntdll/rtl.c | 15 ++++++---------
5 files changed, 10 insertions(+), 13 deletions(-)
diff --git a/dlls/api-ms-win-core-interlocked-l1-1-0/api-ms-win-core-interlocked-l1-1-0.spec b/dlls/api-ms-win-core-interlocked-l1-1-0/api-ms-win-core-interlocked-l1-1-0.spec
index 8b2d3ac..0058b45 100644
--- a/dlls/api-ms-win-core-interlocked-l1-1-0/api-ms-win-core-interlocked-l1-1-0.spec
+++ b/dlls/api-ms-win-core-interlocked-l1-1-0/api-ms-win-core-interlocked-l1-1-0.spec
@@ -8,5 +8,5 @@
@ stdcall -arch=i386 InterlockedIncrement(ptr) kernel32.InterlockedIncrement
@ stdcall InterlockedPopEntrySList(ptr) kernel32.InterlockedPopEntrySList
@ stdcall InterlockedPushEntrySList(ptr ptr) kernel32.InterlockedPushEntrySList
-@ stdcall -norelay InterlockedPushListSList(ptr ptr ptr long) kernel32.InterlockedPushListSList
+@ stdcall -fastcall InterlockedPushListSList(ptr ptr ptr long) kernel32.InterlockedPushListSList
@ stdcall QueryDepthSList(ptr) kernel32.QueryDepthSList
diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec
index d925431..c8d52ce 100644
--- a/dlls/kernel32/kernel32.spec
+++ b/dlls/kernel32/kernel32.spec
@@ -961,7 +961,7 @@
@ stdcall -arch=i386 InterlockedIncrement(ptr)
@ stdcall InterlockedPopEntrySList(ptr) ntdll.RtlInterlockedPopEntrySList
@ stdcall InterlockedPushEntrySList(ptr ptr) ntdll.RtlInterlockedPushEntrySList
-@ stdcall -norelay InterlockedPushListSList(ptr ptr ptr long) ntdll.RtlInterlockedPushListSList
+@ stdcall -fastcall InterlockedPushListSList(ptr ptr ptr long) ntdll.RtlInterlockedPushListSList
@ stdcall InterlockedPushListSListEx(ptr ptr ptr long) ntdll.RtlInterlockedPushListSListEx
@ stub InvalidateConsoleDIBits
@ stdcall InvalidateNLSCache()
diff --git a/dlls/kernelbase/kernelbase.spec b/dlls/kernelbase/kernelbase.spec
index 0b19212..9a014b2 100644
--- a/dlls/kernelbase/kernelbase.spec
+++ b/dlls/kernelbase/kernelbase.spec
@@ -821,7 +821,7 @@
@ stdcall -arch=i386 InterlockedIncrement(ptr) kernel32.InterlockedIncrement
@ stdcall InterlockedPopEntrySList(ptr) kernel32.InterlockedPopEntrySList
@ stdcall InterlockedPushEntrySList(ptr ptr) kernel32.InterlockedPushEntrySList
-@ stdcall -norelay InterlockedPushListSList(ptr ptr ptr long) kernel32.InterlockedPushListSList
+@ stdcall -fastcall InterlockedPushListSList(ptr ptr ptr long) kernel32.InterlockedPushListSList
@ stdcall InterlockedPushListSListEx(ptr ptr ptr long) kernel32.InterlockedPushListSListEx
@ stub InternalLcidToName
@ stub Internal_EnumCalendarInfo
diff --git a/dlls/ntdll/ntdll.spec b/dlls/ntdll/ntdll.spec
index 649774f..6062cfb 100644
--- a/dlls/ntdll/ntdll.spec
+++ b/dlls/ntdll/ntdll.spec
@@ -730,7 +730,7 @@
@ stdcall RtlInterlockedFlushSList(ptr)
@ stdcall RtlInterlockedPopEntrySList(ptr)
@ stdcall RtlInterlockedPushEntrySList(ptr ptr)
-@ stdcall -norelay RtlInterlockedPushListSList(ptr ptr ptr long)
+@ stdcall -fastcall RtlInterlockedPushListSList(ptr ptr ptr long)
@ stdcall RtlInterlockedPushListSListEx(ptr ptr ptr long)
# @ stub RtlInvertRangeList
@ stdcall RtlIpv4AddressToStringA(ptr ptr)
diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c
index 393bd27..d13ec31 100644
--- a/dlls/ntdll/rtl.c
+++ b/dlls/ntdll/rtl.c
@@ -51,13 +51,15 @@
WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
#ifdef __i386__
-#define DEFINE_FASTCALL4_ENTRYPOINT( name ) \
- __ASM_STDCALL_FUNC( name, 16, \
+#define DEFINE_FASTCALL_WRAPPER(func,args) \
+ __ASM_GLOBAL_FUNC( __fastcall_ ## func, \
"popl %eax\n\t" \
"pushl %edx\n\t" \
"pushl %ecx\n\t" \
"pushl %eax\n\t" \
- "jmp " __ASM_NAME("__regs_") #name __ASM_STDCALL(16))
+ "jmp " __ASM_NAME(#func) __ASM_STDCALL(args) )
+#else
+#define DEFINE_FASTCALL_WRAPPER(func,args) /* nothing */
#endif
/* CRC polynomial 0xedb88320 */
@@ -1256,14 +1258,9 @@ PSLIST_ENTRY WINAPI RtlInterlockedPushListSListEx(PSLIST_HEADER list, PSLIST_ENT
/*************************************************************************
* RtlInterlockedPushListSList [NTDLL.@]
*/
-#ifdef DEFINE_FASTCALL4_ENTRYPOINT
-DEFINE_FASTCALL4_ENTRYPOINT(RtlInterlockedPushListSList)
-PSLIST_ENTRY WINAPI DECLSPEC_HIDDEN __regs_RtlInterlockedPushListSList(PSLIST_HEADER list, PSLIST_ENTRY first,
- PSLIST_ENTRY last, ULONG count)
-#else
+DEFINE_FASTCALL_WRAPPER(RtlInterlockedPushListSList, 16)
PSLIST_ENTRY WINAPI RtlInterlockedPushListSList(PSLIST_HEADER list, PSLIST_ENTRY first,
PSLIST_ENTRY last, ULONG count)
-#endif
{
return RtlInterlockedPushListSListEx(list, first, last, count);
}
More information about the wine-cvs
mailing list