Missing review: 2, 12, 20
Since v4:
- No change (RESEND)
Since v3:
- Assign device_endian enums (Richard)
- Add/use ldm_p() and stm_p() helpers (Paolo)
Since v2:
- Changed opt-out to opt-in approach (Pierrick)
- Split big patches in smaller ones
- Mark ioport little-endian
Philippe Mathieu-Daudé (22):
MAINTAINERS: Cover 'system/memory_ldst*.h.inc' files
util: Introduce ldm_p() and stm_p() load/store helpers
system/physmem: Inline and remove leul_to_cpu()
system/physmem: Convert DEBUG_SUBPAGE printf() to trace events
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: Use ldm_p() and stm_p() helpers
system/memory: Directly call address_space_ldst[M]_internal() helper
system: Allow restricting the legacy ld/st_phys() 'native-endian' API
system: Allow restricting legacy address_space_ldst() native-endian
API
system: Allow restricting the legacy cpu_ld/st() 'native-endian' API
system: Allow restricting the legacy translator_ld() 'native-endian'
API
system: Allow restricting the legacy tswap() 'native-endian' API
system: Allow restricting the legacy MO_TE* 'native-endian'
definitions
system: Allow restricting the legacy DEVICE_NATIVE_ENDIAN definition
system/ioport: Declare x86-specific I/O port in little-endian order
system/ioport: Do not open-code address_space_ld/st_le() methods
MAINTAINERS | 4 +
include/accel/tcg/cpu-ldst.h | 2 +
include/exec/memop.h | 4 +
include/exec/translator.h | 5 +-
include/exec/tswap.h | 3 +
include/hw/virtio/virtio-access.h | 1 +
include/qemu/bswap.h | 11 -
include/qemu/ldst_unaligned.h | 25 ++
include/system/memory.h | 193 +-------
include/system/memory_cached.h | 212 +++++++++
system/memory-internal.h | 2 +
include/system/memory_ldst.h.inc | 52 +--
include/system/memory_ldst_endian.h.inc | 33 ++
include/system/memory_ldst_phys.h.inc | 113 +----
include/system/memory_ldst_phys_endian.h.inc | 57 +++
system/ioport.c | 34 +-
system/physmem.c | 35 +-
tests/qtest/endianness-test.c | 10 +-
tests/qtest/libqtest.c | 13 +-
util/ldst.c | 69 +++
system/memory_ldst.c.inc | 449 ++-----------------
system/memory_ldst_endian.c.inc | 70 +++
scripts/make-config-poison.sh | 1 +
system/trace-events | 6 +
util/meson.build | 1 +
25 files changed, 599 insertions(+), 806 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 util/ldst.c
create mode 100644 system/memory_ldst_endian.c.inc
--
2.52.0