msvcrt: Import setjmp/setjmpex from ntdll.

This commit is contained in:
Alexandre Julliard 2024-03-08 13:45:07 +01:00
parent 1d168222fd
commit d538432d79
17 changed files with 41 additions and 62 deletions

View file

@ -268,7 +268,7 @@
@ cdecl _scalb(double long)
@ cdecl _searchenv(str str ptr)
@ cdecl _seterrormode(long)
@ cdecl -norelay _setjmp(ptr) MSVCRT__setjmp
@ cdecl -norelay _setjmp(ptr)
@ cdecl _setmode(long long)
@ stub _setsystime(ptr long)
@ cdecl _sleep(long)

View file

@ -1284,9 +1284,9 @@
@ cdecl _set_printf_count_output(long)
@ cdecl _set_purecall_handler(ptr)
@ cdecl _seterrormode(long)
@ cdecl -norelay _setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=i386 -norelay _setjmp3(ptr long) MSVCRT__setjmp3
@ cdecl -arch=!i386 -norelay _setjmpex(ptr ptr) __wine_setjmpex
@ cdecl -norelay _setjmp(ptr)
@ cdecl -arch=i386 -norelay _setjmp3(ptr long)
@ cdecl -arch=!i386 -norelay _setjmpex(ptr ptr)
@ cdecl _setmaxstdio(long)
@ cdecl _setmbcp(long)
@ cdecl _setmode(long long)
@ -1780,7 +1780,7 @@
@ varargs scanf(str)
@ varargs scanf_s(str)
@ cdecl setbuf(ptr ptr)
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr ptr) _setjmp
@ cdecl setlocale(long str)
@ cdecl setvbuf(ptr str long long)
@ cdecl signal(long long)

View file

@ -1641,9 +1641,9 @@
@ cdecl _set_printf_count_output(long)
@ cdecl _set_purecall_handler(ptr)
@ cdecl _seterrormode(long)
@ cdecl -norelay _setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=i386 -norelay _setjmp3(ptr long) MSVCRT__setjmp3
@ cdecl -arch=!i386 -norelay _setjmpex(ptr ptr) __wine_setjmpex
@ cdecl -norelay _setjmp(ptr)
@ cdecl -arch=i386 -norelay _setjmp3(ptr long)
@ cdecl -arch=!i386 -norelay _setjmpex(ptr ptr)
@ cdecl _setmaxstdio(long)
@ cdecl _setmbcp(long)
@ cdecl _setmode(long long)
@ -2138,7 +2138,7 @@
@ varargs scanf(str)
@ varargs scanf_s(str)
@ cdecl setbuf(ptr ptr)
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr ptr) _setjmp
@ cdecl setlocale(long str)
@ cdecl setvbuf(ptr str long long)
@ cdecl signal(long long)

View file

@ -1653,9 +1653,9 @@
@ cdecl _set_printf_count_output(long)
@ cdecl _set_purecall_handler(ptr)
@ cdecl _seterrormode(long)
@ cdecl -norelay _setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=i386 -norelay _setjmp3(ptr long) MSVCRT__setjmp3
@ cdecl -arch=!i386 -norelay _setjmpex(ptr ptr) __wine_setjmpex
@ cdecl -norelay _setjmp(ptr)
@ cdecl -arch=i386 -norelay _setjmp3(ptr long)
@ cdecl -arch=!i386 -norelay _setjmpex(ptr ptr)
@ cdecl _setmaxstdio(long)
@ cdecl _setmbcp(long)
@ cdecl _setmode(long long)
@ -2349,7 +2349,7 @@
@ varargs scanf(str)
@ varargs scanf_s(str)
@ cdecl setbuf(ptr ptr)
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr ptr) _setjmp
@ cdecl setlocale(long str)
@ cdecl setvbuf(ptr str long long)
@ cdecl signal(long long)

View file

@ -2013,7 +2013,7 @@
@ varargs scanf(str) msvcr120.scanf
@ varargs scanf_s(str) msvcr120.scanf_s
@ cdecl setbuf(ptr ptr) msvcr120.setbuf
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr) msvcr120.setjmp
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr ptr) msvcr120.setjmp
@ cdecl setlocale(long str) msvcr120.setlocale
@ cdecl setvbuf(ptr str long long) msvcr120.setvbuf
@ cdecl signal(long long) msvcr120.signal

View file

