winebuild: Restore all x86_64 control registers in syscall dispatcher.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Jacek Caban 2021-02-15 21:59:02 +01:00 committed by Alexandre Julliard
parent b817eb3ec8
commit 9b6f715b28
1 changed files with 4 additions and 3 deletions

View File

@ -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;