Am 12.09.2013 20:39, schrieb Richard Henderson: > On 09/12/2013 11:17 AM, Stefan Weil wrote: >> @@ -1093,7 +1093,6 @@ uintptr_t tcg_qemu_tb_exec(CPUArchState *env, uint8_t >> *tb_ptr) >> tmp8 = helper_ldb_mmu(env, taddr, tci_read_i(&tb_ptr)); >> #else >> host_addr = (tcg_target_ulong)taddr; >> - assert(taddr == host_addr); >> tmp8 = *(uint8_t *)(host_addr + GUEST_BASE); >> #endif > I noticed first that g2h would be better than fiddling GUEST_BASE > by hand. But then I noticed failure to handle endianness and > failure to handle unaligned accesses too. > > You should be using > > tmp8 = ldub(taddr); > > et al. See include/exec/cpu-all.h, beginning line 253. > > > r~
Thanks for your hint. Yes, as you can see from tcg/tci/README,the test matrix of TCI did not include big endian hosts up to now. Testing on an emulated big endian Malta system is terribly slow, and I have no access to real big endian hardware fortests. But I think that such changes are independent of this patchwhich can be applied as it is. Regards, Stefan