We only build the RX 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=rx; \
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é <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
target/rx/helper.c | 14 +++++++-------
target/rx/op_helper.c | 6 +++---
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/target/rx/helper.c b/target/rx/helper.c
index e9a7aaf610d..83cd491eb4a 100644
--- a/target/rx/helper.c
+++ b/target/rx/helper.c
@@ -68,10 +68,10 @@ void rx_cpu_do_interrupt(CPUState *cs)
qemu_log_mask(CPU_LOG_INT, "fast interrupt raised\n");
} else if (cpu_test_interrupt(cs, CPU_INTERRUPT_HARD)) {
env->isp -= 4;
- cpu_stl_data(env, env->isp, save_psw);
+ cpu_stl_le_data(env, env->isp, save_psw);
env->isp -= 4;
- cpu_stl_data(env, env->isp, env->pc);
- env->pc = cpu_ldl_data(env, env->intb + env->ack_irq * 4);
+ cpu_stl_le_data(env, env->isp, env->pc);
+ env->pc = cpu_ldl_le_data(env, env->intb + env->ack_irq * 4);
env->psw_ipl = env->ack_ipl;
cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD);
qemu_set_irq(env->ack, env->ack_irq);
@@ -82,14 +82,14 @@ void rx_cpu_do_interrupt(CPUState *cs)
const char *expname = "unknown exception";
env->isp -= 4;
- cpu_stl_data(env, env->isp, save_psw);
+ cpu_stl_le_data(env, env->isp, save_psw);
env->isp -= 4;
- cpu_stl_data(env, env->isp, env->pc);
+ cpu_stl_le_data(env, env->isp, env->pc);
if (vec < 0x100) {
- env->pc = cpu_ldl_data(env, 0xffffff80 + vec * 4);
+ env->pc = cpu_ldl_le_data(env, 0xffffff80 + vec * 4);
} else {
- env->pc = cpu_ldl_data(env, env->intb + (vec & 0xff) * 4);
+ env->pc = cpu_ldl_le_data(env, env->intb + (vec & 0xff) * 4);
}
if (vec == 30) {
diff --git a/target/rx/op_helper.c b/target/rx/op_helper.c
index 2b190a4b2cf..ca3e9e85fc7 100644
--- a/target/rx/op_helper.c
+++ b/target/rx/op_helper.c
@@ -217,20 +217,20 @@ void helper_scmpu(CPURXState *env)
static uint32_t (* const cpu_ldufn[])(CPUArchState *env,
abi_ptr ptr,
uintptr_t retaddr) = {
- cpu_ldub_data_ra, cpu_lduw_data_ra, cpu_ldl_data_ra,
+ cpu_ldub_data_ra, cpu_lduw_le_data_ra, cpu_ldl_le_data_ra,
};
static uint32_t (* const cpu_ldfn[])(CPUArchState *env,
abi_ptr ptr,
uintptr_t retaddr) = {
- cpu_ldub_data_ra, cpu_lduw_data_ra, cpu_ldl_data_ra,
+ cpu_ldub_data_ra, cpu_lduw_le_data_ra, cpu_ldl_le_data_ra,
};
static void (* const cpu_stfn[])(CPUArchState *env,
abi_ptr ptr,
uint32_t val,
uintptr_t retaddr) = {
- cpu_stb_data_ra, cpu_stw_data_ra, cpu_stl_data_ra,
+ cpu_stb_data_ra, cpu_stw_le_data_ra, cpu_stl_le_data_ra,
};
void helper_sstr(CPURXState *env, uint32_t sz)
--
2.52.0
On Wed, Dec 24, 2025 at 6:33 PM Philippe Mathieu-Daudé
<philmd@linaro.org> wrote:
>
> We only build the RX 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=rx; \
> 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é <philmd@linaro.org>
> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
> ---
Reviewed-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
> target/rx/helper.c | 14 +++++++-------
> target/rx/op_helper.c | 6 +++---
> 2 files changed, 10 insertions(+), 10 deletions(-)
>
> diff --git a/target/rx/helper.c b/target/rx/helper.c
> index e9a7aaf610d..83cd491eb4a 100644
> --- a/target/rx/helper.c
> +++ b/target/rx/helper.c
> @@ -68,10 +68,10 @@ void rx_cpu_do_interrupt(CPUState *cs)
> qemu_log_mask(CPU_LOG_INT, "fast interrupt raised\n");
> } else if (cpu_test_interrupt(cs, CPU_INTERRUPT_HARD)) {
> env->isp -= 4;
> - cpu_stl_data(env, env->isp, save_psw);
> + cpu_stl_le_data(env, env->isp, save_psw);
> env->isp -= 4;
> - cpu_stl_data(env, env->isp, env->pc);
> - env->pc = cpu_ldl_data(env, env->intb + env->ack_irq * 4);
> + cpu_stl_le_data(env, env->isp, env->pc);
> + env->pc = cpu_ldl_le_data(env, env->intb + env->ack_irq * 4);
> env->psw_ipl = env->ack_ipl;
> cpu_reset_interrupt(cs, CPU_INTERRUPT_HARD);
> qemu_set_irq(env->ack, env->ack_irq);
> @@ -82,14 +82,14 @@ void rx_cpu_do_interrupt(CPUState *cs)
> const char *expname = "unknown exception";
>
> env->isp -= 4;
> - cpu_stl_data(env, env->isp, save_psw);
> + cpu_stl_le_data(env, env->isp, save_psw);
> env->isp -= 4;
> - cpu_stl_data(env, env->isp, env->pc);
> + cpu_stl_le_data(env, env->isp, env->pc);
>
> if (vec < 0x100) {
> - env->pc = cpu_ldl_data(env, 0xffffff80 + vec * 4);
> + env->pc = cpu_ldl_le_data(env, 0xffffff80 + vec * 4);
> } else {
> - env->pc = cpu_ldl_data(env, env->intb + (vec & 0xff) * 4);
> + env->pc = cpu_ldl_le_data(env, env->intb + (vec & 0xff) * 4);
> }
>
> if (vec == 30) {
> diff --git a/target/rx/op_helper.c b/target/rx/op_helper.c
> index 2b190a4b2cf..ca3e9e85fc7 100644
> --- a/target/rx/op_helper.c
> +++ b/target/rx/op_helper.c
> @@ -217,20 +217,20 @@ void helper_scmpu(CPURXState *env)
> static uint32_t (* const cpu_ldufn[])(CPUArchState *env,
> abi_ptr ptr,
> uintptr_t retaddr) = {
> - cpu_ldub_data_ra, cpu_lduw_data_ra, cpu_ldl_data_ra,
> + cpu_ldub_data_ra, cpu_lduw_le_data_ra, cpu_ldl_le_data_ra,
> };
>
> static uint32_t (* const cpu_ldfn[])(CPUArchState *env,
> abi_ptr ptr,
> uintptr_t retaddr) = {
> - cpu_ldub_data_ra, cpu_lduw_data_ra, cpu_ldl_data_ra,
> + cpu_ldub_data_ra, cpu_lduw_le_data_ra, cpu_ldl_le_data_ra,
> };
>
> static void (* const cpu_stfn[])(CPUArchState *env,
> abi_ptr ptr,
> uint32_t val,
> uintptr_t retaddr) = {
> - cpu_stb_data_ra, cpu_stw_data_ra, cpu_stl_data_ra,
> + cpu_stb_data_ra, cpu_stw_le_data_ra, cpu_stl_le_data_ra,
> };
>
> void helper_sstr(CPURXState *env, uint32_t sz)
> --
> 2.52.0
>
© 2016 - 2026 Red Hat, Inc.