OSDN Git Service

CRIS: Avoid cpu_T[1] for move_r.
authoredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 27 Oct 2008 13:55:28 +0000 (13:55 +0000)
committeredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>
Mon, 27 Oct 2008 13:55:28 +0000 (13:55 +0000)
Signed-off-by: Edgar E. Iglesias <edgar.iglesias@gmail.com>
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5548 c046a42c-6fe2-441c-8c8c-71466251a162

target-cris/translate.c

index fe54df4..7126730 100644 (file)
@@ -1330,7 +1330,7 @@ static inline void do_postinc (DisasContext *dc, int size)
 }
 
 static inline void dec_prep_move_r(DisasContext *dc, int rs, int rd,
-                           int size, int s_ext, TCGv dst)
+                                  int size, int s_ext, TCGv dst)
 {
        if (s_ext)
                t_gen_sext(dst, cpu_R[rs], size);
@@ -1603,10 +1603,14 @@ static unsigned int dec_move_r(DisasContext *dc)
                cris_update_result(dc, cpu_R[dc->op2]);
        }
        else {
-               dec_prep_move_r(dc, dc->op1, dc->op2, size, 0, cpu_T[1]);
+               TCGv t0;
+
+               t0 = tcg_temp_new(TCG_TYPE_TL);
+               dec_prep_move_r(dc, dc->op1, dc->op2, size, 0, t0);
                cris_alu(dc, CC_OP_MOVE,
                         cpu_R[dc->op2],
-                        cpu_R[dc->op2], cpu_T[1], size);
+                        cpu_R[dc->op2], t0, size);
+               tcg_temp_free(t0);
        }
        return 2;
 }