[aarch64/sme] binutils: Add new NT_ARM_ZA and NT_ARM_SSVE register set constants

Message ID 20221219131149.2268979-1-luis.machado@arm.com
State Accepted
Headers
Series [aarch64/sme] binutils: Add new NT_ARM_ZA and NT_ARM_SSVE register set constants |

Checks

Context Check Description
snail/binutils-gdb-check success Github commit url

Commit Message

Luis Machado Dec. 19, 2022, 1:11 p.m. UTC
  From: Ezra Sitorus <ezra.sitorus@arm.com>

The AArch64 SME feature exposes a couple new register sets: NT_ARM_ZA and
NT_ARM_SSVE.

Teach binutils/include about those.

Co-authored-by: Luis Machado  <luis.machado@arm.com>
---
 binutils/readelf.c   | 4 ++++
 include/elf/common.h | 5 +++++
 2 files changed, 9 insertions(+)
  

Comments

Luis Machado Dec. 28, 2022, 6:07 p.m. UTC | #1
On 12/19/22 13:11, Luis Machado via Binutils wrote:
> From: Ezra Sitorus <ezra.sitorus@arm.com>
> 
> The AArch64 SME feature exposes a couple new register sets: NT_ARM_ZA and
> NT_ARM_SSVE.
> 
> Teach binutils/include about those.
> 
> Co-authored-by: Luis Machado  <luis.machado@arm.com>
> ---
>   binutils/readelf.c   | 4 ++++
>   include/elf/common.h | 5 +++++
>   2 files changed, 9 insertions(+)
> 
> diff --git a/binutils/readelf.c b/binutils/readelf.c
> index bce93782952..96e9502318a 100644
> --- a/binutils/readelf.c
> +++ b/binutils/readelf.c
> @@ -19547,6 +19547,10 @@ get_note_type (Filedata * filedata, unsigned e_type)
>   	return _("NT_ARM_PACG_KEYS (ARM pointer authentication generic keys)");
>         case NT_ARM_TAGGED_ADDR_CTRL:
>   	return _("NT_ARM_TAGGED_ADDR_CTRL (AArch tagged address control)");
> +      case NT_ARM_SSVE:
> +	return _("NT_ARM_SSVE (AArch64 streaming SVE registers)");
> +      case NT_ARM_ZA:
> +	return _("NT_ARM_ZA (AArch64 SME ZA register)");
>         case NT_ARM_PAC_ENABLED_KEYS:
>   	return _("NT_ARM_PAC_ENABLED_KEYS (AArch64 pointer authentication enabled keys)");
>         case NT_ARC_V2:
> diff --git a/include/elf/common.h b/include/elf/common.h
> index 16587f6fb06..c935746148e 100644
> --- a/include/elf/common.h
> +++ b/include/elf/common.h
> @@ -696,6 +696,11 @@
>   #define NT_ARM_PAC_ENABLED_KEYS	0x40a	/* AArch64 pointer authentication
>   					   enabled keys (prctl()) */
>   					/*   note name must be "LINUX".  */
> +#define NT_ARM_SSVE	0x40b		/* AArch64 SME streaming SVE
> +					   registers.  */
> +					/*   note name must be "LINUX".  */
> +#define NT_ARM_ZA	0x40c		/* AArch64 SME ZA register.  */
> +					/*   note name must be "LINUX".  */
>   #define NT_ARC_V2	0x600		/* ARC HS accumulator/extra registers.  */
>   					/*   note name must be "LINUX".  */
>   #define NT_LARCH_CPUCFG 0xa00		/* LoongArch CPU config registers */
  
Nick Clifton Jan. 3, 2023, 11:16 a.m. UTC | #2
Hi Luis,

>> The AArch64 SME feature exposes a couple new register sets: NT_ARM_ZA and
>> NT_ARM_SSVE.
>>
>> Teach binutils/include about those.

Sorry for missing this submission.

Patch approved and applied.

Cheers
   Nick
  
Luis Machado Jan. 4, 2023, 5:40 a.m. UTC | #3
Hi Nick,

On 1/3/23 11:16, Nick Clifton wrote:
> Hi Luis,
> 
>>> The AArch64 SME feature exposes a couple new register sets: NT_ARM_ZA and
>>> NT_ARM_SSVE.
>>>
>>> Teach binutils/include about those.
> 
> Sorry for missing this submission.
> 
> Patch approved and applied.
> 
> Cheers
>    Nick
> 
> 

No worries. Thanks for pushing this one.
  

Patch

diff --git a/binutils/readelf.c b/binutils/readelf.c
index bce93782952..96e9502318a 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -19547,6 +19547,10 @@  get_note_type (Filedata * filedata, unsigned e_type)
 	return _("NT_ARM_PACG_KEYS (ARM pointer authentication generic keys)");
       case NT_ARM_TAGGED_ADDR_CTRL:
 	return _("NT_ARM_TAGGED_ADDR_CTRL (AArch tagged address control)");
+      case NT_ARM_SSVE:
+	return _("NT_ARM_SSVE (AArch64 streaming SVE registers)");
+      case NT_ARM_ZA:
+	return _("NT_ARM_ZA (AArch64 SME ZA register)");
       case NT_ARM_PAC_ENABLED_KEYS:
 	return _("NT_ARM_PAC_ENABLED_KEYS (AArch64 pointer authentication enabled keys)");
       case NT_ARC_V2:
diff --git a/include/elf/common.h b/include/elf/common.h
index 16587f6fb06..c935746148e 100644
--- a/include/elf/common.h
+++ b/include/elf/common.h
@@ -696,6 +696,11 @@ 
 #define NT_ARM_PAC_ENABLED_KEYS	0x40a	/* AArch64 pointer authentication
 					   enabled keys (prctl()) */
 					/*   note name must be "LINUX".  */
+#define NT_ARM_SSVE	0x40b		/* AArch64 SME streaming SVE
+					   registers.  */
+					/*   note name must be "LINUX".  */
+#define NT_ARM_ZA	0x40c		/* AArch64 SME ZA register.  */
+					/*   note name must be "LINUX".  */
 #define NT_ARC_V2	0x600		/* ARC HS accumulator/extra registers.  */
 					/*   note name must be "LINUX".  */
 #define NT_LARCH_CPUCFG 0xa00		/* LoongArch CPU config registers */