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