Skip to content

Commit a07c6d9

Browse files
[llvm][llvm-readobj] Add NT_ARM_FPMR corefile note type (#102594)
This contains the fpmr register which was added in Armv9.5-a. This register mainly contains controls for fp8 formats. It was added to the Linux Kernel in torvalds/linux@4035c22.
1 parent cc14ecc commit a07c6d9

File tree

4 files changed

+8
-0
lines changed

4 files changed

+8
-0
lines changed

llvm/include/llvm/BinaryFormat/ELF.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1713,6 +1713,7 @@ enum : unsigned {
17131713
NT_ARM_SSVE = 0x40b,
17141714
NT_ARM_ZA = 0x40c,
17151715
NT_ARM_ZT = 0x40d,
1716+
NT_ARM_FPMR = 0x40e,
17161717

17171718
NT_FILE = 0x46494c45,
17181719
NT_PRXFPREG = 0x46e62b7f,

llvm/lib/ObjectYAML/ELFYAML.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ void ScalarEnumerationTraits<ELFYAML::ELF_NT>::enumeration(
135135
ECase(NT_ARM_SSVE);
136136
ECase(NT_ARM_ZA);
137137
ECase(NT_ARM_ZT);
138+
ECase(NT_ARM_FPMR);
138139
ECase(NT_FILE);
139140
ECase(NT_PRXFPREG);
140141
ECase(NT_SIGINFO);

llvm/test/tools/llvm-readobj/ELF/note-core.test

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,11 @@
260260
# RUN: llvm-readelf --notes %t_nt_arm_zt.o | FileCheck %s --check-prefix=CHECK-GNU -DDESC="NT_ARM_ZT (AArch64 SME ZT registers)"
261261
# RUN: llvm-readobj --notes %t_nt_arm_zt.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_ZT (AArch64 SME ZT registers)"
262262

263+
## Check ELF::NT_ARM_FPMR
264+
# RUN: yaml2obj %s -DTYPE=0x40e -o %t_nt_arm_fpmr.o
265+
# RUN: llvm-readelf --notes %t_nt_arm_fpmr.o | FileCheck %s --check-prefix=CHECK-GNU -DDESC="NT_ARM_FPMR (AArch64 Floating Point Mode Register)"
266+
# RUN: llvm-readobj --notes %t_nt_arm_fpmr.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_FPMR (AArch64 Floating Point Mode Register)"
267+
263268
## Check ELF::NT_FILE.
264269
# RUN: yaml2obj %s -DTYPE=0x46494c45 -o %t_nt_file.o
265270
# RUN: llvm-readelf --notes %t_nt_file.o | FileCheck %s --check-prefix=CHECK-GNU -DDESC="NT_FILE (mapped files)"

llvm/tools/llvm-readobj/ELFDumper.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6035,6 +6035,7 @@ const NoteType CoreNoteTypes[] = {
60356035
{ELF::NT_ARM_SSVE, "NT_ARM_SSVE (AArch64 Streaming SVE registers)"},
60366036
{ELF::NT_ARM_ZA, "NT_ARM_ZA (AArch64 SME ZA registers)"},
60376037
{ELF::NT_ARM_ZT, "NT_ARM_ZT (AArch64 SME ZT registers)"},
6038+
{ELF::NT_ARM_FPMR, "NT_ARM_FPMR (AArch64 Floating Point Mode Register)"},
60386039

60396040
{ELF::NT_FILE, "NT_FILE (mapped files)"},
60406041
{ELF::NT_PRXFPREG, "NT_PRXFPREG (user_xfpregs structure)"},

0 commit comments

Comments
 (0)