https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e2d69ad98cc10402e87722d52e940ed53da48869
commit e2d69ad98cc10402e87722d52e940ed53da48869 Author: Timo Kreuzer <timo.kreu...@reactos.org> AuthorDate: Thu Nov 14 18:36:07 2024 +0200 Commit: Timo Kreuzer <timo.kreu...@reactos.org> CommitDate: Tue Jan 28 22:50:04 2025 +0200 [CRT] Split MSVC C++ aliases from cpp.s to cpp_alias.s --- sdk/lib/crt/except/amd64/cpp.s | 58 -------------- sdk/lib/crt/except/amd64/{cpp.s => cpp_alias.s} | 25 ------ sdk/lib/crt/except/arm/cpp.s | 52 ------------ sdk/lib/crt/except/arm/{cpp.s => cpp_alias.s} | 44 ----------- sdk/lib/crt/except/except.cmake | 9 ++- sdk/lib/crt/except/i386/cpp.s | 79 ------------------ sdk/lib/crt/except/i386/{cpp.s => cpp_alias.s} | 101 ------------------------ 7 files changed, 6 insertions(+), 362 deletions(-) diff --git a/sdk/lib/crt/except/amd64/cpp.s b/sdk/lib/crt/except/amd64/cpp.s index ad869b8d609..c4f472d65a1 100644 --- a/sdk/lib/crt/except/amd64/cpp.s +++ b/sdk/lib/crt/except/amd64/cpp.s @@ -28,62 +28,4 @@ DEFINE_EXCEPTION_VTABLE bad_typeid, ??_7bad_typeid@@6B@ DEFINE_EXCEPTION_VTABLE bad_cast, ??_7bad_cast@@6B@ DEFINE_EXCEPTION_VTABLE __non_rtti_object, ??_7__non_rtti_object@@6B@ - -MACRO(DEFINE_ALIAS, alias, orig) -EXTERN &orig:ABS -ALIAS <&alias> = <&orig> -ENDM - -DEFINE_ALIAS ??3@YAXPEAX@Z, operator_delete -DEFINE_ALIAS ??_U@YAPEAX_K@Z, operator_new -DEFINE_ALIAS ??_U@YAPEAX_KHPEBDH@Z, operator_new_dbg -DEFINE_ALIAS ??_V@YAXPEAX@Z, operator_delete -DEFINE_ALIAS ??2@YAPEAX_K@Z, operator_new -DEFINE_ALIAS ??2@YAPEAX_KHPEBDH@Z, operator_new_dbg -DEFINE_ALIAS ?_query_new_handler@@YAP6AHI@ZXZ, _query_new_handler -DEFINE_ALIAS ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z, _set_new_handler -DEFINE_ALIAS ?set_new_handler@@YAP6AXXZP6AXXZ@Z, set_new_handler -DEFINE_ALIAS ?_query_new_mode@@YAHXZ, _query_new_mode -DEFINE_ALIAS ?_set_new_mode@@YAHH@Z, _set_new_mode -DEFINE_ALIAS ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z, _set_se_translator -DEFINE_ALIAS ?set_terminate@@YAP6AXXZP6AXXZ@Z, set_terminate -DEFINE_ALIAS ?set_unexpected@@YAP6AXXZP6AXXZ@Z, set_unexpected -DEFINE_ALIAS ?terminate@@YAXXZ, terminate -DEFINE_ALIAS ?unexpected@@YAXXZ, unexpected -DEFINE_ALIAS ?what@exception@@UEBAPEBDXZ, exception_what -DEFINE_ALIAS ??0exception@@QEAA@AEBQEBDH@Z, exception_ctor_noalloc -DEFINE_ALIAS ??0exception@@QEAA@AEBV0@@Z, exception_copy_ctor -DEFINE_ALIAS ??0exception@@QEAA@XZ, exception_default_ctor -DEFINE_ALIAS ??1exception@@UEAA@XZ, exception_dtor -DEFINE_ALIAS ??4exception@@QEAAAEAV0@AEBV0@@Z, exception_opequals -DEFINE_ALIAS ??1type_info@@UEAA@XZ, type_info_dtor -DEFINE_ALIAS ??0__non_rtti_object@@QEAA@AEBV0@@Z, __non_rtti_object_copy_ctor -DEFINE_ALIAS ??0__non_rtti_object@@QEAA@PEBD@Z, __non_rtti_object_ctor -DEFINE_ALIAS ??0bad_cast@@AAE@PBQBD@Z, bad_cast_ctor -DEFINE_ALIAS ??0bad_cast@@AEAA@PEBQEBD@Z, bad_cast_ctor -DEFINE_ALIAS ??0bad_cast@@QAE@ABQBD@Z, bad_cast_ctor -DEFINE_ALIAS ??0bad_cast@@QEAA@AEBQEBD@Z, bad_cast_ctor -DEFINE_ALIAS ??0bad_cast@@QEAA@AEBV0@@Z, bad_cast_copy_ctor -DEFINE_ALIAS ??0bad_cast@@QEAA@PEBD@Z, bad_cast_ctor_charptr -DEFINE_ALIAS ??0bad_typeid@@QEAA@AEBV0@@Z, bad_typeid_copy_ctor -DEFINE_ALIAS ??0bad_typeid@@QEAA@PEBD@Z, bad_typeid_ctor -DEFINE_ALIAS ??0exception@@QEAA@AEBQEBD@Z, exception_ctor -DEFINE_ALIAS ??1__non_rtti_object@@UEAA@XZ, __non_rtti_object_dtor -DEFINE_ALIAS ??1bad_cast@@UEAA@XZ, bad_cast_dtor -DEFINE_ALIAS ??1bad_typeid@@UEAA@XZ, bad_typeid_dtor -DEFINE_ALIAS ??4bad_cast@@QEAAAEAV0@AEBV0@@Z, bad_cast_opequals -DEFINE_ALIAS ??4bad_typeid@@QEAAAEAV0@AEBV0@@Z, bad_typeid_opequals -DEFINE_ALIAS ??8type_info@@QEBAHAEBV0@@Z, type_info_opequals_equals -DEFINE_ALIAS ??9type_info@@QEBAHAEBV0@@Z, type_info_opnot_equals -DEFINE_ALIAS ??_Fbad_cast@@QEAAXXZ, bad_cast_default_ctor -DEFINE_ALIAS ??_Fbad_typeid@@QEAAXXZ, bad_typeid_default_ctor -DEFINE_ALIAS ?_query_new_handler@@YAP6AH_K@ZXZ, _query_new_handler -DEFINE_ALIAS ?_set_new_handler@@YAP6AH_K@ZP6AH0@Z@Z, _set_new_handler -DEFINE_ALIAS ?_set_se_translator@@YAP6AXIPEAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z, _set_se_translator -DEFINE_ALIAS ?before@type_info@@QEBAHAEBV1@@Z, type_info_before -DEFINE_ALIAS ?name@type_info@@QEBAPEBDXZ, type_info_name -DEFINE_ALIAS ?raw_name@type_info@@QEBAPEBDXZ, type_info_raw_name -DEFINE_ALIAS ??4__non_rtti_object@@QEAAAEAV0@AEBV0@@Z, __non_rtti_object_opequals - END - diff --git a/sdk/lib/crt/except/amd64/cpp.s b/sdk/lib/crt/except/amd64/cpp_alias.s similarity index 82% copy from sdk/lib/crt/except/amd64/cpp.s copy to sdk/lib/crt/except/amd64/cpp_alias.s index ad869b8d609..a7da20ad93c 100644 --- a/sdk/lib/crt/except/amd64/cpp.s +++ b/sdk/lib/crt/except/amd64/cpp_alias.s @@ -5,30 +5,6 @@ .code64 .align 4 -MACRO(START_VTABLE, shortname, cxxname) -EXTERN shortname&_rtti:PROC -EXTERN &shortname&_vector_dtor:PROC - .quad shortname&_rtti -PUBLIC &shortname&_vtable -&shortname&_vtable: -PUBLIC &cxxname -&cxxname: - .quad &shortname&_vector_dtor -ENDM - -MACRO(DEFINE_EXCEPTION_VTABLE, shortname, cxxname) - START_VTABLE shortname, cxxname - EXTERN exception_what:ABS - .quad exception_what -ENDM - -START_VTABLE type_info, __dummyname_type_info -DEFINE_EXCEPTION_VTABLE exception, ??_7exception@@6B@ -DEFINE_EXCEPTION_VTABLE bad_typeid, ??_7bad_typeid@@6B@ -DEFINE_EXCEPTION_VTABLE bad_cast, ??_7bad_cast@@6B@ -DEFINE_EXCEPTION_VTABLE __non_rtti_object, ??_7__non_rtti_object@@6B@ - - MACRO(DEFINE_ALIAS, alias, orig) EXTERN &orig:ABS ALIAS <&alias> = <&orig> @@ -86,4 +62,3 @@ DEFINE_ALIAS ?raw_name@type_info@@QEBAPEBDXZ, type_info_raw_name DEFINE_ALIAS ??4__non_rtti_object@@QEAAAEAV0@AEBV0@@Z, __non_rtti_object_opequals END - diff --git a/sdk/lib/crt/except/arm/cpp.s b/sdk/lib/crt/except/arm/cpp.s index 5a45e587189..ddc1498896b 100644 --- a/sdk/lib/crt/except/arm/cpp.s +++ b/sdk/lib/crt/except/arm/cpp.s @@ -13,58 +13,6 @@ TEXTAREA - MACRO - DEFINE_ALIAS $FuncName, $Target - LCLS _FuncName - LCLS _Target -_FuncName SETS "|$FuncName|" -_Target SETS "|$Target|" - IMPORT $_FuncName, WEAK $_Target - MEND - - DEFINE_ALIAS ??0__non_rtti_object@@QAA@ABV0@@Z, __non_rtti_object_copy_ctor - DEFINE_ALIAS ??0__non_rtti_object@@QAA@PBD@Z, __non_rtti_object_ctor - DEFINE_ALIAS ??0bad_cast@@AAA@PBQBD@Z, bad_cast_ctor // private: __cdecl bad_cast::bad_cast(char const * const *) - DEFINE_ALIAS ??0bad_cast@@QAA@ABV0@@Z, bad_cast_copy_ctor // public: __cdecl bad_cast::bad_cast(class bad_cast const &) - DEFINE_ALIAS ??0bad_cast@@QAA@PBD@Z, bad_cast_ctor // public: __cdecl bad_cast::bad_cast(char const *) - DEFINE_ALIAS ??0bad_typeid@@QAA@ABV0@@Z, bad_typeid_copy_ctor // public: __cdecl bad_typeid::bad_typeid(class bad_typeid const &) - DEFINE_ALIAS ??0bad_typeid@@QAA@PBD@Z, bad_typeid_ctor // public: __cdecl bad_typeid::bad_typeid(char const *) - DEFINE_ALIAS ??0exception@@QAA@ABQBD@Z, exception_ctor // public: __cdecl exception::exception(char const * const &) - DEFINE_ALIAS ??0exception@@QAA@ABQBDH@Z, exception_ctor_noalloc // public: __cdecl exception::exception(char const * const &,int) - DEFINE_ALIAS ??0exception@@QAA@ABV0@@Z, exception_copy_ctor // public: __cdecl exception::exception(class exception const &) - DEFINE_ALIAS ??0exception@@QAA@XZ, exception_default_ctor // public: __cdecl exception::exception(void) - DEFINE_ALIAS ??1__non_rtti_object@@UAA@XZ, __non_rtti_object_dtor // public: virtual __cdecl __non_rtti_object::~__non_rtti_object(void) - DEFINE_ALIAS ??1bad_cast@@UAA@XZ, bad_cast_dtor // public: virtual __cdecl bad_cast::~bad_cast(void) - DEFINE_ALIAS ??1bad_typeid@@UAA@XZ, bad_typeid_dtor // public: virtual __cdecl bad_typeid::~bad_typeid(void) - DEFINE_ALIAS ??1exception@@UAA@XZ, exception_dtor // public: virtual __cdecl exception::~exception(void) - DEFINE_ALIAS ??1type_info@@UAA@XZ, type_info_dtor // public: virtual __cdecl type_info::~type_info(void) - DEFINE_ALIAS ??2@YAPAXI@Z, operator_new // void * __cdecl operator new(unsigned int) - DEFINE_ALIAS ??2@YAPAXIHPBDH@Z, operator_new_dbg // void * __cdecl operator new(unsigned int,int,char const *,int) - DEFINE_ALIAS ??3@YAXPAX@Z, operator_delete // void __cdecl operator delete(void *) - DEFINE_ALIAS ??4__non_rtti_object@@QAAAAV0@ABV0@@Z, __non_rtti_object_opequals // public: class __non_rtti_object & __cdecl __non_rtti_object::operator=(class __non_rtti_object const &) - DEFINE_ALIAS ??4bad_cast@@QAAAAV0@ABV0@@Z, bad_cast_opequals // public: class bad_cast & __cdecl bad_cast::operator=(class bad_cast const &) - DEFINE_ALIAS ??4bad_typeid@@QAAAAV0@ABV0@@Z, bad_typeid_opequals // public: class bad_typeid & __cdecl bad_typeid::operator=(class bad_typeid const &) - DEFINE_ALIAS ??4exception@@QAAAAV0@ABV0@@Z, exception_opequals // public: class exception & __cdecl exception::operator=(class exception const &) - DEFINE_ALIAS ??8type_info@@QBAHABV0@@Z, type_info_opequals_equals // public: int __cdecl type_info::operator==(class type_info const &)const - DEFINE_ALIAS ??9type_info@@QBAHABV0@@Z, type_info_opnot_equals // public: int __cdecl type_info::operator!=(class type_info const &)const - DEFINE_ALIAS ??_Fbad_cast@@QAAXXZ, bad_cast_default_ctor // public: void __cdecl bad_cast::`default constructor closure'(void) - DEFINE_ALIAS ??_Fbad_typeid@@QAAXXZ, bad_typeid_default_ctor // public: void __cdecl bad_typeid::`default constructor closure'(void) - DEFINE_ALIAS ??_U@YAPAXI@Z, operator_new // void * __cdecl operator new[](unsigned int) - DEFINE_ALIAS ??_U@YAPAXIHPBDH@Z, operator_new_dbg // void * __cdecl operator new[](unsigned int,int,char const *,int) - DEFINE_ALIAS ??_V@YAXPAX@Z, operator_delete // void __cdecl operator delete[](void *) - DEFINE_ALIAS ?_query_new_handler@@YAP6AHI@ZXZ, _query_new_handler // int (__cdecl*__cdecl _query_new_handler(void))(unsigned int) - DEFINE_ALIAS ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z, _set_new_handler // int (__cdecl*__cdecl _set_new_handler(int (__cdecl*)(unsigned int)))(unsigned int) - DEFINE_ALIAS ?_set_new_mode@@YAHH@Z, _set_new_mode // int __cdecl _set_new_mode(int) - DEFINE_ALIAS ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z, _set_se_translator // void (__cdecl*__cdecl _set_se_translator(void (__cdecl*)(unsigned int,struct _EXCEPTION_POINTERS *)))(unsigned int,struct _EXCEPTION_POINTERS *) - DEFINE_ALIAS ?before@type_info@@QBAHABV1@@Z, type_info_before // public: int __cdecl type_info::before(class type_info const &)const - DEFINE_ALIAS ?name@type_info@@QBAPBDXZ, type_info_name // public: char const * __cdecl type_info::name(void)const - DEFINE_ALIAS ?raw_name@type_info@@QBAPBDXZ, type_info_raw_name // public: char const * __cdecl type_info::raw_name(void)const - DEFINE_ALIAS ?set_terminate@@YAP6AXXZP6AXXZ@Z, set_terminate // void (__cdecl*__cdecl set_terminate(void (__cdecl*)(void)))(void) - DEFINE_ALIAS ?set_unexpected@@YAP6AXXZP6AXXZ@Z, set_unexpected // void (__cdecl*__cdecl set_unexpected(void (__cdecl*)(void)))(void) - DEFINE_ALIAS ?terminate@@YAXXZ, terminate // void __cdecl terminate(void) - DEFINE_ALIAS ?unexpected@@YAXXZ, unexpected // void __cdecl unexpected(void) - DEFINE_ALIAS ?what@exception@@UBAPBDXZ, exception_what // public: virtual char const * __cdecl exception::what(void)const - #undef _MSVCRT_ MACRO START_VTABLE $ShortName, $CxxName diff --git a/sdk/lib/crt/except/arm/cpp.s b/sdk/lib/crt/except/arm/cpp_alias.s similarity index 83% copy from sdk/lib/crt/except/arm/cpp.s copy to sdk/lib/crt/except/arm/cpp_alias.s index 5a45e587189..7b6ae45683e 100644 --- a/sdk/lib/crt/except/arm/cpp.s +++ b/sdk/lib/crt/except/arm/cpp_alias.s @@ -65,49 +65,5 @@ _Target SETS "|$Target|" DEFINE_ALIAS ?unexpected@@YAXXZ, unexpected // void __cdecl unexpected(void) DEFINE_ALIAS ?what@exception@@UBAPBDXZ, exception_what // public: virtual char const * __cdecl exception::what(void)const - #undef _MSVCRT_ - MACRO - START_VTABLE $ShortName, $CxxName - LCLS RttiName - LCLS VtblName - LCLS DtorName - LCLS CxxLabel -CxxLabel SETS "|$CxxName|" -RttiName SETS "|$ShortName._rtti|" -VtblName SETS "|":CC:"$ShortName._vtable|" -DtorName SETS "|":CC:"$ShortName._vector_dtor|" - EXTERN $RttiName - DCD $RttiName - EXPORT $VtblName -$VtblName - EXPORT $CxxLabel -$CxxLabel - EXTERN $DtorName - DCD $DtorName - MEND - - MACRO - DEFINE_EXCEPTION_VTABLE $ShortName, $CxxName - START_VTABLE $ShortName, $CxxName - EXTERN exception_what - DCD exception_what - MEND - - START_VTABLE type_info, __dummyname_type_info - DEFINE_EXCEPTION_VTABLE exception, ??_7exception@@6B@ - DEFINE_EXCEPTION_VTABLE bad_typeid, ??_7bad_typeid@@6B@ - DEFINE_EXCEPTION_VTABLE bad_cast, ??_7bad_cast@@6B@ - DEFINE_EXCEPTION_VTABLE __non_rtti_object, ??_7__non_rtti_object@@6B@ - - GBLS FuncName - - //EXTERN operator_delete - //__ExportName ??3@YAXPAX@Z - //b operator_delete - - //EXTERN operator_new - //__ExportName ??_U@YAPAXI@Z - //b operator_new - END /* EOF */ diff --git a/sdk/lib/crt/except/except.cmake b/sdk/lib/crt/except/except.cmake index 656853c097c..add149de4ec 100644 --- a/sdk/lib/crt/except/except.cmake +++ b/sdk/lib/crt/except/except.cmake @@ -13,7 +13,8 @@ if(ARCH STREQUAL "i386") ) if(MSVC) list(APPEND CRT_EXCEPT_ASM_SOURCE - except/i386/cpp.s) + except/i386/cpp.s + except/i386/cpp_alias.s) endif() elseif(ARCH STREQUAL "amd64") list(APPEND LIBCNTPR_EXCEPT_SOURCE @@ -28,7 +29,8 @@ elseif(ARCH STREQUAL "amd64") ) if(MSVC) list(APPEND CRT_EXCEPT_ASM_SOURCE - except/amd64/cpp.s) + except/amd64/cpp.s + except/amd64/cpp_alias.s) endif() elseif(ARCH STREQUAL "arm") list(APPEND LIBCNTPR_EXCEPT_SOURCE @@ -53,7 +55,8 @@ elseif(ARCH STREQUAL "arm") ) if(MSVC) list(APPEND CRT_EXCEPT_ASM_SOURCE - except/arm/cpp.s) + except/arm/cpp.s + except/arm/cpp_alias.s) endif() endif() diff --git a/sdk/lib/crt/except/i386/cpp.s b/sdk/lib/crt/except/i386/cpp.s index 99e2748edd6..7c524938dd4 100644 --- a/sdk/lib/crt/except/i386/cpp.s +++ b/sdk/lib/crt/except/i386/cpp.s @@ -7,55 +7,6 @@ EXTERN _cxx_frame_handler:PROC -MACRO(DEFINE_THISCALL_ALIAS, cxxname, target) -#ifdef _USE_ML - EXTERN ___thiscall&target:PROC - ALIAS <&cxxname> = <___thiscall&target> -#else - PUBLIC cxxname - .weakref &cxxname, &target -#endif -ENDM - -DEFINE_THISCALL_ALIAS ??0exception@@QAE@ABQBD@Z, _exception_ctor -DEFINE_THISCALL_ALIAS ??0exception@@QAE@ABQBDH@Z, _exception_ctor_noalloc -DEFINE_THISCALL_ALIAS ??0exception@@QAE@ABV0@@Z, _exception_copy_ctor -DEFINE_THISCALL_ALIAS ??0exception@@QAE@XZ, _exception_default_ctor -DEFINE_THISCALL_ALIAS ??1exception@@UAE@XZ, _exception_dtor -DEFINE_THISCALL_ALIAS ??4exception@@QAEAAV0@ABV0@@Z, _exception_opequals -DEFINE_THISCALL_ALIAS ??_Eexception@@UAEPAXI@Z, _exception_vector_dtor -DEFINE_THISCALL_ALIAS ??_Gexception@@UAEPAXI@Z, _exception_scalar_dtor -DEFINE_THISCALL_ALIAS ?what@exception@@UBEPBDXZ, _exception_what -DEFINE_THISCALL_ALIAS ??0bad_typeid@@QAE@ABV0@@Z, _bad_typeid_copy_ctor -DEFINE_THISCALL_ALIAS ??0bad_typeid@@QAE@PBD@Z, _bad_typeid_ctor -DEFINE_THISCALL_ALIAS ??_Fbad_typeid@@QAEXXZ, _bad_typeid_default_ctor -DEFINE_THISCALL_ALIAS ??1bad_typeid@@UAE@XZ, _bad_typeid_dtor -DEFINE_THISCALL_ALIAS ??4bad_typeid@@QAEAAV0@ABV0@@Z, _bad_typeid_opequals -DEFINE_THISCALL_ALIAS ??_Ebad_typeid@@UAEPAXI@Z, _bad_typeid_vector_dtor -DEFINE_THISCALL_ALIAS ??_Gbad_typeid@@UAEPAXI@Z, _bad_typeid_scalar_dtor -DEFINE_THISCALL_ALIAS ??0__non_rtti_object@@QAE@ABV0@@Z, ___non_rtti_object_copy_ctor -DEFINE_THISCALL_ALIAS ??0__non_rtti_object@@QAE@PBD@Z, ___non_rtti_object_ctor -DEFINE_THISCALL_ALIAS ??1__non_rtti_object@@UAE@XZ, ___non_rtti_object_dtor -DEFINE_THISCALL_ALIAS ??4__non_rtti_object@@QAEAAV0@ABV0@@Z, ___non_rtti_object_opequals -DEFINE_THISCALL_ALIAS ??_E__non_rtti_object@@UAEPAXI@Z, ___non_rtti_object_vector_dtor -DEFINE_THISCALL_ALIAS ??_G__non_rtti_object@@UAEPAXI@Z, ___non_rtti_object_scalar_dtor -DEFINE_THISCALL_ALIAS ??0bad_cast@@AAE@PBQBD@Z, _bad_cast_ctor -DEFINE_THISCALL_ALIAS ??0bad_cast@@QAE@ABQBD@Z, _bad_cast_ctor -DEFINE_THISCALL_ALIAS ??0bad_cast@@QAE@ABV0@@Z, _bad_cast_copy_ctor -DEFINE_THISCALL_ALIAS ??0bad_cast@@QAE@PBD@Z, _bad_cast_ctor_charptr -DEFINE_THISCALL_ALIAS ??_Fbad_cast@@QAEXXZ, _bad_cast_default_ctor -DEFINE_THISCALL_ALIAS ??1bad_cast@@UAE@XZ, _bad_cast_dtor -DEFINE_THISCALL_ALIAS ??4bad_cast@@QAEAAV0@ABV0@@Z, _bad_cast_opequals -DEFINE_THISCALL_ALIAS ??_Ebad_cast@@UAEPAXI@Z, _bad_cast_vector_dtor -DEFINE_THISCALL_ALIAS ??_Gbad_cast@@UAEPAXI@Z, _bad_cast_scalar_dtor -DEFINE_THISCALL_ALIAS ??8type_info@@QBEHABV0@@Z, _type_info_opequals_equals -DEFINE_THISCALL_ALIAS ??9type_info@@QBEHABV0@@Z, _type_info_opnot_equals -DEFINE_THISCALL_ALIAS ?before@type_info@@QBEHABV1@@Z, _type_info_before -DEFINE_THISCALL_ALIAS ??1type_info@@UAE@XZ, _type_info_dtor -DEFINE_THISCALL_ALIAS ?name@type_info@@QBEPBDXZ, _type_info_name -DEFINE_THISCALL_ALIAS ?raw_name@type_info@@QBEPBDXZ, _type_info_raw_name - - #undef _MSVCRT_ MACRO(START_VTABLE, shortname, cxxname) EXTERN _&shortname&_rtti:PROC @@ -80,36 +31,6 @@ DEFINE_EXCEPTION_VTABLE bad_typeid, ??_7bad_typeid@@6B@ DEFINE_EXCEPTION_VTABLE bad_cast, ??_7bad_cast@@6B@ DEFINE_EXCEPTION_VTABLE __non_rtti_object, ??_7__non_rtti_object@@6B@ -EXTERN _operator_delete:PROC -PUBLIC ??3@YAXPAX@Z -??3@YAXPAX@Z: - jmp _operator_delete - -EXTERN _operator_new:PROC -PUBLIC ??_U@YAPAXI@Z -??_U@YAPAXI@Z: - jmp _operator_new - - -MACRO(DEFINE_ALIAS, alias, orig, type) -EXTERN &orig:&type -ALIAS <&alias> = <&orig> -ENDM - -DEFINE_ALIAS ??_V@YAXPAX@Z, _operator_delete, PROC -DEFINE_ALIAS ??2@YAPAXI@Z, _operator_new, PROC -DEFINE_ALIAS ?_query_new_handler@@YAP6AHI@ZXZ, __query_new_handler, PROC -DEFINE_ALIAS ?_set_new_handler@@YAP6AHI@ZP6AHI@Z@Z, __set_new_handler, PROC -DEFINE_ALIAS ?set_new_handler@@YAP6AXXZP6AXXZ@Z, _set_new_handler, PROC -DEFINE_ALIAS ?_query_new_mode@@YAHXZ, __query_new_mode, PROC -DEFINE_ALIAS ?_set_new_mode@@YAHH@Z, __set_new_mode, PROC -DEFINE_ALIAS ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0@Z@Z, __set_se_translator, PROC -DEFINE_ALIAS ?set_terminate@@YAP6AXXZP6AXXZ@Z, _set_terminate, PROC -DEFINE_ALIAS ?set_unexpected@@YAP6AXXZP6AXXZ@Z, _set_unexpected, PROC -DEFINE_ALIAS ?terminate@@YAXXZ, _terminate, PROC -DEFINE_ALIAS ?unexpected@@YAXXZ, _unexpected, PROC - - // void call_copy_ctor( void *func, void *this, void *src, int has_vbase ); PUBLIC _call_copy_ctor _call_copy_ctor: diff --git a/sdk/lib/crt/except/i386/cpp.s b/sdk/lib/crt/except/i386/cpp_alias.s similarity index 63% copy from sdk/lib/crt/except/i386/cpp.s copy to sdk/lib/crt/except/i386/cpp_alias.s index 99e2748edd6..384a3ed0f52 100644 --- a/sdk/lib/crt/except/i386/cpp.s +++ b/sdk/lib/crt/except/i386/cpp_alias.s @@ -5,8 +5,6 @@ .code .align 4 -EXTERN _cxx_frame_handler:PROC - MACRO(DEFINE_THISCALL_ALIAS, cxxname, target) #ifdef _USE_ML EXTERN ___thiscall&target:PROC @@ -55,31 +53,6 @@ DEFINE_THISCALL_ALIAS ??1type_info@@UAE@XZ, _type_info_dtor DEFINE_THISCALL_ALIAS ?name@type_info@@QBEPBDXZ, _type_info_name DEFINE_THISCALL_ALIAS ?raw_name@type_info@@QBEPBDXZ, _type_info_raw_name - -#undef _MSVCRT_ -MACRO(START_VTABLE, shortname, cxxname) -EXTERN _&shortname&_rtti:PROC -EXTERN ___thiscall_&shortname&_vector_dtor:PROC - .long _&shortname&_rtti -PUBLIC _&shortname&_vtable -_&shortname&_vtable: -PUBLIC &cxxname -&cxxname: - .long ___thiscall_&shortname&_vector_dtor -ENDM - -MACRO(DEFINE_EXCEPTION_VTABLE, shortname, cxxname) - START_VTABLE shortname, cxxname - EXTERN ___thiscall_exception_what:PROC - .long ___thiscall_exception_what -ENDM - -START_VTABLE type_info, __dummyname_type_info -DEFINE_EXCEPTION_VTABLE exception, ??_7exception@@6B@ -DEFINE_EXCEPTION_VTABLE bad_typeid, ??_7bad_typeid@@6B@ -DEFINE_EXCEPTION_VTABLE bad_cast, ??_7bad_cast@@6B@ -DEFINE_EXCEPTION_VTABLE __non_rtti_object, ??_7__non_rtti_object@@6B@ - EXTERN _operator_delete:PROC PUBLIC ??3@YAXPAX@Z ??3@YAXPAX@Z: @@ -90,7 +63,6 @@ PUBLIC ??_U@YAPAXI@Z ??_U@YAPAXI@Z: jmp _operator_new - MACRO(DEFINE_ALIAS, alias, orig, type) EXTERN &orig:&type ALIAS <&alias> = <&orig> @@ -109,78 +81,5 @@ DEFINE_ALIAS ?set_unexpected@@YAP6AXXZP6AXXZ@Z, _set_unexpected, PROC DEFINE_ALIAS ?terminate@@YAXXZ, _terminate, PROC DEFINE_ALIAS ?unexpected@@YAXXZ, _unexpected, PROC - -// void call_copy_ctor( void *func, void *this, void *src, int has_vbase ); -PUBLIC _call_copy_ctor -_call_copy_ctor: - push ebp - CFI_ADJUST_CFA_OFFSET 4 - CFI_REL_OFFSET ebp, 0 - mov ebp, esp - CFI_DEF_CFA_REGISTER ebp - push 1 - mov ecx, [ebp + 12] - push dword ptr [ebp + 16] - call dword ptr [ebp + 8] - leave - CFI_DEF_CFA esp, 4 - CFI_SAME_VALUE ebp - ret - -// void DECLSPEC_NORETURN continue_after_catch( cxx_exception_frame* frame, void *addr ); -PUBLIC _continue_after_catch -_continue_after_catch: - mov edx, [esp + 4] - mov eax, [esp + 8] - mov esp, [edx - 4] - lea ebp, [edx + 12] - jmp eax - -// void DECLSPEC_NORETURN call_finally_block( void *code_block, void *base_ptr ); -PUBLIC _call_finally_block -_call_finally_block: - mov ebp, [esp +8] - jmp dword ptr [esp + 4] - -// int call_filter( int (*func)(PEXCEPTION_POINTERS), void *arg, void *ebp ); -PUBLIC _call_filter -_call_filter: - push ebp - push [esp + 12] - mov ebp, [esp + 20] - call dword ptr [esp + 12] - pop ebp - pop ebp - ret - -// void *call_handler( void * (*func)(void), void *ebp ); -PUBLIC _call_handler -_call_handler: - push ebp - push ebx - push esi - push edi - mov ebp, [esp + 24] - call dword ptr [esp + 20] - pop edi - pop esi - pop ebx - pop ebp - ret - - -PUBLIC ___CxxFrameHandler -___CxxFrameHandler: - push 0 - push 0 - push eax - push[esp + 28] - push[esp + 28] - push[esp + 28] - push[esp + 28] - call _cxx_frame_handler - add esp, 28 - ret - END