summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tcg/tcg.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/tcg/tcg.c b/tcg/tcg.c
index 73a649ac86..3d74809190 100644
--- a/tcg/tcg.c
+++ b/tcg/tcg.c
@@ -1385,16 +1385,12 @@ 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);
- 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);
- }
+ 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: