|
@@ -199,6 +199,27 @@ static int vfp_gdb_set_sysreg(CPUARMState *env, uint8_t *buf, int reg)
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
+static int mve_gdb_get_reg(CPUARMState *env, GByteArray *buf, int reg)
|
|
|
+{
|
|
|
+ switch (reg) {
|
|
|
+ case 0:
|
|
|
+ return gdb_get_reg32(buf, env->v7m.vpr);
|
|
|
+ default:
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+static int mve_gdb_set_reg(CPUARMState *env, uint8_t *buf, int reg)
|
|
|
+{
|
|
|
+ switch (reg) {
|
|
|
+ case 0:
|
|
|
+ env->v7m.vpr = ldl_p(buf);
|
|
|
+ return 4;
|
|
|
+ default:
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* arm_get/set_gdb_*: get/set a gdb register
|
|
|
* @env: the CPU state
|
|
@@ -468,6 +489,10 @@ void arm_cpu_register_gdb_regs_for_features(ARMCPU *cpu)
|
|
|
2, "arm-vfp-sysregs.xml", 0);
|
|
|
}
|
|
|
}
|
|
|
+ if (cpu_isar_feature(aa32_mve, cpu)) {
|
|
|
+ gdb_register_coprocessor(cs, mve_gdb_get_reg, mve_gdb_set_reg,
|
|
|
+ 1, "arm-m-profile-mve.xml", 0);
|
|
|
+ }
|
|
|
gdb_register_coprocessor(cs, arm_gdb_get_sysreg, arm_gdb_set_sysreg,
|
|
|
arm_gen_dynamic_sysreg_xml(cs, cs->gdb_num_regs),
|
|
|
"system-registers.xml", 0);
|