Alexandre Julliard : ntdll: Also store FPU registers in RtlRaiseException( ).
Alexandre Julliard
julliard at winehq.org
Wed Jan 2 16:02:59 CST 2019
Module: wine
Branch: master
Commit: dc80a0032927421d61b95659af570c21439e4a76
URL: https://source.winehq.org/git/wine.git/?a=commit;h=dc80a0032927421d61b95659af570c21439e4a76
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Jan 2 17:24:48 2019 +0100
ntdll: Also store FPU registers in RtlRaiseException().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=44485
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/signal_i386.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index 0719c64..91ecfa7 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -2499,6 +2499,19 @@ NTSTATUS WINAPI NtRaiseException( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL
}
+/*******************************************************************
+ * raise_exception_full_context
+ *
+ * Raise an exception with the full CPU context.
+ */
+void raise_exception_full_context( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL first_chance )
+{
+ save_fpu( context );
+ /* FIXME: extended registers, debug registers */
+ RtlRaiseStatus( NtRaiseException( rec, context, first_chance ));
+}
+
+
/***********************************************************************
* RtlRaiseException (NTDLL.@)
*/
@@ -2520,9 +2533,7 @@ __ASM_STDCALL_FUNC( RtlRaiseException, 4,
"pushl $1\n\t"
"pushl %eax\n\t"
"pushl %ecx\n\t"
- "call " __ASM_NAME("NtRaiseException") __ASM_STDCALL(12) "\n\t"
- "pushl %eax\n\t"
- "call " __ASM_NAME("RtlRaiseStatus") __ASM_STDCALL(4) "\n\t"
+ "call " __ASM_NAME("raise_exception_full_context") "\n\t"
"leave\n\t"
__ASM_CFI(".cfi_def_cfa %esp,4\n\t")
__ASM_CFI(".cfi_same_value %ebp\n\t")
More information about the wine-cvs
mailing list