Commit 21fc3cfc10a016a8cd253898b5c1cb8f331983e5

Authored by pbrook
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  
... ...