mirror of
https://github.com/qemu/qemu.git
synced 2026-07-09 01:56:21 +00:00
target/rx: Inline translator_lduw() and translator_ldl()
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_endian().
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20251224163304.91384-4-philmd@linaro.org>
This commit is contained in:
@@ -92,6 +92,7 @@ static uint32_t li(DisasContext *ctx, int sz)
|
||||
{
|
||||
vaddr addr;
|
||||
uint32_t tmp;
|
||||
MemOp endian = mo_endian(ctx);
|
||||
CPURXState *env = ctx->env;
|
||||
addr = ctx->base.pc_next;
|
||||
|
||||
@@ -101,16 +102,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, endian);
|
||||
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, endian);
|
||||
return tmp;
|
||||
case 0:
|
||||
ctx->base.pc_next += 4;
|
||||
return translator_ldl(env, &ctx->base, addr);
|
||||
return translator_ldl_end(env, &ctx->base, addr, endian);
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
}
|
||||
@@ -206,7 +207,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_endian(ctx)) << size;
|
||||
tcg_gen_addi_i32(mem, cpu_regs[reg], dsp);
|
||||
ctx->base.pc_next += 2;
|
||||
return mem;
|
||||
|
||||
Reference in New Issue
Block a user