target/arm: Handle AArch64 gdb read/write regs in TYPE_ARM_CPU
Instead of having the TYPE_AARCH64_CPU subclass set CPUClass::gdb_read_register and ::gdb_write_register to different methods from those of the TYPE_ARM_CPU parent class, have the TYPE_ARM_CPU methods handle either AArch32 or AArch64 at runtime. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20250317142819.900029-6-peter.maydell@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
parent
984ea94818
commit
4b6f74d86c
2 changed files with 12 additions and 5 deletions
|
|
@ -815,11 +815,6 @@ static void aarch64_cpu_finalizefn(Object *obj)
|
|||
|
||||
static void aarch64_cpu_class_init(ObjectClass *oc, const void *data)
|
||||
{
|
||||
CPUClass *cc = CPU_CLASS(oc);
|
||||
|
||||
cc->gdb_read_register = aarch64_cpu_gdb_read_register;
|
||||
cc->gdb_write_register = aarch64_cpu_gdb_write_register;
|
||||
|
||||
object_class_property_add_bool(oc, "aarch64", aarch64_cpu_get_aarch64,
|
||||
aarch64_cpu_set_aarch64);
|
||||
object_class_property_set_description(oc, "aarch64",
|
||||
|
|
|
|||
|
|
@ -44,6 +44,12 @@ int arm_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
|
|||
ARMCPU *cpu = ARM_CPU(cs);
|
||||
CPUARMState *env = &cpu->env;
|
||||
|
||||
#ifdef TARGET_AARCH64
|
||||
if (arm_gdbstub_is_aarch64(cpu)) {
|
||||
return aarch64_cpu_gdb_read_register(cs, mem_buf, n);
|
||||
}
|
||||
#endif
|
||||
|
||||
if (n < 16) {
|
||||
/* Core integer register. */
|
||||
return gdb_get_reg32(mem_buf, env->regs[n]);
|
||||
|
|
@ -66,6 +72,12 @@ int arm_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
|
|||
CPUARMState *env = &cpu->env;
|
||||
uint32_t tmp;
|
||||
|
||||
#ifdef TARGET_AARCH64
|
||||
if (arm_gdbstub_is_aarch64(cpu)) {
|
||||
return aarch64_cpu_gdb_write_register(cs, mem_buf, n);
|
||||
}
|
||||
#endif
|
||||
|
||||
tmp = ldl_p(mem_buf);
|
||||
|
||||
/*
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue