More work toward single-binary. Some files have external dependencies for the single-binary: - target/arm/gdbstub.c: gdbhelpers - target/arm/arm-qmp-cmds.c: qapi - target/arm/tcg/translate*: need deep cleanup in include/tcg - target/arm/tcg/cpu*: need TargetInfo implemented for arm/aarch64 - target/arm/tcg/*-helper*: need deeper split between aarch64 and arm code They will not be ported in this series.
Built on {linux, windows, macos} x {x86_64, aarch64} Fully tested on linux-x86_64 v5 -- CI: https://github.com/pbo-linaro/qemu/actions/runs/14825451208/job/41617949501 - Do not define a separate vaddr type in tcg, simply alias to i32/i64 (Richard) - target/arm/tcg/crypto_helper.c - target/arm/tcg/hflags.c - target/arm/tcg/iwmmxt_helper.c - target/arm/tcg/neon_helper.c - target/arm/tcg/tlb_helper.c - target/arm/tcg/tlb-insns.c - target/arm/tcg/arith_helper.c - target/arm/tcg/vfp_helper.c v4 -- CI: https://github.com/pbo-linaro/qemu/actions/runs/14816460393/job/41597560792 - add patch to apply target config for picking files in libsystem/libuser Useful for Philippe series for semihosting: https://lore.kernel.org/qemu-devel/20250502220524.81548-1-phi...@linaro.org/T/#me750bbaeeba4d16791121fe98b44202afaec4068 - update some patches description (Philippe & Richard) - tcg: introduce vaddr type (Richard) - modify concerned helpers to use vaddr instead of i64 (Richard) - use int64_t instead of uint64_t for top_bits in ptw.c (Philippe) - arm_casq_ptw: use CONFIG_ATOMIC64 instead of TARGET_AARCH64 and comment why (Richard) - target/arm/machine.c v3 -- CI: https://github.com/pbo-linaro/qemu/actions/runs/14765763846/job/41456754153 - Add missing license for new files (Richard) - target/arm/debug_helper.c - target/arm/helper.c - target/arm/vfp_fpscr.c - target/arm/arch_dump.c - target/arm/arm-powerctl.c - target/arm/cortex-regs.c - target/arm/ptw.c - target/arm/kvm-stub.c v2 -- - Remove duplication of kvm struct and constant (Alex) - Use target_big_endian() (Anton) v1 -- - target/arm/cpu.c Philippe Mathieu-Daudé (1): target/arm: Replace target_ulong -> uint64_t for HWBreakpoint Pierrick Bouvier (47): include/system/hvf: missing vaddr include meson: add common libs for target and target_system meson: apply target config for picking files from libsystem and libuser target/arm: move kvm stubs and remove CONFIG_KVM from kvm_arm.h target/arm/kvm-stub: add kvm_arm_reset_vcpu stub target/arm/cpu: move arm_cpu_kvm_set_irq to kvm.c accel/hvf: add hvf_enabled() for common code target/arm/cpu: remove TARGET_BIG_ENDIAN dependency target/arm/cpu: remove TARGET_AARCH64 around aarch64_cpu_dump_state common target/arm/cpu: remove TARGET_AARCH64 in arm_cpu_finalize_features target/arm/cpu: compile file twice (user, system) only target/arm/cpu32-stubs.c: compile file twice (user, system) tcg: add vaddr type for helpers target/arm/helper: use vaddr instead of target_ulong for exception_pc_alignment target/arm/helper: use vaddr instead of target_ulong for probe_access target/arm/helper: extract common helpers target/arm/debug_helper: only include common helpers target/arm/debug_helper: remove target_ulong target/arm/debug_helper: compile file twice (user, system) target/arm/helper: restrict include to common helpers target/arm/helper: replace target_ulong by vaddr target/arm/helper: expose aarch64 cpu registration target/arm/helper: remove remaining TARGET_AARCH64 target/arm/helper: compile file twice (user, system) target/arm/vfp_fpscr: compile file twice (user, system) target/arm/arch_dump: remove TARGET_AARCH64 conditionals target/arm/arch_dump: compile file once (system) target/arm/arm-powerctl: compile file once (system) target/arm/cortex-regs: compile file once (system) target/arm/ptw: replace target_ulong with int64_t target/arm/ptw: replace TARGET_AARCH64 by CONFIG_ATOMIC64 from arm_casq_ptw target/arm/ptw: compile file once (system) target/arm/meson: accelerator files are not needed in user mode target/arm/kvm-stub: compile file once (system) target/arm/machine: reduce migration include to avoid target specific definitions target/arm/machine: remove TARGET_AARCH64 from migration state target/arm/machine: move cpu_post_load kvm bits to kvm_arm_cpu_post_load function target/arm/kvm-stub: add missing stubs target/arm/machine: compile file once (system) target/arm/tcg/crypto_helper: compile file twice (system, user) target/arm/tcg/hflags: compile file twice (system, user) target/arm/tcg/iwmmxt_helper: compile file twice (system, user) target/arm/tcg/neon_helper: compile file twice (system, user) target/arm/tcg/tlb_helper: compile file twice (system, user) target/arm/tcg/tlb-insns: compile file twice (system, user) target/arm/tcg/arith_helper: compile file twice (system, user) target/arm/tcg/vfp_helper: compile file twice (system, user) meson.build | 104 ++- include/system/hvf.h | 15 +- include/tcg/tcg-op-common.h | 1 + include/tcg/tcg.h | 14 + target/arm/helper.h | 1152 +------------------------------ target/arm/internals.h | 6 +- target/arm/kvm_arm.h | 87 +-- target/arm/tcg/helper.h | 1153 ++++++++++++++++++++++++++++++++ include/exec/helper-head.h.inc | 11 + accel/hvf/hvf-stub.c | 5 + target/arm/arch_dump.c | 6 - target/arm/cpu.c | 47 +- target/arm/cpu32-stubs.c | 26 + target/arm/debug_helper.c | 6 +- target/arm/helper.c | 21 +- target/arm/hyp_gdbstub.c | 6 +- target/arm/kvm-stub.c | 97 +++ target/arm/kvm.c | 42 +- target/arm/machine.c | 15 +- target/arm/ptw.c | 6 +- target/arm/tcg/arith_helper.c | 4 +- target/arm/tcg/crypto_helper.c | 4 +- target/arm/tcg/hflags.c | 4 +- target/arm/tcg/iwmmxt_helper.c | 4 +- target/arm/tcg/neon_helper.c | 4 +- target/arm/tcg/op_helper.c | 2 +- target/arm/tcg/tlb-insns.c | 7 - target/arm/tcg/tlb_helper.c | 5 +- target/arm/tcg/translate-a64.c | 2 +- target/arm/tcg/translate.c | 2 +- target/arm/tcg/vfp_helper.c | 4 +- tcg/tcg.c | 5 + accel/hvf/meson.build | 1 + target/arm/meson.build | 41 +- target/arm/tcg/meson.build | 29 +- 35 files changed, 1542 insertions(+), 1396 deletions(-) create mode 100644 target/arm/tcg/helper.h create mode 100644 accel/hvf/hvf-stub.c create mode 100644 target/arm/cpu32-stubs.c -- 2.47.2