Unified · Split
| @@ -504,7 +504,7 @@ ST_FUNC void gfunc_call(int nb_args) · 503 unmodified lines | ||
| 504 | 504 | #endif |
| 505 | 505 | gcall_or_jmp(0); |
| 506 | 506 | |
| 507 | − if (args_size && func_call != FUNC_STDCALL) | |
| 507 | + if (args_size && func_call != FUNC_STDCALL && func_call != FUNC_FASTCALLW) | |
| 508 | 508 | gadd_sp(args_size); |
| 509 | 509 | vtop--; |
| 510 | 510 | } |
| @@ -586,8 +586,8 @@ ST_FUNC void gfunc_prolog(CType *func_type) · 75 unmodified lines | ||
| 586 | 586 | param_index++; |
| 587 | 587 | } |
| 588 | 588 | func_ret_sub = 0; |
| 589 | − /* pascal type call ? */ | |
| 590 | − if (func_call == FUNC_STDCALL) | |
| 589 | + /* pascal type call or fastcall ? */ | |
| 590 | + if (func_call == FUNC_STDCALL || func_call == FUNC_FASTCALLW) | |
| 591 | 591 | func_ret_sub = addr - 8; |
| 592 | 592 | #ifndef TCC_TARGET_PE |
| 593 | 593 | else if (func_vc) |