From: Philippe Mathieu-Daudé Date: Thu, 27 Nov 2025 04:19:13 +0000 (+0100) Subject: accel/tcg: Remove non-explicit endian cpu_ld*_code() wrappers X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f0d4cbf2289aa9ff65ebe21a78217b8dba017ce5;p=thirdparty%2Fqemu.git accel/tcg: Remove non-explicit endian cpu_ld*_code() wrappers All uses were converted to the cpu_ld*_code_mmu() helpers: remove them. Update the documentation. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Richard Henderson Message-Id: <20260320074555.33974-3-philmd@linaro.org> --- diff --git a/docs/devel/loads-stores.rst b/docs/devel/loads-stores.rst index 57892e814cd..c719241a7f5 100644 --- a/docs/devel/loads-stores.rst +++ b/docs/devel/loads-stores.rst @@ -235,16 +235,13 @@ Regexes for git grep: - ``\`` - ``\`` -``cpu_ld*_code`` -~~~~~~~~~~~~~~~~ +``cpu_ld*_code_mmu`` +~~~~~~~~~~~~~~~~~~~~ -These functions perform a read for instruction execution. The ``mmuidx`` -parameter is taken from the current mode of the guest CPU, as determined -by ``cpu_mmu_index(env, true)``. The ``retaddr`` parameter is 0, and -thus does not unwind guest CPU state, because CPU state is always -synchronized while translating instructions. Any guest CPU exception -that is raised will indicate an instruction execution fault rather than -a data read fault. +These functions work like the ``cpu_{ld,st}*_mmu`` functions +except that they perform a read for instruction execution. +Any guest CPU exception that is raised will indicate an instruction +execution fault rather than a data read fault. In general these functions should not be used directly during translation. There are wrapper functions that are to be used which also take care of @@ -252,7 +249,7 @@ plugins for tracing. Function names follow the pattern: -load: ``cpu_ld{sign}{size}_code(env, ptr)`` +load: ``cpu_ld{sign}{size}_code_mmu(env, addr, oi, retaddr)`` ``sign`` - (empty) : for 32 or 64 bit sizes @@ -266,12 +263,12 @@ load: ``cpu_ld{sign}{size}_code(env, ptr)`` - ``q`` : 64 bits Regexes for git grep: - - ``\`` + - ``\`` ``translator_ld*`` ~~~~~~~~~~~~~~~~~~ -These functions are a wrapper for ``cpu_ld*_code`` which also perform +These functions are a wrapper for ``cpu_ld*_code_mmu`` which also perform any actions required by any tracing plugins. They are only to be called during the translator callback ``translate_insn``. diff --git a/include/accel/tcg/cpu-ldst.h b/include/accel/tcg/cpu-ldst.h index ea2cbf40fe4..1facabccb23 100644 --- a/include/accel/tcg/cpu-ldst.h +++ b/include/accel/tcg/cpu-ldst.h @@ -51,10 +51,9 @@ * _be: for forced big endian * _le: for forced little endian * - * mmusuffix is one of the generic suffixes "data" or "code", or "mmuidx". + * mmusuffix is one of the generic suffixes "data" or "mmuidx". * The "mmuidx" suffix carries an extra mmu_idx argument that specifies - * the index to use; the "data" and "code" suffixes take the index from - * cpu_mmu_index(). + * the index to use; the "data" suffix take the index from cpu_mmu_index(). * * The "mmu" suffix carries the full MemOpIdx, with both mmu_idx and the * MemOp including alignment requirements. The alignment will be enforced. @@ -470,34 +469,6 @@ cpu_stq_le_data(CPUArchState *env, abi_ptr addr, uint64_t val) # define cpu_stl_mmuidx_ra cpu_stl_le_mmuidx_ra # define cpu_stq_mmuidx_ra cpu_stq_le_mmuidx_ra #endif - -static inline uint32_t cpu_ldub_code(CPUArchState *env, abi_ptr addr) -{ - CPUState *cs = env_cpu(env); - MemOpIdx oi = make_memop_idx(MO_UB, cpu_mmu_index(cs, true)); - return cpu_ldb_code_mmu(env, addr, oi, 0); -} - -static inline uint32_t cpu_lduw_code(CPUArchState *env, abi_ptr addr) -{ - CPUState *cs = env_cpu(env); - MemOpIdx oi = make_memop_idx(MO_TEUW, cpu_mmu_index(cs, true)); - return cpu_ldw_code_mmu(env, addr, oi, 0); -} - -static inline uint32_t cpu_ldl_code(CPUArchState *env, abi_ptr addr) -{ - CPUState *cs = env_cpu(env); - MemOpIdx oi = make_memop_idx(MO_TEUL, cpu_mmu_index(cs, true)); - return cpu_ldl_code_mmu(env, addr, oi, 0); -} - -static inline uint64_t cpu_ldq_code(CPUArchState *env, abi_ptr addr) -{ - CPUState *cs = env_cpu(env); - MemOpIdx oi = make_memop_idx(MO_TEUQ, cpu_mmu_index(cs, true)); - return cpu_ldq_code_mmu(env, addr, oi, 0); -} #endif /* TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API */ #endif /* ACCEL_TCG_CPU_LDST_H */