Peter Maydell <[email protected]> writes:
> On Wed, 20 Apr 2022 at 20:52, Richard Henderson > <[email protected]> wrote: >> >> On 4/20/22 12:42, Peter Maydell wrote: >> > On Mon, 18 Apr 2022 at 20:19, Leandro Lupori >> > <[email protected]> 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
