From: Aurelien Jarno Date: Tue, 29 Sep 2009 15:00:28 +0000 (+0200) Subject: TCG: fix DEF2 macro X-Git-Tag: TizenStudio_2.0_p2.3~7374 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4b975e8551c3725fab6e02874415b8b7b5a9830e;p=sdk%2Femulator%2Fqemu.git TCG: fix DEF2 macro Signed-off-by: Aurelien Jarno --- diff --git a/tcg/tcg.c b/tcg/tcg.c index 93066e2..73a649a 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -67,7 +67,7 @@ static void patch_reloc(uint8_t *code_ptr, int type, static TCGOpDef tcg_op_defs[] = { #define DEF(s, n, copy_size) { #s, 0, 0, n, n, 0, copy_size }, -#define DEF2(s, iargs, oargs, cargs, flags) { #s, iargs, oargs, cargs, iargs + oargs + cargs, flags, 0 }, +#define DEF2(s, oargs, iargs, cargs, flags) { #s, oargs, iargs, cargs, iargs + oargs + cargs, flags, 0 }, #include "tcg-opc.h" #undef DEF #undef DEF2 @@ -1385,12 +1385,16 @@ static void temp_save(TCGContext *s, int temp, TCGRegSet allocated_regs) ts->val_type = TEMP_VAL_MEM; break; case TEMP_VAL_CONST: - reg = tcg_reg_alloc(s, tcg_target_available_regs[ts->type], - allocated_regs); if (!ts->mem_allocated) temp_allocate_frame(s, temp); - tcg_out_movi(s, ts->type, reg, ts->val); - tcg_out_st(s, ts->type, reg, ts->mem_reg, ts->mem_offset); + if (ts->type == TCG_TYPE_I32) { + tcg_out_sti(s, ts->type, ts->val, ts->mem_reg, ts->mem_offset); + } else { + reg = tcg_reg_alloc(s, tcg_target_available_regs[ts->type], + allocated_regs); + tcg_out_movi(s, ts->type, reg, ts->val); + tcg_out_st(s, ts->type, reg, ts->mem_reg, ts->mem_offset); + } ts->val_type = TEMP_VAL_MEM; break; case TEMP_VAL_MEM: