Implement thiscall wrapper for MSVC

svn path=/branches/cmake-bringup/; revision=49838
This commit is contained in:
Timo Kreuzer 2010-11-28 10:14:51 +00:00
parent b8702f60f7
commit a916747152
2 changed files with 62 additions and 8 deletions

View file

@ -65,14 +65,7 @@ typedef struct _rtti_object_locator
#define THISCALL_NAME(func) __ASM_NAME("__thiscall_" #func)
#ifdef _MSC_VER
#pragma message ("DEFINE_THISCALL_WRAPPER broken")
#define DEFINE_THISCALL_WRAPPER(func,args) \
extern void THISCALL(func)(void);
// __ASM_GLOBAL_FUNC(__thiscall_ ## func, \
// pop eax \
// push ecx \
// push eax \
// jmp __ASM_NAME(#func) __ASM_STDCALL(args) )
#include <internal/wine_msc.h>
#else
#define DEFINE_THISCALL_WRAPPER(func,args) \
extern void THISCALL(func)(void); \
@ -671,6 +664,7 @@ void * __stdcall MSVCRT_type_info_vector_dtor(type_info * _this, unsigned int fl
/* vtables */
#ifdef __GNUC__
#ifdef _WIN64
#define __ASM_VTABLE(name,funcs) \
@ -714,6 +708,16 @@ __ASM_EXCEPTION_VTABLE(__non_rtti_object)
#ifndef __GNUC__
}
#endif
#endif
#ifdef _MSC_VER
#pragma message ("HAXX!")
const vtable_ptr MSVCRT_exception_vtable;
const vtable_ptr MSVCRT_bad_typeid_vtable;
const vtable_ptr MSVCRT_bad_cast_vtable;
const vtable_ptr MSVCRT___non_rtti_object_vtable;
const vtable_ptr MSVCRT_type_info_vtable;
#endif
/* Static RTTI for exported objects */