winebuild: Allow syscalls to use the cdecl convention.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2020-08-25 13:51:37 +02:00
parent a12e308eba
commit 0e7f6e0ed3
2 changed files with 3 additions and 3 deletions

View file

@ -1700,7 +1700,7 @@ void output_syscalls( DLLSPEC *spec )
output( "\tmovl $%s,%%edx\n", asm_name("__wine_syscall") );
}
output( "\tcall *%%edx\n" );
output( "\tret $%u\n", get_args_size( odp ));
output( "\tret $%u\n", odp->type == TYPE_STDCALL ? get_args_size( odp ) : 0 );
break;
case CPU_x86_64:
/* Chromium depends on syscall thunks having the same form as on

View file

@ -323,9 +323,9 @@ static int parse_spec_arguments( ORDDEF *odp, DLLSPEC *spec, int optional )
}
if (odp->flags & FLAG_SYSCALL)
{
if (odp->type != TYPE_STDCALL)
if (odp->type != TYPE_STDCALL && odp->type != TYPE_CDECL)
{
error( "A syscall function must use the stdcall convention\n" );
error( "A syscall function must use either the stdcall or the cdecl convention\n" );
return 0;
}
}