xref: /llvm-project/llvm/test/tools/llvm-readobj/ELF/note-core.test (revision 088e74cf73549b556cb718f5322ae40a2c84a1f8)
1## Test that note values are interpreted correctly for core files.
2
3## Check NT_PRSTATUS.
4# RUN: yaml2obj %s -DTYPE=0x1 -o %t_nt_prstatus.o
5# RUN: llvm-readelf --notes %t_nt_prstatus.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PRSTATUS (prstatus structure)"
6# RUN: llvm-readobj --notes %t_nt_prstatus.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PRSTATUS (prstatus structure)"
7
8## Check NT_FPREGSET.
9# RUN: yaml2obj %s -DTYPE=0x2 -o %t_nt_fpregset.o
10# RUN: llvm-readelf --notes %t_nt_fpregset.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_FPREGSET (floating point registers)"
11# RUN: llvm-readobj --notes %t_nt_fpregset.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_FPREGSET (floating point registers)"
12
13## Check NT_PRPSINFO.
14# RUN: yaml2obj %s -DTYPE=0x3 -o %t_nt_prpsinfo.o
15# RUN: llvm-readelf --notes %t_nt_prpsinfo.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PRPSINFO (prpsinfo structure)"
16# RUN: llvm-readobj --notes %t_nt_prpsinfo.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PRPSINFO (prpsinfo structure)"
17
18## Check NT_TASKSTRUCT.
19# RUN: yaml2obj %s -DTYPE=0x4 -o %t_nt_taskstruct.o
20# RUN: llvm-readelf --notes %t_nt_taskstruct.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_TASKSTRUCT (task structure)"
21# RUN: llvm-readobj --notes %t_nt_taskstruct.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_TASKSTRUCT (task structure)"
22
23## Check NT_AUXV.
24# RUN: yaml2obj %s -DTYPE=0x6 -o %t_nt_auxv.o
25# RUN: llvm-readelf --notes %t_nt_auxv.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_AUXV (auxiliary vector)"
26# RUN: llvm-readobj --notes %t_nt_auxv.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_AUXV (auxiliary vector)"
27
28## Check NT_PSTATUS.
29# RUN: yaml2obj %s -DTYPE=0xA -o %t_nt_pstatus.o
30# RUN: llvm-readelf --notes %t_nt_pstatus.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PSTATUS (pstatus structure)"
31# RUN: llvm-readobj --notes %t_nt_pstatus.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PSTATUS (pstatus structure)"
32
33## Check NT_FPREGS.
34# RUN: yaml2obj %s -DTYPE=0xC -o %t_nt_fpregs.o
35# RUN: llvm-readelf --notes %t_nt_fpregs.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_FPREGS (floating point registers)"
36# RUN: llvm-readobj --notes %t_nt_fpregs.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_FPREGS (floating point registers)"
37
38## Check NT_PSINFO.
39# RUN: yaml2obj %s -DTYPE=0xD -o %t_nt_psinfo.o
40# RUN: llvm-readelf --notes %t_nt_psinfo.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PSINFO (psinfo structure)"
41# RUN: llvm-readobj --notes %t_nt_psinfo.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PSINFO (psinfo structure)"
42
43## Check NT_LWPSTATUS.
44# RUN: yaml2obj %s -DTYPE=0x10 -o %t_nt_lwpstatus.o
45# RUN: llvm-readelf --notes %t_nt_lwpstatus.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_LWPSTATUS (lwpstatus_t structure)"
46# RUN: llvm-readobj --notes %t_nt_lwpstatus.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_LWPSTATUS (lwpstatus_t structure)"
47
48## Check NT_LWPSINFO.
49# RUN: yaml2obj %s -DTYPE=0x11 -o %t_nt_lwpsinfo.o
50# RUN: llvm-readelf --notes %t_nt_lwpsinfo.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_LWPSINFO (lwpsinfo_t structure)"
51# RUN: llvm-readobj --notes %t_nt_lwpsinfo.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_LWPSINFO (lwpsinfo_t structure)"
52
53## Check NT_WIN32PSTATUS.
54# RUN: yaml2obj %s -DTYPE=0x12 -o %t_nt_win32pstatus.o
55# RUN: llvm-readelf --notes %t_nt_win32pstatus.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_WIN32PSTATUS (win32_pstatus structure)"
56# RUN: llvm-readobj --notes %t_nt_win32pstatus.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_WIN32PSTATUS (win32_pstatus structure)"
57
58## Check ELF::NT_PPC_VMX.
59# RUN: yaml2obj %s -DTYPE=0x100 -o %t_nt_ppc_vmx.o
60# RUN: llvm-readelf --notes %t_nt_ppc_vmx.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_VMX (ppc Altivec registers)"
61# RUN: llvm-readobj --notes %t_nt_ppc_vmx.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_VMX (ppc Altivec registers)"
62
63## Check ELF::NT_PPC_VSX.
64# RUN: yaml2obj %s -DTYPE=0x102 -o %t_nt_ppc_vsx.o
65# RUN: llvm-readelf --notes %t_nt_ppc_vsx.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_VSX (ppc VSX registers)"
66# RUN: llvm-readobj --notes %t_nt_ppc_vsx.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_VSX (ppc VSX registers)"
67
68## Check ELF::NT_PPC_TAR.
69# RUN: yaml2obj %s -DTYPE=0x103 -o %t_nt_ppc_tar.o
70# RUN: llvm-readelf --notes %t_nt_ppc_tar.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_TAR (ppc TAR register)"
71# RUN: llvm-readobj --notes %t_nt_ppc_tar.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_TAR (ppc TAR register)"
72
73## Check ELF::NT_PPC_PPR.
74# RUN: yaml2obj %s -DTYPE=0x104 -o %t_nt_ppc_ppr.o
75# RUN: llvm-readelf --notes %t_nt_ppc_ppr.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_PPR (ppc PPR register)"
76# RUN: llvm-readobj --notes %t_nt_ppc_ppr.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_PPR (ppc PPR register)"
77
78## Check ELF::NT_PPC_DSCR.
79# RUN: yaml2obj %s -DTYPE=0x105 -o %t_nt_ppc_dscr.o
80# RUN: llvm-readelf --notes %t_nt_ppc_dscr.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_DSCR (ppc DSCR register)"
81# RUN: llvm-readobj --notes %t_nt_ppc_dscr.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_DSCR (ppc DSCR register)"
82
83## Check ELF::NT_PPC_EBB.
84# RUN: yaml2obj %s -DTYPE=0x106 -o %t_nt_ppc_ebb.o
85# RUN: llvm-readelf --notes %t_nt_ppc_ebb.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_EBB (ppc EBB registers)"
86# RUN: llvm-readobj --notes %t_nt_ppc_ebb.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_EBB (ppc EBB registers)"
87
88## Check ELF::NT_PPC_PMU.
89# RUN: yaml2obj %s -DTYPE=0x107 -o %t_nt_ppc_pmu.o
90# RUN: llvm-readelf --notes %t_nt_ppc_pmu.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_PMU (ppc PMU registers)"
91# RUN: llvm-readobj --notes %t_nt_ppc_pmu.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_PMU (ppc PMU registers)"
92
93## Check ELF::NT_PPC_TM_CGPR.
94# RUN: yaml2obj %s -DTYPE=0x108 -o %t_nt_ppc_tm_cgpr.o
95# RUN: llvm-readelf --notes %t_nt_ppc_tm_cgpr.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_TM_CGPR (ppc checkpointed GPR registers)"
96# RUN: llvm-readobj --notes %t_nt_ppc_tm_cgpr.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_TM_CGPR (ppc checkpointed GPR registers)"
97
98## Check ELF::NT_PPC_TM_CFPR.
99# RUN: yaml2obj %s -DTYPE=0x109 -o %t_nt_ppc_tm_cfpr.o
100# RUN: llvm-readelf --notes %t_nt_ppc_tm_cfpr.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_TM_CFPR (ppc checkpointed floating point registers)"
101# RUN: llvm-readobj --notes %t_nt_ppc_tm_cfpr.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_TM_CFPR (ppc checkpointed floating point registers)"
102
103## Check ELF::NT_PPC_TM_CVMX.
104# RUN: yaml2obj %s -DTYPE=0x10a -o %t_nt_ppc_tm_cvmx.o
105# RUN: llvm-readelf --notes %t_nt_ppc_tm_cvmx.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_TM_CVMX (ppc checkpointed Altivec registers)"
106# RUN: llvm-readobj --notes %t_nt_ppc_tm_cvmx.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_TM_CVMX (ppc checkpointed Altivec registers)"
107
108## Check ELF::NT_PPC_TM_CVSX.
109# RUN: yaml2obj %s -DTYPE=0x10b -o %t_nt_ppc_tm_cvsx.o
110# RUN: llvm-readelf --notes %t_nt_ppc_tm_cvsx.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_TM_CVSX (ppc checkpointed VSX registers)"
111# RUN: llvm-readobj --notes %t_nt_ppc_tm_cvsx.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_TM_CVSX (ppc checkpointed VSX registers)"
112
113## Check ELF::NT_PPC_TM_SPR.
114# RUN: yaml2obj %s -DTYPE=0x10c -o %t_nt_ppc_tm_spr.o
115# RUN: llvm-readelf --notes %t_nt_ppc_tm_spr.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_TM_SPR (ppc TM special purpose registers)"
116# RUN: llvm-readobj --notes %t_nt_ppc_tm_spr.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_TM_SPR (ppc TM special purpose registers)"
117
118## Check ELF::NT_PPC_TM_CTAR.
119# RUN: yaml2obj %s -DTYPE=0x10d -o %t_nt_ppc_tm_ctar.o
120# RUN: llvm-readelf --notes %t_nt_ppc_tm_ctar.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_TM_CTAR (ppc checkpointed TAR register)"
121# RUN: llvm-readobj --notes %t_nt_ppc_tm_ctar.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_TM_CTAR (ppc checkpointed TAR register)"
122
123## Check ELF::NT_PPC_TM_CPPR.
124# RUN: yaml2obj %s -DTYPE=0x10e -o %t_nt_ppc_tm_cppr.o
125# RUN: llvm-readelf --notes %t_nt_ppc_tm_cppr.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_TM_CPPR (ppc checkpointed PPR register)"
126# RUN: llvm-readobj --notes %t_nt_ppc_tm_cppr.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_TM_CPPR (ppc checkpointed PPR register)"
127
128## Check ELF::NT_PPC_TM_CDSCR.
129# RUN: yaml2obj %s -DTYPE=0x10f -o %t_nt_ppc_tm_cdscr.o
130# RUN: llvm-readelf --notes %t_nt_ppc_tm_cdscr.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PPC_TM_CDSCR (ppc checkpointed DSCR register)"
131# RUN: llvm-readobj --notes %t_nt_ppc_tm_cdscr.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PPC_TM_CDSCR (ppc checkpointed DSCR register)"
132
133## Check ELF::NT_386_TLS.
134# RUN: yaml2obj %s -DTYPE=0x200 -o %t_nt_386_tls.o
135# RUN: llvm-readelf --notes %t_nt_386_tls.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_386_TLS (x86 TLS information)"
136# RUN: llvm-readobj --notes %t_nt_386_tls.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_386_TLS (x86 TLS information)"
137
138## Check ELF::NT_386_IOPERM.
139# RUN: yaml2obj %s -DTYPE=0x201 -o %t_nt_386_ioperm.o
140# RUN: llvm-readelf --notes %t_nt_386_ioperm.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_386_IOPERM (x86 I/O permissions)"
141# RUN: llvm-readobj --notes %t_nt_386_ioperm.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_386_IOPERM (x86 I/O permissions)"
142
143## Check ELF::NT_X86_XSTATE.
144# RUN: yaml2obj %s -DTYPE=0x202 -o %t_nt_x86_xstate.o
145# RUN: llvm-readelf --notes %t_nt_x86_xstate.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_X86_XSTATE (x86 XSAVE extended state)"
146# RUN: llvm-readobj --notes %t_nt_x86_xstate.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_X86_XSTATE (x86 XSAVE extended state)"
147
148## Check ELF::NT_S390_HIGH_GPRS.
149# RUN: yaml2obj %s -DTYPE=0x300 -o %t_nt_s390_high_gprs.o
150# RUN: llvm-readelf --notes %t_nt_s390_high_gprs.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_HIGH_GPRS (s390 upper register halves)"
151# RUN: llvm-readobj --notes %t_nt_s390_high_gprs.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_HIGH_GPRS (s390 upper register halves)"
152
153## Check ELF::NT_S390_TIMER.
154# RUN: yaml2obj %s -DTYPE=0x301 -o %t_nt_s390_timer.o
155# RUN: llvm-readelf --notes %t_nt_s390_timer.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_TIMER (s390 timer register)"
156# RUN: llvm-readobj --notes %t_nt_s390_timer.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_TIMER (s390 timer register)"
157
158## Check ELF::NT_S390_TODCMP.
159# RUN: yaml2obj %s -DTYPE=0x302 -o %t_nt_s390_todcmp.o
160# RUN: llvm-readelf --notes %t_nt_s390_todcmp.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_TODCMP (s390 TOD comparator register)"
161# RUN: llvm-readobj --notes %t_nt_s390_todcmp.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_TODCMP (s390 TOD comparator register)"
162
163## Check ELF::NT_S390_TODPREG.
164# RUN: yaml2obj %s -DTYPE=0x303 -o %t_nt_s390_todpreg.o
165# RUN: llvm-readelf --notes %t_nt_s390_todpreg.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_TODPREG (s390 TOD programmable register)"
166# RUN: llvm-readobj --notes %t_nt_s390_todpreg.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_TODPREG (s390 TOD programmable register)"
167
168## Check ELF::NT_S390_CTRS.
169# RUN: yaml2obj %s -DTYPE=0x304 -o %t_nt_s390_ctrs.o
170# RUN: llvm-readelf --notes %t_nt_s390_ctrs.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_CTRS (s390 control registers)"
171# RUN: llvm-readobj --notes %t_nt_s390_ctrs.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_CTRS (s390 control registers)"
172
173## Check ELF::NT_S390_PREFIX.
174# RUN: yaml2obj %s -DTYPE=0x305 -o %t_nt_s390_prefix.o
175# RUN: llvm-readelf --notes %t_nt_s390_prefix.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_PREFIX (s390 prefix register)"
176# RUN: llvm-readobj --notes %t_nt_s390_prefix.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_PREFIX (s390 prefix register)"
177
178## Check ELF::NT_S390_LAST_BREAK.
179# RUN: yaml2obj %s -DTYPE=0x306 -o %t_nt_s390_last_break.o
180# RUN: llvm-readelf --notes %t_nt_s390_last_break.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_LAST_BREAK (s390 last breaking event address)"
181# RUN: llvm-readobj --notes %t_nt_s390_last_break.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_LAST_BREAK (s390 last breaking event address)"
182
183## Check ELF::NT_S390_SYSTEM_CALL.
184# RUN: yaml2obj %s -DTYPE=0x307 -o %t_nt_s390_system_call.o
185# RUN: llvm-readelf --notes %t_nt_s390_system_call.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_SYSTEM_CALL (s390 system call restart data)"
186# RUN: llvm-readobj --notes %t_nt_s390_system_call.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_SYSTEM_CALL (s390 system call restart data)"
187
188## Check ELF::NT_S390_TDB.
189# RUN: yaml2obj %s -DTYPE=0x308 -o %t_nt_s390_tdb.o
190# RUN: llvm-readelf --notes %t_nt_s390_tdb.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_TDB (s390 transaction diagnostic block)"
191# RUN: llvm-readobj --notes %t_nt_s390_tdb.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_TDB (s390 transaction diagnostic block)"
192
193## Check ELF::NT_S390_VXRS_LOW.
194# RUN: yaml2obj %s -DTYPE=0x309 -o %t_nt_s390_vxrs_low.o
195# RUN: llvm-readelf --notes %t_nt_s390_vxrs_low.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_VXRS_LOW (s390 vector registers 0-15 upper half)"
196# RUN: llvm-readobj --notes %t_nt_s390_vxrs_low.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_VXRS_LOW (s390 vector registers 0-15 upper half)"
197
198## Check ELF::NT_S390_VXRS_HIGH.
199# RUN: yaml2obj %s -DTYPE=0x30a -o %t_nt_s390_vxrs_high.o
200# RUN: llvm-readelf --notes %t_nt_s390_vxrs_high.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_VXRS_HIGH (s390 vector registers 16-31)"
201# RUN: llvm-readobj --notes %t_nt_s390_vxrs_high.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_VXRS_HIGH (s390 vector registers 16-31)"
202
203## Check ELF::NT_S390_GS_CB.
204# RUN: yaml2obj %s -DTYPE=0x30b -o %t_nt_s390_gs_cb.o
205# RUN: llvm-readelf --notes %t_nt_s390_gs_cb.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_GS_CB (s390 guarded-storage registers)"
206# RUN: llvm-readobj --notes %t_nt_s390_gs_cb.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_GS_CB (s390 guarded-storage registers)"
207
208## Check ELF::NT_S390_GS_BC.
209# RUN: yaml2obj %s -DTYPE=0x30c -o %t_nt_s390_gs_bc.o
210# RUN: llvm-readelf --notes %t_nt_s390_gs_bc.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_S390_GS_BC (s390 guarded-storage broadcast control)"
211# RUN: llvm-readobj --notes %t_nt_s390_gs_bc.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_S390_GS_BC (s390 guarded-storage broadcast control)"
212
213## Check ELF::NT_ARM_VFP.
214# RUN: yaml2obj %s -DTYPE=0x400 -o %t_nt_arm_vfp.o
215# RUN: llvm-readelf --notes %t_nt_arm_vfp.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_ARM_VFP (arm VFP registers)"
216# RUN: llvm-readobj --notes %t_nt_arm_vfp.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_VFP (arm VFP registers)"
217
218## Check ELF::NT_ARM_TLS.
219# RUN: yaml2obj %s -DTYPE=0x401 -o %t_nt_arm_tls.o
220# RUN: llvm-readelf --notes %t_nt_arm_tls.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_ARM_TLS (AArch TLS registers)"
221# RUN: llvm-readobj --notes %t_nt_arm_tls.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_TLS (AArch TLS registers)"
222
223## Check ELF::NT_ARM_HW_BREAK.
224# RUN: yaml2obj %s -DTYPE=0x402 -o %t_nt_arm_hw_break.o
225# RUN: llvm-readelf --notes %t_nt_arm_hw_break.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_ARM_HW_BREAK (AArch hardware breakpoint registers)"
226# RUN: llvm-readobj --notes %t_nt_arm_hw_break.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_HW_BREAK (AArch hardware breakpoint registers)"
227
228## Check ELF::NT_ARM_HW_WATCH.
229# RUN: yaml2obj %s -DTYPE=0x403 -o %t_nt_arm_hw_watch.o
230# RUN: llvm-readelf --notes %t_nt_arm_hw_watch.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_ARM_HW_WATCH (AArch hardware watchpoint registers)"
231# RUN: llvm-readobj --notes %t_nt_arm_hw_watch.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_HW_WATCH (AArch hardware watchpoint registers)"
232
233## Check ELF::NT_ARM_SVE
234# RUN: yaml2obj %s -DTYPE=0x405 -o %t_nt_arm_sve.o
235# RUN: llvm-readelf --notes %t_nt_arm_sve.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_ARM_SVE (AArch64 SVE registers)"
236# RUN: llvm-readobj --notes %t_nt_arm_sve.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_SVE (AArch64 SVE registers)"
237
238## Check ELF::NT_ARM_PAC_MASK
239# RUN: yaml2obj %s -DTYPE=0x406 -o %t_nt_arm_pac_mask.o
240# RUN: llvm-readelf --notes %t_nt_arm_pac_mask.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_ARM_PAC_MASK (AArch64 Pointer Authentication code masks)"
241# RUN: llvm-readobj --notes %t_nt_arm_pac_mask.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_PAC_MASK (AArch64 Pointer Authentication code masks)"
242
243## Check ELF::NT_ARM_TAGGED_ADDR_CTRL
244# RUN: yaml2obj %s -DTYPE=0x409 -o %t_nt_arm_tagged_addr_ctrl.o
245# RUN: llvm-readelf --notes %t_nt_arm_tagged_addr_ctrl.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_ARM_TAGGED_ADDR_CTRL (AArch64 Tagged Address Control)"
246# RUN: llvm-readobj --notes %t_nt_arm_tagged_addr_ctrl.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_TAGGED_ADDR_CTRL (AArch64 Tagged Address Control)"
247
248## Check ELF::NT_ARM_SSVE
249# RUN: yaml2obj %s -DTYPE=0x40b -o %t_nt_arm_ssve.o
250# RUN: llvm-readelf --notes %t_nt_arm_ssve.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_ARM_SSVE (AArch64 Streaming SVE registers)"
251# RUN: llvm-readobj --notes %t_nt_arm_ssve.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_SSVE (AArch64 Streaming SVE registers)"
252
253## Check ELF::NT_ARM_ZA
254# RUN: yaml2obj %s -DTYPE=0x40c -o %t_nt_arm_za.o
255# RUN: llvm-readelf --notes %t_nt_arm_za.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_ARM_ZA (AArch64 SME ZA registers)"
256# RUN: llvm-readobj --notes %t_nt_arm_za.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_ZA (AArch64 SME ZA registers)"
257
258## Check ELF::NT_ARM_ZT
259# RUN: yaml2obj %s -DTYPE=0x40d -o %t_nt_arm_zt.o
260# RUN: llvm-readelf --notes %t_nt_arm_zt.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_ARM_ZT (AArch64 SME ZT registers)"
261# RUN: llvm-readobj --notes %t_nt_arm_zt.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_ZT (AArch64 SME ZT registers)"
262
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
268## Check ELF::NT_ARM_GCS
269# RUN: yaml2obj %s -DTYPE=0x410 -o %t_nt_arm_gcs.o
270# RUN: llvm-readelf --notes %t_nt_arm_gcs.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_ARM_GCS (AArch64 Guarded Control Stack state)"
271# RUN: llvm-readobj --notes %t_nt_arm_gcs.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_ARM_GCS (AArch64 Guarded Control Stack state)"
272
273## Check ELF::NT_FILE.
274# RUN: yaml2obj %s -DTYPE=0x46494c45 -o %t_nt_file.o
275# RUN: llvm-readelf --notes %t_nt_file.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_FILE (mapped files)"
276# RUN: llvm-readobj --notes %t_nt_file.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_FILE (mapped files)"
277
278## Check ELF::NT_PRXFPREG.
279# RUN: yaml2obj %s -DTYPE=0x46e62b7f -o %t_nt_prxfpreg.o
280# RUN: llvm-readelf --notes %t_nt_prxfpreg.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_PRXFPREG (user_xfpregs structure)"
281# RUN: llvm-readobj --notes %t_nt_prxfpreg.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_PRXFPREG (user_xfpregs structure)"
282
283## Check ELF::NT_SIGINFO.
284# RUN: yaml2obj %s -DTYPE=0x53494749 -o %t_nt_siginfo.o
285# RUN: llvm-readelf --notes %t_nt_siginfo.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="NT_SIGINFO (siginfo_t data)"
286# RUN: llvm-readobj --notes %t_nt_siginfo.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="NT_SIGINFO (siginfo_t data)"
287
288## Check an arbitrary unknown type.
289# RUN: yaml2obj %s -DTYPE=0x12345678 -o %t_unknown.o
290# RUN: llvm-readelf --notes %t_unknown.o | FileCheck %s --check-prefix=CHECK-GNU  -DDESC="Unknown note type: (0x12345678)"
291# RUN: llvm-readobj --notes %t_unknown.o | FileCheck %s --check-prefix=CHECK-LLVM -DDESC="Unknown (0x12345678)"
292
293# CHECK-GNU:      Owner Data size  Description
294# CHECK-GNU-NEXT: CORE  0x00000000 [[DESC]]
295# CHECK-GNU-EMPTY:
296
297# CHECK-LLVM:       Size: 0x14
298# CHECK-LLVM-NEXT:  Notes [
299# CHECK-LLVM-NEXT:  {
300# CHECK-LLVM-NEXT:   Owner: CORE
301# CHECK-LLVM-NEXT:   Data size: 0x0
302# CHECK-LLVM-NEXT:   Type: [[DESC]]
303# CHECK-LLVM-NEXT:  }
304# CHECK-LLVM-NEXT:  ]
305
306--- !ELF
307FileHeader:
308  Class: ELFCLASS64
309  Data:  ELFDATA2LSB
310  Type:  ET_CORE
311Sections:
312  - Name: .note.foo
313    Type: SHT_NOTE
314    Notes:
315      - Name: CORE
316        Type: [[TYPE]]
317ProgramHeaders:
318  - Type:     PT_NOTE
319    FirstSec: .note.foo
320    LastSec:  .note.foo
321