This series tackles (most of) the rest of target/arm, especially tcg folder.
We extract tcg memory operation in a new header, with a new type representing
virtual addresses.
Initially, I went down the way to have a dynamic definition of TCGv, which
required much more boilerplate and runtime checks. After discussing with
Richard, I realized it was not needed, and that could simply split 32 and 64 bit
properly in different files instead. This approach will not work with other
architectures, requiring something else, but it's enough for target/arm.
Files left are:
- target/arm/tcg/mve_helper.c
- target/arm/tcg/m_helper.c
- target/arm/tcg/cpu32.c
v6
--
- meson.build: extract decode files in separate variables and explicitly include
them in user and system code. The duplication is now minimized: one instance
for all system binaries, and one per user binary.
v5
--
- reimplemented what v0 did with new approach defining new tcg-op-mem header
- reapply all straightforward patches from v0
- only translate.c is left, but first want to validate that changes here are ok
for maintainers before doing more.
v0
--
See original thread:
https://lore.kernel.org/qemu-devel/20260109053158.2800705-1-pierrick.bouvier@linaro.org/#t
Note about v1 -> v4
-------------------
- After v0 which was trying to do too many changes, v1 to v4 focused on smaller
things, and all patches have been merged already.
https://patchew.org/QEMU/20260219040150.2098396-1-pierrick.bouvier@linaro.org/
Pierrick Bouvier (12):
include/tcg/tcg-op: extract memory operations to tcg-op-mem.h
target/arm/translate.h: remove tcg-op.h include
target/arm/tcg/translate.h: remove tcg-op-gvec.h include
target/arm/tcg/translate.h: remove TARGET_AARCH64
target/arm/tcg/translate-vfp.c: make compilation unit common
target/arm/tcg/translate-neon.c: make compilation unit common
target/arm/tcg/translate-mve.c: make compilation unit common
target/arm/tcg/translate-m-nocp.c: make compilation unit common
target/arm/tcg/op_helper.c: make compilation unit common
target/arm/tcg/gengvec.c: make compilation unit common
target/arm/tcg/translate.c: remove MO_TE usage
target/arm/tcg/translate.c: replace target_ulong with uint32_t
include/tcg/tcg-op-mem.h | 126 +++++++++++++++++++++++++++++++++
include/tcg/tcg-op.h | 100 +-------------------------
target/arm/tcg/translate.h | 14 +---
target/arm/tcg/op_helper.c | 1 -
target/arm/tcg/stubs32.c | 17 +++++
target/arm/tcg/translate-a64.c | 1 +
target/arm/tcg/translate-sme.c | 1 +
target/arm/tcg/translate-sve.c | 1 +
target/arm/tcg/translate.c | 6 +-
target/arm/tcg/meson.build | 51 +++++++++----
10 files changed, 192 insertions(+), 126 deletions(-)
create mode 100644 include/tcg/tcg-op-mem.h
create mode 100644 target/arm/tcg/stubs32.c
--
2.47.3