Skip to content

Commit 55ca43d

Browse files
committed
[MSVCRT] Add MSVC asm code
1 parent f211c68 commit 55ca43d

8 files changed

Lines changed: 588 additions & 0 deletions

File tree

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
/*
2+
* PROJECT: ReactOS msvcrt.dll
3+
* LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4+
* PURPOSE: x64 C++ V-tables for concurrency.c
5+
* COPYRIGHT: Copyright 2014-2024 Wine team
6+
* Copyright 2025 Timo Kreuzer <timo.kreuzer@reactos.org>
7+
*/
8+
9+
#include <asm.inc>
10+
11+
// See msvcrt/concurrency.c
12+
13+
.const
14+
15+
MACRO(START_VTABLE, shortname, cxxname)
16+
EXTERN shortname&_rtti:PROC
17+
.quad shortname&_rtti
18+
PUBLIC &shortname&_vtable
19+
&shortname&_vtable:
20+
PUBLIC &cxxname
21+
&cxxname:
22+
ENDM
23+
24+
MACRO(VTABLE_ADD_FUNC_MACRO, name)
25+
EXTERN &name:PROC
26+
.quad &name
27+
ENDM
28+
#define VTABLE_ADD_FUNC(x) VTABLE_ADD_FUNC_MACRO x
29+
30+
START_VTABLE cexception, __dummyname_cexception
31+
VTABLE_ADD_FUNC(cexception_vector_dtor)
32+
VTABLE_ADD_FUNC(cexception_what)
33+
34+
START_VTABLE improper_lock, __dummyname_improper_lock
35+
VTABLE_ADD_FUNC(cexception_vector_dtor)
36+
VTABLE_ADD_FUNC(cexception_what)
37+
38+
START_VTABLE improper_scheduler_attach, __dummyname_improper_scheduler_attach
39+
VTABLE_ADD_FUNC(cexception_vector_dtor)
40+
VTABLE_ADD_FUNC(cexception_what)
41+
42+
START_VTABLE improper_scheduler_detach, __dummyname_improper_scheduler_detach
43+
VTABLE_ADD_FUNC(cexception_vector_dtor)
44+
VTABLE_ADD_FUNC(cexception_what)
45+
46+
START_VTABLE invalid_multiple_scheduling, __dummyname_invalid_multiple_scheduling
47+
VTABLE_ADD_FUNC(cexception_vector_dtor)
48+
VTABLE_ADD_FUNC(cexception_what)
49+
50+
START_VTABLE invalid_scheduler_policy_key, __dummyname_invalid_scheduler_policy_key
51+
VTABLE_ADD_FUNC(cexception_vector_dtor)
52+
VTABLE_ADD_FUNC(cexception_what)
53+
54+
START_VTABLE invalid_scheduler_policy_thread_specification, __dummyname_invalid_scheduler_policy_thread_specification
55+
VTABLE_ADD_FUNC(cexception_vector_dtor)
56+
VTABLE_ADD_FUNC(cexception_what)
57+
58+
START_VTABLE invalid_scheduler_policy_value, __dummyname_invalid_scheduler_policy_value
59+
VTABLE_ADD_FUNC(cexception_vector_dtor)
60+
VTABLE_ADD_FUNC(cexception_what)
61+
62+
START_VTABLE missing_wait, __dummyname_missing_wait
63+
VTABLE_ADD_FUNC(cexception_vector_dtor)
64+
VTABLE_ADD_FUNC(cexception_what)
65+
66+
START_VTABLE scheduler_resource_allocation_error, __dummyname_scheduler_resource_allocation_error
67+
VTABLE_ADD_FUNC(cexception_vector_dtor)
68+
VTABLE_ADD_FUNC(cexception_what)
69+
70+
71+
START_VTABLE ExternalContextBase, __dummyname_ExternalContextBase
72+
VTABLE_ADD_FUNC(ExternalContextBase_GetId)
73+
VTABLE_ADD_FUNC(ExternalContextBase_GetVirtualProcessorId)
74+
VTABLE_ADD_FUNC(ExternalContextBase_GetScheduleGroupId)
75+
VTABLE_ADD_FUNC(ExternalContextBase_Unblock)
76+
VTABLE_ADD_FUNC(ExternalContextBase_IsSynchronouslyBlocked)
77+
VTABLE_ADD_FUNC(ExternalContextBase_vector_dtor)
78+
VTABLE_ADD_FUNC(ExternalContextBase_Block)
79+
VTABLE_ADD_FUNC(ExternalContextBase_Yield)
80+
VTABLE_ADD_FUNC(ExternalContextBase_SpinYield)
81+
VTABLE_ADD_FUNC(ExternalContextBase_Oversubscribe)
82+
VTABLE_ADD_FUNC(ExternalContextBase_Alloc)
83+
VTABLE_ADD_FUNC(ExternalContextBase_Free)
84+
VTABLE_ADD_FUNC(ExternalContextBase_EnterCriticalRegionHelper)
85+
VTABLE_ADD_FUNC(ExternalContextBase_EnterHyperCriticalRegionHelper)
86+
VTABLE_ADD_FUNC(ExternalContextBase_ExitCriticalRegionHelper)
87+
VTABLE_ADD_FUNC(ExternalContextBase_ExitHyperCriticalRegionHelper)
88+
VTABLE_ADD_FUNC(ExternalContextBase_GetCriticalRegionType)
89+
VTABLE_ADD_FUNC(ExternalContextBase_GetContextKind)
90+
91+
START_VTABLE ThreadScheduler, __dummyname_ThreadScheduler
92+
VTABLE_ADD_FUNC(ThreadScheduler_vector_dtor)
93+
VTABLE_ADD_FUNC(ThreadScheduler_Id)
94+
VTABLE_ADD_FUNC(ThreadScheduler_GetNumberOfVirtualProcessors)
95+
VTABLE_ADD_FUNC(ThreadScheduler_GetPolicy)
96+
VTABLE_ADD_FUNC(ThreadScheduler_Reference)
97+
VTABLE_ADD_FUNC(ThreadScheduler_Release)
98+
VTABLE_ADD_FUNC(ThreadScheduler_RegisterShutdownEvent)
99+
VTABLE_ADD_FUNC(ThreadScheduler_Attach)
100+
#if _MSVCR_VER > 100
101+
VTABLE_ADD_FUNC(ThreadScheduler_CreateScheduleGroup_loc)
102+
#endif
103+
VTABLE_ADD_FUNC(ThreadScheduler_CreateScheduleGroup)
104+
#if _MSVCR_VER > 100
105+
VTABLE_ADD_FUNC(ThreadScheduler_ScheduleTask_loc)
106+
#endif
107+
VTABLE_ADD_FUNC(ThreadScheduler_ScheduleTask)
108+
#if _MSVCR_VER > 100
109+
VTABLE_ADD_FUNC(ThreadScheduler_IsAvailableLocation)
110+
#endif
111+
112+
START_VTABLE _Timer, __dummyname__Timer
113+
VTABLE_ADD_FUNC(_Timer_vector_dtor)
114+
115+
END

