"GDB dummy floating-point register", armv7m_gdb_dummy_fp_value, 0, 1, 96, NULL, 0, NULL, 0
};
+u8 armv7m_gdb_dummy_fps_value[] = {0, 0, 0, 0};
+
+reg_t armv7m_gdb_dummy_fps_reg =
+{
+ "GDB dummy floating-point status register", armv7m_gdb_dummy_fps_value, 0, 1, 32, NULL, 0, NULL, 0
+};
+
armv7m_core_reg_t armv7m_core_reg_list_arch_info[] =
{
/* CORE_GP are accesible using the core debug registers */
*reg_list_size = 26;
*reg_list = malloc(sizeof(reg_t*) * (*reg_list_size));
- /* TODOLATER correct list of registers, names ? */
- for (i = 0; i < *reg_list_size; i++)
+ for (i = 0; i < 16; i++)
{
- if (i < ARMV7NUMCOREREGS)
- (*reg_list)[i] = &armv7m->process_context->reg_list[i];
- else
- (*reg_list)[i] = &armv7m_gdb_dummy_fp_reg;
+ (*reg_list)[i] = &armv7m->process_context->reg_list[i];
}
- /* ARMV7M is always in thumb mode, try to make GDB understand this if it does not support this arch */
+
+ for (i = 16; i < 24; i++)
+ {
+ (*reg_list)[i] = &armv7m_gdb_dummy_fp_reg;
+ }
+
+ (*reg_list)[24] = &armv7m_gdb_dummy_fps_reg;
+
+ /* ARMV7M is always in thumb mode, try to make GDB understand this
+ * if it does not support this arch */
armv7m->process_context->reg_list[15].value[0] |= 1;
(*reg_list)[25] = &armv7m->process_context->reg_list[ARMV7M_xPSR];
return ERROR_OK;