translator_lduw() and translator_ldl() are defined in
"exec/translator.h" as:
192 static inline uint16_t
193 translator_lduw(CPUArchState *env, DisasContextBase *db, vaddr pc)
194 {
195 return translator_lduw_end(env, db, pc, MO_TE);
196 }
198 static inline uint32_t
199 translator_ldl(CPUArchState *env, DisasContextBase *db, vaddr pc)
200 {
201 return translator_ldl_end(env, db, pc, MO_TE);
202 }
Directly use the inlined form, expanding MO_TE -> MO_LE
since we only build the Renesas RX target as little-endian.
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
---
target/rx/translate.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/target/rx/translate.c b/target/rx/translate.c
index ef865f14bf5..d2f73221952 100644
--- a/target/rx/translate.c
+++ b/target/rx/translate.c
@@ -101,16 +101,16 @@ static uint32_t li(DisasContext *ctx, int sz)
return (int8_t)translator_ldub(env, &ctx->base, addr);
case 2:
ctx->base.pc_next += 2;
- return (int16_t)translator_lduw(env, &ctx->base, addr);
+ return (int16_t) translator_lduw_end(env, &ctx->base, addr, MO_LE);
case 3:
ctx->base.pc_next += 3;
tmp = (int8_t)translator_ldub(env, &ctx->base, addr + 2);
tmp <<= 16;
- tmp |= translator_lduw(env, &ctx->base, addr);
+ tmp |= translator_lduw_end(env, &ctx->base, addr, MO_LE);
return tmp;
case 0:
ctx->base.pc_next += 4;
- return translator_ldl(env, &ctx->base, addr);
+ return translator_ldl_end(env, &ctx->base, addr, MO_LE);
default:
g_assert_not_reached();
}
@@ -206,7 +206,8 @@ static TCGv_i32 rx_index_addr(DisasContext *ctx, TCGv_i32 mem,
ctx->base.pc_next += 1;
return mem;
case 2:
- dsp = translator_lduw(ctx->env, &ctx->base, ctx->base.pc_next) << size;
+ dsp = translator_lduw_end(ctx->env, &ctx->base, ctx->base.pc_next,
+ MO_LE) << size;
tcg_gen_addi_i32(mem, cpu_regs[reg], dsp);
ctx->base.pc_next += 2;
return mem;
--
2.52.0
On 12/25/25 03:33, Philippe Mathieu-Daudé wrote:
> translator_lduw() and translator_ldl() are defined in
> "exec/translator.h" as:
>
> 192 static inline uint16_t
> 193 translator_lduw(CPUArchState *env, DisasContextBase *db, vaddr pc)
> 194 {
> 195 return translator_lduw_end(env, db, pc, MO_TE);
> 196 }
>
> 198 static inline uint32_t
> 199 translator_ldl(CPUArchState *env, DisasContextBase *db, vaddr pc)
> 200 {
> 201 return translator_ldl_end(env, db, pc, MO_TE);
> 202 }
>
> Directly use the inlined form, expanding MO_TE -> MO_LE
> since we only build the Renesas RX target as little-endian.
>
> Signed-off-by: Philippe Mathieu-Daudé<philmd@linaro.org>
> ---
> target/rx/translate.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
Using mo_endian(),
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
r~
On Wed, Dec 24, 2025 at 6:33 PM Philippe Mathieu-Daudé
<philmd@linaro.org> wrote:
>
> translator_lduw() and translator_ldl() are defined in
> "exec/translator.h" as:
>
> 192 static inline uint16_t
> 193 translator_lduw(CPUArchState *env, DisasContextBase *db, vaddr pc)
> 194 {
> 195 return translator_lduw_end(env, db, pc, MO_TE);
> 196 }
>
> 198 static inline uint32_t
> 199 translator_ldl(CPUArchState *env, DisasContextBase *db, vaddr pc)
> 200 {
> 201 return translator_ldl_end(env, db, pc, MO_TE);
> 202 }
>
> Directly use the inlined form, expanding MO_TE -> MO_LE
> since we only build the Renesas RX target as little-endian.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> ---
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
> target/rx/translate.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/target/rx/translate.c b/target/rx/translate.c
> index ef865f14bf5..d2f73221952 100644
> --- a/target/rx/translate.c
> +++ b/target/rx/translate.c
> @@ -101,16 +101,16 @@ static uint32_t li(DisasContext *ctx, int sz)
> return (int8_t)translator_ldub(env, &ctx->base, addr);
> case 2:
> ctx->base.pc_next += 2;
> - return (int16_t)translator_lduw(env, &ctx->base, addr);
> + return (int16_t) translator_lduw_end(env, &ctx->base, addr, MO_LE);
> case 3:
> ctx->base.pc_next += 3;
> tmp = (int8_t)translator_ldub(env, &ctx->base, addr + 2);
> tmp <<= 16;
> - tmp |= translator_lduw(env, &ctx->base, addr);
> + tmp |= translator_lduw_end(env, &ctx->base, addr, MO_LE);
> return tmp;
> case 0:
> ctx->base.pc_next += 4;
> - return translator_ldl(env, &ctx->base, addr);
> + return translator_ldl_end(env, &ctx->base, addr, MO_LE);
> default:
> g_assert_not_reached();
> }
> @@ -206,7 +206,8 @@ static TCGv_i32 rx_index_addr(DisasContext *ctx, TCGv_i32 mem,
> ctx->base.pc_next += 1;
> return mem;
> case 2:
> - dsp = translator_lduw(ctx->env, &ctx->base, ctx->base.pc_next) << size;
> + dsp = translator_lduw_end(ctx->env, &ctx->base, ctx->base.pc_next,
> + MO_LE) << size;
> tcg_gen_addi_i32(mem, cpu_regs[reg], dsp);
> ctx->base.pc_next += 2;
> return mem;
> --
> 2.52.0
>
© 2016 - 2026 Red Hat, Inc.