Jacek Caban : winebuild: Restore all x86_64 control registers in syscall dispatcher.
Alexandre Julliard
julliard at winehq.org
Wed Feb 17 16:23:33 CST 2021
Module: wine
Branch: master
Commit: 9b6f715b28a5fad471a7c4800881f93ecf28787e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=9b6f715b28a5fad471a7c4800881f93ecf28787e
Author: Jacek Caban <jacek at codeweavers.com>
Date: Mon Feb 15 21:59:02 2021 +0100
winebuild: Restore all x86_64 control registers in syscall dispatcher.
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
tools/winebuild/import.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/tools/winebuild/import.c b/tools/winebuild/import.c
index 863d17c2734..6b5f704c8f1 100644
--- a/tools/winebuild/import.c
+++ b/tools/winebuild/import.c
@@ -1564,11 +1564,12 @@ void output_syscalls( DLLSPEC *spec )
output_cfi( ".cfi_same_value %%rsi" );
output( "\tmovq -0x90(%%rbp),%%rbx\n" );
output_cfi( ".cfi_same_value %%rbx" );
+ output( "\tleaq -0x28(%%rbp),%%rsp\n" );
output_cfi( ".cfi_def_cfa_register %%rsp" );
- output( "\tleave\n" );
- output_cfi( ".cfi_adjust_cfa_offset -8" );
+ output_cfi( ".cfi_adjust_cfa_offset 40" );
+ output( "\tmovq (%%rbp),%%rbp\n" );
output_cfi( ".cfi_same_value %%rbp" );
- output( "\tret\n" );
+ output( "\tiretq\n" );
output( "3:\tmovl $0x%x,%%eax\n", invalid_param );
output( "\tjmp 2b\n" );
break;
More information about the wine-cvs
mailing list