This is a first patchset in removing target_ulong from non-target/
directories. As use of target_ulong is spread accross the codebase we
are attempting to target as few maintainers as possible with each
patchset in order to ease reviewing.
The following instances of target_ulong remain in accel/ and tcg/
- atomic helpers (atomic_common.c.inc), cpu_atomic_*()
(atomic_template.h,) and cpu_[st|ld]*()
(cputlb.c/ldst_common.c.inc) are only used in target/ and can
be pulled out into a separate target-specific file;
- Calls to cpu_get_tb_cpu_state() cast pc and cs_base to
target_ulong in order to avoid having to touch the target/
directory in this patchset;
- walk_memory_regions() is used in user-exec.c and
linux-user/elfload.c;
- helper_ret_*_mmu() is used in tcg/*/tcg-target.c.inc and
tcg/tci.c;
- Functions in translate-all.c dealing with TCGContext.gen_insn_data
will be switched off target_ulong once gen_insn_data and
TARGET_INSN_START_WORDS have been dealt with;
- kvm_find_sw_breakpoint() in kvm-all.c used in target/;
- The last address when looking up page flags for an interval
[start,last] in pageflags_find()/pageflags_next() is still
target_long. I'm not sure why this is required. This only
seems relevant on 32-bit guests since the addresses passed
to the interval tree are uint64_t's, are we relying on a
sign extension here for some reason?
- CPUTLBEntry and functions that read from it will be left for a
later date;
Smaller patchsets implementing above changes will follow.
Finally, the grand goal is to allow for heterogeneous QEMU binaries
consisting of multiple frontends.
RFC: https://lists.nongnu.org/archive/html/qemu-devel/2022-12/msg04518.html
Anton Johansson (8):
accel: Replace `target_ulong` with `vaddr` in TB/TLB
accel: Replace target_ulong with vaddr in probe_*()
accel/tcg: Replace target_ulong with vaddr in *_mmu_lookup()
accel/tcg: Replace target_ulong with vaddr in helper_unaligned_*()
accel/tcg: Replace target_ulong with vaddr in translator_*()
accel/tcg: Replace target_ulong with vaddr in page_*()
cpu: Replace target_ulong with vaddr in tb_invalidate_phys_addr()
tcg: Replace target_ulong with vaddr in tcg_gen_code()
accel/stubs/tcg-stub.c | 6 +-
accel/tcg/cpu-exec.c | 49 ++++-----
accel/tcg/cputlb.c | 195 +++++++++++++++++------------------
accel/tcg/internal.h | 6 +-
accel/tcg/tb-hash.h | 12 +--
accel/tcg/tb-jmp-cache.h | 2 +-
accel/tcg/tb-maint.c | 2 +-
accel/tcg/translate-all.c | 15 +--
accel/tcg/translator.c | 10 +-
accel/tcg/user-exec.c | 59 ++++++-----
cpu.c | 2 +-
include/exec/cpu-all.h | 10 +-
include/exec/cpu-defs.h | 4 +-
include/exec/cpu_ldst.h | 6 +-
include/exec/exec-all.h | 98 +++++++++---------
include/exec/translate-all.h | 2 +-
include/exec/translator.h | 6 +-
include/qemu/plugin-memory.h | 2 +-
include/tcg/tcg-ldst.h | 4 +-
include/tcg/tcg.h | 2 +-
tcg/tcg.c | 2 +-
21 files changed, 247 insertions(+), 247 deletions(-)
--
2.39.1