summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/xtensa-tdep.c9
2 files changed, 11 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2ced03c3e0b..3b7c7d30380 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2011-03-08 Maxim Grigoriev <maxim2405@gmail.com>
+ * xtensa-tdep.c (xtensa_register_reggroup_p): Count in all registers
+ while executing MI command -data-list-changed-registers.
+
+2011-03-08 Maxim Grigoriev <maxim2405@gmail.com>
+
* xtensa-tdep.c (xtensa_read_register): New function.
(xtensa_write_register): New function.
(xtensa_find_register_by_name): New function.
diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
index 41c30d70f70..7de03a5ce41 100644
--- a/gdb/xtensa-tdep.c
+++ b/gdb/xtensa-tdep.c
@@ -813,6 +813,11 @@ xtensa_register_reggroup_p (struct gdbarch *gdbarch,
xtensa_register_group_t rg = reg->group;
int cp_number;
+ if (group == save_reggroup)
+ /* Every single register should be included into the list of registers
+ to be watched for changes while using -data-list-changed-registers. */
+ return 1;
+
/* First, skip registers that are not visible to this target
(unknown and unmapped registers when not using ISS). */
@@ -828,13 +833,11 @@ xtensa_register_reggroup_p (struct gdbarch *gdbarch,
return rg & xtRegisterGroupFloat;
if (group == general_reggroup)
return rg & xtRegisterGroupGeneral;
- if (group == float_reggroup)
- return rg & xtRegisterGroupFloat;
if (group == system_reggroup)
return rg & xtRegisterGroupState;
if (group == vector_reggroup || group == xtensa_vectra_reggroup)
return rg & xtRegisterGroupVectra;
- if (group == save_reggroup || group == restore_reggroup)
+ if (group == restore_reggroup)
return (regnum < gdbarch_num_regs (gdbarch)
&& (reg->flags & SAVE_REST_FLAGS) == SAVE_REST_VALID);
if ((cp_number = xtensa_coprocessor_register_group (group)) >= 0)