winebuild: Use stdcall for fastcall wrappers.
This allows catching mismatched argument lists. Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
5e1b3b2f5a
commit
26bbbb7b73
|
@ -36,13 +36,13 @@ WINE_DEFAULT_DEBUG_CHANNEL(ntoskrnl);
|
||||||
|
|
||||||
#ifdef __i386__
|
#ifdef __i386__
|
||||||
#define DEFINE_FASTCALL1_WRAPPER(func) \
|
#define DEFINE_FASTCALL1_WRAPPER(func) \
|
||||||
__ASM_GLOBAL_FUNC( __fastcall_ ## func, \
|
__ASM_STDCALL_FUNC( __fastcall_ ## func, 4, \
|
||||||
"popl %eax\n\t" \
|
"popl %eax\n\t" \
|
||||||
"pushl %ecx\n\t" \
|
"pushl %ecx\n\t" \
|
||||||
"pushl %eax\n\t" \
|
"pushl %eax\n\t" \
|
||||||
"jmp " __ASM_NAME(#func) __ASM_STDCALL(4) )
|
"jmp " __ASM_NAME(#func) __ASM_STDCALL(4) )
|
||||||
#define DEFINE_FASTCALL_WRAPPER(func,args) \
|
#define DEFINE_FASTCALL_WRAPPER(func,args) \
|
||||||
__ASM_GLOBAL_FUNC( __fastcall_ ## func, \
|
__ASM_STDCALL_FUNC( __fastcall_ ## func, args, \
|
||||||
"popl %eax\n\t" \
|
"popl %eax\n\t" \
|
||||||
"pushl %edx\n\t" \
|
"pushl %edx\n\t" \
|
||||||
"pushl %ecx\n\t" \
|
"pushl %ecx\n\t" \
|
||||||
|
|
|
@ -52,7 +52,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(ntdll);
|
||||||
|
|
||||||
#ifdef __i386__
|
#ifdef __i386__
|
||||||
#define DEFINE_FASTCALL_WRAPPER(func,args) \
|
#define DEFINE_FASTCALL_WRAPPER(func,args) \
|
||||||
__ASM_GLOBAL_FUNC( __fastcall_ ## func, \
|
__ASM_STDCALL_FUNC( __fastcall_ ## func, args, \
|
||||||
"popl %eax\n\t" \
|
"popl %eax\n\t" \
|
||||||
"pushl %edx\n\t" \
|
"pushl %edx\n\t" \
|
||||||
"pushl %ecx\n\t" \
|
"pushl %ecx\n\t" \
|
||||||
|
|
|
@ -30,13 +30,13 @@ struct _OBJECT_TYPE {
|
||||||
|
|
||||||
#ifdef __i386__
|
#ifdef __i386__
|
||||||
#define DEFINE_FASTCALL1_WRAPPER(func) \
|
#define DEFINE_FASTCALL1_WRAPPER(func) \
|
||||||
__ASM_GLOBAL_FUNC( __fastcall_ ## func, \
|
__ASM_STDCALL_FUNC( __fastcall_ ## func, 4, \
|
||||||
"popl %eax\n\t" \
|
"popl %eax\n\t" \
|
||||||
"pushl %ecx\n\t" \
|
"pushl %ecx\n\t" \
|
||||||
"pushl %eax\n\t" \
|
"pushl %eax\n\t" \
|
||||||
"jmp " __ASM_NAME(#func) __ASM_STDCALL(4) )
|
"jmp " __ASM_NAME(#func) __ASM_STDCALL(4) )
|
||||||
#define DEFINE_FASTCALL_WRAPPER(func,args) \
|
#define DEFINE_FASTCALL_WRAPPER(func,args) \
|
||||||
__ASM_GLOBAL_FUNC( __fastcall_ ## func, \
|
__ASM_STDCALL_FUNC( __fastcall_ ## func, args, \
|
||||||
"popl %eax\n\t" \
|
"popl %eax\n\t" \
|
||||||
"pushl %edx\n\t" \
|
"pushl %edx\n\t" \
|
||||||
"pushl %ecx\n\t" \
|
"pushl %ecx\n\t" \
|
||||||
|
|
|
@ -968,7 +968,7 @@ void output_def_file( DLLSPEC *spec, int include_private )
|
||||||
else if (strcmp(name, odp->link_name)) /* try to reduce output */
|
else if (strcmp(name, odp->link_name)) /* try to reduce output */
|
||||||
{
|
{
|
||||||
output( "=%s", odp->link_name );
|
output( "=%s", odp->link_name );
|
||||||
if (!kill_at && target_cpu == CPU_x86 && !(odp->flags & (FLAG_THISCALL | FLAG_FASTCALL)))
|
if (!kill_at && target_cpu == CPU_x86 && !(odp->flags & FLAG_THISCALL))
|
||||||
output( "@%d", at_param );
|
output( "@%d", at_param );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue