summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/code-generation.c3
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);