Add some padding in WINPROC_wrapper
Uwe Bonnes
bon at elektron.ikp.physik.tu-darmstadt.de
Tue Aug 31 04:17:54 CDT 2004
Changelog
windows/winproc.c: WINPROC_wrapper
Add some padding between saved registers and the winproc
arguments. Some winprocs may trash the register area.
As Mike Hearn suggested, adding some padding helped with my problem with
WebPACK_42wp30_full_installer.exe. I hope, I found the right way to add that
padding.
Bye
--
Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
Index: wine/windows/winproc.c
===================================================================
RCS file: /home/wine/wine/windows/winproc.c,v
retrieving revision 1.118
diff -u -r1.118 winproc.c
--- wine/windows/winproc.c 31 Aug 2004 00:02:02 -0000 1.118
+++ wine/windows/winproc.c 31 Aug 2004 09:11:36 -0000
@@ -187,13 +187,17 @@
"pushl %edi\n\t"
"pushl %esi\n\t"
"pushl %ebx\n\t"
+ "pushl %ebx\n\t" /*some additional padding, otherwise some
+ winproc (e.g Xilinx WebPACK_42wp30_full_installer.exe)
+ trashes registers */
"pushl 24(%ebp)\n\t"
"pushl 20(%ebp)\n\t"
"pushl 16(%ebp)\n\t"
"pushl 12(%ebp)\n\t"
"movl 8(%ebp),%eax\n\t"
"call *%eax\n\t"
- "leal -12(%ebp),%esp\n\t"
+ "leal -16(%ebp),%esp\n\t"
+ "popl %ebx\n\t"
"popl %ebx\n\t"
"popl %esi\n\t"
"popl %edi\n\t"
More information about the wine-patches
mailing list