Commit 43d7ac4e74e7b368ab0cc5beb45a0360ef56271c
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 | } |