Commit 43d7ac4e74e7b368ab0cc5beb45a0360ef56271c

Authored by edgar_igl
1 parent c5631f48

CRIS: Avoid cpu_T[1] for move_r.

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
Showing 1 changed file with 7 additions and 3 deletions
target-cris/translate.c
@@ -1330,7 +1330,7 @@ static inline void do_postinc (DisasContext *dc, int size) @@ -1330,7 +1330,7 @@ static inline void do_postinc (DisasContext *dc, int size)
1330 } 1330 }
1331 1331
1332 static inline void dec_prep_move_r(DisasContext *dc, int rs, int rd, 1332 static inline void dec_prep_move_r(DisasContext *dc, int rs, int rd,
1333 - int size, int s_ext, TCGv dst) 1333 + int size, int s_ext, TCGv dst)
1334 { 1334 {
1335 if (s_ext) 1335 if (s_ext)
1336 t_gen_sext(dst, cpu_R[rs], size); 1336 t_gen_sext(dst, cpu_R[rs], size);
@@ -1603,10 +1603,14 @@ static unsigned int dec_move_r(DisasContext *dc) @@ -1603,10 +1603,14 @@ static unsigned int dec_move_r(DisasContext *dc)
1603 cris_update_result(dc, cpu_R[dc->op2]); 1603 cris_update_result(dc, cpu_R[dc->op2]);
1604 } 1604 }
1605 else { 1605 else {
1606 - dec_prep_move_r(dc, dc->op1, dc->op2, size, 0, cpu_T[1]); 1606 + TCGv t0;
  1607 +
  1608 + t0 = tcg_temp_new(TCG_TYPE_TL);
  1609 + dec_prep_move_r(dc, dc->op1, dc->op2, size, 0, t0);
1607 cris_alu(dc, CC_OP_MOVE, 1610 cris_alu(dc, CC_OP_MOVE,
1608 cpu_R[dc->op2], 1611 cpu_R[dc->op2],
1609 - cpu_R[dc->op2], cpu_T[1], size); 1612 + cpu_R[dc->op2], t0, size);
  1613 + tcg_temp_free(t0);
1610 } 1614 }
1611 return 2; 1615 return 2;
1612 } 1616 }