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 8b2d3ac6824..0058b455497 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 d925431befb..c8d52cec587 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 0b192123dcc..9a014b2d3dc 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 649774f48a4..6062cfb0fad 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 393bd27b1ae..d13ec317309 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); }