PATCH: avoid ebx clobbered in exception handler

Marcus Meissner marcus at jet.franken.de
Sun Sep 24 23:43:41 CDT 2006


Hi,

RawShooter Premiums copy protection apparently clobbers
the PIC register EBX in its exceptionhandlers occasionaly.

This workaround helps.

Ciao, Marcus

---

 dlls/ntdll/signal_i386.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

a8111aa6c5b259d8470c2030aee67910a55e86d3
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index 6ff7e39..578a4d0 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -1482,6 +1482,7 @@ __ASM_GLOBAL_FUNC( EXC_CallHandler,
 "	pushl	%ebp\n"
 "	movl	%esp, %ebp\n"
 "	subl    $4,%esp\n"
+"	pushl	%ebx\n"
 "	movl	28(%ebp), %edx\n" /* ugly hack to pass the 6th param needed because of Shrinker */
 "	pushl	24(%ebp)\n"
 "	pushl	20(%ebp)\n"
@@ -1489,6 +1490,7 @@ __ASM_GLOBAL_FUNC( EXC_CallHandler,
 "	pushl	12(%ebp)\n"
 "	pushl	8(%ebp)\n"
 "	call	" __ASM_NAME("call_exception_handler") "\n"
+"	popl	%ebx\n"
 "	leave\n"
 "	ret\n"
 );
-- 
1.2.4




More information about the wine-patches mailing list