From 2d49791e5e321c4462bd9655e510f392231d25cf Mon Sep 17 00:00:00 2001 From: Ting-Wei Lan Date: Thu, 21 Jan 2016 21:25:50 +0800 Subject: Allow using expressions as arguments of write function --- src/code-generation.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/code-generation.c b/src/code-generation.c index a0551d9..725ee54 100644 --- a/src/code-generation.c +++ b/src/code-generation.c @@ -380,7 +380,7 @@ static const char *call_write(CcmmcAst *id, CcmmcState *state, return "_write_str"; } else if (arg->type_value == CCMMC_AST_VALUE_INT) { dist = ccmmc_register_alloc(state->reg_pool, current_offset); - load_variable(arg, state, dist, current_offset); + generate_expression(arg, state, dist, current_offset); dist_reg = ccmmc_register_lock(state->reg_pool, dist); fprintf(state->asm_output, "\tmov\tw0, %s\n", @@ -390,7 +390,7 @@ static const char *call_write(CcmmcAst *id, CcmmcState *state, return "_write_int"; } else if (arg->type_value == CCMMC_AST_VALUE_FLOAT) { dist = ccmmc_register_alloc(state->reg_pool, current_offset); - load_variable(arg, state, dist, current_offset); + generate_expression(arg, state, dist, current_offset); dist_reg = ccmmc_register_lock(state->reg_pool, dist); fprintf(state->asm_output, "\tfmov\ts0, %s\n", -- cgit v1.2.3