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é <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20260320074555.33974-3-philmd@linaro.org>
This commit is contained in:
Philippe Mathieu-Daudé
2025-11-27 05:19:13 +01:00
parent 2ff50ac99b
commit f0d4cbf228
2 changed files with 11 additions and 43 deletions

View File

@@ -235,16 +235,13 @@ Regexes for git grep:
- ``\<cpu_ld[us]\?[bwlq]\(_[bl]e\)\?_data\>``
- ``\<cpu_st[bwlq]\(_[bl]e\)\?_data\+\>``
``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:
- ``\<cpu_ld[us]\?[bwlq]_code\>``
- ``\<cpu_ld[us]\?[bwlq]_code_mmu\>``
``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``.

View File

@@ -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 */