Since v2: - Changed opt-out to opt-in approach (Pierrick) - Split big patches in smaller ones - Mark ioport little-endian
tag: https://gitlab.com/philmd/qemu/-/tags/sysmem_ldst_endian-v3 CI: https://gitlab.com/philmd/qemu/-/pipelines/2231223066 Philippe Mathieu-Daudé (25): system/physmem: Inline and remove leul_to_cpu() system/physmem: Convert DEBUG_SUBPAGE printf() to trace events system/physmem: Use explicit endianness in subpage_ops::read/write() system/memory: Split MemoryRegionCache API to 'memory_cached.h' system/memory: Move *ldst* headers from exec/ to system/ namespace 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: Directly call address_space_ldst[M]_internal() helper system/memory: Introduce LD/ST helpers with @n suffix (variable size) system/memory: Use explicit endianness in ram_device::read/write() system: Allow restricting the legacy ld/st_phys() 'native-endian' API system: Allow restricting the legacy ld/st_he() '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 tests/qtest: Remove unnecessary 'qemu/bswap.h' include 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 + docs/devel/loads-stores.rst | 10 +- include/accel/tcg/cpu-ldst.h | 2 + include/exec/cpu-common.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 | 16 +- include/system/memory.h | 189 +------- include/system/memory_cached.h | 209 ++++++++ system/memory-internal.h | 2 + tests/qtest/pnv-xive2-common.h | 1 - include/exec/memory_ldst.h.inc | 65 --- include/exec/memory_ldst_phys.h.inc | 144 ------ include/system/memory_ldst.h.inc | 41 ++ .../{exec => system}/memory_ldst_cached.h.inc | 0 include/system/memory_ldst_endian.h.inc | 37 ++ include/system/memory_ldst_phys.h.inc | 47 ++ include/system/memory_ldst_phys_endian.h.inc | 57 +++ system/ioport.c | 34 +- system/memory.c | 68 ++- system/physmem.c | 111 +++-- tests/qtest/aspeed_smc-test.c | 1 - tests/qtest/ast2700-smc-test.c | 1 - tests/qtest/endianness-test.c | 10 +- tests/qtest/libqos/fw_cfg.c | 1 - tests/qtest/libqos/i2c-omap.c | 1 - tests/qtest/libqtest.c | 13 +- tests/qtest/pnv-spi-seeprom-test.c | 1 - tests/qtest/vmcoreinfo-test.c | 1 - system/memory_ldst.c.inc | 449 ++---------------- system/memory_ldst_endian.c.inc | 84 ++++ scripts/make-config-poison.sh | 1 + system/trace-events | 6 + 35 files changed, 708 insertions(+), 913 deletions(-) create mode 100644 include/system/memory_cached.h delete mode 100644 include/exec/memory_ldst.h.inc delete mode 100644 include/exec/memory_ldst_phys.h.inc create mode 100644 include/system/memory_ldst.h.inc rename include/{exec => system}/memory_ldst_cached.h.inc (100%) create mode 100644 include/system/memory_ldst_endian.h.inc create mode 100644 include/system/memory_ldst_phys.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
