Fix data type mixup, spotted by malc.
authorths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 10 Jun 2008 01:18:32 +0000 (01:18 +0000)
committerths <ths@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 10 Jun 2008 01:18:32 +0000 (01:18 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4724 c046a42c-6fe2-441c-8c8c-71466251a162

target-mips/translate.c

index c744c9a..0bd6fd9 100644 (file)
@@ -2595,11 +2595,8 @@ static inline void gen_mfc0_load32 (TCGv t, target_ulong off)
 
 static inline void gen_mfc0_load64 (TCGv t, target_ulong off)
 {
-    TCGv r_tmp = tcg_temp_new(TCG_TYPE_I64);
-
-    tcg_gen_ld_i64(r_tmp, cpu_env, off);
-    tcg_gen_trunc_i64_tl(t, r_tmp);
-    tcg_temp_free(r_tmp);
+    tcg_gen_ld_tl(t, cpu_env, off);
+    tcg_gen_ext32s_tl(t, t);
 }
 
 static inline void gen_mtc0_store32 (TCGv t, target_ulong off)
@@ -2613,11 +2610,8 @@ static inline void gen_mtc0_store32 (TCGv t, target_ulong off)
 
 static inline void gen_mtc0_store64 (TCGv t, target_ulong off)
 {
-    TCGv r_tmp = tcg_temp_new(TCG_TYPE_I64);
-
-    tcg_gen_ext_tl_i64(r_tmp, t);
-    tcg_gen_st_i64(r_tmp, cpu_env, off);
-    tcg_temp_free(r_tmp);
+    tcg_gen_ext32s_tl(t, t);
+    tcg_gen_st_tl(t, cpu_env, off);
 }
 
 static void gen_mfc0 (CPUState *env, DisasContext *ctx, int reg, int sel)