From: Philippe Mathieu-Daudé Date: Fri, 21 Nov 2025 08:23:52 +0000 (+0100) Subject: target/hexagon: Use little-endian variant of cpu_ld/st_data*() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dffb3938aa4ced8c967c63175a788facf664a3a2;p=thirdparty%2Fqemu.git target/hexagon: Use little-endian variant of cpu_ld/st_data*() We only build the Hexagon target using little endianness order, therefore the cpu_ld/st_data*() definitions expand to the little endian declarations. Use the explicit little-endian variants. Mechanical change running: $ tgt=hexagon; \ end=le; \ for op in data mmuidx_ra; do \ for ac in uw sw l q; do \ sed -i -e "s/cpu_ld${ac}_${op}/cpu_ld${ac}_${end}_${op}/" \ $(git grep -l cpu_ target/${tgt}/); \ done; for ac in w l q; do \ sed -i -e "s/cpu_st${ac}_${op}/cpu_st${ac}_${end}_${op}/" \ $(git grep -l cpu_ target/${tgt}/); \ done; done Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Brian Cain Reviewed-by: Richard Henderson Message-ID: <20251219185025.97318-3-philmd@linaro.org> --- diff --git a/target/hexagon/macros.h b/target/hexagon/macros.h index 088e5961ab..6c2862a232 100644 --- a/target/hexagon/macros.h +++ b/target/hexagon/macros.h @@ -519,9 +519,9 @@ static inline TCGv gen_read_ireg(TCGv result, TCGv val, int shift) #define fLOAD(NUM, SIZE, SIGN, EA, DST) MEM_LOAD##SIZE##SIGN(DST, EA) #else #define MEM_LOAD1 cpu_ldub_data_ra -#define MEM_LOAD2 cpu_lduw_data_ra -#define MEM_LOAD4 cpu_ldl_data_ra -#define MEM_LOAD8 cpu_ldq_data_ra +#define MEM_LOAD2 cpu_lduw_le_data_ra +#define MEM_LOAD4 cpu_ldl_le_data_ra +#define MEM_LOAD8 cpu_ldq_le_data_ra #define fLOAD(NUM, SIZE, SIGN, EA, DST) \ do { \ diff --git a/target/hexagon/op_helper.c b/target/hexagon/op_helper.c index 554e7dd447..bfeadd65fc 100644 --- a/target/hexagon/op_helper.c +++ b/target/hexagon/op_helper.c @@ -77,13 +77,13 @@ static void commit_store(CPUHexagonState *env, int slot_num, uintptr_t ra) cpu_stb_data_ra(env, va, env->mem_log_stores[slot_num].data32, ra); break; case 2: - cpu_stw_data_ra(env, va, env->mem_log_stores[slot_num].data32, ra); + cpu_stw_le_data_ra(env, va, env->mem_log_stores[slot_num].data32, ra); break; case 4: - cpu_stl_data_ra(env, va, env->mem_log_stores[slot_num].data32, ra); + cpu_stl_le_data_ra(env, va, env->mem_log_stores[slot_num].data32, ra); break; case 8: - cpu_stq_data_ra(env, va, env->mem_log_stores[slot_num].data64, ra); + cpu_stq_le_data_ra(env, va, env->mem_log_stores[slot_num].data64, ra); break; default: g_assert_not_reached();