[RFA/RFT PATCH 0/3] Add TDB regset support

Andreas Arnez
2013-06-07T13:44:41Z

The new z/Architecture introduces restricted hardware transactional
memory with the "transactional-execution facility". Diagnostic
capabilities of this feature include the "program interruption
transaction diagnostic block" (TDB), which is written by the hardware
whenever a transaction is aborted due to a program interruption.

This patch set makes the TDB accessible from GDB as a new register set.
The first patch reworks the S/390 register map handling without any
functional changes, the second adds the new TDB register set, and the
third implements "dynamic regset" support.

The third patch changes GDB's approach for enumerating core file
register note sections: Instead of a static array, an iterator function
is now provided by the target-dependent code. This allows for
dynamically selecting a register set for inclusion in a core file
(written with gcore), and making the selection dependent on the current
register values. This is needed for correct treatment of the TDB
register set, because its register values are unavailable when the
inferior was interrupted outside transactions, and then the TDB should
*not* be written into the core file.

This last patch affects multiple architectures, specifically:

- GNU/Linux ARM
- GNU/Linux PowerPC
- GNU/Linux S/390
- GNU/Linux x86

In most cases the patch simplifies the target-dependent logic. I've
tested on S/390 and x86 and did not find any regressions.