Peter Maydell <peter.mayd...@linaro.org> writes:
> On Wed, 20 Apr 2022 at 20:52, Richard Henderson > <richard.hender...@linaro.org> wrote: >> >> On 4/20/22 12:42, Peter Maydell wrote: >> > On Mon, 18 Apr 2022 at 20:19, Leandro Lupori >> > <leandro.lup...@eldorado.org.br> wrote: >> >> >> >> PPC64 CPUs can change its endian dynamically, so semihosting code >> >> must check its MSR at run time to determine if byte swapping is >> >> needed. >> > >> > Arm CPUs also change endianness dynamically, so why is this >> > change PPC-specific ? >> >> I'm reasonably certain that we simply don't test armbe or aarch64_be >> semihosting. Leandro >> found this because qemu-system-ppc64 defaults to BE and qemu-system-aarch64 >> defaults to LE. > > Right, so if there's an existing bug here on arm we should fix that, > and that probably means that the abstraction split between > "arch-specific thing" and "non-arch-specific code" is different > from "PPC just overrides the entire swap function". I think the helper function cpu_virtio_is_big_endian is really just a proxy for the data endianess mode of the guest. Perhaps it could be re-named and then used by the semihosting code? -- Alex Bennée