Andrew Randrianasulu <randrianas...@gmail.com> writes:
> В сообщении от Monday 03 June 2019 18:01:20 Alex Bennée написал(а): >> When running on 32 bit TCG backends a wide unaligned load ends up >> truncating data before returning to the guest. We specifically have >> the return type as uint64_t to avoid any premature truncation so we >> should use the same for the interim types. >> >> Hopefully fixes #1830872 >> >> Signed-off-by: Alex Bennée <alex.ben...@linaro.org> >> --- >> accel/tcg/cputlb.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c >> index cdcc3771020..b796ab1cbea 100644 >> --- a/accel/tcg/cputlb.c >> +++ b/accel/tcg/cputlb.c >> @@ -1303,7 +1303,7 @@ load_helper(CPUArchState *env, target_ulong addr, >> TCGMemOpIdx oi, >> && unlikely((addr & ~TARGET_PAGE_MASK) + size - 1 >> >= TARGET_PAGE_SIZE)) { >> target_ulong addr1, addr2; >> - tcg_target_ulong r1, r2; >> + uint64_t r1, r2; >> unsigned shift; >> do_unaligned_access: >> addr1 = addr & ~(size - 1); > > Unfortunatly, this doesn't fix 32-bit qemu-system-x86_64 .... so, my > bug is separate from #1830872 ? I think you've hit two - one of which we have just fixed. With my expanded memory test on i386 I'm seeing a hang but it's ok @ pull-demacro-softmmu-100519-1. Unfortunately bisecting through the slirp move and other i386 Werror stuff is proving painful. > > I also was unable to convince qemu to use my kernel-only x86_64 gcc 6.5.0 > cross-compiler .. > probably x86-64 testing on i686 requires either docker (I don't have this > ) or 'real' cross-compiler (build with glibc support). -- Alex Bennée