This series tackles (most of) the rest of target/arm, especially tcg folder.
It requires to add some mechanics in tcg-op.h to be able to specify which target a file is written for, so every definition becomes unique within a given compilation unit. In general, and as a note for other architectures, target/X/tcg/* files should be written for a single variant (32 vs 64 bit) only, which helps to eradicate TCGv usage. 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 might be more tricky with other arch, but it's definitely the best way to deal with this. CI: https://github.com/pbo-linaro/qemu/actions/runs/20837738026/job/59872847031 CI: https://gitlab.com/pbo-linaro/qemu/-/pipelines/2252803959 Files left are: - target/arm/tcg/mve_helper.c - target/arm/tcg/m_helper.c - target/arm/tcg/cpu32.c They will be converted in a future series (more endian usages, and a few more changes required for cpu32). Pierrick Bouvier (29): include/gdbstub/helpers.h: allow header to be called from common code target/arm/gdbstub: extract aarch64_cpu_register_gdb_regs_for_features target/arm/gdbstub: make compilation unit common target/arm/arm-qmp-cmds.c: make compilation unit common include/exec/helper-{gen,proto}.h: add conditional HAS_HELPER64 define target/arm: extract helper64.h target/arm/tcg/psci.c: make compilation unit common target/arm/tcg/cpu-v7m.c: make compilation unit common target/arm/tcg/vec_helper.c: make compilation unit common target/arm/tcg/translate.h: replace target_ulong with uint64_t target/arm/tcg/translate.h: replace target_long with int64_t include/tcg/tcg-op.h: replace target_ulong with uint64_t include/tcg/tcg-op.h: eradicate TARGET_INSN_START_EXTRA_WORDS include/tcg/tcg-op.h: introduce TARGET_ADDRESS_BITS accel/tcg/translate-all.c: detect addr_type dynamically 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: extract helper64 info in translate-a64 target/arm/tcg/arm_ldst.h: replace target_ulong with uint64_t target/arm/tcg/arm_ldst.h: use translator_ld*_end variants target/arm/tcg/translate.c: remove MO_TE usage target/arm/tcg/translate.c: replace target_ulong with uint64_t target/arm/tcg/translate.c: remove TARGET_AARCH64 target/arm/tcg/translate.c: make compilation unit common include/accel/tcg/tb-cpu-state.h | 12 ++ include/exec/helper-gen.h | 6 + include/exec/helper-proto.h | 6 + include/gdbstub/helpers.h | 9 +- include/tcg/tcg-op-address-bits.h | 21 +++ include/tcg/tcg-op-gvec.h | 11 +- include/tcg/tcg-op.h | 38 ++--- target/alpha/cpu-param.h | 2 - target/arm/cpu-param.h | 7 - target/arm/helper.h | 6 - target/arm/helper64.h | 5 + target/arm/internals.h | 1 + target/arm/kvm_arm.h | 3 + target/arm/tcg/arm_ldst.h | 16 ++- target/arm/tcg/translate-a32.h | 2 +- target/arm/tcg/translate.h | 28 ++-- target/arm/tcg/vec_internal.h | 49 +++++++ target/avr/cpu-param.h | 2 - target/hexagon/cpu-param.h | 2 - target/hppa/cpu-param.h | 2 - target/i386/cpu-param.h | 2 - target/loongarch/cpu-param.h | 2 - target/m68k/cpu-param.h | 2 - target/microblaze/cpu-param.h | 2 - target/mips/cpu-param.h | 2 - target/openrisc/cpu-param.h | 2 - target/ppc/cpu-param.h | 2 - target/riscv/cpu-param.h | 7 - target/rx/cpu-param.h | 2 - target/s390x/cpu-param.h | 2 - target/sh4/cpu-param.h | 2 - target/sparc/cpu-param.h | 2 - target/tricore/cpu-param.h | 2 - target/xtensa/cpu-param.h | 2 - accel/tcg/translate-all.c | 15 +- target/alpha/translate.c | 4 +- target/arm/arm-qmp-cmds.c | 25 +--- target/arm/cpu32-stubs.c | 22 +++ target/arm/gdbstub.c | 61 +------- target/arm/gdbstub64.c | 57 ++++++++ target/arm/kvm-stub.c | 5 + target/arm/kvm.c | 21 +++ target/arm/tcg/gengvec.c | 3 +- target/arm/tcg/gengvec64.c | 1 + target/arm/tcg/helper-a64.c | 1 + target/arm/tcg/hflags.c | 1 + target/arm/tcg/mte_helper.c | 1 + target/arm/tcg/op_helper.c | 1 - target/arm/tcg/pauth_helper.c | 1 + target/arm/tcg/psci.c | 2 +- target/arm/tcg/sme_helper.c | 1 + target/arm/tcg/stubs32.c | 19 +++ target/arm/tcg/sve_helper.c | 1 + target/arm/tcg/translate-a64.c | 10 +- target/arm/tcg/translate-m-nocp.c | 2 + target/arm/tcg/translate-mve.c | 2 + target/arm/tcg/translate-neon.c | 2 + target/arm/tcg/translate-sme.c | 1 + target/arm/tcg/translate-sve.c | 1 + target/arm/tcg/translate-vfp.c | 2 + target/arm/tcg/translate.c | 28 ++-- target/arm/tcg/vec_helper.c | 222 +++--------------------------- target/arm/tcg/vec_helper64.c | 140 +++++++++++++++++++ target/avr/translate.c | 2 +- target/hexagon/translate.c | 2 +- target/hppa/translate.c | 2 +- target/i386/tcg/translate.c | 2 +- target/loongarch/tcg/translate.c | 2 +- target/m68k/translate.c | 2 +- target/microblaze/translate.c | 2 +- target/mips/tcg/translate.c | 4 +- target/openrisc/translate.c | 4 +- target/ppc/translate.c | 2 +- target/riscv/translate.c | 2 +- target/rx/translate.c | 2 +- target/s390x/tcg/translate.c | 2 +- target/sh4/translate.c | 4 +- target/sparc/translate.c | 2 +- target/tricore/translate.c | 2 +- target/xtensa/translate.c | 2 +- target/arm/meson.build | 14 +- target/arm/tcg/meson.build | 47 +++++-- 82 files changed, 548 insertions(+), 466 deletions(-) create mode 100644 include/tcg/tcg-op-address-bits.h create mode 100644 target/arm/helper64.h create mode 100644 target/arm/tcg/stubs32.c create mode 100644 target/arm/tcg/vec_helper64.c -- 2.47.3
