[PATCH v5 00/12] GDB support for more powerpc registers on linux

Pedro Franco de Carvalho
2018-10-22T22:33:48Z

This is V5 of: https://sourceware.org/ml/gdb-patches/2018-08/msg00381.html

Changes from V4:

* Explained further limitations of unavailable registers with respect
to 'G' packets in the commit message of "[PowerPC] Add support for
EBB and PMU registers".

* Changed linux_collect_regset_section_cb to use std::vector<gdb_byte>
instead of std::vector<char> in the first patch ("Zero-initialize
linux note sections").

* Defined ppc_linux_collect_core_cpgrregset in ppc-linux-tdep.c and
changed ppc_linux_iterate_over_regset_sections to call it when
generating core files, in order to fill in the checkpointed NIP and
MSR slots in the core file with reasonable values (TFHAR and the
regular MSR), in "[PowerPC] Add support for HTM registers".

* Removed ppc_linux_regset_available_p, removed call to store_regset
with regsets that can be unavailable when store_registers is called
with -1, added comment explaining why.

* Changed fetch_regset/store_regset in ppc-linux-nat.c to call the
supply/collect function pointers from the regset instead of
regcache_supply/collect_regset.

* Reordered some of the regmap/regset definitions in ppc-linux-tdep.c
for consistency with the existing definitions.

* Added various comments for global variables, functions and to the
new test cases.

Edjunior Barbosa Machado (4):
[PowerPC] Add support for PPR and DSCR
[PowerPC] Add support for TAR
[PowerPC] Add support for EBB and PMU registers
[PowerPC] Add support for HTM registers

Pedro Franco de Carvalho (8):
Zero-initialize linux note sections
[PowerPC] Don't zero-initialize vector register buffers
Add decfloat registers to float reggroup
[PowerPC] Remove rs6000_pseudo_register_reggroup_p
[PowerPC] Fix two if statements in gdb/ppc-linux-nat.c
[PowerPC] Fix indentation in arch/ppc-linux-common.c
[PowerPC] Refactor have_ initializers in rs6000-tdep.c
[PowerPC] Reject tdescs with VSX and no FPU or Altivec

gdb/NEWS | 4 +
gdb/arch/ppc-linux-common.c | 30 +-
gdb/arch/ppc-linux-common.h | 20 +
gdb/arch/ppc-linux-tdesc.h | 6 +
gdb/doc/gdb.texinfo | 60 ++
gdb/features/Makefile | 11 +
gdb/features/rs6000/power-dscr.xml | 12 +
gdb/features/rs6000/power-ebb.xml | 14 +
gdb/features/rs6000/power-htm-altivec.xml | 58 ++
gdb/features/rs6000/power-htm-core.xml | 48 ++
gdb/features/rs6000/power-htm-dscr.xml | 12 +
gdb/features/rs6000/power-htm-fpu.xml | 45 ++
gdb/features/rs6000/power-htm-ppr.xml | 12 +
gdb/features/rs6000/power-htm-spr.xml | 14 +
gdb/features/rs6000/power-htm-tar.xml | 12 +
gdb/features/rs6000/power-htm-vsx.xml | 43 ++
gdb/features/rs6000/power-linux-pmu.xml | 17 +
gdb/features/rs6000/power-ppr.xml | 12 +
gdb/features/rs6000/power-tar.xml | 12 +
gdb/features/rs6000/power64-htm-core.xml | 48 ++
.../rs6000/powerpc-isa205-ppr-dscr-vsx32l.c | 200 +++++
.../rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml | 18 +
.../rs6000/powerpc-isa205-ppr-dscr-vsx64l.c | 200 +++++
.../rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml | 18 +
gdb/features/rs6000/powerpc-isa207-htm-vsx32l.c | 396 ++++++++++
gdb/features/rs6000/powerpc-isa207-htm-vsx32l.xml | 29 +
gdb/features/rs6000/powerpc-isa207-htm-vsx64l.c | 396 ++++++++++
gdb/features/rs6000/powerpc-isa207-htm-vsx64l.xml | 29 +
gdb/features/rs6000/powerpc-isa207-vsx32l.c | 215 ++++++
gdb/features/rs6000/powerpc-isa207-vsx32l.xml | 21 +
gdb/features/rs6000/powerpc-isa207-vsx64l.c | 215 ++++++
gdb/features/rs6000/powerpc-isa207-vsx64l.xml | 21 +
gdb/gdbserver/configure.srv | 28 +-
gdb/gdbserver/linux-ppc-ipa.c | 18 +
gdb/gdbserver/linux-ppc-low.c | 428 ++++++++++-
gdb/gdbserver/linux-ppc-tdesc-init.h | 21 +
gdb/linux-tdep.c | 14 +-
gdb/nat/ppc-linux.h | 80 ++
gdb/ppc-linux-nat.c | 440 ++++++++++-
gdb/ppc-linux-tdep.c | 606 ++++++++++++++-
gdb/ppc-linux-tdep.h | 21 +
gdb/ppc-tdep.h | 93 +++
.../rs6000/powerpc-isa205-ppr-dscr-vsx32l.dat | 146 ++++
.../rs6000/powerpc-isa205-ppr-dscr-vsx64l.dat | 146 ++++
.../rs6000/powerpc-isa207-htm-vsx32l.dat | 296 ++++++++
.../rs6000/powerpc-isa207-htm-vsx64l.dat | 296 ++++++++
gdb/regformats/rs6000/powerpc-isa207-vsx32l.dat | 155 ++++
gdb/regformats/rs6000/powerpc-isa207-vsx64l.dat | 155 ++++
gdb/reggroups.c | 4 +-
gdb/rs6000-tdep.c | 813 ++++++++++++++++++---
gdb/testsuite/gdb.arch/powerpc-htm-regs.c | 39 +
gdb/testsuite/gdb.arch/powerpc-htm-regs.exp | 328 +++++++++
gdb/testsuite/gdb.arch/powerpc-ppr-dscr.c | 34 +
gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp | 120 +++
gdb/testsuite/gdb.arch/powerpc-tar.c | 33 +
gdb/testsuite/gdb.arch/powerpc-tar.exp | 122 ++++
56 files changed, 6528 insertions(+), 156 deletions(-)
create mode 100644 gdb/features/rs6000/power-dscr.xml
create mode 100644 gdb/features/rs6000/power-ebb.xml
create mode 100644 gdb/features/rs6000/power-htm-altivec.xml
create mode 100644 gdb/features/rs6000/power-htm-core.xml
create mode 100644 gdb/features/rs6000/power-htm-dscr.xml
create mode 100644 gdb/features/rs6000/power-htm-fpu.xml
create mode 100644 gdb/features/rs6000/power-htm-ppr.xml
create mode 100644 gdb/features/rs6000/power-htm-spr.xml
create mode 100644 gdb/features/rs6000/power-htm-tar.xml
create mode 100644 gdb/features/rs6000/power-htm-vsx.xml
create mode 100644 gdb/features/rs6000/power-linux-pmu.xml
create mode 100644 gdb/features/rs6000/power-ppr.xml
create mode 100644 gdb/features/rs6000/power-tar.xml
create mode 100644 gdb/features/rs6000/power64-htm-core.xml
create mode 100644 gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.c
create mode 100644 gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx32l.xml
create mode 100644 gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.c
create mode 100644 gdb/features/rs6000/powerpc-isa205-ppr-dscr-vsx64l.xml
create mode 100644 gdb/features/rs6000/powerpc-isa207-htm-vsx32l.c
create mode 100644 gdb/features/rs6000/powerpc-isa207-htm-vsx32l.xml
create mode 100644 gdb/features/rs6000/powerpc-isa207-htm-vsx64l.c
create mode 100644 gdb/features/rs6000/powerpc-isa207-htm-vsx64l.xml
create mode 100644 gdb/features/rs6000/powerpc-isa207-vsx32l.c
create mode 100644 gdb/features/rs6000/powerpc-isa207-vsx32l.xml
create mode 100644 gdb/features/rs6000/powerpc-isa207-vsx64l.c
create mode 100644 gdb/features/rs6000/powerpc-isa207-vsx64l.xml
create mode 100644 gdb/regformats/rs6000/powerpc-isa205-ppr-dscr-vsx32l.dat
create mode 100644 gdb/regformats/rs6000/powerpc-isa205-ppr-dscr-vsx64l.dat
create mode 100644 gdb/regformats/rs6000/powerpc-isa207-htm-vsx32l.dat
create mode 100644 gdb/regformats/rs6000/powerpc-isa207-htm-vsx64l.dat
create mode 100644 gdb/regformats/rs6000/powerpc-isa207-vsx32l.dat
create mode 100644 gdb/regformats/rs6000/powerpc-isa207-vsx64l.dat
create mode 100644 gdb/testsuite/gdb.arch/powerpc-htm-regs.c
create mode 100644 gdb/testsuite/gdb.arch/powerpc-htm-regs.exp
create mode 100644 gdb/testsuite/gdb.arch/powerpc-ppr-dscr.c
create mode 100644 gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp
create mode 100644 gdb/testsuite/gdb.arch/powerpc-tar.c
create mode 100644 gdb/testsuite/gdb.arch/powerpc-tar.exp

--
2.13.6