On 8/21/26 03:25, Peter Maydell wrote:
I'm tempted to suggest some kind of "if pointer is aligned take
aligned path, otherwise take slow path" either here or actually
in lduw_le_p(), but maybe that's a bad idea. Richard ?
(I have a suspicion that other places than this one will assume
that an aligned ldl_he_p() is not going to tear.)
I agree -- I expect most everything assumes ldl_he_p won't tear for aligned
accesses.
This kinda begs the question of what atomicity the caller expects. It's not implausible
that an x86 path expects even unaligned accesses not crossing a cacheline to be atomic,
since that's been a thing since 1995. I expect both IBM architectures similarly expect
atomicity by alignment, since that's been a thing for s390 since yonks and Power has the
same language.
We have a bunch of code in accel/tcg/ldst_atomicity.c.inc that can handle this, we'd just
need to provide it with the correct inputs. And I assume we'd still like to inline the
single access on appropriate hosts.
r~