]> xenbits.xensource.com Git - qemu-xen-4.1-testing.git/commitdiff
32-bit host sign extension fix (Juergen Lock).
authorpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 4 Mar 2008 23:52:47 +0000 (23:52 +0000)
committerpbrook <pbrook@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 4 Mar 2008 23:52:47 +0000 (23:52 +0000)
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4017 c046a42c-6fe2-441c-8c8c-71466251a162

tcg/tcg-op.h

index e5047418a620fb66b4503e4509ab2ec050ec6023..602a6bf9ce10a78b27daca743b6195400b6e02cb 100644 (file)
@@ -1172,7 +1172,7 @@ static inline void tcg_gen_qemu_ld8s(TCGv ret, TCGv addr, int mem_index)
     tcg_gen_op3i(INDEX_op_qemu_ld8s, ret, addr, mem_index);
 #else
     tcg_gen_op4i(INDEX_op_qemu_ld8s, ret, addr, TCGV_HIGH(addr), mem_index);
-    tcg_gen_ext8s_i32(TCGV_HIGH(ret), ret);
+    tcg_gen_sari_i32(TCGV_HIGH(ret), ret, 31);
 #endif
 }
 
@@ -1192,7 +1192,7 @@ static inline void tcg_gen_qemu_ld16s(TCGv ret, TCGv addr, int mem_index)
     tcg_gen_op3i(INDEX_op_qemu_ld16s, ret, addr, mem_index);
 #else
     tcg_gen_op4i(INDEX_op_qemu_ld16s, ret, addr, TCGV_HIGH(addr), mem_index);
-    tcg_gen_ext16s_i32(TCGV_HIGH(ret), ret);
+    tcg_gen_sari_i32(TCGV_HIGH(ret), ret, 31);
 #endif
 }