Reviewed-by: Glenn Miles <[email protected]> Thanks,
Glenn On Thu, 2026-10-08 at 01:23 +0200, Philippe Mathieu-Daudé wrote: > Add a gdb_get_reg_bits() helper deriving the register width from > ppc_env_is_64bit(), and use it instead of target_long_bits() and > TARGET_LONG_SIZE. > > Signed-off-by: Philippe Mathieu-Daudé <[email protected]> > --- > target/ppc/gdbstub.c | 19 ++++++++++++------- > 1 file changed, 12 insertions(+), 7 deletions(-) > > diff --git a/target/ppc/gdbstub.c b/target/ppc/gdbstub.c > index 4d622c5cad5..ee02be63ce8 100644 > --- a/target/ppc/gdbstub.c > +++ b/target/ppc/gdbstub.c > @@ -23,12 +23,17 @@ > #include "gdbstub/helpers.h" > #include "internal.h" > > -static unsigned ppc_gdb_register_len(int n) > +static int gdb_get_reg_bits(const CPUPPCState *env) > +{ > + return ppc_env_is_64bit(env) ? 64 : 32; > +} > + > +static unsigned ppc_gdb_register_len(const CPUPPCState *env, int n) > { > switch (n) { > case 0 ... 31: > /* gprs */ > - return target_long_bits() / 8; > + return gdb_get_reg_bits(env) / 8; > case 66: > /* cr */ > case 69: > @@ -42,7 +47,7 @@ static unsigned ppc_gdb_register_len(int n) > /* lr */ > case 68: > /* ctr */ > - return target_long_bits() / 8; > + return gdb_get_reg_bits(env) / 8; > default: > return 0; > } > @@ -85,7 +90,7 @@ int ppc_cpu_gdb_read_register(CPUState *cs, GByteArray > *buf, int n) > { > CPUPPCState *env = cpu_env(cs); > uint8_t *mem_buf; > - unsigned r = ppc_gdb_register_len(n); > + unsigned r = ppc_gdb_register_len(env, n); > > if (!r) { > return r; > @@ -127,7 +132,7 @@ int ppc_cpu_gdb_read_register(CPUState *cs, GByteArray > *buf, int n) > int ppc_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n) > { > CPUPPCState *env = cpu_env(cs); > - unsigned r = ppc_gdb_register_len(n); > + unsigned r = ppc_gdb_register_len(env, n); > > if (!r) { > return r; > @@ -251,7 +256,7 @@ static int gdb_get_spr_reg(CPUState *cs, GByteArray *buf, > int n) > return 0; > } > > - len = TARGET_LONG_SIZE; > + len = gdb_get_reg_bits(env) / 8; > > /* Handle those SPRs that are not part of the env->spr[] array */ > target_ulong val; > @@ -294,7 +299,7 @@ static int gdb_set_spr_reg(CPUState *cs, uint8_t > *mem_buf, int n) > return 0; > } > > - len = TARGET_LONG_SIZE; > + len = gdb_get_reg_bits(env) / 8; > ppc_maybe_bswap_register(env, mem_buf, len); > > /* Handle those SPRs that are not part of the env->spr[] array */
