On 25/12/25 03:17, Bibo Mao wrote:
On 2025/12/25 上午12:14, Philippe Mathieu-Daudé wrote:
LoongArch is little-endian. Use the explicit 'little'
endianness instead of the 'native' one.
Remove some target_ulong uses. Forbid further uses of
legacy APIs.
tag: https://gitlab.com/philmd/qemu/-/tags/endian_loongarch-v1
CI: https://gitlab.com/philmd/qemu/-/pipelines/2231223066
Philippe Mathieu-Daudé (8):
hw/loongarch: Use explicit little-endian LD/ST API
target/loongarch: Replace target_ulong -> uint64_t for DMW and
TLBRBADV
target/loongarch: Use hwaddr type for physical addresses
target/loongarch: Replace MO_TE -> MO_LE
target/loongarch: Inline cpu_ldl_code() call in cpu_do_interrupt()
target/loongarch: Use explicit little-endian LD/ST API
target/loongarch: Inline translator_ldl()
configs/targets: Forbid LoongArch to use legacy native endianness APIs
configs/targets/loongarch64-linux-user.mak | 1 +
configs/targets/loongarch64-softmmu.mak | 1 +
hw/loongarch/virt.c | 18 ++---
target/loongarch/cpu_helper.c | 12 +--
target/loongarch/tcg/iocsr_helper.c | 24 +++---
target/loongarch/tcg/tcg_cpu.c | 4 +-
target/loongarch/tcg/tlb_helper.c | 10 ++-
target/loongarch/tcg/translate.c | 3 +-
.../tcg/insn_trans/trans_atomic.c.inc | 80 +++++++++----------
.../tcg/insn_trans/trans_fmemory.c.inc | 32 ++++----
.../tcg/insn_trans/trans_memory.c.inc | 64 +++++++--------
.../loongarch/tcg/insn_trans/trans_vec.c.inc | 16 ++--
12 files changed, 136 insertions(+), 129 deletions(-)
Thanks for doing this on LoongArch, this series looks good to me.
Thanks. Low hanging fruit, so better to clean it now (by blocking
further legacy API uses) than later. These changes makes LoongArch
closer to be used in heterogenous setup :)
Reviewed-by: Bibo Mao <[email protected]>