Hi,
This series is preliminary on unifying endianness for the
single binary. The goal is to have a clean API ready for
harder refactor.
First we remove the _notdirty() and leul_to_cpu() helpers,
then we prepare the subpage_ops[] MemoryRegionOps to handle
distinct endianness in the same binary, and finally we add
a pair of ldm()/stm() variants to directly infer the access
size and endianness from a MemOp argument.
(As a bonus we also moved MemoryRegionCache out of memory.h).
Please review,
Phil.
Philippe Mathieu-Daudé (14):
target/i386: Remove x86_stl_phys_notdirty() leftover
target/sparc: Update MMU page table using stl_phys()
hw/arm: Update bootloader generated with '-kernel' using stl_phys()
system/memory: Remove address_space_stl_notdirty and stl_phys_notdirty
system/physmem: Inline and remove leul_to_cpu()
system/physmem: Use explicit endianness in subpage_ops::read/write()
system/memory: Split MemoryRegionCache API to 'memory_cached.h'
system/memory: Inline address_space_stq_internal()
system/memory: Define address_space_ldst[W] endian variants via
template
system/memory: Define address_space_ldst[L] endian variants via
template
system/memory: Define address_space_ldst[Q] endian variants via
template
system/memory: Factor address_space_ldst[M]_internal() helper out
system/memory: Pass device_endian argument as MemOp bit
system/memory: Sort methods in memory_ldst.c.inc file
MAINTAINERS | 3 +
include/hw/virtio/virtio-access.h | 1 +
include/qemu/bswap.h | 11 -
include/system/memory.h | 191 -------
include/system/memory_cached.h | 207 ++++++++
target/i386/cpu.h | 1 -
include/exec/memory_ldst.h.inc | 52 +-
include/exec/memory_ldst_phys.h.inc | 111 +---
include/system/memory_ldst_endian.h.inc | 33 ++
include/system/memory_ldst_phys_endian.h.inc | 57 ++
hw/arm/aspeed.c | 3 +-
hw/arm/boot.c | 6 +-
system/physmem.c | 87 +++-
target/i386/helper.c | 10 -
target/sparc/mmu_helper.c | 2 +-
system/memory_ldst.c.inc | 514 ++++---------------
system/memory_ldst_endian.c.inc | 64 +++
17 files changed, 546 insertions(+), 807 deletions(-)
create mode 100644 include/system/memory_cached.h
create mode 100644 include/system/memory_ldst_endian.h.inc
create mode 100644 include/system/memory_ldst_phys_endian.h.inc
create mode 100644 system/memory_ldst_endian.c.inc
--
2.52.0