ntdll: Use the fastcall flag for RtlInterlockedPushListSList.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2019-02-27 17:13:18 +01:00
parent 9c9efd7068
commit 24721eccac
5 changed files with 10 additions and 13 deletions

View File

@ -8,5 +8,5 @@
@ stdcall -arch=i386 InterlockedIncrement(ptr) kernel32.InterlockedIncrement @ stdcall -arch=i386 InterlockedIncrement(ptr) kernel32.InterlockedIncrement
@ stdcall InterlockedPopEntrySList(ptr) kernel32.InterlockedPopEntrySList @ stdcall InterlockedPopEntrySList(ptr) kernel32.InterlockedPopEntrySList
@ stdcall InterlockedPushEntrySList(ptr ptr) kernel32.InterlockedPushEntrySList @ 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 @ stdcall QueryDepthSList(ptr) kernel32.QueryDepthSList

View File

@ -961,7 +961,7 @@
@ stdcall -arch=i386 InterlockedIncrement(ptr) @ stdcall -arch=i386 InterlockedIncrement(ptr)
@ stdcall InterlockedPopEntrySList(ptr) ntdll.RtlInterlockedPopEntrySList @ stdcall InterlockedPopEntrySList(ptr) ntdll.RtlInterlockedPopEntrySList
@ stdcall InterlockedPushEntrySList(ptr ptr) ntdll.RtlInterlockedPushEntrySList @ 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 @ stdcall InterlockedPushListSListEx(ptr ptr ptr long) ntdll.RtlInterlockedPushListSListEx
@ stub InvalidateConsoleDIBits @ stub InvalidateConsoleDIBits
@ stdcall InvalidateNLSCache() @ stdcall InvalidateNLSCache()

View File

@ -821,7 +821,7 @@
@ stdcall -arch=i386 InterlockedIncrement(ptr) kernel32.InterlockedIncrement @ stdcall -arch=i386 InterlockedIncrement(ptr) kernel32.InterlockedIncrement
@ stdcall InterlockedPopEntrySList(ptr) kernel32.InterlockedPopEntrySList @ stdcall InterlockedPopEntrySList(ptr) kernel32.InterlockedPopEntrySList
@ stdcall InterlockedPushEntrySList(ptr ptr) kernel32.InterlockedPushEntrySList @ 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 @ stdcall InterlockedPushListSListEx(ptr ptr ptr long) kernel32.InterlockedPushListSListEx
@ stub InternalLcidToName @ stub InternalLcidToName
@ stub Internal_EnumCalendarInfo @ stub Internal_EnumCalendarInfo

View File

@ -730,7 +730,7 @@
@ stdcall RtlInterlockedFlushSList(ptr) @ stdcall RtlInterlockedFlushSList(ptr)
@ stdcall RtlInterlockedPopEntrySList(ptr) @ stdcall RtlInterlockedPopEntrySList(ptr)
@ stdcall RtlInterlockedPushEntrySList(ptr 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) @ stdcall RtlInterlockedPushListSListEx(ptr ptr ptr long)
# @ stub RtlInvertRangeList # @ stub RtlInvertRangeList
@ stdcall RtlIpv4AddressToStringA(ptr ptr) @ stdcall RtlIpv4AddressToStringA(ptr ptr)

View File

@ -51,13 +51,15 @@
WINE_DEFAULT_DEBUG_CHANNEL(ntdll); WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
#ifdef __i386__ #ifdef __i386__
#define DEFINE_FASTCALL4_ENTRYPOINT( name ) \ #define DEFINE_FASTCALL_WRAPPER(func,args) \
__ASM_STDCALL_FUNC( name, 16, \ __ASM_GLOBAL_FUNC( __fastcall_ ## func, \
"popl %eax\n\t" \ "popl %eax\n\t" \
"pushl %edx\n\t" \ "pushl %edx\n\t" \
"pushl %ecx\n\t" \ "pushl %ecx\n\t" \
"pushl %eax\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 #endif
/* CRC polynomial 0xedb88320 */ /* CRC polynomial 0xedb88320 */
@ -1256,14 +1258,9 @@ PSLIST_ENTRY WINAPI RtlInterlockedPushListSListEx(PSLIST_HEADER list, PSLIST_ENT
/************************************************************************* /*************************************************************************
* RtlInterlockedPushListSList [NTDLL.@] * RtlInterlockedPushListSList [NTDLL.@]
*/ */
#ifdef DEFINE_FASTCALL4_ENTRYPOINT DEFINE_FASTCALL_WRAPPER(RtlInterlockedPushListSList, 16)
DEFINE_FASTCALL4_ENTRYPOINT(RtlInterlockedPushListSList)
PSLIST_ENTRY WINAPI DECLSPEC_HIDDEN __regs_RtlInterlockedPushListSList(PSLIST_HEADER list, PSLIST_ENTRY first,
PSLIST_ENTRY last, ULONG count)
#else
PSLIST_ENTRY WINAPI RtlInterlockedPushListSList(PSLIST_HEADER list, PSLIST_ENTRY first, PSLIST_ENTRY WINAPI RtlInterlockedPushListSList(PSLIST_HEADER list, PSLIST_ENTRY first,
PSLIST_ENTRY last, ULONG count) PSLIST_ENTRY last, ULONG count)
#endif
{ {
return RtlInterlockedPushListSListEx(list, first, last, count); return RtlInterlockedPushListSListEx(list, first, last, count);
} }