dll/win32/msvcrt/amd64/cpp_alias.s

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
/*
2+
* PROJECT: ReactOS msvcrt.dll
3+
* LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4+
* PURPOSE: x64 C++ MSVC aliases for cpp.c
5+
* COPYRIGHT: Copyright 2014-2024 Wine team
6+
* Copyright 2025 Timo Kreuzer <timo.kreuzer@reactos.org>
7+
*/
8+
9+
#include <asm.inc>
10+
11+
// See msvcrt/cpp.c
12+
13+
.code64
14+
15+
MACRO(DEFINE_ALIAS, alias, orig)
16+
EXTERN &orig:ABS
17+
ALIAS <&alias> = <&orig>
18+
ENDM
19+
20+
DEFINE_ALIAS ??3@YAXPEAX@Z, operator_delete
21+
DEFINE_ALIAS ??_U@YAPEAX_K@Z, operator_new
22+
DEFINE_ALIAS ??_U@YAPEAX_KHPEBDH@Z, operator_new_dbg
23+
DEFINE_ALIAS ??_V@YAXPEAX@Z, operator_delete
24+
DEFINE_ALIAS ??2@YAPEAX_K@Z, operator_new
25+
DEFINE_ALIAS ??2@YAPEAX_KHPEBDH@Z, operator_new_dbg
26+
DEFINE_ALIAS ?_query_new_handler@@YAP6AHI@ZXZ, _query_new_handler
27+
DEFINE_ALIAS ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z, _set_new_handler
28+
DEFINE_ALIAS ?set_new_handler@@YAP6AXXZP6AXXZ@Z, set_new_handler
29+
DEFINE_ALIAS ?_query_new_mode@@YAHXZ, _query_new_mode
30+
DEFINE_ALIAS ?_set_new_mode@@YAHH@Z, _set_new_mode
31+
DEFINE_ALIAS ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z, _set_se_translator
32+
DEFINE_ALIAS ?set_terminate@@YAP6AXXZP6AXXZ@Z, set_terminate
33+
DEFINE_ALIAS ?set_unexpected@@YAP6AXXZP6AXXZ@Z, set_unexpected
34+
DEFINE_ALIAS ?terminate@@YAXXZ, terminate
35+
DEFINE_ALIAS ?unexpected@@YAXXZ, unexpected
36+
DEFINE_ALIAS ?what@exception@@UEBAPEBDXZ, exception_what
37+
DEFINE_ALIAS ??0exception@@QEAA@AEBQEBDH@Z, exception_ctor_noalloc
38+
DEFINE_ALIAS ??0exception@@QEAA@AEBV0@@Z, exception_copy_ctor
39+
DEFINE_ALIAS ??0exception@@QEAA@XZ, exception_default_ctor
40+
DEFINE_ALIAS ??1exception@@UEAA@XZ, exception_dtor
41+
DEFINE_ALIAS ??4exception@@QEAAAEAV0@AEBV0@@Z, exception_opequals
42+
DEFINE_ALIAS ??1type_info@@UEAA@XZ, type_info_dtor
43+
DEFINE_ALIAS ??0__non_rtti_object@@QEAA@AEBV0@@Z, __non_rtti_object_copy_ctor
44+
DEFINE_ALIAS ??0__non_rtti_object@@QEAA@PEBD@Z, __non_rtti_object_ctor
45+
DEFINE_ALIAS ??0bad_cast@@AAE@PBQBD@Z, bad_cast_ctor
46+
DEFINE_ALIAS ??0bad_cast@@AEAA@PEBQEBD@Z, bad_cast_ctor
47+
DEFINE_ALIAS ??0bad_cast@@QAE@ABQBD@Z, bad_cast_ctor
48+
DEFINE_ALIAS ??0bad_cast@@QEAA@AEBQEBD@Z, bad_cast_ctor
49+
DEFINE_ALIAS ??0bad_cast@@QEAA@AEBV0@@Z, bad_cast_copy_ctor
50+
DEFINE_ALIAS ??0bad_cast@@QEAA@PEBD@Z, bad_cast_ctor_charptr
51+
DEFINE_ALIAS ??0bad_typeid@@QEAA@AEBV0@@Z, bad_typeid_copy_ctor
52+
DEFINE_ALIAS ??0bad_typeid@@QEAA@PEBD@Z, bad_typeid_ctor
53+
DEFINE_ALIAS ??0exception@@QEAA@AEBQEBD@Z, exception_ctor
54+
DEFINE_ALIAS ??1__non_rtti_object@@UEAA@XZ, __non_rtti_object_dtor
55+
DEFINE_ALIAS ??1bad_cast@@UEAA@XZ, bad_cast_dtor
56+
DEFINE_ALIAS ??1bad_typeid@@UEAA@XZ, bad_typeid_dtor
57+
DEFINE_ALIAS ??4bad_cast@@QEAAAEAV0@AEBV0@@Z, bad_cast_opequals
58+
DEFINE_ALIAS ??4bad_typeid@@QEAAAEAV0@AEBV0@@Z, bad_typeid_opequals
59+
DEFINE_ALIAS ??8type_info@@QEBAHAEBV0@@Z, type_info_opequals_equals
60+
DEFINE_ALIAS ??9type_info@@QEBAHAEBV0@@Z, type_info_opnot_equals
61+
DEFINE_ALIAS ??_Fbad_cast@@QEAAXXZ, bad_cast_default_ctor
62+
DEFINE_ALIAS ??_Fbad_typeid@@QEAAXXZ, bad_typeid_default_ctor
63+
DEFINE_ALIAS ?_query_new_handler@@YAP6AH_K@ZXZ, _query_new_handler
64+
DEFINE_ALIAS ?_set_new_handler@@YAP6AH_K@ZP6AH0@Z@Z, _set_new_handler
65+
DEFINE_ALIAS ?_set_se_translator@@YAP6AXIPEAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z, _set_se_translator
66+
DEFINE_ALIAS ?before@type_info@@QEBAHAEBV1@@Z, type_info_before
67+
DEFINE_ALIAS ?name@type_info@@QEBAPEBDXZ, type_info_name
68+
DEFINE_ALIAS ?raw_name@type_info@@QEBAPEBDXZ, type_info_raw_name
69+
DEFINE_ALIAS ??4__non_rtti_object@@QEAAAEAV0@AEBV0@@Z, __non_rtti_object_opequals
70+
71+
END
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
/*
2+
* PROJECT: ReactOS msvcrt.dll
3+
* LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4+
* PURPOSE: x64 C++ V-tables for cpp.c
5+
* COPYRIGHT: Copyright 2014-2024 Wine team
6+
* Copyright 2025 Timo Kreuzer <timo.kreuzer@reactos.org>
7+
*/
8+
9+
#include <asm.inc>
10+
11+
// See msvcrt/cpp.c
12+
13+
.const
14+
15+
MACRO(START_VTABLE, shortname, cxxname)
16+
EXTERN shortname&_rtti:PROC
17+
.quad shortname&_rtti
18+
PUBLIC &shortname&_vtable
19+
&shortname&_vtable:
20+
PUBLIC &cxxname
21+
&cxxname:
22+
ENDM
23+
24+
MACRO(DEFINE_EXCEPTION_VTABLE, shortname, cxxname)
25+
START_VTABLE shortname, cxxname
26+
EXTERN &shortname&_vector_dtor:PROC
27+
.quad &shortname&_vector_dtor
28+
EXTERN exception_what:ABS
29+
.quad exception_what
30+
ENDM
31+
32+
START_VTABLE type_info, __dummyname_type_info
33+
EXTERN type_info_vector_dtor:PROC
34+
.quad type_info_vector_dtor
35+
36+
DEFINE_EXCEPTION_VTABLE exception, ??_7exception@@6B@
37+
38+
DEFINE_EXCEPTION_VTABLE bad_typeid, ??_7bad_typeid@@6B@
39+
DEFINE_EXCEPTION_VTABLE bad_cast, ??_7bad_cast@@6B@
40+
DEFINE_EXCEPTION_VTABLE __non_rtti_object, ??_7__non_rtti_object@@6B@
41+
42+
#if 0
43+
START_VTABLE exception_old, __dummyname_exception_old
44+
.quad exception_vector_dtor
45+
.quad exception_what
46+
47+
START_VTABLE bad_alloc, ??_7bad_alloc@@6B@
48+
.quad exception_vector_dtor
49+
.quad exception_what
50+
#endif
51+
52+
END
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* PROJECT: ReactOS msvcrt.dll
3+
* LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4+
* PURPOSE: x64 asm code for except_x86_64.c
5+
* COPYRIGHT: Copyright 2017-2024 Wine team
6+
*/
7+
8+
#include <asm.inc>
9+
10+
// See msvcrt/except_x86_64.c
11+
12+
.code64
13+
14+
// void *call_exc_handler( void *handler, ULONG_PTR frame, UINT flags );
15+
PUBLIC call_exc_handler
16+
.PROC call_exc_handler
17+
sub rsp, 40
18+
.allocstack 40
19+
.endprolog
20+
21+
mov [rsp], rcx
22+
mov [rsp + 8], r8d
23+
mov [rsp + 16], rdx
24+
call rcx
25+
add rsp, 40
26+
ret
27+
.ENDP
28+
29+
END

