[0/6] SME2 support for AArch64 gdb/gdbserver on Linux

Message ID 20230630134844.1238445-1-luis.machado@arm.com
Headers
Series SME2 support for AArch64 gdb/gdbserver on Linux |

Message

Luis Machado June 30, 2023, 1:48 p.m. UTC
  The following series enables SME 2 (Scalable Matrix Extension 2) support for
AArch64 gdb and gdbserver.

SME2 expands on SME by adding a predicate register of 512 bits named ZT0.

At a high level, this series does the following:

- Adds support for the ZT0 register and adds a new target description feature
  for it.
- Core file support (depends on binutils patches).
- Signal frame context support.
- Native Linux handling of the new NT_ARM_ZT register set.

This series depends on the SME series, and should be applied on top of that
one.

--

Luis Machado (6):
  [gdb/aarch64] sme2: Enable SME2 for AArch64 gdb on Linux
  [gdbserver/aarch64] sme2: Enable SME2 support in gdbserver
  [gdb/aarch64] sme2: signal frame support
  [gdb/aarch64] sme2: Core file support for ZT register set
  [gdb/testsuite] sme2: Extend SME tests to include SME2
  [gdb/docs] sme2: Document SME2 registers and features

 gdb/NEWS                                      |   3 +
 gdb/aarch64-linux-nat.c                       |  49 ++++++
 gdb/aarch64-linux-tdep.c                      | 146 ++++++++++++++++++
 gdb/aarch64-tdep.c                            |  21 +++
 gdb/aarch64-tdep.h                            |  10 ++
 gdb/arch/aarch64-scalable-linux.h             |   6 +
 gdb/arch/aarch64.c                            |   4 +
 gdb/arch/aarch64.h                            |  12 +-
 gdb/doc/gdb.texinfo                           |  65 ++++++++
 gdb/features/aarch64-sme2.c                   |  43 ++++++
 gdb/nat/aarch64-scalable-linux-ptrace.c       | 136 ++++++++++++++++
 gdb/nat/aarch64-scalable-linux-ptrace.h       |  27 ++++
 gdb/testsuite/gdb.arch/aarch64-sme-core.c     |  32 +++-
 .../gdb.arch/aarch64-sme-core.exp.tcl         |   2 +-
 .../aarch64-sme-regs-available.exp.tcl        |  17 ++
 .../gdb.arch/aarch64-sme-regs-sigframe.c      |  32 +++-
 .../aarch64-sme-regs-sigframe.exp.tcl         |  13 +-
 .../aarch64-sme-regs-unavailable.exp.tcl      |  12 ++
 gdb/testsuite/gdb.arch/aarch64-sme-sanity.c   |  32 +++-
 gdb/testsuite/lib/aarch64.exp                 |  44 ++++++
 gdbserver/linux-aarch64-low.cc                |  63 ++++++++
 21 files changed, 760 insertions(+), 9 deletions(-)
 create mode 100644 gdb/features/aarch64-sme2.c
  

Comments

Luis Machado July 24, 2023, 8:16 a.m. UTC | #1
On 6/30/23 14:48, Luis Machado via Gdb-patches wrote:
> The following series enables SME 2 (Scalable Matrix Extension 2) support for
> AArch64 gdb and gdbserver.
> 
> SME2 expands on SME by adding a predicate register of 512 bits named ZT0.
> 
> At a high level, this series does the following:
> 
> - Adds support for the ZT0 register and adds a new target description feature
>   for it.
> - Core file support (depends on binutils patches).
> - Signal frame context support.
> - Native Linux handling of the new NT_ARM_ZT register set.
> 
> This series depends on the SME series, and should be applied on top of that
> one.
> 
> --
> 
> Luis Machado (6):
>   [gdb/aarch64] sme2: Enable SME2 for AArch64 gdb on Linux
>   [gdbserver/aarch64] sme2: Enable SME2 support in gdbserver
>   [gdb/aarch64] sme2: signal frame support
>   [gdb/aarch64] sme2: Core file support for ZT register set
>   [gdb/testsuite] sme2: Extend SME tests to include SME2
>   [gdb/docs] sme2: Document SME2 registers and features
> 
>  gdb/NEWS                                      |   3 +
>  gdb/aarch64-linux-nat.c                       |  49 ++++++
>  gdb/aarch64-linux-tdep.c                      | 146 ++++++++++++++++++
>  gdb/aarch64-tdep.c                            |  21 +++
>  gdb/aarch64-tdep.h                            |  10 ++
>  gdb/arch/aarch64-scalable-linux.h             |   6 +
>  gdb/arch/aarch64.c                            |   4 +
>  gdb/arch/aarch64.h                            |  12 +-
>  gdb/doc/gdb.texinfo                           |  65 ++++++++
>  gdb/features/aarch64-sme2.c                   |  43 ++++++
>  gdb/nat/aarch64-scalable-linux-ptrace.c       | 136 ++++++++++++++++
>  gdb/nat/aarch64-scalable-linux-ptrace.h       |  27 ++++
>  gdb/testsuite/gdb.arch/aarch64-sme-core.c     |  32 +++-
>  .../gdb.arch/aarch64-sme-core.exp.tcl         |   2 +-
>  .../aarch64-sme-regs-available.exp.tcl        |  17 ++
>  .../gdb.arch/aarch64-sme-regs-sigframe.c      |  32 +++-
>  .../aarch64-sme-regs-sigframe.exp.tcl         |  13 +-
>  .../aarch64-sme-regs-unavailable.exp.tcl      |  12 ++
>  gdb/testsuite/gdb.arch/aarch64-sme-sanity.c   |  32 +++-
>  gdb/testsuite/lib/aarch64.exp                 |  44 ++++++
>  gdbserver/linux-aarch64-low.cc                |  63 ++++++++
>  21 files changed, 760 insertions(+), 9 deletions(-)
>  create mode 100644 gdb/features/aarch64-sme2.c
>