diff --git a/i386-gen.c b/i386-gen.c index 3646084..f1d95cd 100644 --- a/i386-gen.c +++ b/i386-gen.c @@ -504,7 +504,7 @@ ST_FUNC void gfunc_call(int nb_args) #endif gcall_or_jmp(0); - if (args_size && func_call != FUNC_STDCALL) + if (args_size && func_call != FUNC_STDCALL && func_call != FUNC_FASTCALLW) gadd_sp(args_size); vtop--; } @@ -586,8 +586,8 @@ ST_FUNC void gfunc_prolog(CType *func_type) param_index++; } func_ret_sub = 0; - /* pascal type call ? */ - if (func_call == FUNC_STDCALL) + /* pascal type call or fastcall ? */ + if (func_call == FUNC_STDCALL || func_call == FUNC_FASTCALLW) func_ret_sub = addr - 8; #ifndef TCC_TARGET_PE else if (func_vc)