aboutsummaryrefslogtreecommitdiff
path: root/target-cris/translate.c
diff options
context:
space:
mode:
authoredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>2008-10-27 13:55:28 +0000
committeredgar_igl <edgar_igl@c046a42c-6fe2-441c-8c8c-71466251a162>2008-10-27 13:55:28 +0000
commit43d7ac4e74e7b368ab0cc5beb45a0360ef56271c (patch)
tree2c7385ae5fed92ac3a18a779441cf71a0d7ecfb1 /target-cris/translate.c
parentc5631f487d5d3e328ca537be169d47d33e0fdf81 (diff)
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
Diffstat (limited to 'target-cris/translate.c')
-rw-r--r--target-cris/translate.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/target-cris/translate.c b/target-cris/translate.c
index fe54df4d80..71267305f3 100644
--- a/target-cris/translate.c
+++ b/target-cris/translate.c
@@ -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;
}