dll/win32/msvcrt/i386/cpp_alias.s

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
/*
2+
* PROJECT: ReactOS msvcrt.dll
3+
* LICENSE: LGPL-2.1-or-later (https://spdx.org/licenses/LGPL-2.1-or-later)
4+
* PURPOSE: x86 C++ MSVC aliases for cpp.c
5+
* COPYRIGHT: Copyright 2014-2024 Wine team
6+
* Copyright 2025 Timo Kreuzer <timo.kreuzer@reactos.org>
7+
*/
8+
9+
#include <asm.inc>
10+
11+
// See msvcrt/cpp.c
12+
13+
.code
14+
15+
MACRO(DEFINE_THISCALL_ALIAS, cxxname, target)
16+
#ifdef _USE_ML
17+
EXTERN ___thiscall&target:PROC
18+
ALIAS <&cxxname> = <___thiscall&target>
19+
#else
20+
PUBLIC cxxname
21+
.weakref &cxxname, &target
22+
#endif
23+
ENDM
24+
25+
DEFINE_THISCALL_ALIAS ??0exception@@QAE@ABQBD@Z, _exception_ctor
26+
DEFINE_THISCALL_ALIAS ??0exception@@QAE@ABQBDH@Z, _exception_ctor_noalloc
27+
DEFINE_THISCALL_ALIAS ??0exception@@QAE@ABV0@@Z, _exception_copy_ctor
28+
DEFINE_THISCALL_ALIAS ??0exception@@QAE@XZ, _exception_default_ctor
29+
DEFINE_THISCALL_ALIAS ??1exception@@UAE@XZ, _exception_dtor
30+
DEFINE_THISCALL_ALIAS ??4exception@@QAEAAV0@ABV0@@Z, _exception_opequals
31+
DEFINE_THISCALL_ALIAS ??_Eexception@@UAEPAXI@Z, _exception_vector_dtor
32+
DEFINE_THISCALL_ALIAS ??_Gexception@@UAEPAXI@Z, _exception_scalar_dtor
33+
DEFINE_THISCALL_ALIAS ?what@exception@@UBEPBDXZ, _exception_what
34+
DEFINE_THISCALL_ALIAS ??0bad_typeid@@QAE@ABV0@@Z, _bad_typeid_copy_ctor
35+
DEFINE_THISCALL_ALIAS ??0bad_typeid@@QAE@PBD@Z, _bad_typeid_ctor
36+
DEFINE_THISCALL_ALIAS ??_Fbad_typeid@@QAEXXZ, _bad_typeid_default_ctor
37+
DEFINE_THISCALL_ALIAS ??1bad_typeid@@UAE@XZ, _bad_typeid_dtor
38+
DEFINE_THISCALL_ALIAS ??4bad_typeid@@QAEAAV0@ABV0@@Z, _bad_typeid_opequals
39+
DEFINE_THISCALL_ALIAS ??_Ebad_typeid@@UAEPAXI@Z, _bad_typeid_vector_dtor
40+
DEFINE_THISCALL_ALIAS ??_Gbad_typeid@@UAEPAXI@Z, _bad_typeid_scalar_dtor
41+
DEFINE_THISCALL_ALIAS ??0__non_rtti_object@@QAE@ABV0@@Z, ___non_rtti_object_copy_ctor
42+
DEFINE_THISCALL_ALIAS ??0__non_rtti_object@@QAE@PBD@Z, ___non_rtti_object_ctor
43+
DEFINE_THISCALL_ALIAS ??1__non_rtti_object@@UAE@XZ, ___non_rtti_object_dtor
44+
DEFINE_THISCALL_ALIAS ??4__non_rtti_object@@QAEAAV0@ABV0@@Z, ___non_rtti_object_opequals
45+
DEFINE_THISCALL_ALIAS ??_E__non_rtti_object@@UAEPAXI@Z, ___non_rtti_object_vector_dtor
46+
DEFINE_THISCALL_ALIAS ??_G__non_rtti_object@@UAEPAXI@Z, ___non_rtti_object_scalar_dtor
47+
DEFINE_THISCALL_ALIAS ??0bad_cast@@AAE@PBQBD@Z, _bad_cast_ctor
48+
DEFINE_THISCALL_ALIAS ??0bad_cast@@QAE@ABQBD@Z, _bad_cast_ctor
49+
DEFINE_THISCALL_ALIAS ??0bad_cast@@QAE@ABV0@@Z, _bad_cast_copy_ctor
50+
DEFINE_THISCALL_ALIAS ??0bad_cast@@QAE@PBD@Z, _bad_cast_ctor_charptr
51+
DEFINE_THISCALL_ALIAS ??_Fbad_cast@@QAEXXZ, _bad_cast_default_ctor
52+
DEFINE_THISCALL_ALIAS ??1bad_cast@@UAE@XZ, _bad_cast_dtor
53+
DEFINE_THISCALL_ALIAS ??4bad_cast@@QAEAAV0@ABV0@@Z, _bad_cast_opequals
54+
DEFINE_THISCALL_ALIAS ??_Ebad_cast@@UAEPAXI@Z, _bad_cast_vector_dtor
55+
DEFINE_THISCALL_ALIAS ??_Gbad_cast@@UAEPAXI@Z, _bad_cast_scalar_dtor
56+
DEFINE_THISCALL_ALIAS ??8type_info@@QBEHABV0@@Z, _type_info_opequals_equals
57+
DEFINE_THISCALL_ALIAS ??9type_info@@QBEHABV0@@Z, _type_info_opnot_equals
58+
DEFINE_THISCALL_ALIAS ?before@type_info@@QBEHABV1@@Z, _type_info_before
59+
DEFINE_THISCALL_ALIAS ??1type_info@@UAE@XZ, _type_info_dtor
60+
DEFINE_THISCALL_ALIAS ?name@type_info@@QBEPBDXZ, _type_info_name
61+
DEFINE_THISCALL_ALIAS ?raw_name@type_info@@QBEPBDXZ, _type_info_raw_name
62+
63+
EXTERN _operator_delete:PROC
64+
PUBLIC ??3@YAXPAX@Z
65+
??3@YAXPAX@Z:
66+
jmp _operator_delete
67+
68+
EXTERN _operator_new:PROC
69+
PUBLIC ??_U@YAPAXI@Z
70+
??_U@YAPAXI@Z:
71+
jmp _operator_new
72+
73+
MACRO(DEFINE_ALIAS, alias, orig, type)
74+
EXTERN &orig:&type
75+
ALIAS <&alias> = <&orig>
76+
ENDM
77+
78+
DEFINE_ALIAS ??_V@YAXPAX@Z, _operator_delete, PROC
79+
DEFINE_ALIAS ??2@YAPAXI@Z, _operator_new, PROC
80+
DEFINE_ALIAS ??2@YAPAXIHPBDH@Z, _operator_new, PROC
81+
DEFINE_ALIAS ??_U@YAPAXIHPBDH@Z, _operator_new_dbg, PROC
82+
DEFINE_ALIAS ?_query_new_handler@@YAP6AHI@ZXZ, __query_new_handler, PROC
83+
DEFINE_ALIAS ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z, __set_new_handler, PROC
84+
DEFINE_ALIAS ?set_new_handler@@YAP6AXXZP6AXXZ@Z, _set_new_handler, PROC
85+
DEFINE_ALIAS ?_query_new_mode@@YAHXZ, __query_new_mode, PROC
86+
DEFINE_ALIAS ?_set_new_mode@@YAHH@Z, __set_new_mode, PROC
87+
DEFINE_ALIAS ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z, __set_se_translator, PROC
88+
DEFINE_ALIAS ?set_terminate@@YAP6AXXZP6AXXZ@Z, _set_terminate, PROC
89+
DEFINE_ALIAS ?set_unexpected@@YAP6AXXZP6AXXZ@Z, _set_unexpected, PROC
90+
DEFINE_ALIAS ?terminate@@YAXXZ, _terminate, PROC
91+
DEFINE_ALIAS ?unexpected@@YAXXZ, _unexpected, PROC
92+
93+
END

0 commit comments

Comments
 (0)