These changes make powerpc booke206 mmu pass TLB_BSWAP flag for pages marked as LE, and also fixes all the issues this causes. - added TLB_BSWAP to non-MMIO flags - inserted additional check for LE page when bswap-ing instructions - removed assert for cross-page TLB_BSWAP accesses - added gdbstub fix to account for TLB_BSWAP of the currently running code
BE- and LE- atomic operations (used by load-and-reserve and store-conditional instructions) were unified to support TLB_BSWAP Some of the fixes are based on what is done in https://github.com/YetAnotherMod/qemu Danila Zhebryakov (3): accel/tcg: Unify big- and little- endian atomic ops target/ppc: Add support for LE pages on PowerPC booke206 mmu target/ppc: fix GDB stub to work correctly with LE pages accel/tcg/atomic_common.c.inc | 27 +-- accel/tcg/atomic_template.h | 246 +++++++++------------------- accel/tcg/cputlb.c | 22 ++- accel/tcg/tcg-runtime.h | 36 +--- accel/tcg/user-exec.c | 2 +- include/accel/tcg/cpu-ldst-common.h | 39 ++--- target/m68k/op_helper.c | 4 +- target/ppc/cpu.h | 4 + target/ppc/gdbstub.c | 17 +- target/ppc/mmu-booke.c | 5 + target/ppc/mmu_helper.c | 17 +- target/ppc/translate.c | 29 +++- target/s390x/tcg/mem_helper.c | 6 +- tcg/tcg-op-ldst.c | 31 ++-- 14 files changed, 204 insertions(+), 281 deletions(-) -- 2.47.2