qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [COMMIT 6692b04] TCG: fix DEF2 macro


From: Anthony Liguori
Subject: [Qemu-commits] [COMMIT 6692b04] TCG: fix DEF2 macro
Date: Wed, 30 Sep 2009 12:15:24 -0000

From: Aurelien Jarno <address@hidden>

Signed-off-by: Aurelien Jarno <address@hidden>

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:




reply via email to

[Prev in Thread] Current Thread [Next in Thread]