Commit 21fc3cfc10a016a8cd253898b5c1cb8f331983e5
1 parent
f32d7ec5
32-bit host sign extension fix (Juergen Lock).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@4017 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
2 additions
and
2 deletions
tcg/tcg-op.h
... | ... | @@ -1172,7 +1172,7 @@ static inline void tcg_gen_qemu_ld8s(TCGv ret, TCGv addr, int mem_index) |
1172 | 1172 | tcg_gen_op3i(INDEX_op_qemu_ld8s, ret, addr, mem_index); |
1173 | 1173 | #else |
1174 | 1174 | tcg_gen_op4i(INDEX_op_qemu_ld8s, ret, addr, TCGV_HIGH(addr), mem_index); |
1175 | - tcg_gen_ext8s_i32(TCGV_HIGH(ret), ret); | |
1175 | + tcg_gen_sari_i32(TCGV_HIGH(ret), ret, 31); | |
1176 | 1176 | #endif |
1177 | 1177 | } |
1178 | 1178 | |
... | ... | @@ -1192,7 +1192,7 @@ static inline void tcg_gen_qemu_ld16s(TCGv ret, TCGv addr, int mem_index) |
1192 | 1192 | tcg_gen_op3i(INDEX_op_qemu_ld16s, ret, addr, mem_index); |
1193 | 1193 | #else |
1194 | 1194 | tcg_gen_op4i(INDEX_op_qemu_ld16s, ret, addr, TCGV_HIGH(addr), mem_index); |
1195 | - tcg_gen_ext16s_i32(TCGV_HIGH(ret), ret); | |
1195 | + tcg_gen_sari_i32(TCGV_HIGH(ret), ret, 31); | |
1196 | 1196 | #endif |
1197 | 1197 | } |
1198 | 1198 | ... | ... |