All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/14] system/memory: Clean ups around address_space_ldst() endian variants
@ 2025-12-17 14:31 Philippe Mathieu-Daudé
  2025-12-17 14:31 ` [PATCH 01/14] target/i386: Remove x86_stl_phys_notdirty() leftover Philippe Mathieu-Daudé
                   ` (13 more replies)
  0 siblings, 14 replies; 37+ messages in thread
From: Philippe Mathieu-Daudé @ 2025-12-17 14:31 UTC (permalink / raw)
  To: qemu-devel
  Cc: Philippe Mathieu-Daudé, Anton Johansson, qemu-arm,
	Mark Cave-Ayland, Paolo Bonzini, Michael S. Tsirkin,
	Artyom Tarasenko, Peter Maydell, David Hildenbrand, Peter Xu

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



^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2025-12-18  7:02 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-17 14:31 [PATCH 00/14] system/memory: Clean ups around address_space_ldst() endian variants Philippe Mathieu-Daudé
2025-12-17 14:31 ` [PATCH 01/14] target/i386: Remove x86_stl_phys_notdirty() leftover Philippe Mathieu-Daudé
2025-12-17 18:38   ` Pierrick Bouvier
2025-12-17 18:59   ` Richard Henderson
2025-12-18  7:26   ` Zhao Liu
2025-12-17 14:31 ` [PATCH 02/14] target/sparc: Update MMU page table using stl_phys() Philippe Mathieu-Daudé
2025-12-17 18:39   ` Pierrick Bouvier
2025-12-17 19:03   ` Richard Henderson
2025-12-17 14:31 ` [PATCH 03/14] hw/arm: Update bootloader generated with '-kernel' " Philippe Mathieu-Daudé
2025-12-17 18:39   ` Pierrick Bouvier
2025-12-17 19:07   ` Richard Henderson
2025-12-17 14:31 ` [PATCH 04/14] system/memory: Remove address_space_stl_notdirty and stl_phys_notdirty Philippe Mathieu-Daudé
2025-12-17 18:39   ` Pierrick Bouvier
2025-12-17 19:08   ` Richard Henderson
2025-12-17 14:31 ` [PATCH 05/14] system/physmem: Inline and remove leul_to_cpu() Philippe Mathieu-Daudé
2025-12-17 18:42   ` Pierrick Bouvier
2025-12-17 19:09   ` Richard Henderson
2025-12-17 14:31 ` [PATCH 06/14] system/physmem: Use explicit endianness in subpage_ops::read/write() Philippe Mathieu-Daudé
2025-12-17 19:43   ` Richard Henderson
2025-12-17 14:31 ` [PATCH 07/14] system/memory: Split MemoryRegionCache API to 'memory_cached.h' Philippe Mathieu-Daudé
2025-12-17 18:43   ` Pierrick Bouvier
2025-12-17 19:44   ` Richard Henderson
2025-12-17 14:31 ` [PATCH 08/14] system/memory: Inline address_space_stq_internal() Philippe Mathieu-Daudé
2025-12-17 18:46   ` Pierrick Bouvier
2025-12-17 20:08   ` Richard Henderson
2025-12-17 14:31 ` [PATCH 09/14] system/memory: Define address_space_ldst[W] endian variants via template Philippe Mathieu-Daudé
2025-12-17 20:20   ` Richard Henderson
2025-12-17 14:31 ` [PATCH 10/14] system/memory: Define address_space_ldst[L] " Philippe Mathieu-Daudé
2025-12-17 20:22   ` Richard Henderson
2025-12-17 14:31 ` [PATCH 11/14] system/memory: Define address_space_ldst[Q] " Philippe Mathieu-Daudé
2025-12-17 20:22   ` Richard Henderson
2025-12-17 14:31 ` [PATCH 12/14] system/memory: Factor address_space_ldst[M]_internal() helper out Philippe Mathieu-Daudé
2025-12-17 20:29   ` Richard Henderson
2025-12-17 14:31 ` [PATCH 13/14] system/memory: Pass device_endian argument as MemOp bit Philippe Mathieu-Daudé
2025-12-17 20:31   ` Richard Henderson
2025-12-17 14:31 ` [PATCH 14/14] system/memory: Sort methods in memory_ldst.c.inc file Philippe Mathieu-Daudé
2025-12-17 20:32   ` Richard Henderson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.