[PATCH 1/4] target/rx: Use little-endian variant of cpu_ld/st_data*()

Philippe Mathieu-Daudé posted 4 patches 1 month, 2 weeks ago
Maintainers: Yoshinori Sato <yoshinori.sato@nifty.com>
[PATCH 1/4] target/rx: Use little-endian variant of cpu_ld/st_data*()
Posted by Philippe Mathieu-Daudé 1 month, 2 weeks ago
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


Re: [PATCH 1/4] target/rx: Use little-endian variant of cpu_ld/st_data*()
Posted by Manos Pitsidianakis 1 month, 1 week ago
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
>