[CRT]
[reactos.git] / reactos / lib / sdk / crt / except / arm / cpp.s
1 /*
2 * COPYRIGHT: BSD - See COPYING.ARM in the top level directory
3 * PROJECT: ReactOS CRT library
4 * PURPOSE: MSVC wrappers for C++ functions
5 * PROGRAMMER: Timo Kreuzer (timo.kreuzer@reactos.org)
6 */
7
8 /* INCLUDES ******************************************************************/
9
10 #include <kxarm.h>
11
12 /* CODE **********************************************************************/
13
14 TEXTAREA
15
16 MACRO
17 DEFINE_ALIAS $FuncName, $Target
18 IMPORT $Target
19 NESTED_ENTRY $FuncName
20 b $Target
21 NESTED_END $FuncName
22 MEND
23
24 DEFINE_ALIAS ??0exception@@QAE@ABQBD@Z, MSVCRT_exception_ctor
25 DEFINE_ALIAS ??0exception@@QAE@ABQBDH@Z, MSVCRT_exception_ctor_noalloc
26 DEFINE_ALIAS ??0exception@@QAE@ABV0@@Z, MSVCRT_exception_copy_ctor
27 DEFINE_ALIAS ??0exception@@QAE@XZ, MSVCRT_exception_default_ctor
28 DEFINE_ALIAS ??1exception@@UAE@XZ, MSVCRT_exception_dtor
29 DEFINE_ALIAS ??4exception@@QAEAAV0@ABV0@@Z, MSVCRT_exception_opequals
30 DEFINE_ALIAS ??_Eexception@@UAEPAXI@Z, MSVCRT_exception_vector_dtor
31 DEFINE_ALIAS ??_Gexception@@UAEPAXI@Z, MSVCRT_exception_scalar_dtor
32 DEFINE_ALIAS ?what@exception@@UBEPBDXZ, MSVCRT_what_exception
33 DEFINE_ALIAS ??0bad_typeid@@QAE@ABV0@@Z, MSVCRT_bad_typeid_copy_ctor
34 DEFINE_ALIAS ??0bad_typeid@@QAE@PBD@Z, MSVCRT_bad_typeid_ctor
35 DEFINE_ALIAS ??_Fbad_typeid@@QAEXXZ, MSVCRT_bad_typeid_default_ctor
36 DEFINE_ALIAS ??1bad_typeid@@UAE@XZ, MSVCRT_bad_typeid_dtor
37 DEFINE_ALIAS ??4bad_typeid@@QAEAAV0@ABV0@@Z, MSVCRT_bad_typeid_opequals
38 DEFINE_ALIAS ??_Ebad_typeid@@UAEPAXI@Z, MSVCRT_bad_typeid_vector_dtor
39 DEFINE_ALIAS ??_Gbad_typeid@@UAEPAXI@Z, MSVCRT_bad_typeid_scalar_dtor
40 DEFINE_ALIAS ??0__non_rtti_object@@QAE@ABV0@@Z, MSVCRT___non_rtti_object_copy_ctor
41 DEFINE_ALIAS ??0__non_rtti_object@@QAE@PBD@Z, MSVCRT___non_rtti_object_ctor
42 DEFINE_ALIAS ??1__non_rtti_object@@UAE@XZ, MSVCRT___non_rtti_object_dtor
43 DEFINE_ALIAS ??4__non_rtti_object@@QAEAAV0@ABV0@@Z, MSVCRT___non_rtti_object_opequals
44 DEFINE_ALIAS ??_E__non_rtti_object@@UAEPAXI@Z, MSVCRT___non_rtti_object_vector_dtor
45 DEFINE_ALIAS ??_G__non_rtti_object@@UAEPAXI@Z, MSVCRT___non_rtti_object_scalar_dtor
46 DEFINE_ALIAS ??0bad_cast@@AAE@PBQBD@Z, MSVCRT_bad_cast_ctor
47 DEFINE_ALIAS ??0bad_cast@@QAE@ABQBD@Z, MSVCRT_bad_cast_ctor
48 DEFINE_ALIAS ??0bad_cast@@QAE@ABV0@@Z, MSVCRT_bad_cast_copy_ctor
49 DEFINE_ALIAS ??0bad_cast@@QAE@PBD@Z, MSVCRT_bad_cast_ctor_charptr
50 DEFINE_ALIAS ??_Fbad_cast@@QAEXXZ, MSVCRT_bad_cast_default_ctor
51 DEFINE_ALIAS ??1bad_cast@@UAE@XZ, MSVCRT_bad_cast_dtor
52 DEFINE_ALIAS ??4bad_cast@@QAEAAV0@ABV0@@Z, MSVCRT_bad_cast_opequals
53 DEFINE_ALIAS ??_Ebad_cast@@UAEPAXI@Z, MSVCRT_bad_cast_vector_dtor
54 DEFINE_ALIAS ??_Gbad_cast@@UAEPAXI@Z, MSVCRT_bad_cast_scalar_dtor
55 DEFINE_ALIAS ??8type_info@@QBEHABV0@@Z, MSVCRT_type_info_opequals_equals
56 DEFINE_ALIAS ??9type_info@@QBEHABV0@@Z, MSVCRT_type_info_opnot_equals
57 DEFINE_ALIAS ?before@type_info@@QBEHABV1@@Z, MSVCRT_type_info_before
58 DEFINE_ALIAS ??1type_info@@UAE@XZ, MSVCRT_type_info_dtor
59 DEFINE_ALIAS ?name@type_info@@QBEPBDXZ, MSVCRT_type_info_name
60 DEFINE_ALIAS ?raw_name@type_info@@QBEPBDXZ, MSVCRT_type_info_raw_name
61
62 DEFINE_ALIAS ??_V@YAXPAX@Z, MSVCRT_operator_delete
63 DEFINE_ALIAS ??2@YAPAXI@Z, MSVCRT_operator_new
64 DEFINE_ALIAS ?_query_new_handler@@YAP6AHI@ZXZ, MSVCRT__query_new_handler
65 DEFINE_ALIAS ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z, MSVCRT__set_new_handler
66 DEFINE_ALIAS ?set_new_handler@@YAP6AXXZP6AXXZ@Z, MSVCRT_set_new_handler
67 DEFINE_ALIAS ?_query_new_mode@@YAHXZ, MSVCRT__query_new_mode
68 DEFINE_ALIAS ?_set_new_mode@@YAHH@Z, MSVCRT__set_new_mode
69 DEFINE_ALIAS ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z, MSVCRT__set_se_translator
70 DEFINE_ALIAS ?set_terminate@@YAP6AXXZP6AXXZ@Z, MSVCRT_set_terminate
71 DEFINE_ALIAS ?set_unexpected@@YAP6AXXZP6AXXZ@Z, MSVCRT_set_unexpected
72 DEFINE_ALIAS ?terminate@@YAXXZ, MSVCRT_terminate
73 DEFINE_ALIAS ?unexpected@@YAXXZ, MSVCRT_unexpected
74
75 #undef _MSVCRT_
76 MACRO
77 START_VTABLE $ShortName, $CxxName
78 LCLS RttiName
79 LCLS VtblName
80 LCLS DtorName
81 LCLS CxxLabel
82 CxxLabel SETS "|$CxxName|"
83 RttiName SETS "|$ShortName._rtti|"
84 VtblName SETS "|MSVCRT_":CC:"$ShortName._vtable|"
85 DtorName SETS "|MSVCRT_":CC:"$ShortName._vector_dtor|"
86 EXTERN $RttiName
87 DCD $RttiName
88 EXPORT $VtblName
89 $VtblName
90 EXPORT $CxxLabel
91 $CxxLabel
92 EXTERN $DtorName
93 DCD $DtorName
94 MEND
95
96 MACRO
97 DEFINE_EXCEPTION_VTABLE $ShortName, $CxxName
98 START_VTABLE $ShortName, $CxxName
99 EXTERN MSVCRT_what_exception
100 DCD MSVCRT_what_exception
101 MEND
102
103 START_VTABLE type_info, __dummyname_type_info
104 DEFINE_EXCEPTION_VTABLE exception, ??_7exception@@6B@
105 DEFINE_EXCEPTION_VTABLE bad_typeid, ??_7bad_typeid@@6B@
106 DEFINE_EXCEPTION_VTABLE bad_cast, ??_7bad_cast@@6B@
107 DEFINE_EXCEPTION_VTABLE __non_rtti_object, ??_7__non_rtti_object@@6B@
108
109 GBLS FuncName
110
111 EXTERN MSVCRT_operator_delete
112 __ExportName ??3@YAXPAX@Z
113 b MSVCRT_operator_delete
114
115 EXTERN MSVCRT_operator_new
116 __ExportName ??_U@YAPAXI@Z
117 b MSVCRT_operator_new
118
119 END
120 /* EOF */