On Thu, 23 Feb 2023 at 16:12, Richard Henderson <richard.hender...@linaro.org> wrote: > > On 2/23/23 05:14, Peter Maydell wrote: > > On Thu, 16 Feb 2023 at 03:09, Richard Henderson > > <richard.hender...@linaro.org> wrote: > >> > >> We currently treat cpu_exclusive_high as containing the > >> second word of LDXP, even though that word is not "high" > >> in big-endian mode. Swap things around so that it is. > >> > >> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > >> --- > >> target/arm/translate-a64.c | 54 ++++++++++++++++++++------------------ > >> 1 file changed, 29 insertions(+), 25 deletions(-) > > > > This code change looks OK as far as it goes, but the bad > > news is that we migrate the env.exclusive_val and > > env.exclusive_high values in the machine state. So a > > migration from a QEMU before this change to a QEMU with > > this change on a BE host will get confused... > > Oof. Ok, I didn't *really* need this, it just seemed to make sense. I'll > add some > commentary about "high" only meaning "high" for little-endian...
The current state of affairs is arguably broken, because it means you can't migrate a guest from a BE host to an LE host, because the migration stream contains host-endian-dependent data. But if it's easy to leave this sleeping dog alone then it will save us figuring out what we would need to do in a post-load function :-) -- PMM