summaryrefslogtreecommitdiffstats
path: root/src/code-generation.c
diff options
context:
space:
mode:
authorkugwa <kugwa2000@gmail.com>2016-01-02 20:30:08 +0800
committerkugwa <kugwa2000@gmail.com>2016-01-02 20:30:08 +0800
commit5268c4c6dceedf3df1c3e54969da6a0b248e79b9 (patch)
tree9c50a9dc17ba48787090bb48285ba613c9b99ab7 /src/code-generation.c
parentefb16c6e87bec51fbd81b7311bffb33f4c837665 (diff)
downloadcompiler2015-5268c4c6dceedf3df1c3e54969da6a0b248e79b9.tar.gz
compiler2015-5268c4c6dceedf3df1c3e54969da6a0b248e79b9.tar.zst
compiler2015-5268c4c6dceedf3df1c3e54969da6a0b248e79b9.zip
Generate code for function calls
Diffstat (limited to 'src/code-generation.c')
-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 4075822..4b10015 100644
--- a/src/code-generation.c
+++ b/src/code-generation.c
@@ -500,6 +500,9 @@ static void generate_statement(
state, current_offset);
break;
case CCMMC_KIND_STMT_FUNCTION_CALL:
+ ccmmc_register_caller_save(state->reg_pool);
+ fprintf(state->asm_output, "\tbl\t%s\n", stmt->child->value_id.name);
+ ccmmc_register_caller_load(state->reg_pool);
break;
case CCMMC_KIND_STMT_RETURN:
break;