_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