Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Luis Machado via Gdb-patches <gdb-patches@sourceware.org>
To: <gdb-patches@sourceware.org>
Cc: thiago.bauermann@linaro.org
Subject: [PATCH v7 00/18] SME support for AArch64 gdb/gdbserver on Linux
Date: Mon, 18 Sep 2023 22:26:33 +0100	[thread overview]
Message-ID: <20230918212651.660141-1-luis.machado@arm.com> (raw)

The following series enables SME 1 (Scalable Matrix Extension) support for
AArch64 gdb and gdbserver.

SME expands on SVE by having a variable-sized matrix (ZA) of dimensions
SVL x SVL bytes.

The first few patches and some intermediate ones refactor the code and fix
issues prior to enabling SME support, and thus could go in independently.

I've kept them in the series as they are closely/logically related.

Luis Machado (18):
  [gdb/aarch64] Fix register fetch/store order for native AArch64 Linux
  [gdb/aarch64] refactor: Rename SVE-specific files
  [gdb/gdbserver] refactor: Simplify SVE interface to read/write
    registers
  [gdb/aarch64] sve: Fix return command when using V registers in a
    SVE-enabled target
  [gdb/aarch64] sme: Enable SME registers and pseudo-registers
  [gdbserver/generic] Convert tdesc's expedite_regs to a string vector
  [gdbserver/aarch64] refactor: Adjust expedited registers dynamically
  [gdbserver/aarch64] sme: Add support for SME
  [gdb/aarch64] sve: Fix signal frame z/v register restore
  [gdb/aarch64] sme: Signal frame support
  [gdb/aarch64] sme: Fixup sigframe gdbarch when vg/svg changes
  [gdb/aarch64] sme: Support TPIDR2 signal frame context
  [gdb/generic] Get rid of linux-core-thread-data
  [gdb/generic] corefile/bug: Use thread-specific gdbarch when dumping
    register state to core files
  [gdb/generic] corefile/bug: Add hook to control the use of target
    description notes from corefiles
  [gdb/aarch64] sme: Core file support for Linux
  [gdb/testsuite] sme: Add SVE/SME testcases
  [gdb/docs] sme: Document SME registers and features

 gdb/Makefile.in                               |   6 +-
 gdb/NEWS                                      |  11 +
 gdb/aarch64-linux-nat.c                       | 176 ++--
 gdb/aarch64-linux-tdep.c                      | 992 +++++++++++++++---
 gdb/aarch64-tdep.c                            | 724 ++++++++++++-
 gdb/aarch64-tdep.h                            |  47 +
 gdb/arch-utils.c                              |  10 +
 gdb/arch-utils.h                              |   6 +
 gdb/arch/aarch64-scalable-linux.c             |  55 +
 gdb/arch/aarch64-scalable-linux.h             |  53 +
 gdb/arch/aarch64.c                            |   5 +
 gdb/arch/aarch64.h                            |  57 +-
 gdb/configure.nat                             |   2 +-
 gdb/configure.tgt                             |   1 +
 gdb/corelow.c                                 |  50 +-
 gdb/doc/gdb.texinfo                           | 252 +++++
 gdb/features/aarch64-sme.c                    |  63 ++
 gdb/gdbarch-gen.h                             |  14 +
 gdb/gdbarch.c                                 |  22 +
 gdb/gdbarch_components.py                     |  19 +
 gdb/linux-tdep.c                              |  64 +-
 gdb/nat/aarch64-scalable-linux-ptrace.c       | 991 +++++++++++++++++
 gdb/nat/aarch64-scalable-linux-ptrace.h       | 154 +++
 ....h => aarch64-scalable-linux-sigcontext.h} |  73 +-
 gdb/nat/aarch64-sve-linux-ptrace.c            | 392 -------
 gdb/nat/aarch64-sve-linux-ptrace.h            |  72 --
 gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp |  23 +
 gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp |  23 +
 gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp |  23 +
 gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp |  23 +
 gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp |  23 +
 gdb/testsuite/gdb.arch/aarch64-sme-core.c     | 372 +++++++
 .../gdb.arch/aarch64-sme-core.exp.tcl         | 188 ++++
 .../gdb.arch/aarch64-sme-regs-available-0.exp |  26 +
 .../gdb.arch/aarch64-sme-regs-available-1.exp |  26 +
 .../gdb.arch/aarch64-sme-regs-available-2.exp |  26 +
 .../gdb.arch/aarch64-sme-regs-available-3.exp |  26 +
 .../gdb.arch/aarch64-sme-regs-available-4.exp |  26 +
 .../gdb.arch/aarch64-sme-regs-available-5.exp |  26 +
 .../gdb.arch/aarch64-sme-regs-available-6.exp |  26 +
 .../gdb.arch/aarch64-sme-regs-available-7.exp |  26 +
 .../gdb.arch/aarch64-sme-regs-available-8.exp |  26 +
 .../gdb.arch/aarch64-sme-regs-available-9.exp |  26 +
 .../gdb.arch/aarch64-sme-regs-available.c     | 178 ++++
 .../aarch64-sme-regs-available.exp.tcl        | 245 +++++
 .../gdb.arch/aarch64-sme-regs-sigframe-0.exp  |  23 +
 .../gdb.arch/aarch64-sme-regs-sigframe-1.exp  |  23 +
 .../gdb.arch/aarch64-sme-regs-sigframe-2.exp  |  23 +
 .../gdb.arch/aarch64-sme-regs-sigframe-3.exp  |  23 +
 .../gdb.arch/aarch64-sme-regs-sigframe-4.exp  |  23 +
 .../gdb.arch/aarch64-sme-regs-sigframe.c      | 366 +++++++
 .../aarch64-sme-regs-sigframe.exp.tcl         | 179 ++++
 .../aarch64-sme-regs-unavailable-0.exp        |  26 +
 .../aarch64-sme-regs-unavailable-1.exp        |  26 +
 .../aarch64-sme-regs-unavailable-2.exp        |  26 +
 .../aarch64-sme-regs-unavailable-3.exp        |  26 +
 .../aarch64-sme-regs-unavailable-4.exp        |  26 +
 .../aarch64-sme-regs-unavailable-5.exp        |  26 +
 .../aarch64-sme-regs-unavailable-6.exp        |  26 +
 .../aarch64-sme-regs-unavailable-7.exp        |  26 +
 .../aarch64-sme-regs-unavailable-8.exp        |  26 +
 .../aarch64-sme-regs-unavailable-9.exp        |  26 +
 .../gdb.arch/aarch64-sme-regs-unavailable.c   | 152 +++
 .../aarch64-sme-regs-unavailable.exp.tcl      | 212 ++++
 gdb/testsuite/gdb.arch/aarch64-sme-sanity.c   | 249 +++++
 gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp |  72 ++
 gdb/testsuite/lib/aarch64-scalable.exp        | 239 +++++
 gdb/testsuite/lib/aarch64-test-sme.c          |  90 ++
 gdb/testsuite/lib/aarch64-test-sve.c          |  90 ++
 gdb/testsuite/lib/aarch64.exp                 | 153 +++
 gdb/testsuite/lib/gdb.exp                     | 249 +++++
 gdb/tramp-frame.c                             |   1 +
 gdb/tramp-frame.h                             |   5 +
 gdbserver/Makefile.in                         |   2 +-
 gdbserver/configure.srv                       |   3 +-
 gdbserver/linux-aarch64-low.cc                |  86 +-
 gdbserver/linux-aarch64-tdesc.cc              |  28 +-
 gdbserver/remote-utils.cc                     |  13 +-
 gdbserver/server.h                            |   2 +-
 gdbserver/tdesc.cc                            |  23 +-
 gdbserver/tdesc.h                             |   4 +-
 81 files changed, 7506 insertions(+), 756 deletions(-)
 create mode 100644 gdb/arch/aarch64-scalable-linux.c
 create mode 100644 gdb/arch/aarch64-scalable-linux.h
 create mode 100644 gdb/features/aarch64-sme.c
 create mode 100644 gdb/nat/aarch64-scalable-linux-ptrace.c
 create mode 100644 gdb/nat/aarch64-scalable-linux-ptrace.h
 rename gdb/nat/{aarch64-sve-linux-sigcontext.h => aarch64-scalable-linux-sigcontext.h} (78%)
 delete mode 100644 gdb/nat/aarch64-sve-linux-ptrace.c
 delete mode 100644 gdb/nat/aarch64-sve-linux-ptrace.h
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-0.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-1.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-2.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-3.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core-4.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core.c
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-core.exp.tcl
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-0.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-1.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-2.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-3.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-4.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-5.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-6.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-7.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-8.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available-9.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available.c
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-available.exp.tcl
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-0.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-1.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-2.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-3.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe-4.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.c
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-sigframe.exp.tcl
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-0.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-1.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-2.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-3.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-4.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-5.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-6.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-7.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-8.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable-9.exp
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.c
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-regs-unavailable.exp.tcl
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-sanity.c
 create mode 100644 gdb/testsuite/gdb.arch/aarch64-sme-sanity.exp
 create mode 100644 gdb/testsuite/lib/aarch64-scalable.exp
 create mode 100644 gdb/testsuite/lib/aarch64-test-sme.c
 create mode 100644 gdb/testsuite/lib/aarch64-test-sve.c
 create mode 100644 gdb/testsuite/lib/aarch64.exp