@ -520,8 +520,8 @@
@ cdecl _set_sbh_threshold(long)
@ cdecl _set_security_error_handler(ptr)
@ cdecl _seterrormode(long)
@ cdecl -norelay _setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=i386 -norelay _setjmp3(ptr long) MSVCRT__setjmp3
@ cdecl -norelay _setjmp(ptr)
@ cdecl -arch=i386 -norelay _setjmp3(ptr long)
@ cdecl _setmaxstdio(long)
@ cdecl _setmbcp(long)
@ cdecl _setmode(long long)

View file

@ -516,8 +516,8 @@
@ cdecl _set_sbh_threshold(long)
@ cdecl _set_security_error_handler(ptr)
@ cdecl _seterrormode(long)
@ cdecl -norelay _setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=i386 -norelay _setjmp3(ptr long) MSVCRT__setjmp3
@ cdecl -norelay _setjmp(ptr)
@ cdecl -arch=i386 -norelay _setjmp3(ptr long)
@ cdecl _setmaxstdio(long)
@ cdecl _setmbcp(long)
@ cdecl _setmode(long long)

View file

@ -964,9 +964,9 @@
@ cdecl _set_purecall_handler(ptr)
@ cdecl _set_sbh_threshold(long)
@ cdecl _seterrormode(long)
@ cdecl -norelay _setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=i386 -norelay _setjmp3(ptr long) MSVCRT__setjmp3
@ cdecl -arch=!i386 -norelay _setjmpex(ptr ptr) __wine_setjmpex
@ cdecl -norelay _setjmp(ptr)
@ cdecl -arch=i386 -norelay _setjmp3(ptr long)
@ cdecl -arch=!i386 -norelay _setjmpex(ptr ptr)
@ cdecl _setmaxstdio(long)
@ cdecl _setmbcp(long)
@ cdecl _setmode(long long)
@ -1461,7 +1461,7 @@
@ varargs scanf(str)
@ varargs scanf_s(str)
@ cdecl setbuf(ptr ptr)
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr ptr) _setjmp
@ cdecl setlocale(long str)
@ cdecl setvbuf(ptr str long long)
@ cdecl signal(long long)

View file

@ -940,8 +940,8 @@
@ cdecl _set_purecall_handler(ptr)
@ cdecl _set_sbh_threshold(long)
@ cdecl _seterrormode(long)
@ cdecl -norelay _setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=i386 -norelay _setjmp3(ptr long) MSVCRT__setjmp3
@ cdecl -norelay _setjmp(ptr)
@ cdecl -arch=i386 -norelay _setjmp3(ptr long)
@ cdecl _setmaxstdio(long)
@ cdecl _setmbcp(long)
@ cdecl _setmode(long long)
@ -1433,7 +1433,7 @@
@ varargs scanf(str)
@ varargs scanf_s(str)
@ cdecl setbuf(ptr ptr)
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr ptr) _setjmp
@ cdecl setlocale(long str)
@ cdecl setvbuf(ptr str long long)
@ cdecl signal(long long)

View file

@ -105,12 +105,6 @@ unsigned int CDECL __CxxQueryExceptionSize(void)
}
/*******************************************************************
* _setjmp (MSVCRT.@)
*/
__ASM_GLOBAL_FUNC(MSVCRT__setjmp,
"b " __ASM_NAME("__wine_setjmpex"));
/*******************************************************************
* longjmp (MSVCRT.@)
*/

View file

@ -109,8 +109,7 @@ unsigned int CDECL __CxxQueryExceptionSize(void)
/*******************************************************************
* _setjmp (MSVCRT.@)
*/
__ASM_GLOBAL_FUNC(MSVCRT__setjmp,
"b " __ASM_NAME("__wine_setjmpex"));
__ASM_GLOBAL_FUNC( _setjmp, "b _setjmpex" );
/*******************************************************************
* longjmp (MSVCRT.@)

View file

@ -105,15 +105,6 @@ unsigned int CDECL __CxxQueryExceptionSize(void)
}
/*******************************************************************
* _setjmp (MSVCRT.@)
*/
int __attribute__((naked)) MSVCRT__setjmp( jmp_buf buf )
{
asm( "b " __ASM_NAME("__wine_setjmpex") );
}
/*******************************************************************
* longjmp (MSVCRT.@)
*/

View file

