public inbox for gdb-patches@sourceware.org
 help / color / mirror / Atom feed
* [PATCH 00/17] GDB support for more powerpc registers on linux
@ 2018-07-13 13:53 Pedro Franco de Carvalho
  2018-07-13 13:53 ` [PATCH 16/17] [PowerPC] Add support for EBB and PMU registers Pedro Franco de Carvalho
                   ` (16 more replies)
  0 siblings, 17 replies; 38+ messages in thread
From: Pedro Franco de Carvalho @ 2018-07-13 13:53 UTC (permalink / raw)
  To: gdb-patches; +Cc: uweigand, edjunior

This patch series implements access to additional powerpc registers on
linux targets.

The new register are:

* The Program Priority Register.

* The Data Stream Control Register, used for cache control.

* The Target Address Register.

* The Hardware Transactional Memory registers, which include both a
  set of three special-purpose registers that control the HTM facility
  and the set of checkpointed registers, a copy of most of the other
  registers used as a snapshot to restore processor state in the event
  of a transaction failure.

* The Event-Based Branch (EBB) facility and Performance Monitoring
  Unit (PMU) registers.

The first four patches refactor some parts of the code affected by the
patches.

Each group of registers is then enabled with one patch for support in
the native and core file targets and one for gdbserver support. Some
also have patches for related record/replay support and tests.

PPR and DSCR did not appear in the architecture at the same
time, but for simplicity they are added in a common tdesc. They will
be separated when I change the powerpc linux targets to use flexible
tdescs in the future.

Adding the HTM checkpointed registers has nearly doubled the number of
registers which causes regressions because some internal buffer sizes
related to tracepoints are longer be sufficient. These are being
addressed in separate patches:

https://sourceware.org/ml/gdb-patches/2018-06/msg00501.html

That is V1 of the series that only addresses one of the regressions, I
will send a V2 that also addresses another related regression when
saving a trace file wiht -ctf.

This series also depends on binutils patch recently submitted that
enables writing and reading the core file note sections for these
register sets:

https://sourceware.org/ml/binutils/2018-07/msg00191.html

Much of the original work to implement access to these registers was
done by Edjunior when he was at IBM, so I have kept him as the author
in the patches he had worked on. I have made modifications to these
patches, so I have also added myself to the changelog entries for
these patches, in addition to Edjunior. Errors in these patches might
be my own.

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

Pedro Franco de Carvalho (12):
  [PowerPC] Simplify 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] Add record/replay support for PPR and DSCR
  [PowerPC] Add tests for PPR and DSCR
  [PowerPC] Add record/replay support for TAR
  [PowerPC] Add gdbserver support for TAR
  [PowerPC] Add tests for TAR
  [PowerPC] Add gdbserver support for HTM registers
  [PowerPC] Add tests for HTM registers
  [PowerPC] Add gdbserver support for EBB and PMU registers

 gdb/arch/ppc-linux-common.c                        |  30 +-
 gdb/arch/ppc-linux-common.h                        |  20 +
 gdb/arch/ppc-linux-tdesc.h                         |   6 +
 gdb/features/Makefile                              |  11 +
 gdb/features/rs6000/power-dscr.xml                 |  12 +
 gdb/features/rs6000/power-ebb.xml                  |  14 +
 gdb/features/rs6000/power-htm.xml                  | 174 +++++++
 gdb/features/rs6000/power-pmu.xml                  |  16 +
 gdb/features/rs6000/power-ppr.xml                  |  12 +
 gdb/features/rs6000/power-tar.xml                  |  12 +
 gdb/features/rs6000/power64-htm.xml                | 174 +++++++
 .../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    | 382 +++++++++++++++
 gdb/features/rs6000/powerpc-isa207-htm-vsx32l.xml  |  22 +
 gdb/features/rs6000/powerpc-isa207-htm-vsx64l.c    | 382 +++++++++++++++
 gdb/features/rs6000/powerpc-isa207-htm-vsx64l.xml  |  22 +
 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                        |  21 +-
 gdb/gdbserver/linux-ppc-ipa.c                      |  18 +
 gdb/gdbserver/linux-ppc-low.c                      | 349 +++++++++++++
 gdb/gdbserver/linux-ppc-tdesc-init.h               |  21 +
 gdb/nat/ppc-linux.h                                |  80 +++
 gdb/ppc-linux-nat.c                                | 544 ++++++++++++++++++++-
 gdb/ppc-linux-tdep.c                               | 412 +++++++++++++++-
 gdb/ppc-linux-tdep.h                               |  29 ++
 gdb/ppc-tdep.h                                     |  81 +++
 .../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/rs6000-tdep.c                                  | 400 ++++++++++++++-
 gdb/testsuite/gdb.arch/powerpc-htm-regs.c          |  34 ++
 gdb/testsuite/gdb.arch/powerpc-htm-regs.exp        | 311 ++++++++++++
 gdb/testsuite/gdb.arch/powerpc-ppr-dscr.c          |  32 ++
 gdb/testsuite/gdb.arch/powerpc-ppr-dscr.exp        | 110 +++++
 gdb/testsuite/gdb.arch/powerpc-tar.c               |  33 ++
 gdb/testsuite/gdb.arch/powerpc-tar.exp             | 115 +++++
 45 files changed, 5946 insertions(+), 35 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.xml
 create mode 100644 gdb/features/rs6000/power-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.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

