On Thu, Feb 19, 2026 at 08:19:29PM +0100, Philippe Mathieu-Daudé wrote:
> Prefer ldn_p(riscv_cpu_is_32bit) over target-specific ldtul_p().
> 
> Signed-off-by: Philippe Mathieu-Daudé <[email protected]>
> ---
>  target/riscv/gdbstub.c | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/target/riscv/gdbstub.c b/target/riscv/gdbstub.c
> index 1934f919c01..f89b20ea84a 100644
> --- a/target/riscv/gdbstub.c
> +++ b/target/riscv/gdbstub.c
> @@ -191,14 +191,15 @@ static int riscv_gdb_set_csr(CPUState *cs, uint8_t 
> *mem_buf, int n)
>  {
>      RISCVCPU *cpu = RISCV_CPU(cs);
>      CPURISCVState *env = &cpu->env;
> +    const unsigned regsz = riscv_cpu_is_32bit(cpu) ? 4 : 8;
>  
>      if (n < CSR_TABLE_SIZE) {
> -        target_ulong val = ldtul_p(mem_buf);
> +        target_ulong val = ldn_p(mem_buf, regsz);
>          int result;
>  
>          result = riscv_csrrw_debug(env, n, NULL, val, -1);
>          if (result == RISCV_EXCP_NONE) {
> -            return sizeof(target_ulong);
> +            return regsz;
>          }
>      }
>      return 0;
> @@ -225,11 +226,12 @@ static int riscv_gdb_get_virtual(CPUState *cs, 
> GByteArray *buf, int n)
>  static int riscv_gdb_set_virtual(CPUState *cs, uint8_t *mem_buf, int n)
>  {
>      if (n == 0) {
> -#ifndef CONFIG_USER_ONLY
>          RISCVCPU *cpu = RISCV_CPU(cs);
> +        const unsigned regsz = riscv_cpu_is_32bit(cpu) ? 4 : 8;
> +#ifndef CONFIG_USER_ONLY
>          CPURISCVState *env = &cpu->env;
>  
> -        target_ulong new_priv = ldtul_p(mem_buf) & 0x3;
> +        target_ulong new_priv = ldn_p(mem_buf, regsz) & 0x3;
>          bool new_virt = 0;
>  
>          if (new_priv == PRV_RESERVED) {
> @@ -237,7 +239,7 @@ static int riscv_gdb_set_virtual(CPUState *cs, uint8_t 
> *mem_buf, int n)
>          }
>  
>          if (new_priv != PRV_M) {
> -            new_virt = (ldtul_p(mem_buf) & BIT(2)) >> 2;
> +            new_virt = (ldn_p(mem_buf, regsz) & BIT(2)) >> 2;
>          }
>  
>          if (riscv_has_ext(env, RVH) && new_virt != env->virt_enabled) {
> @@ -246,7 +248,7 @@ static int riscv_gdb_set_virtual(CPUState *cs, uint8_t 
> *mem_buf, int n)
>  
>          riscv_cpu_set_mode(env, new_priv, new_virt);
>  #endif
> -        return sizeof(target_ulong);
> +        return regsz;
>      }
>      return 0;
>  }
> -- 
> 2.52.0
> 
> 

Reviewed-by: Chao Liu <[email protected]>

Thanks,
Chao

Reply via email to