@ -1024,8 +1024,9 @@ typedef void (__stdcall *MSVCRT_unwind_function)(const _JUMP_BUFFER *);
/*******************************************************************
* _setjmp (MSVCRT.@)
*/
DEFINE_SETJMP_ENTRYPOINT(MSVCRT__setjmp)
int CDECL __regs_MSVCRT__setjmp(_JUMP_BUFFER *jmp)
#undef _setjmp
DEFINE_SETJMP_ENTRYPOINT( _setjmp )
int CDECL __regs__setjmp(_JUMP_BUFFER *jmp)
{
jmp->Registration = (unsigned long)NtCurrentTeb()->Tib.ExceptionList;
if (jmp->Registration == ~0UL)
@ -1041,8 +1042,8 @@ int CDECL __regs_MSVCRT__setjmp(_JUMP_BUFFER *jmp)
/*******************************************************************
* _setjmp3 (MSVCRT.@)
*/
DEFINE_SETJMP_ENTRYPOINT( MSVCRT__setjmp3 )
int WINAPIV __regs_MSVCRT__setjmp3(_JUMP_BUFFER *jmp, int nb_args, ...)
DEFINE_SETJMP_ENTRYPOINT( _setjmp3 )
int WINAPIV __regs__setjmp3(_JUMP_BUFFER *jmp, int nb_args, ...)
{
jmp->Cookie = MSVCRT_JMP_MAGIC;
jmp->UnwindFunc = 0;

View file

@ -697,12 +697,6 @@ unsigned int CDECL __CxxQueryExceptionSize(void)
}
/*******************************************************************
* _setjmp (MSVCRT.@)
*/
__ASM_GLOBAL_FUNC( MSVCRT__setjmp,
"jmp " __ASM_NAME("__wine_setjmpex") );
/*******************************************************************
* longjmp (MSVCRT.@)
*/

View file

@ -904,9 +904,9 @@
@ cdecl _set_output_format(long)
@ cdecl _set_sbh_threshold(long)
@ cdecl _seterrormode(long)
@ cdecl -norelay _setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=i386 -norelay _setjmp3(ptr long) MSVCRT__setjmp3
@ cdecl -arch=!i386 -norelay _setjmpex(ptr ptr) __wine_setjmpex
@ cdecl -norelay _setjmp(ptr)
@ cdecl -arch=i386 -norelay _setjmp3(ptr long)
@ cdecl -arch=!i386 -norelay _setjmpex(ptr ptr)
@ cdecl _setmaxstdio(long)
@ cdecl _setmbcp(long)
@ cdecl _setmode(long long)
@ -1412,7 +1412,7 @@
@ varargs scanf(str)
@ varargs scanf_s(str)
@ cdecl setbuf(ptr ptr)
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr ptr) _setjmp
@ cdecl setlocale(long str)
@ cdecl setvbuf(ptr str long long)
@ cdecl signal(long long)

View file

@ -493,8 +493,8 @@
@ cdecl _set_error_mode(long)
@ cdecl _set_sbh_threshold(long)
@ cdecl _seterrormode(long)
@ cdecl -norelay _setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=i386 -norelay _setjmp3(ptr long) MSVCRT__setjmp3
@ cdecl -norelay _setjmp(ptr)
@ cdecl -arch=i386 -norelay _setjmp3(ptr long)
@ cdecl _setmaxstdio(long)
@ cdecl _setmbcp(long)
@ cdecl _setmode(long long)

View file

@ -94,8 +94,8 @@
@ cdecl __fpecode()
@ cdecl __initialize_lconv_for_unsigned_char() __lconv_init
@ cdecl __intrinsic_abnormal_termination()
@ cdecl -norelay __intrinsic_setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=!i386 -norelay __intrinsic_setjmpex(ptr ptr) __wine_setjmpex
@ cdecl -norelay __intrinsic_setjmp(ptr) _setjmp
@ cdecl -arch=!i386 -norelay __intrinsic_setjmpex(ptr ptr) _setjmpex
@ cdecl __isascii(long)
@ cdecl __iscsym(long)
@ cdecl __iscsymf(long)
@ -1898,7 +1898,7 @@
@ cdecl _set_se_translator(ptr)
@ cdecl _set_thread_local_invalid_parameter_handler(ptr)
@ cdecl _seterrormode(long)
@ cdecl -arch=i386 -norelay _setjmp3(ptr long) MSVCRT__setjmp3
@ cdecl -arch=i386 -norelay _setjmp3(ptr long)
@ cdecl _setmaxstdio(long)
@ cdecl _setmbcp(long)
@ cdecl _setmode(long long)
@ -2487,7 +2487,7 @@
@ cdecl set_terminate(ptr)
@ cdecl set_unexpected(ptr)
@ cdecl setbuf(ptr ptr)
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr) MSVCRT__setjmp
@ cdecl -arch=arm,x86_64 -norelay -private setjmp(ptr ptr) _setjmp
@ cdecl setlocale(long str)
@ cdecl setvbuf(ptr str long long)
@ cdecl signal(long long)