Hello, This patch pulls the reggroup framework in from my sysregs branch and adds it to GDB. The reggroups framework makes it possible for an architecture to group the ISAs registers into a number of different categories. Some groups are user-level, some are internal. For instance: User: vector - vector registers float - floating-point registers Internal: restore - registers to restore after performing an inferior function call It makes the following changes: - adds maintenance commands for displaying the register / groups and includes documentation. (gdb) maint print register-groups Name Nr Rel Offset Size Type Groups eax 0 0 0 4 int general,all,save,restore ecx 1 1 4 4 int general,all,save,restore edx 2 2 8 4 int general,all,save,restore ebx 3 3 12 4 int general,all,save,restore esp 4 4 16 4 *1 general,all,save,restore ebp 5 5 20 4 *1 general,all,save,restore esi 6 6 24 4 int general,all,save,restore ... (gdb) maint print reggroups Group Type general user float user system user vector user all user save internal restore internal - adds the files reggroups.[hc] which implement the `struct reggroup' object and reggroups() method. - adds the architecture method: register_reggroup_p(gdbarch, regnum, reggroup) to identify a register's group membership (provides a default). Follow-on patches will modify varios parts of core GDB so that the mechanism is used vis: - modify the default ``info registers'', ``info vector'' and ``info float'' and ``info all-registers'' commands so that reggroups are used to determine which registers should be displayed. - modify the i386 to better specify the register groups (so that ``info vector'' displays all the SSE/MMX registers for instance. - modify the regcache save/restore code so that it uses reggroups when determining which registers should be saved/restored across an inferior function call Comments. Eli, now does the revised doco look? You've seen ``maint print reggroups'' before, but ``maint print register-groups'' is new. I'll look to commit it next week. The full internals doco is still work-in-progress :-( Andrew