This is the Registers Sub-group
Lead: Kirk Beitz (Freescale)
Members: Ted Williams (WR), Pete Nichols (IBM), ATI
At the last DSDP meeting in Toronto, the group determined that an enhanced Register View deserves it's own topic for discussion in the group.
The group agreed that the DSDP/DD/ExpressionsAndVariablesViews would have many features in common with the Registers View. If you've read that page, you can see much of the content has been lifted and used here as well.
Separate items of interest specifically to registers may include (but are not limited to):
- population of the Register View with registers of interest (SPIRIT access? etc.)
- sets/subsets of Registers, hierarchical views, groupings, masking within sets
- a "Details" view/subview, with bitwise descriptors, documentation, manipulation rules (cf. the bugzilla link provided by John Cortell of Freescale Semiconductor for more), or at least access to this view from Registers within the register view.
- "virtual" registers (e.g. PC+4, BP-8) actings as expression within the reg view
The registers view displays a collection of registers in a hierarchical structure. In the current register view, registers are grouped by set by default, but this could be an attribute of the view, and allowing the set to be column based would allow registers to be sorted by group or by other attributes, such as name, type, etc. Multiple columns in the view allow for sorting and easier viewing of attributes within each set of registers, and there should be the ability to have multiple indicators for primarily sorting on one column, and then sorting within that sort list on another column.
Common attributes of registers that merit their own column in the view:
Name (short or fully qualified)
Register values that are not read-only can either be edited in place or in the details pane. For in-place editing of Registers displayed as C/C++ types such as Boolean or enumerated, a menu lets you select from a valid range of values.
Filters let you look at a subset of the Registers based on the name, set, type, or value.
Pinned Register Views
Pinned views are static, they don’t update when the target state changes. You can pin any register view and it will no longer update. You can have multiple pinned views open.
Registers as variables
Within the register view, it should be possible to treat any register as a variable or expression and to view its contents as a specified C/C++ type or struct. It should be possible to drag registers to the expression view in order to combine them with other elements (and thus the syntax of the expression view needs to take this into account), in order to look at *((int*)<BaseReg0>+i) in order to see what is at offset i from BaseReg0 as an int.