diff options
| author | Zhang Boyang <zhangboyang.id@gmail.com> | 2017-08-21 19:38:11 +0800 |
|---|---|---|
| committer | Zhang Boyang <zhangboyang.id@gmail.com> | 2017-08-21 19:38:11 +0800 |
| commit | b8fe8fc2105455eb5004be89fa8575aa928a18f3 (patch) | |
| tree | 558e4ca701a5b0dea33ae3018d09f07a46965796 /i386-gen.c | |
| parent | ac41e015f105382acccd0c9320407be42342ac6f (diff) | |
| download | tinycc-b8fe8fc2105455eb5004be89fa8575aa928a18f3.tar.gz tinycc-b8fe8fc2105455eb5004be89fa8575aa928a18f3.tar.bz2 | |
called function should pop the arguments when using fastcall
Diffstat (limited to 'i386-gen.c')
| -rw-r--r-- | i386-gen.c | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -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) |
