ntdll: Store eflags in x86_64 syscall frame.

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:58:02 +01:00 committed by Alexandre Julliard
parent 6d2f08cfcb
commit 9bdd02de0c
2 changed files with 4 additions and 2 deletions

View File

@ -1947,7 +1947,7 @@ NTSTATUS WINAPI NtGetContextThread( HANDLE handle, CONTEXT *context )
context->Rsp = (ULONG64)&frame->ret_addr;
context->Rbp = frame->rbp;
context->Rip = frame->thunk_addr;
context->EFlags = 0x202;
context->EFlags = frame->eflags;
__asm__( "movw %%cs,%0" : "=g" (context->SegCs) );
__asm__( "movw %%ss,%0" : "=g" (context->SegSs) );
context->ContextFlags |= CONTEXT_CONTROL;

View File

@ -1508,7 +1508,9 @@ void output_syscalls( DLLSPEC *spec )
output_cfi( ".cfi_rel_offset %%rbp,0" );
output( "\tmovq %%rsp,%%rbp\n" );
output_cfi( ".cfi_def_cfa_register %%rbp" );
output( "\tleaq -0x2a8(%%rbp),%%rsp\n" );
output( "\tleaq -0x10(%%rbp),%%rsp\n" );
output( "\tpushfq\n" );
output( "\tsubq $0x280,%%rsp\n" );
output( "\tandq $~63,%%rsp\n" );
output( "\tmovq %%rbx,-0x90(%%rbp)\n" );
output_cfi( ".cfi_rel_offset %%rbx,-144" );