Alexandre Julliard : ntdll: Avoid pushl %esp instruction in RtlUnwind prolog.
Alexandre Julliard
julliard at winehq.org
Mon May 14 06:54:25 CDT 2018
Module: wine
Branch: stable
Commit: bf25842dd2317c4b89f1585fcb298da6edf6fe5e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=bf25842dd2317c4b89f1585fcb298da6edf6fe5e
Author: Alexandre Julliard <julliard at winehq.org>
Date: Fri Mar 9 13:47:01 2018 -0600
ntdll: Avoid pushl %esp instruction in RtlUnwind prolog.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
(cherry picked from commit 342e2cabd21c5a836683ac30e260ec4944eeac6b)
Signed-off-by: Michael Stefaniuc <mstefani at winehq.org>
---
dlls/ntdll/signal_i386.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index dcca0f5..79d6e32 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -2762,7 +2762,9 @@ __ASM_STDCALL_FUNC( RtlUnwind, 16,
"movl %esp,%ebp\n\t"
__ASM_CFI(".cfi_def_cfa_register %ebp\n\t")
"leal -(0x2cc+8)(%esp),%esp\n\t" /* sizeof(CONTEXT) + alignment */
- "pushl %esp\n\t" /* context */
+ "pushl %eax\n\t"
+ "leal 4(%esp),%eax\n\t" /* context */
+ "xchgl %eax,(%esp)\n\t"
"call " __ASM_NAME("RtlCaptureContext") __ASM_STDCALL(4) "\n\t"
"leal 24(%ebp),%eax\n\t"
"movl %eax,0xc4(%esp)\n\t" /* context->Esp */
More information about the wine-cvs
mailing list