diff options
author | kugwa <kugwa2000@gmail.com> | 2016-01-21 18:45:08 +0800 |
---|---|---|
committer | kugwa <kugwa2000@gmail.com> | 2016-01-21 18:46:39 +0800 |
commit | 0b2af19e14053a2d02447a3fec93b2cf24a799aa (patch) | |
tree | 6940ed2582e3fb1cfa91162873899882945aead0 /src | |
parent | 47ce6d2cb6c10aad10e6e4c7eb554e34e0c96e35 (diff) | |
download | compiler2015-0b2af19e14053a2d02447a3fec93b2cf24a799aa.tar compiler2015-0b2af19e14053a2d02447a3fec93b2cf24a799aa.tar.gz compiler2015-0b2af19e14053a2d02447a3fec93b2cf24a799aa.tar.bz2 compiler2015-0b2af19e14053a2d02447a3fec93b2cf24a799aa.tar.lz compiler2015-0b2af19e14053a2d02447a3fec93b2cf24a799aa.tar.xz compiler2015-0b2af19e14053a2d02447a3fec93b2cf24a799aa.tar.zst compiler2015-0b2af19e14053a2d02447a3fec93b2cf24a799aa.zip |
Add missing _caller_save() and _save_arguments()
Diffstat (limited to 'src')
-rw-r--r-- | src/code-generation.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/code-generation.c b/src/code-generation.c index 644e7c5..a0551d9 100644 --- a/src/code-generation.c +++ b/src/code-generation.c @@ -545,6 +545,9 @@ static void call_function(CcmmcAst *id, CcmmcState *state, for (i = 0; i < call_param_count; i++) ccmmc_register_free(state->reg_pool, dists[i], current_offset); return; + } else { + ccmmc_register_save_arguments(state->reg_pool, stored_param_count); + ccmmc_register_caller_save(state->reg_pool); } fprintf(state->asm_output, "\tbl\t%s\n", func_name); ccmmc_register_caller_load(state->reg_pool); |