ntdll: Implement a no-op __chkstk for arm64.

Signed-off-by: Martin Storsjo <martin@martin.st>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Martin Storsjo 2020-12-19 00:33:52 +02:00 committed by Alexandre Julliard
parent dac1e16dd4
commit a1955bfb6e
6 changed files with 18 additions and 16 deletions

View File

@ -1647,7 +1647,7 @@
@ stdcall WriteTapemark(ptr long long long)
@ stdcall -import ZombifyActCtx(ptr)
@ stdcall -arch=x86_64 -private __C_specific_handler(ptr long ptr ptr) ntdll.__C_specific_handler
@ cdecl -arch=arm,x86_64 -norelay __chkstk() ntdll.__chkstk
@ cdecl -arch=arm,arm64,x86_64 -norelay __chkstk() ntdll.__chkstk
@ stub _DebugOut
@ stub _DebugPrintf
@ stdcall _hread(long ptr long)

View File

@ -1742,7 +1742,7 @@
# @ stub _GetMUIStringFromCache
# @ stub _OpenMuiStringCache
@ stdcall -arch=x86_64 -private __C_specific_handler(ptr long ptr ptr) ntdll.__C_specific_handler
@ cdecl -arch=arm,x86_64 -norelay __chkstk() ntdll.__chkstk
@ cdecl -arch=arm,arm64,x86_64 -norelay __chkstk() ntdll.__chkstk
# @ stub __dllonexit3
@ stub __misaligned_access
# @ stub __wgetmainargs

View File

@ -1445,7 +1445,7 @@
@ cdecl -private -arch=i386 _CIsin()
@ cdecl -private -arch=i386 _CIsqrt()
@ stdcall -arch=x86_64,arm64 __C_specific_handler(ptr long ptr ptr)
@ cdecl -arch=arm,x86_64 -norelay __chkstk()
@ cdecl -arch=arm,arm64,x86_64 -norelay __chkstk()
@ cdecl __isascii(long)
@ cdecl __iscsym(long)
@ cdecl __iscsymf(long)

View File

@ -100,6 +100,14 @@ static inline BOOL is_valid_frame( ULONG_PTR frame )
}
/**************************************************************************
* __chkstk (NTDLL.@)
*
* Supposed to touch all the stack pages, but we shouldn't need that.
*/
__ASM_GLOBAL_FUNC( __chkstk, "ret")
/***********************************************************************
* RtlCaptureContext (NTDLL.@)
*/

View File

@ -3831,18 +3831,13 @@ PKEVENT WINAPI IoCreateNotificationEvent(UNICODE_STRING *name, HANDLE *handle)
}
#ifdef __x86_64__
/**************************************************************************
* __chkstk (NTOSKRNL.@)
*
* Supposed to touch all the stack pages, but we shouldn't need that.
*/
#ifdef __x86_64__
/* Supposed to touch all the stack pages, but we shouldn't need that. */
__ASM_GLOBAL_FUNC( __chkstk, "ret" );
#elif defined(__i386__)
/**************************************************************************
* _chkstk (NTOSKRNL.@)
*/
__ASM_GLOBAL_FUNC( _chkstk,
"negl %eax\n\t"
"addl %esp,%eax\n\t"
@ -3851,13 +3846,12 @@ __ASM_GLOBAL_FUNC( _chkstk,
"movl %eax,0(%esp)\n\t"
"ret" )
#elif defined(__arm__)
/**************************************************************************
* __chkstk (NTDLL.@)
*
* Incoming r4 contains words to allocate, converting to bytes then return
*/
/* Incoming r4 contains words to allocate, converting to bytes then return */
__ASM_GLOBAL_FUNC( __chkstk, "lsl r4, r4, #2\n\t"
"bx lr" )
#elif defined(__aarch64__)
/* Supposed to touch all the stack pages, but we shouldn't need that. */
__ASM_GLOBAL_FUNC( __chkstk, "ret" );
#endif
/*********************************************************************

View File

@ -1522,7 +1522,7 @@
@ stdcall ZwWriteFile(long long ptr ptr ptr ptr long ptr ptr) NtWriteFile
@ stdcall -private ZwYieldExecution() NtYieldExecution
@ stdcall -arch=x86_64 __C_specific_handler(ptr long ptr ptr)
@ cdecl -arch=arm,x86_64 -norelay __chkstk()
@ cdecl -arch=arm,arm64,x86_64 -norelay __chkstk()
@ cdecl -private -arch=i386 _CIcos()
@ cdecl -private -arch=i386 _CIsin()
@ cdecl -private -arch=i386 _CIsqrt()