-- 
2.25.1


             reply	other threads:[~2023-09-18 21:28 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-18 21:26 Luis Machado via Gdb-patches [this message]
2023-09-18 21:26 ` [PATCH v7 01/18] [gdb/aarch64] Fix register fetch/store order for native AArch64 Linux Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 02/18] [gdb/aarch64] refactor: Rename SVE-specific files Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 03/18] [gdb/gdbserver] refactor: Simplify SVE interface to read/write registers Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 04/18] [gdb/aarch64] sve: Fix return command when using V registers in a SVE-enabled target Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 05/18] [gdb/aarch64] sme: Enable SME registers and pseudo-registers Luis Machado via Gdb-patches
2023-10-13 13:06   ` Tom Tromey
2023-10-13 14:44     ` Luis Machado
2023-10-13 14:50       ` Luis Machado
2023-09-18 21:26 ` [PATCH v7 06/18] [gdbserver/generic] Convert tdesc's expedite_regs to a string vector Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 07/18] [gdbserver/aarch64] refactor: Adjust expedited registers dynamically Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 08/18] [gdbserver/aarch64] sme: Add support for SME Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 09/18] [gdb/aarch64] sve: Fix signal frame z/v register restore Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 10/18] [gdb/aarch64] sme: Signal frame support Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 11/18] [gdb/aarch64] sme: Fixup sigframe gdbarch when vg/svg changes Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 12/18] [gdb/aarch64] sme: Support TPIDR2 signal frame context Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 13/18] [gdb/generic] Get rid of linux-core-thread-data Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 14/18] [gdb/generic] corefile/bug: Use thread-specific gdbarch when dumping register state to core files Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 15/18] [gdb/generic] corefile/bug: Add hook to control the use of target description notes from corefiles Luis Machado via Gdb-patches
2023-09-19 20:49   ` Simon Marchi via Gdb-patches
2023-09-20  5:49     ` Luis Machado via Gdb-patches
2023-09-20 14:01       ` Luis Machado via Gdb-patches
2023-09-20 14:22   ` Andrew Burgess via Gdb-patches
2023-09-20 15:26     ` Andrew Burgess via Gdb-patches
2023-09-20 23:35       ` Luis Machado via Gdb-patches
2023-09-21 10:02         ` Andrew Burgess via Gdb-patches
2023-09-21 10:44           ` Luis Machado via Gdb-patches
2023-09-25  9:57             ` Andrew Burgess via Gdb-patches
2023-09-26 12:39               ` Luis Machado via Gdb-patches
2023-09-27 17:56                 ` Andrew Burgess via Gdb-patches
2023-09-28  8:23                   ` Luis Machado via Gdb-patches
2023-10-03 17:23                     ` Andrew Burgess via Gdb-patches
2023-10-04 15:27                       ` Luis Machado via Gdb-patches
2023-09-25 15:41             ` Simon Marchi via Gdb-patches
2023-09-27 17:44               ` Andrew Burgess via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 16/18] [gdb/aarch64] sme: Core file support for Linux Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 17/18] [gdb/testsuite] sme: Add SVE/SME testcases Luis Machado via Gdb-patches
2023-09-19 19:12   ` Simon Marchi via Gdb-patches
2023-09-19 20:02     ` Luis Machado via Gdb-patches
2023-09-18 21:26 ` [PATCH v7 18/18] [gdb/docs] sme: Document SME registers and features Luis Machado via Gdb-patches
2023-10-04 15:27 ` [PATCH v7 00/18] SME support for AArch64 gdb/gdbserver on Linux Luis Machado via Gdb-patches

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230918212651.660141-1-luis.machado@arm.com \
    --to=gdb-patches@sourceware.org \
    --cc=luis.machado@arm.com \
    --cc=thiago.bauermann@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox