From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 99893 invoked by alias); 13 Jul 2018 13:53:38 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 99712 invoked by uid 89); 13 Jul 2018 13:53:37 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-9.6 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_3,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=ham version=3.3.2 spammy=gdb.arch, UD:arch, UD:gdb.arch, UD:xml X-HELO: mx0a-001b2d01.pphosted.com Received: from mx0b-001b2d01.pphosted.com (HELO mx0a-001b2d01.pphosted.com) (148.163.158.5) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 13 Jul 2018 13:53:35 +0000 Received: from pps.filterd (m0098416.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w6DDn9Ds040321 for ; Fri, 13 Jul 2018 09:53:33 -0400 Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.151]) by mx0b-001b2d01.pphosted.com with ESMTP id 2k6vpxsryx-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Fri, 13 Jul 2018 09:53:33 -0400 Received: from localhost by e33.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 13 Jul 2018 07:53:33 -0600 Received: from b03cxnp07028.gho.boulder.ibm.com (9.17.130.15) by e33.co.us.ibm.com (192.168.1.133) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Fri, 13 Jul 2018 07:53:30 -0600 Received: from b03ledav005.gho.boulder.ibm.com (b03ledav005.gho.boulder.ibm.com [9.17.130.236]) by b03cxnp07028.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w6DDrSKL13762892 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Fri, 13 Jul 2018 06:53:28 -0700 Received: from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 02ED4BE051; Fri, 13 Jul 2018 07:53:28 -0600 (MDT) Received: from b03ledav005.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 88EA9BE053; Fri, 13 Jul 2018 07:53:27 -0600 (MDT) Received: from pedro.localdomain (unknown [9.85.180.127]) by b03ledav005.gho.boulder.ibm.com (Postfix) with ESMTP; Fri, 13 Jul 2018 07:53:27 -0600 (MDT) Received: by pedro.localdomain (Postfix, from userid 1000) id BF6CD3C0360; Fri, 13 Jul 2018 10:53:24 -0300 (-03) From: Pedro Franco de Carvalho To: gdb-patches@sourceware.org Cc: uweigand@de.ibm.com, edjunior@gmail.com Subject: [PATCH 00/17] GDB support for more powerpc registers on linux Date: Fri, 13 Jul 2018 13:53:00 -0000 x-cbid: 18071313-0036-0000-0000-00000A0EA60D X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00009363; HX=3.00000241; KW=3.00000007; PH=3.00000004; SC=3.00000266; SDB=6.01060763; UDB=6.00544526; IPR=6.00838681; MB=3.00022128; MTD=3.00000008; XFM=3.00000015; UTC=2018-07-13 13:53:32 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18071313-0037-0000-0000-000048164BE0 Message-Id: <20180713135226.2321-1-pedromfc@linux.ibm.com> X-SW-Source: 2018-07/txt/msg00387.txt.bz2 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