Commit 701e1b6f authored by Zebediah Figura's avatar Zebediah Figura Committed by Alexandre Julliard

msvcrt: Avoid using inline assembly in continue_after_catch().

parent dac8036f
......@@ -172,12 +172,14 @@ __ASM_GLOBAL_FUNC( call_copy_ctor,
"ret" );
/* continue execution to the specified address after exception is caught */
static inline void DECLSPEC_NORETURN continue_after_catch( cxx_exception_frame* frame, void *addr )
{
__asm__ __volatile__("movl -4(%0),%%esp; leal 12(%0),%%ebp; jmp *%1"
: : "r" (frame), "a" (addr) );
for (;;) ; /* unreached */
}
extern void DECLSPEC_NORETURN continue_after_catch( cxx_exception_frame* frame, void *addr );
__ASM_GLOBAL_FUNC( continue_after_catch,
"movl 4(%esp), %edx\n\t"
"movl 8(%esp), %eax\n\t"
"movl -4(%edx), %esp\n\t"
"leal 12(%edx), %ebp\n\t"
"jmp *%eax" );
static inline void call_finally_block( void *code_block, void *base_ptr )
{
......
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