__wine_push_frame and __wine_pop_frame are only used in x86 specific code in cppexcept.c. Move them there instead of trying to implement them for other architectures.

svn path=/branches/ros-amd64-bringup/; revision=45053
This commit is contained in:
Timo Kreuzer 2010-01-12 20:09:38 +00:00
parent 4f3a2dfc7e
commit cffde6eb86
2 changed files with 13 additions and 26 deletions

View file

@ -39,6 +39,19 @@ DWORD CDECL cxx_frame_handler( PEXCEPTION_RECORD rec, cxx_exception_frame* frame
const cxx_function_descr *descr,
EXCEPTION_REGISTRATION_RECORD* nested_frame, int nested_trylevel );
static inline EXCEPTION_REGISTRATION_RECORD *__wine_push_frame( EXCEPTION_REGISTRATION_RECORD *frame )
{
frame->Next = (struct _EXCEPTION_REGISTRATION_RECORD *)__readfsdword(0);
__writefsdword(0, (unsigned long)frame);
return frame->Next;
}
static inline EXCEPTION_REGISTRATION_RECORD *__wine_pop_frame( EXCEPTION_REGISTRATION_RECORD *frame )
{
__writefsdword(0, (unsigned long)frame->Next);
return frame->Next;
}
/* call a function with a given ebp */
static inline void *call_ebp_func( void *func, void *ebp )
{

View file

@ -59,32 +59,6 @@
#pragma warning(disable:4733)
#endif
static inline EXCEPTION_REGISTRATION_RECORD *__wine_push_frame( EXCEPTION_REGISTRATION_RECORD *frame )
{
#if defined(__i386__)
frame->Next = (struct _EXCEPTION_REGISTRATION_RECORD *)__readfsdword(0);
__writefsdword(0, (unsigned long)frame);
return frame->Next;
#else
NT_TIB *teb = (NT_TIB *)NtCurrentTeb();
frame->Next = teb->ExceptionList;
teb->ExceptionList = frame;
return frame->Next;
#endif
}
static inline EXCEPTION_REGISTRATION_RECORD *__wine_pop_frame( EXCEPTION_REGISTRATION_RECORD *frame )
{
#if defined(__i386__)
__writefsdword(0, (unsigned long)frame->Next);
return frame->Next;
#else
NT_TIB *teb = (NT_TIB *)NtCurrentTeb();
teb->ExceptionList = frame->Next;
return frame->Next;
#endif
}
#ifdef _MSC_VER
#pragma warning(pop)
#endif