Commit d0950169 authored by Alexandre Julliard's avatar Alexandre Julliard

wow64: Always use a .seh handler in cpu_simulate().

parent d2c0efe1
...@@ -999,8 +999,7 @@ __ASM_GLOBAL_FUNC( cpu_simulate_handler, ...@@ -999,8 +999,7 @@ __ASM_GLOBAL_FUNC( cpu_simulate_handler,
"mov x19, x2\n\t" /* record */ "mov x19, x2\n\t" /* record */
"bl RtlUnwind\n\t" "bl RtlUnwind\n\t"
"brk #1" ) "brk #1" )
#else
#elif defined __WINE_PE_BUILD
extern void DECLSPEC_NORETURN cpu_simulate( void (*func)(void) ); extern void DECLSPEC_NORETURN cpu_simulate( void (*func)(void) );
__ASM_GLOBAL_FUNC( cpu_simulate, __ASM_GLOBAL_FUNC( cpu_simulate,
"subq $0x28, %rsp\n\t" "subq $0x28, %rsp\n\t"
...@@ -1026,28 +1025,6 @@ __ASM_GLOBAL_FUNC( cpu_simulate_handler, ...@@ -1026,28 +1025,6 @@ __ASM_GLOBAL_FUNC( cpu_simulate_handler,
"movq %rsi,%r8\n\t" /* record */ "movq %rsi,%r8\n\t" /* record */
"call RtlUnwind\n\t" "call RtlUnwind\n\t"
"int3" ) "int3" )
#else
static LONG CALLBACK simulate_filter( EXCEPTION_POINTERS *ptrs )
{
Wow64PassExceptionToGuest( ptrs );
return EXCEPTION_EXECUTE_HANDLER;
}
static void cpu_simulate( void (*func)(void) )
{
for (;;)
{
__TRY
{
func();
}
__EXCEPT( simulate_filter )
{
/* restart simulation loop */
}
__ENDTRY
}
}
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment