Commit 21400066 authored by Alexandre Julliard's avatar Alexandre Julliard

msvcrt: Implement _local_unwind for x86_64.

parent f464b7d2
...@@ -844,6 +844,7 @@ ...@@ -844,6 +844,7 @@
@ cdecl _lfind(ptr ptr ptr long ptr) msvcrt._lfind @ cdecl _lfind(ptr ptr ptr long ptr) msvcrt._lfind
@ stub _lfind_s @ stub _lfind_s
@ cdecl _loaddll(str) msvcrt._loaddll @ cdecl _loaddll(str) msvcrt._loaddll
@ cdecl -arch=x86_64 _local_unwind(ptr ptr) msvcrt._local_unwind
@ cdecl -i386 _local_unwind2(ptr long) msvcrt._local_unwind2 @ cdecl -i386 _local_unwind2(ptr long) msvcrt._local_unwind2
@ cdecl -i386 _local_unwind4(ptr ptr long) msvcrt._local_unwind4 @ cdecl -i386 _local_unwind4(ptr ptr long) msvcrt._local_unwind4
@ cdecl _localtime32(ptr) msvcrt._localtime32 @ cdecl _localtime32(ptr) msvcrt._localtime32
......
...@@ -690,6 +690,7 @@ ...@@ -690,6 +690,7 @@
@ cdecl _lfind(ptr ptr ptr long ptr) msvcrt._lfind @ cdecl _lfind(ptr ptr ptr long ptr) msvcrt._lfind
@ stub _lfind_s @ stub _lfind_s
@ cdecl _loaddll(str) msvcrt._loaddll @ cdecl _loaddll(str) msvcrt._loaddll
@ cdecl -arch=x86_64 _local_unwind(ptr ptr) msvcrt._local_unwind
@ cdecl -i386 _local_unwind2(ptr long) msvcrt._local_unwind2 @ cdecl -i386 _local_unwind2(ptr long) msvcrt._local_unwind2
@ cdecl -i386 _local_unwind4(ptr ptr long) msvcrt._local_unwind4 @ cdecl -i386 _local_unwind4(ptr ptr long) msvcrt._local_unwind4
@ cdecl _localtime32(ptr) msvcrt._localtime32 @ cdecl _localtime32(ptr) msvcrt._localtime32
......
...@@ -678,6 +678,7 @@ ...@@ -678,6 +678,7 @@
@ cdecl _lfind(ptr ptr ptr long ptr) msvcrt._lfind @ cdecl _lfind(ptr ptr ptr long ptr) msvcrt._lfind
@ stub _lfind_s @ stub _lfind_s
@ cdecl _loaddll(str) msvcrt._loaddll @ cdecl _loaddll(str) msvcrt._loaddll
@ cdecl -arch=x86_64 _local_unwind(ptr ptr) msvcrt._local_unwind
@ cdecl -i386 _local_unwind2(ptr long) msvcrt._local_unwind2 @ cdecl -i386 _local_unwind2(ptr long) msvcrt._local_unwind2
@ cdecl -i386 _local_unwind4(ptr ptr long) msvcrt._local_unwind4 @ cdecl -i386 _local_unwind4(ptr ptr long) msvcrt._local_unwind4
@ cdecl _localtime32(ptr) msvcrt._localtime32 @ cdecl _localtime32(ptr) msvcrt._localtime32
......
...@@ -605,6 +605,15 @@ void __cdecl MSVCRT_longjmp( struct MSVCRT___JUMP_BUFFER *jmp, int retval ) ...@@ -605,6 +605,15 @@ void __cdecl MSVCRT_longjmp( struct MSVCRT___JUMP_BUFFER *jmp, int retval )
longjmp_set_regs( jmp, retval ); longjmp_set_regs( jmp, retval );
} }
/*******************************************************************
* _local_unwind (MSVCRT.@)
*/
void __cdecl _local_unwind( void *frame, void *target )
{
CONTEXT context;
RtlUnwindEx( frame, target, NULL, 0, &context, NULL );
}
#endif /* __x86_64__ */ #endif /* __x86_64__ */
static MSVCRT___sighandler_t sighandlers[MSVCRT_NSIG] = { MSVCRT_SIG_DFL }; static MSVCRT___sighandler_t sighandlers[MSVCRT_NSIG] = { MSVCRT_SIG_DFL };
......
...@@ -627,7 +627,7 @@ ...@@ -627,7 +627,7 @@
@ cdecl _lfind(ptr ptr ptr long ptr) @ cdecl _lfind(ptr ptr ptr long ptr)
# stub _lfind_s(ptr ptr ptr long ptr ptr) # stub _lfind_s(ptr ptr ptr long ptr ptr)
@ cdecl _loaddll(str) @ cdecl _loaddll(str)
# stub -arch=x86_64 _local_unwind @ cdecl -arch=x86_64 _local_unwind(ptr ptr)
@ cdecl -i386 _local_unwind2(ptr long) @ cdecl -i386 _local_unwind2(ptr long)
@ cdecl -i386 _local_unwind4(ptr ptr long) @ cdecl -i386 _local_unwind4(ptr ptr long)
@ cdecl _localtime32(ptr) MSVCRT__localtime32 @ cdecl _localtime32(ptr) MSVCRT__localtime32
......
...@@ -378,6 +378,7 @@ ...@@ -378,6 +378,7 @@
@ cdecl _kbhit() msvcrt._kbhit @ cdecl _kbhit() msvcrt._kbhit
@ cdecl _lfind(ptr ptr ptr long ptr) msvcrt._lfind @ cdecl _lfind(ptr ptr ptr long ptr) msvcrt._lfind
@ cdecl _loaddll(str) msvcrt._loaddll @ cdecl _loaddll(str) msvcrt._loaddll
@ cdecl -arch=x86_64 _local_unwind(ptr ptr) msvcrt._local_unwind
@ cdecl -i386 _local_unwind2(ptr long) msvcrt._local_unwind2 @ cdecl -i386 _local_unwind2(ptr long) msvcrt._local_unwind2
@ cdecl _lock(long) msvcrt._lock @ cdecl _lock(long) msvcrt._lock
@ cdecl _locking(long long long) msvcrt._locking @ cdecl _locking(long long long) msvcrt._locking
......
...@@ -1411,7 +1411,8 @@ ...@@ -1411,7 +1411,8 @@
@ cdecl -private -i386 _global_unwind2(ptr) msvcrt._global_unwind2 @ cdecl -private -i386 _global_unwind2(ptr) msvcrt._global_unwind2
@ cdecl -private _itoa(long ptr long) msvcrt._itoa @ cdecl -private _itoa(long ptr long) msvcrt._itoa
@ cdecl -private _itow(long ptr long) msvcrt._itow @ cdecl -private _itow(long ptr long) msvcrt._itow
@ cdecl -private _local_unwind2(ptr long) msvcrt._local_unwind2 @ cdecl -private -arch=x86_64 _local_unwind(ptr ptr) msvcrt._local_unwind
@ cdecl -private -arch=i386 _local_unwind2(ptr long) msvcrt._local_unwind2
@ cdecl -private _purecall() msvcrt._purecall @ cdecl -private _purecall() msvcrt._purecall
@ varargs -private _snprintf(str long str) msvcrt._snprintf @ varargs -private _snprintf(str long str) msvcrt._snprintf
@ varargs -private _snwprintf(wstr long wstr) msvcrt._snwprintf @ varargs -private _snwprintf(wstr long wstr) msvcrt._snwprintf
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment