8989# RUN: llvm-readobj --notes gnu-1-0.o | \
9090# RUN: FileCheck --check-prefix=OBJ -DPLATFORM="0x1 (baremetal)" -DVERSION=0x0 %s
9191
92- #--- gnu-0x10000002-85 .s
92+ #--- gnu-0x10000002-0 .s
9393.section ".note.gnu.property" , "a"
9494 .long 4 // Name length is always 4 ("GNU")
9595 .long end - begin // Data length
@@ -101,19 +101,91 @@ begin:
101101 .long 0xc0000001 // Type: GNU_PROPERTY_AARCH64_FEATURE_PAUTH
102102 .long 16 // Data size
103103 .quad 0x10000002 // PAuth ABI platform
104- .quad 85 // PAuth ABI version
104+ .quad 0 // PAuth ABI version
105+ .p2align 3 // Align to 8 byte for 64 bit
106+ end:
107+
108+ # RUN: llvm-mc -filetype=obj -triple aarch64-linux-gnu gnu-0x10000002-0.s -o gnu-0x10000002-0.o
109+ # RUN: llvm-readelf --notes gnu-0x10000002-0.o | \
110+ # RUN: FileCheck --check-prefix=ELF -DPLATFORM="0x10000002 (llvm_linux)" \
111+ # RUN: -DVERSION="0x0 (!PointerAuthIntrinsics, !PointerAuthCalls, !PointerAuthReturns, !PointerAuthAuthTraps, !PointerAuthVTPtrAddressDiscrimination, !PointerAuthVTPtrTypeDiscrimination, !PointerAuthInitFini, !PointerAuthInitFiniAddressDiscrimination, !PointerAuthELFGOT)" %s
112+ # RUN: llvm-readobj --notes gnu-0x10000002-0.o | \
113+ # RUN: FileCheck --check-prefix=OBJ -DPLATFORM="0x10000002 (llvm_linux)" \
114+ # RUN: -DVERSION="0x0 (!PointerAuthIntrinsics, !PointerAuthCalls, !PointerAuthReturns, !PointerAuthAuthTraps, !PointerAuthVTPtrAddressDiscrimination, !PointerAuthVTPtrTypeDiscrimination, !PointerAuthInitFini, !PointerAuthInitFiniAddressDiscrimination, !PointerAuthELFGOT)" %s
115+
116+ #--- gnu-0x10000002-341.s
117+ .section ".note.gnu.property" , "a"
118+ .long 4 // Name length is always 4 ("GNU")
119+ .long end - begin // Data length
120+ .long 5 // Type: NT_GNU_PROPERTY_TYPE_0
121+ .asciz "GNU" // Name
122+ .p2align 3
123+ begin:
124+ # PAuth ABI property note
125+ .long 0xc0000001 // Type: GNU_PROPERTY_AARCH64_FEATURE_PAUTH
126+ .long 16 // Data size
127+ .quad 0x10000002 // PAuth ABI platform
128+ .quad 341 // PAuth ABI version
129+ .p2align 3 // Align to 8 byte for 64 bit
130+ end:
131+
132+ # RUN: llvm-mc -filetype=obj -triple aarch64-linux-gnu gnu-0x10000002-341.s -o gnu-0x10000002-341.o
133+ # RUN: llvm-readelf --notes gnu-0x10000002-341.o | \
134+ # RUN: FileCheck --check-prefix=ELF -DPLATFORM="0x10000002 (llvm_linux)" \
135+ # RUN: -DVERSION="0x155 (PointerAuthIntrinsics, !PointerAuthCalls, PointerAuthReturns, !PointerAuthAuthTraps, PointerAuthVTPtrAddressDiscrimination, !PointerAuthVTPtrTypeDiscrimination, PointerAuthInitFini, !PointerAuthInitFiniAddressDiscrimination, PointerAuthELFGOT)" %s
136+ # RUN: llvm-readobj --notes gnu-0x10000002-341.o | \
137+ # RUN: FileCheck --check-prefix=OBJ -DPLATFORM="0x10000002 (llvm_linux)" \
138+ # RUN: -DVERSION="0x155 (PointerAuthIntrinsics, !PointerAuthCalls, PointerAuthReturns, !PointerAuthAuthTraps, PointerAuthVTPtrAddressDiscrimination, !PointerAuthVTPtrTypeDiscrimination, PointerAuthInitFini, !PointerAuthInitFiniAddressDiscrimination, PointerAuthELFGOT)" %s
139+
140+ #--- gnu-0x10000002-170.s
141+ .section ".note.gnu.property" , "a"
142+ .long 4 // Name length is always 4 ("GNU")
143+ .long end - begin // Data length
144+ .long 5 // Type: NT_GNU_PROPERTY_TYPE_0
145+ .asciz "GNU" // Name
146+ .p2align 3
147+ begin:
148+ # PAuth ABI property note
149+ .long 0xc0000001 // Type: GNU_PROPERTY_AARCH64_FEATURE_PAUTH
150+ .long 16 // Data size
151+ .quad 0x10000002 // PAuth ABI platform
152+ .quad 170 // PAuth ABI version
153+ .p2align 3 // Align to 8 byte for 64 bit
154+ end:
155+
156+ # RUN: llvm-mc -filetype=obj -triple aarch64-linux-gnu gnu-0x10000002-170.s -o gnu-0x10000002-170.o
157+ # RUN: llvm-readelf --notes gnu-0x10000002-170.o | \
158+ # RUN: FileCheck --check-prefix=ELF -DPLATFORM="0x10000002 (llvm_linux)" \
159+ # RUN: -DVERSION="0xaa (!PointerAuthIntrinsics, PointerAuthCalls, !PointerAuthReturns, PointerAuthAuthTraps, !PointerAuthVTPtrAddressDiscrimination, PointerAuthVTPtrTypeDiscrimination, !PointerAuthInitFini, PointerAuthInitFiniAddressDiscrimination, !PointerAuthELFGOT)" %s
160+ # RUN: llvm-readobj --notes gnu-0x10000002-170.o | \
161+ # RUN: FileCheck --check-prefix=OBJ -DPLATFORM="0x10000002 (llvm_linux)" \
162+ # RUN: -DVERSION="0xaa (!PointerAuthIntrinsics, PointerAuthCalls, !PointerAuthReturns, PointerAuthAuthTraps, !PointerAuthVTPtrAddressDiscrimination, PointerAuthVTPtrTypeDiscrimination, !PointerAuthInitFini, PointerAuthInitFiniAddressDiscrimination, !PointerAuthELFGOT)" %s
163+
164+ #--- gnu-0x10000002-511.s
165+ .section ".note.gnu.property" , "a"
166+ .long 4 // Name length is always 4 ("GNU")
167+ .long end - begin // Data length
168+ .long 5 // Type: NT_GNU_PROPERTY_TYPE_0
169+ .asciz "GNU" // Name
170+ .p2align 3
171+ begin:
172+ # PAuth ABI property note
173+ .long 0xc0000001 // Type: GNU_PROPERTY_AARCH64_FEATURE_PAUTH
174+ .long 16 // Data size
175+ .quad 0x10000002 // PAuth ABI platform
176+ .quad 511 // PAuth ABI version
105177 .p2align 3 // Align to 8 byte for 64 bit
106178end:
107179
108- # RUN: llvm-mc -filetype=obj -triple aarch64-linux-gnu gnu-0x10000002-85 .s -o gnu-0x10000002-85 .o
109- # RUN: llvm-readelf --notes gnu-0x10000002-85 .o | \
180+ # RUN: llvm-mc -filetype=obj -triple aarch64-linux-gnu gnu-0x10000002-511 .s -o gnu-0x10000002-511 .o
181+ # RUN: llvm-readelf --notes gnu-0x10000002-511 .o | \
110182# RUN: FileCheck --check-prefix=ELF -DPLATFORM="0x10000002 (llvm_linux)" \
111- # RUN: -DVERSION="0x55 (PointerAuthIntrinsics, ! PointerAuthCalls, PointerAuthReturns, ! PointerAuthAuthTraps, PointerAuthVTPtrAddressDiscrimination, ! PointerAuthVTPtrTypeDiscrimination, PointerAuthInitFini, ! PointerAuthInitFiniAddressDiscrimination)" %s
112- # RUN: llvm-readobj --notes gnu-0x10000002-85 .o | \
183+ # RUN: -DVERSION="0x1ff (PointerAuthIntrinsics, PointerAuthCalls, PointerAuthReturns, PointerAuthAuthTraps, PointerAuthVTPtrAddressDiscrimination, PointerAuthVTPtrTypeDiscrimination, PointerAuthInitFini, PointerAuthInitFiniAddressDiscrimination, PointerAuthELFGOT )" %s
184+ # RUN: llvm-readobj --notes gnu-0x10000002-511 .o | \
113185# RUN: FileCheck --check-prefix=OBJ -DPLATFORM="0x10000002 (llvm_linux)" \
114- # RUN: -DVERSION="0x55 (PointerAuthIntrinsics, ! PointerAuthCalls, PointerAuthReturns, ! PointerAuthAuthTraps, PointerAuthVTPtrAddressDiscrimination, ! PointerAuthVTPtrTypeDiscrimination, PointerAuthInitFini, ! PointerAuthInitFiniAddressDiscrimination)" %s
186+ # RUN: -DVERSION="0x1ff (PointerAuthIntrinsics, PointerAuthCalls, PointerAuthReturns, PointerAuthAuthTraps, PointerAuthVTPtrAddressDiscrimination, PointerAuthVTPtrTypeDiscrimination, PointerAuthInitFini, PointerAuthInitFiniAddressDiscrimination, PointerAuthELFGOT )" %s
115187
116- #--- gnu-0x10000002-256 .s
188+ #--- gnu-0x10000002-512 .s
117189.section ".note.gnu.property" , "a"
118190 .long 4 // Name length is always 4 ("GNU")
119191 .long end - begin // Data length
@@ -125,15 +197,15 @@ begin:
125197 .long 0xc0000001 // Type: GNU_PROPERTY_AARCH64_FEATURE_PAUTH
126198 .long 16 // Data size
127199 .quad 0x10000002 // PAuth ABI platform
128- .quad 256 // PAuth ABI version
200+ .quad 512 // PAuth ABI version
129201 .p2align 3 // Align to 8 byte for 64 bit
130202end:
131203
132- # RUN: llvm-mc -filetype=obj -triple aarch64-linux-gnu gnu-0x10000002-256 .s -o gnu-0x10000002-256 .o
133- # RUN: llvm-readelf --notes gnu-0x10000002-256 .o | \
134- # RUN: FileCheck --check-prefix=ELF -DPLATFORM="0x10000002 (llvm_linux)" -DVERSION="0x100 (unknown)" %s
135- # RUN: llvm-readobj --notes gnu-0x10000002-256 .o | \
136- # RUN: FileCheck --check-prefix=OBJ -DPLATFORM="0x10000002 (llvm_linux)" -DVERSION="0x100 (unknown)" %s
204+ # RUN: llvm-mc -filetype=obj -triple aarch64-linux-gnu gnu-0x10000002-512 .s -o gnu-0x10000002-512 .o
205+ # RUN: llvm-readelf --notes gnu-0x10000002-512 .o | \
206+ # RUN: FileCheck --check-prefix=ELF -DPLATFORM="0x10000002 (llvm_linux)" -DVERSION="0x200 (unknown)" %s
207+ # RUN: llvm-readobj --notes gnu-0x10000002-512 .o | \
208+ # RUN: FileCheck --check-prefix=OBJ -DPLATFORM="0x10000002 (llvm_linux)" -DVERSION="0x200 (unknown)" %s
137209
138210#--- gnu-short.s
139211.section ".note.gnu.property" , "a"
0 commit comments