summaryrefslogtreecommitdiffstats
path: root/src/code-generation.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/code-generation.c')
-rw-r--r--src/code-generation.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/code-generation.c b/src/code-generation.c
index 4b10015..5b95a74 100644
--- a/src/code-generation.c
+++ b/src/code-generation.c
@@ -148,7 +148,10 @@ static void generate_expression(CcmmcAst *expr, CcmmcState *state,
if (expr->type_node == CCMMC_AST_NODE_STMT &&
expr->value_stmt.kind == CCMMC_KIND_STMT_FUNCTION_CALL) {
- // TODO: function call
+ ccmmc_register_caller_save(state->reg_pool);
+ fprintf(state->asm_output, "\tbl\t%s\n", expr->child->value_id.name);
+ ccmmc_register_caller_load(state->reg_pool);
+ fprintf(state->asm_output, "\tmov\t%s, w0\n", result);
assert(false);
}