_thiscall and msvcrt
Ann and Jason Edmeades
us at the-edmeades.demon.co.uk
Mon May 26 07:58:52 CDT 2003
With this change, Warcraft3 installs on a no-windows wine (without a
windows msvcrt.dll at last).
Hopefully this incorporates all the suggestions people gave me.
Changelog
Emulate the _thiscall calling convention used for C++ calls where the
'this' value is held in ECX.
Jason
-------------- next part --------------
? dlls/msvcrt/org
? dlls/msvcrtd/org
Index: dlls/msvcrt/cpp.c
===================================================================
RCS file: /home/wine/wine/dlls/msvcrt/cpp.c,v
retrieving revision 1.12
diff -u -r1.12 cpp.c
--- dlls/msvcrt/cpp.c 19 Jul 2002 03:24:50 -0000 1.12
+++ dlls/msvcrt/cpp.c 26 May 2003 12:44:44 -0000
@@ -106,6 +106,12 @@
_this->do_free = 0; /* FIXME */
}
+void __reg_MSVCRT_exception_ctor(const char ** name, CONTEXT86 *context)
+{
+ MSVCRT_exception_ctor((exception *)context->Ecx, name);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??0exception@@QAE at ABV0@@Z (MSVCRT.@)
*/
@@ -117,6 +123,12 @@
TRACE("name = %s\n",_this->name);
}
+void __reg_MSVCRT_exception_copy_ctor(const exception * rhs, CONTEXT86 *context)
+{
+ MSVCRT_exception_copy_ctor((exception *)context->Ecx, rhs);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??0exception@@QAE at XZ (MSVCRT.@)
*/
@@ -128,6 +140,12 @@
_this->do_free = 0; /* FIXME */
}
+void __reg_MSVCRT_exception_default_ctor(CONTEXT86 *context)
+{
+ MSVCRT_exception_default_ctor((exception *)context->Ecx);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??1exception@@UAE at XZ (MSVCRT.@)
*/
@@ -136,6 +154,12 @@
TRACE("(%p)\n",_this);
}
+void __reg_MSVCRT_exception_dtor(CONTEXT86 *context)
+{
+ MSVCRT_exception_dtor((exception *)context->Ecx);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??4exception@@QAEAAV0 at ABV0@@Z (MSVCRT.@)
*/
@@ -147,6 +171,11 @@
return _this;
}
+void __reg_MSVCRT_exception_opequals(const exception * rhs, CONTEXT86 *context)
+{
+ context->Eax = (DWORD) MSVCRT_exception_opequals((exception *)context->Ecx, rhs);
+}
+
/******************************************************************
* ??_Eexception@@UAEPAXI at Z (MSVCRT.@)
*/
@@ -157,6 +186,12 @@
return NULL;
}
+void __reg_MSVCRT_exception__unknown_E(unsigned int arg1, CONTEXT86 *context)
+{
+ MSVCRT_exception__unknown_E((exception *)context->Ecx, arg1);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??_Gexception@@UAEPAXI at Z (MSVCRT.@)
*/
@@ -167,6 +202,12 @@
return NULL;
}
+void __reg_MSVCRT_exception__unknown_G(unsigned int arg1, CONTEXT86 *context)
+{
+ MSVCRT_exception__unknown_E((exception *)context->Ecx, arg1);
+ context->Eax = 0;
+}
+
/******************************************************************
* ?what at exception@@UBEPBDXZ (MSVCRT.@)
*/
@@ -176,6 +217,10 @@
return _this->name;
}
+void __reg_MSVCRT_what_exception(CONTEXT86 *context)
+{
+ context->Eax = (DWORD) MSVCRT_what_exception((exception *)context->Ecx);
+}
/******************************************************************
* ?set_terminate@@YAP6AXXZP6AXXZ at Z (MSVCRT.@)
@@ -243,6 +288,12 @@
MSVCRT_exception_copy_ctor(&_this->base,&rhs->base);
}
+void __reg_MSVCRT_bad_typeid_copy_ctor(const bad_typeid * rhs, CONTEXT86 *context)
+{
+ MSVCRT_bad_typeid_copy_ctor((bad_typeid *)context->Ecx, rhs);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??0bad_typeid@@QAE at PBD@Z (MSVCRT.@)
*/
@@ -253,6 +304,12 @@
_this->base.vtable = bad_typeid_vtable;
}
+void __reg_MSVCRT_bad_typeid_ctor(const char * name, CONTEXT86 *context)
+{
+ MSVCRT_bad_typeid_ctor((bad_typeid *)context->Ecx, name);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??1bad_typeid@@UAE at XZ (MSVCRT.@)
*/
@@ -262,6 +319,12 @@
MSVCRT_exception_dtor(&_this->base);
}
+void __reg_MSVCRT_bad_typeid_dtor(CONTEXT86 *context)
+{
+ MSVCRT_bad_typeid_dtor((bad_typeid *)context->Ecx);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??4bad_typeid@@QAEAAV0 at ABV0@@Z (MSVCRT.@)
*/
@@ -272,6 +335,11 @@
return _this;
}
+void __reg_MSVCRT_bad_typeid_opequals(const bad_typeid * rhs, CONTEXT86 *context)
+{
+ context->Eax = (DWORD) MSVCRT_bad_typeid_opequals((bad_typeid *)context->Ecx, rhs);
+}
+
/******************************************************************
* ??0__non_rtti_object@@QAE at ABV0@@Z (MSVCRT.@)
*/
@@ -282,6 +350,12 @@
MSVCRT_bad_typeid_copy_ctor(&_this->base,&rhs->base);
}
+void __reg_MSVCRT___non_rtti_object_copy_ctor(const __non_rtti_object * rhs, CONTEXT86 *context)
+{
+ MSVCRT___non_rtti_object_copy_ctor((__non_rtti_object *)context->Ecx, rhs);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??0__non_rtti_object@@QAE at PBD@Z (MSVCRT.@)
*/
@@ -293,6 +367,12 @@
_this->base.base.vtable = __non_rtti_object_vtable;
}
+void __reg_MSVCRT___non_rtti_object_ctor(const char * name, CONTEXT86 *context)
+{
+ MSVCRT___non_rtti_object_ctor((__non_rtti_object *)context->Ecx, name);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??1__non_rtti_object@@UAE at XZ (MSVCRT.@)
*/
@@ -302,6 +382,12 @@
MSVCRT_bad_typeid_dtor(&_this->base);
}
+void __reg_MSVCRT___non_rtti_object_dtor(CONTEXT86 *context)
+{
+ MSVCRT___non_rtti_object_dtor((__non_rtti_object *)context->Ecx);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??4__non_rtti_object@@QAEAAV0 at ABV0@@Z (MSVCRT.@)
*/
@@ -314,6 +400,11 @@
return _this;
}
+void __reg_MSVCRT___non_rtti_object_opequals(const __non_rtti_object * rhs, CONTEXT86 *context)
+{
+ context->Eax = (DWORD) MSVCRT___non_rtti_object_opequals((__non_rtti_object *)context->Ecx, rhs);
+}
+
/******************************************************************
* ??_E__non_rtti_object@@UAEPAXI at Z (MSVCRT.@)
*/
@@ -324,6 +415,12 @@
return NULL;
}
+void __reg_MSVCRT___non_rtti_object__unknown_E(unsigned int arg1, CONTEXT86 *context)
+{
+ MSVCRT___non_rtti_object__unknown_E((__non_rtti_object *)context->Ecx, arg1);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??_G__non_rtti_object@@UAEPAXI at Z (MSVCRT.@)
*/
@@ -334,6 +431,12 @@
return NULL;
}
+void __reg_MSVCRT___non_rtti_object__unknown_G(unsigned int arg1, CONTEXT86 *context)
+{
+ MSVCRT___non_rtti_object__unknown_G((__non_rtti_object *)context->Ecx, arg1);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??0bad_cast@@QAE at ABQBD@Z (MSVCRT.@)
*/
@@ -344,6 +447,12 @@
_this->base.vtable = bad_cast_vtable;
}
+void __reg_MSVCRT_bad_cast_ctor(const char ** name, CONTEXT86 *context)
+{
+ MSVCRT_bad_cast_ctor((bad_cast *)context->Ecx, name);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??0bad_cast@@QAE at ABV0@@Z (MSVCRT.@)
*/
@@ -353,6 +462,12 @@
MSVCRT_exception_copy_ctor(&_this->base,&rhs->base);
}
+void __reg_MSVCRT_bad_cast_copy_ctor(const bad_cast * rhs, CONTEXT86 *context)
+{
+ MSVCRT_bad_cast_copy_ctor((bad_cast *)context->Ecx, rhs);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??1bad_cast@@UAE at XZ (MSVCRT.@)
*/
@@ -362,6 +477,12 @@
MSVCRT_exception_dtor(&_this->base);
}
+void __reg_MSVCRT_bad_cast_dtor(CONTEXT86 *context)
+{
+ MSVCRT_bad_cast_dtor((bad_cast *)context->Ecx);
+ context->Eax = 0;
+}
+
/******************************************************************
* ??4bad_cast@@QAEAAV0 at ABV0@@Z (MSVCRT.@)
*/
@@ -372,6 +493,11 @@
return _this;
}
+void __reg_MSVCRT_bad_cast_opequals(const bad_cast * rhs, CONTEXT86 *context)
+{
+ context->Eax = (DWORD) MSVCRT_bad_cast_opequals((bad_cast *)context->Ecx, rhs);
+}
+
/******************************************************************
* ??8type_info@@QBEHABV0@@Z (MSVCRT.@)
*/
@@ -381,6 +507,11 @@
return _this->name == rhs->name;
}
+void __stdcall __reg_MSVCRT_type_info_opequals_equals(const type_info * rhs, CONTEXT86 *context)
+{
+ context->Eax = (DWORD) MSVCRT_type_info_opequals_equals((type_info *)context->Ecx, rhs);
+}
+
/******************************************************************
* ??9type_info@@QBEHABV0@@Z (MSVCRT.@)
*/
@@ -390,6 +521,11 @@
return _this->name != rhs->name;
}
+void __stdcall __reg_MSVCRT_type_info_opnot_equals(const type_info * rhs, CONTEXT86 *context)
+{
+ context->Eax = (DWORD) MSVCRT_type_info_opnot_equals((type_info *)context->Ecx, rhs);
+}
+
/******************************************************************
* ??1type_info@@UAE at XZ (MSVCRT.@)
*/
@@ -400,6 +536,12 @@
MSVCRT_free(_this->data);
}
+void __reg_MSVCRT_type_info_dtor(CONTEXT86 *context)
+{
+ MSVCRT_type_info_dtor((type_info *)context->Ecx);
+ context->Eax = 0;
+}
+
/******************************************************************
* ?name at type_info@@QBEPBDXZ (MSVCRT.@)
*/
@@ -409,6 +551,11 @@
return _this->name;
}
+void __stdcall __reg_MSVCRT_type_info_name(CONTEXT86 *context)
+{
+ context->Eax = (DWORD) MSVCRT_type_info_name((type_info *)context->Ecx);
+}
+
/******************************************************************
* ?raw_name at type_info@@QBEPBDXZ (MSVCRT.@)
*/
@@ -418,6 +565,10 @@
return _this->name;
}
+void __stdcall __reg_MSVCRT_type_info_raw_name(CONTEXT86 *context)
+{
+ context->Eax = (DWORD) MSVCRT_type_info_raw_name((type_info *)context->Ecx);
+}
/******************************************************************
* __RTtypeid (MSVCRT.@)
Index: dlls/msvcrt/msvcrt.spec
===================================================================
RCS file: /home/wine/wine/dlls/msvcrt/msvcrt.spec,v
retrieving revision 1.72
diff -u -r1.72 msvcrt.spec
--- dlls/msvcrt/msvcrt.spec 12 May 2003 03:31:16 -0000 1.72
+++ dlls/msvcrt/msvcrt.spec 26 May 2003 12:44:44 -0000
@@ -1,56 +1,56 @@
# msvcrt.dll - MS VC++ Run Time Library
@ cdecl $I10_OUTPUT() MSVCRT_I10_OUTPUT
-@ cdecl ??0__non_rtti_object@@QAE at ABV0@@Z(ptr ptr) MSVCRT___non_rtti_object_copy_ctor
-@ cdecl ??0__non_rtti_object@@QAE at PBD@Z(ptr ptr) MSVCRT___non_rtti_object_ctor
-@ cdecl ??0bad_cast@@QAE at ABQBD@Z(ptr ptr) MSVCRT_bad_cast_ctor
-@ cdecl ??0bad_cast@@QAE at ABV0@@Z(ptr ptr) MSVCRT_bad_cast_copy_ctor
-@ cdecl ??0bad_typeid@@QAE at ABV0@@Z(ptr ptr) MSVCRT_bad_typeid_copy_ctor
-@ cdecl ??0bad_typeid@@QAE at PBD@Z(ptr ptr) MSVCRT_bad_typeid_ctor
-@ cdecl ??0exception@@QAE at ABQBD@Z(ptr ptr) MSVCRT_exception_ctor
-@ cdecl ??0exception@@QAE at ABV0@@Z(ptr ptr) MSVCRT_exception_copy_ctor
-@ cdecl ??0exception@@QAE at XZ(ptr) MSVCRT_exception_default_ctor
-@ cdecl ??1__non_rtti_object@@UAE at XZ(ptr) MSVCRT___non_rtti_object_dtor
-@ cdecl ??1bad_cast@@UAE at XZ(ptr) MSVCRT_bad_cast_dtor
-@ cdecl ??1bad_typeid@@UAE at XZ(ptr) MSVCRT_bad_typeid_dtor
-@ cdecl ??1exception@@UAE at XZ(ptr) MSVCRT_exception_dtor
-@ cdecl ??1type_info@@UAE at XZ(ptr) MSVCRT_type_info_dtor
+@ cdecl -register ??0__non_rtti_object@@QAE at ABV0@@Z(ptr) __reg_MSVCRT___non_rtti_object_copy_ctor
+@ cdecl -register ??0__non_rtti_object@@QAE at PBD@Z(ptr) __reg_MSVCRT___non_rtti_object_ctor
+@ cdecl -register ??0bad_cast@@QAE at ABQBD@Z(ptr) __reg_MSVCRT_bad_cast_ctor
+@ cdecl -register ??0bad_cast@@QAE at ABV0@@Z(ptr) __reg_MSVCRT_bad_cast_copy_ctor
+@ cdecl -register ??0bad_typeid@@QAE at ABV0@@Z(ptr) __reg_MSVCRT_bad_typeid_copy_ctor
+@ cdecl -register ??0bad_typeid@@QAE at PBD@Z(ptr) __reg_MSVCRT_bad_typeid_ctor
+@ cdecl -register ??0exception@@QAE at ABQBD@Z(ptr) __reg_MSVCRT_exception_ctor
+@ cdecl -register ??0exception@@QAE at ABV0@@Z(ptr) __reg_MSVCRT_exception_copy_ctor
+@ cdecl -register ??0exception@@QAE at XZ() __reg_MSVCRT_exception_default_ctor
+@ cdecl -register ??1__non_rtti_object@@UAE at XZ() __reg_MSVCRT___non_rtti_object_dtor
+@ cdecl -register ??1bad_cast@@UAE at XZ() __reg_MSVCRT_bad_cast_dtor
+@ cdecl -register ??1bad_typeid@@UAE at XZ() __reg_MSVCRT_bad_typeid_dtor
+@ cdecl -register ??1exception@@UAE at XZ() __reg_MSVCRT_exception_dtor
+@ cdecl -register ??1type_info@@UAE at XZ() __reg_MSVCRT_type_info_dtor
@ cdecl ??2 at YAPAXI@Z(long) MSVCRT_operator_new
@ cdecl ??_U at YAPAXI@Z(long) MSVCRT_operator_new
@ cdecl ??3 at YAXPAX@Z(ptr) MSVCRT_operator_delete
@ cdecl ??_V at YAXPAX@Z(ptr) MSVCRT_operator_delete
-@ cdecl ??4__non_rtti_object@@QAEAAV0 at ABV0@@Z(ptr ptr) MSVCRT___non_rtti_object_opequals
-@ cdecl ??4bad_cast@@QAEAAV0 at ABV0@@Z(ptr ptr) MSVCRT_bad_cast_opequals
-@ cdecl ??4bad_typeid@@QAEAAV0 at ABV0@@Z(ptr ptr)MSVCRT_bad_typeid_opequals
-@ cdecl ??4exception@@QAEAAV0 at ABV0@@Z(ptr ptr) MSVCRT_exception_opequals
-@ stdcall ??8type_info@@QBEHABV0@@Z(ptr ptr) MSVCRT_type_info_opequals_equals
-@ stdcall ??9type_info@@QBEHABV0@@Z(ptr ptr) MSVCRT_type_info_opnot_equals
+@ cdecl -register ??4__non_rtti_object@@QAEAAV0 at ABV0@@Z(ptr) __reg_MSVCRT___non_rtti_object_opequals
+@ cdecl -register ??4bad_cast@@QAEAAV0 at ABV0@@Z(ptr) __reg_MSVCRT_bad_cast_opequals
+@ cdecl -register ??4bad_typeid@@QAEAAV0 at ABV0@@Z(ptr) __reg_MSVCRT_bad_typeid_opequals
+@ cdecl -register ??4exception@@QAEAAV0 at ABV0@@Z(ptr) __reg_MSVCRT_exception_opequals
+@ stdcall -register ??8type_info@@QBEHABV0@@Z(ptr) __reg_MSVCRT_type_info_opequals_equals
+@ stdcall -register ??9type_info@@QBEHABV0@@Z(ptr) __reg_MSVCRT_type_info_opnot_equals
@ stub ??_7__non_rtti_object@@6B@
@ stub ??_7bad_cast@@6B@
@ stub ??_7bad_typeid@@6B@
@ stub ??_7exception@@6B@
-@ cdecl ??_E__non_rtti_object@@UAEPAXI at Z(ptr long) MSVCRT___non_rtti_object__unknown_E
+@ cdecl -register ??_E__non_rtti_object@@UAEPAXI at Z(long) __reg_MSVCRT___non_rtti_object__unknown_E
@ stub ??_Ebad_cast@@UAEPAXI at Z #(ptr long)
@ stub ??_Ebad_typeid@@UAEPAXI at Z #(ptr long)
-@ cdecl ??_Eexception@@UAEPAXI at Z(ptr long) MSVCRT_exception__unknown_E
-@ cdecl ??_G__non_rtti_object@@UAEPAXI at Z(ptr long) MSVCRT___non_rtti_object__unknown_G
+@ cdecl -register ??_Eexception@@UAEPAXI at Z(long) __reg_MSVCRT_exception__unknown_E
+@ cdecl -register ??_G__non_rtti_object@@UAEPAXI at Z(long) __reg_MSVCRT___non_rtti_object__unknown_G
@ stub ??_Gbad_cast@@UAEPAXI at Z #(ptr long)
@ stub ??_Gbad_typeid@@UAEPAXI at Z #(ptr long)
-@ cdecl ??_Gexception@@UAEPAXI at Z(ptr long) MSVCRT_exception__unknown_G
+@ cdecl -register ??_Gexception@@UAEPAXI at Z(long) __reg_MSVCRT_exception__unknown_G
@ cdecl ?_query_new_handler@@YAP6AHI at ZXZ() MSVCRT__query_new_handler
@ cdecl ?_query_new_mode@@YAHXZ() MSVCRT__query_new_mode
@ cdecl ?_set_new_handler@@YAP6AHI at ZP6AHI@Z at Z(ptr) MSVCRT__set_new_handler
@ cdecl ?_set_new_mode@@YAHH at Z(long) MSVCRT__set_new_mode
@ cdecl ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0 at Z@Z(ptr) MSVCRT__set_se_translator
@ stub ?before at type_info@@QBEHABV1@@Z #(ptr ptr) stdcall
-@ stdcall ?name at type_info@@QBEPBDXZ(ptr) MSVCRT_type_info_name
-@ stdcall ?raw_name at type_info@@QBEPBDXZ(ptr) MSVCRT_type_info_raw_name
+@ stdcall -register ?name at type_info@@QBEPBDXZ() __reg_MSVCRT_type_info_name
+@ stdcall -register ?raw_name at type_info@@QBEPBDXZ() __reg_MSVCRT_type_info_raw_name
@ cdecl ?set_new_handler@@YAP6AXXZP6AXXZ at Z(ptr) MSVCRT__set_new_handler
@ cdecl ?set_terminate@@YAP6AXXZP6AXXZ at Z(ptr) MSVCRT_set_terminate
@ cdecl ?set_unexpected@@YAP6AXXZP6AXXZ at Z(ptr) MSVCRT_set_unexpected
@ cdecl ?terminate@@YAXXZ() MSVCRT_terminate
@ cdecl ?unexpected@@YAXXZ() MSVCRT_unexpected
-@ cdecl ?what at exception@@UBEPBDXZ(ptr) MSVCRT_what_exception
+@ cdecl -register ?what at exception@@UBEPBDXZ() __reg_MSVCRT_what_exception
@ cdecl _CIacos()
@ cdecl _CIasin()
@ cdecl _CIatan()
Index: dlls/msvcrtd/msvcrtd.spec
===================================================================
RCS file: /home/wine/wine/dlls/msvcrtd/msvcrtd.spec,v
retrieving revision 1.2
diff -u -r1.2 msvcrtd.spec
--- dlls/msvcrtd/msvcrtd.spec 7 Apr 2003 23:30:20 -0000 1.2
+++ dlls/msvcrtd/msvcrtd.spec 26 May 2003 12:44:45 -0000
@@ -1,55 +1,55 @@
# msvcrtd.dll - MS VC++ Run Time Library
@ cdecl $I10_OUTPUT() msvcrt.$I10_OUTPUT
-@ cdecl ??0__non_rtti_object@@QAE at ABV0@@Z(ptr ptr) msvcrt.??0__non_rtti_object@@QAE at ABV0@@Z
-@ cdecl ??0__non_rtti_object@@QAE at PBD@Z(ptr ptr) msvcrt.??0__non_rtti_object@@QAE at PBD@Z
-@ cdecl ??0bad_cast@@QAE at ABQBD@Z(ptr ptr) msvcrt.??0bad_cast@@QAE at ABQBD@Z
-@ cdecl ??0bad_cast@@QAE at ABV0@@Z(ptr ptr) msvcrt.??0bad_cast@@QAE at ABV0@@Z
-@ cdecl ??0bad_typeid@@QAE at ABV0@@Z(ptr ptr) msvcrt.??0bad_typeid@@QAE at ABV0@@Z
-@ cdecl ??0bad_typeid@@QAE at PBD@Z(ptr ptr) msvcrt.??0bad_typeid@@QAE at PBD@Z
-@ cdecl ??0exception@@QAE at ABQBD@Z(ptr ptr) msvcrt.??0exception@@QAE at ABQBD@Z
-@ cdecl ??0exception@@QAE at ABV0@@Z(ptr ptr) msvcrt.??0exception@@QAE at ABV0@@Z
-@ cdecl ??0exception@@QAE at XZ(ptr) msvcrt.??0exception@@QAE at XZ
-@ cdecl ??1__non_rtti_object@@UAE at XZ(ptr) msvcrt.??1__non_rtti_object@@UAE at XZ
-@ cdecl ??1bad_cast@@UAE at XZ(ptr) msvcrt.??1bad_cast@@UAE at XZ
-@ cdecl ??1bad_typeid@@UAE at XZ(ptr) msvcrt.??1bad_typeid@@UAE at XZ
-@ cdecl ??1exception@@UAE at XZ(ptr) msvcrt.??1exception@@UAE at XZ
-@ cdecl ??1type_info@@UAE at XZ(ptr) msvcrt.??1type_info@@UAE at XZ
+@ cdecl -register ??0__non_rtti_object@@QAE at ABV0@@Z(ptr) msvcrt.??0__non_rtti_object@@QAE at ABV0@@Z
+@ cdecl -register ??0__non_rtti_object@@QAE at PBD@Z(ptr) msvcrt.??0__non_rtti_object@@QAE at PBD@Z
+@ cdecl -register ??0bad_cast@@QAE at ABQBD@Z(ptr) msvcrt.??0bad_cast@@QAE at ABQBD@Z
+@ cdecl -register ??0bad_cast@@QAE at ABV0@@Z(ptr) msvcrt.??0bad_cast@@QAE at ABV0@@Z
+@ cdecl -register ??0bad_typeid@@QAE at ABV0@@Z(ptr) msvcrt.??0bad_typeid@@QAE at ABV0@@Z
+@ cdecl -register ??0bad_typeid@@QAE at PBD@Z(ptr) msvcrt.??0bad_typeid@@QAE at PBD@Z
+@ cdecl -register ??0exception@@QAE at ABQBD@Z(ptr) msvcrt.??0exception@@QAE at ABQBD@Z
+@ cdecl -register ??0exception@@QAE at ABV0@@Z(ptr) msvcrt.??0exception@@QAE at ABV0@@Z
+@ cdecl -register ??0exception@@QAE at XZ() msvcrt.??0exception@@QAE at XZ
+@ cdecl -register ??1__non_rtti_object@@UAE at XZ() msvcrt.??1__non_rtti_object@@UAE at XZ
+@ cdecl -register ??1bad_cast@@UAE at XZ() msvcrt.??1bad_cast@@UAE at XZ
+@ cdecl -register ??1bad_typeid@@UAE at XZ() msvcrt.??1bad_typeid@@UAE at XZ
+@ cdecl -register ??1exception@@UAE at XZ() msvcrt.??1exception@@UAE at XZ
+@ cdecl -register ??1type_info@@UAE at XZ() msvcrt.??1type_info@@UAE at XZ
@ cdecl ??2 at YAPAXI@Z(long) msvcrt.??2 at YAPAXI@Z
@ cdecl ??2 at YAPAXIHPBDH@Z(long) msvcrt.??2 at YAPAXIHPBDH@Z
@ cdecl ??3 at YAXPAX@Z(ptr) msvcrt.??3 at YAXPAX@Z
-@ cdecl ??4__non_rtti_object@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcrt.??4__non_rtti_object@@QAEAAV0 at ABV0@@Z
-@ cdecl ??4bad_cast@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcrt.??4bad_cast@@QAEAAV0 at ABV0@@Z
-@ cdecl ??4bad_typeid@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcrt.??4bad_typeid@@QAEAAV0 at ABV0@@Z
-@ cdecl ??4exception@@QAEAAV0 at ABV0@@Z(ptr ptr) msvcrt.??4exception@@QAEAAV0 at ABV0@@Z
-@ stdcall ??8type_info@@QBEHABV0@@Z(ptr ptr) msvcrt.??8type_info@@QBEHABV0@@Z
-@ stdcall ??9type_info@@QBEHABV0@@Z(ptr ptr) msvcrt.??9type_info@@QBEHABV0@@Z
+@ cdecl -register ??4__non_rtti_object@@QAEAAV0 at ABV0@@Z(ptr) msvcrt.??4__non_rtti_object@@QAEAAV0 at ABV0@@Z
+@ cdecl -register ??4bad_cast@@QAEAAV0 at ABV0@@Z(ptr) msvcrt.??4bad_cast@@QAEAAV0 at ABV0@@Z
+@ cdecl -register ??4bad_typeid@@QAEAAV0 at ABV0@@Z(ptr) msvcrt.??4bad_typeid@@QAEAAV0 at ABV0@@Z
+@ cdecl -register ??4exception@@QAEAAV0 at ABV0@@Z(ptr) msvcrt.??4exception@@QAEAAV0 at ABV0@@Z
+@ stdcall -register ??8type_info@@QBEHABV0@@Z(ptr) msvcrt.??8type_info@@QBEHABV0@@Z
+@ stdcall -register ??9type_info@@QBEHABV0@@Z(ptr) msvcrt.??9type_info@@QBEHABV0@@Z
@ stub ??_7__non_rtti_object@@6B@
@ stub ??_7bad_cast@@6B@
@ stub ??_7bad_typeid@@6B@
@ stub ??_7exception@@6B@
-@ cdecl ??_E__non_rtti_object@@UAEPAXI at Z(ptr long) msvcrt.??_E__non_rtti_object@@UAEPAXI at Z
+@ cdecl -register ??_E__non_rtti_object@@UAEPAXI at Z(long) msvcrt.??_E__non_rtti_object@@UAEPAXI at Z
@ stub ??_Ebad_cast@@UAEPAXI at Z #(ptr long)
@ stub ??_Ebad_typeid@@UAEPAXI at Z #(ptr long)
-@ cdecl ??_Eexception@@UAEPAXI at Z(ptr long) msvcrt.??_Eexception@@UAEPAXI at Z
-@ cdecl ??_G__non_rtti_object@@UAEPAXI at Z(ptr long) msvcrt.??_G__non_rtti_object@@UAEPAXI at Z
+@ cdecl -register ??_Eexception@@UAEPAXI at Z(long) msvcrt.??_Eexception@@UAEPAXI at Z
+@ cdecl -register ??_G__non_rtti_object@@UAEPAXI at Z(long) msvcrt.??_G__non_rtti_object@@UAEPAXI at Z
@ stub ??_Gbad_cast@@UAEPAXI at Z #(ptr long)
@ stub ??_Gbad_typeid@@UAEPAXI at Z #(ptr long)
-@ cdecl ??_Gexception@@UAEPAXI at Z(ptr long) msvcrt.??_Gexception@@UAEPAXI at Z
+@ cdecl -register ??_Gexception@@UAEPAXI at Z(long) msvcrt.??_Gexception@@UAEPAXI at Z
@ cdecl ?_query_new_handler@@YAP6AHI at ZXZ() msvcrt.?_query_new_handler@@YAP6AHI at ZXZ
@ cdecl ?_query_new_mode@@YAHXZ() msvcrt.?_query_new_mode@@YAHXZ
@ cdecl ?_set_new_handler@@YAP6AHI at ZP6AHI@Z at Z(ptr) msvcrt.?_set_new_handler@@YAP6AHI at ZP6AHI@Z at Z
@ cdecl ?_set_new_mode@@YAHH at Z(long) msvcrt.?_set_new_mode@@YAHH at Z
@ cdecl ?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0 at Z@Z(ptr) msvcrt.?_set_se_translator@@YAP6AXIPAU_EXCEPTION_POINTERS@@@ZP6AXI0 at Z@Z
@ stub ?before at type_info@@QBEHABV1@@Z #(ptr ptr) stdcall
-@ stdcall ?name at type_info@@QBEPBDXZ(ptr) msvcrt.?name at type_info@@QBEPBDXZ
-@ stdcall ?raw_name at type_info@@QBEPBDXZ(ptr) msvcrt.?raw_name at type_info@@QBEPBDXZ
+@ stdcall -register ?name at type_info@@QBEPBDXZ() msvcrt.?name at type_info@@QBEPBDXZ
+@ stdcall -register ?raw_name at type_info@@QBEPBDXZ() msvcrt.?raw_name at type_info@@QBEPBDXZ
@ cdecl ?set_new_handler@@YAP6AXXZP6AXXZ at Z(ptr) msvcrt.?set_new_handler@@YAP6AXXZP6AXXZ at Z
@ cdecl ?set_terminate@@YAP6AXXZP6AXXZ at Z(ptr) msvcrt.?set_terminate@@YAP6AXXZP6AXXZ at Z
@ cdecl ?set_unexpected@@YAP6AXXZP6AXXZ at Z(ptr) msvcrt.?set_unexpected@@YAP6AXXZP6AXXZ at Z
@ cdecl ?terminate@@YAXXZ() msvcrt.?terminate@@YAXXZ
@ cdecl ?unexpected@@YAXXZ() msvcrt.?unexpected@@YAXXZ
-@ cdecl ?what at exception@@UBEPBDXZ(ptr) msvcrt.?what at exception@@UBEPBDXZ
+@ cdecl -register ?what at exception@@UBEPBDXZ() msvcrt.?what at exception@@UBEPBDXZ
@ cdecl _CIacos() msvcrt._CIacos
@ cdecl _CIasin() msvcrt._CIasin
@ cdecl _CIatan() msvcrt._CIatan
More information about the wine-patches
mailing list