^ permalink raw reply	[flat|nested] 38+ messages in thread

end of thread, other threads:[~2018-07-13 18:29 UTC | newest]

Thread overview: 38+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-13 13:53 [PATCH 00/17] GDB support for more powerpc registers on linux Pedro Franco de Carvalho
2018-07-13 13:53 ` [PATCH 16/17] [PowerPC] Add support for EBB and PMU registers Pedro Franco de Carvalho
2018-07-13 16:38   ` Ulrich Weigand
2018-07-13 18:23     ` Pedro Franco de Carvalho
2018-07-13 13:53 ` [PATCH 05/17] [PowerPC] Add support for PPR and DSCR Pedro Franco de Carvalho
2018-07-13 15:23   ` Ulrich Weigand
2018-07-13 13:53 ` [PATCH 09/17] [PowerPC] Add support for TAR Pedro Franco de Carvalho
2018-07-13 15:30   ` Ulrich Weigand
2018-07-13 13:53 ` [PATCH 01/17] [PowerPC] Simplify rs6000_pseudo_register_reggroup_p Pedro Franco de Carvalho
2018-07-13 15:17   ` Ulrich Weigand
2018-07-13 13:53 ` [PATCH 10/17] [PowerPC] Add record/replay support for TAR Pedro Franco de Carvalho
2018-07-13 15:31   ` Ulrich Weigand
2018-07-13 13:53 ` [PATCH 08/17] [PowerPC] Add tests for PPR and DSCR Pedro Franco de Carvalho
2018-07-13 15:27   ` Ulrich Weigand
2018-07-13 13:53 ` [PATCH 12/17] [PowerPC] Add tests for TAR Pedro Franco de Carvalho
2018-07-13 15:33   ` Ulrich Weigand
2018-07-13 13:53 ` [PATCH 04/17] [PowerPC] Refactor have_ initializers in rs6000-tdep.c Pedro Franco de Carvalho
2018-07-13 15:19   ` Ulrich Weigand
2018-07-13 13:53 ` [PATCH 03/17] [PowerPC] Fix indentation in arch/ppc-linux-common.c Pedro Franco de Carvalho
2018-07-13 15:18   ` Ulrich Weigand
2018-07-13 13:53 ` [PATCH 02/17] [PowerPC] Fix two if statements in gdb/ppc-linux-nat.c Pedro Franco de Carvalho
2018-07-13 15:17   ` Ulrich Weigand
2018-07-13 13:53 ` [PATCH 13/17] [PowerPC] Add support for HTM registers Pedro Franco de Carvalho
2018-07-13 16:24   ` Ulrich Weigand
2018-07-13 18:16     ` Pedro Franco de Carvalho
2018-07-13 13:53 ` [PATCH 07/17] [PowerPC] Add gdbserver support for PPR and DSCR Pedro Franco de Carvalho
2018-07-13 15:26   ` Ulrich Weigand
2018-07-13 13:53 ` [PATCH 14/17] [PowerPC] Add gdbserver support for HTM registers Pedro Franco de Carvalho
2018-07-13 16:26   ` Ulrich Weigand
2018-07-13 13:53 ` [PATCH 06/17] [PowerPC] Add record/replay support for PPR and DSCR Pedro Franco de Carvalho
2018-07-13 15:25   ` Ulrich Weigand
2018-07-13 14:23 ` [PATCH 15/17] [PowerPC] Add tests for HTM registers Pedro Franco de Carvalho
2018-07-13 16:27   ` Ulrich Weigand
2018-07-13 14:49 ` [PATCH 17/17] [PowerPC] Add gdbserver support for EBB and PMU registers Pedro Franco de Carvalho
2018-07-13 16:40   ` Ulrich Weigand
2018-07-13 18:29     ` Pedro Franco de Carvalho
2018-07-13 15:33 ` [PATCH 11/17] [PowerPC] Add gdbserver support for TAR Pedro Franco de Carvalho
2018-07-13 15:33   ` Ulrich Weigand

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).