Module: wine Branch: master Commit: 24721eccac8c0f7d4a64daa5e6e4016ae22be61e URL: https://source.winehq.org/git/wine.git/?a=commit;h=24721eccac8c0f7d4a64daa5e...
Author: Alexandre Julliard julliard@winehq.org Date: Wed Feb 27 17:13:18 2019 +0100
ntdll: Use the fastcall flag for RtlInterlockedPushListSList.
Signed-off-by: Alexandre Julliard julliard@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); }