[llvm-readobj] - Simplify stack-sizes.test test case.
[llvm-complete.git] / test / MC / AArch64 / armv8.3a-signed-pointer.s
blobfe34002680e3c3ed4bf77d3dbcc47c21dca375a9
1 // RUN: llvm-mc -triple aarch64-none-linux-gnu -show-encoding -mattr=+v8.3a -o - %s 2>&1 | \
2 // RUN: FileCheck --check-prefixes=CHECK,ALL %s
4 // RUN: not llvm-mc -triple aarch64-none-linux-gnu %s -o - > %t.1 2>%t.2
5 // RUN: FileCheck --check-prefixes=ALL,NOENC %s < %t.1
6 // RUN: FileCheck --check-prefix=CHECK-REQ %s < %t.2
8 // ALL: .text
9 mrs x0, apiakeylo_el1
10 mrs x0, apiakeyhi_el1
11 mrs x0, apibkeylo_el1
12 mrs x0, apibkeyhi_el1
13 mrs x0, apdakeylo_el1
14 mrs x0, apdakeyhi_el1
15 mrs x0, apdbkeylo_el1
16 mrs x0, apdbkeyhi_el1
17 mrs x0, apgakeylo_el1
18 mrs x0, apgakeyhi_el1
19 // ALL-EMPTY:
20 // ALL-EMPTY:
21 // CHECK-NEXT: mrs x0, APIAKeyLo_EL1 // encoding: [0x00,0x21,0x38,0xd5]
22 // CHECK-NEXT: mrs x0, APIAKeyHi_EL1 // encoding: [0x20,0x21,0x38,0xd5]
23 // CHECK-NEXT: mrs x0, APIBKeyLo_EL1 // encoding: [0x40,0x21,0x38,0xd5]
24 // CHECK-NEXT: mrs x0, APIBKeyHi_EL1 // encoding: [0x60,0x21,0x38,0xd5]
25 // CHECK-NEXT: mrs x0, APDAKeyLo_EL1 // encoding: [0x00,0x22,0x38,0xd5]
26 // CHECK-NEXT: mrs x0, APDAKeyHi_EL1 // encoding: [0x20,0x22,0x38,0xd5]
27 // CHECK-NEXT: mrs x0, APDBKeyLo_EL1 // encoding: [0x40,0x22,0x38,0xd5]
28 // CHECK-NEXT: mrs x0, APDBKeyHi_EL1 // encoding: [0x60,0x22,0x38,0xd5]
29 // CHECK-NEXT: mrs x0, APGAKeyLo_EL1 // encoding: [0x00,0x23,0x38,0xd5]
30 // CHECK-NEXT: mrs x0, APGAKeyHi_EL1 // encoding: [0x20,0x23,0x38,0xd5]
32 // CHECK-REQ: error: expected readable system register
33 // CHECK-REQ-NEXT: mrs x0, apiakeylo_el1
34 // CHECK-REQ: error: expected readable system register
35 // CHECK-REQ-NEXT: mrs x0, apiakeyhi_el1
36 // CHECK-REQ: error: expected readable system register
37 // CHECK-REQ-NEXT: mrs x0, apibkeylo_el1
38 // CHECK-REQ: error: expected readable system register
39 // CHECK-REQ-NEXT: mrs x0, apibkeyhi_el1
40 // CHECK-REQ: error: expected readable system register
41 // CHECK-REQ-NEXT: mrs x0, apdakeylo_el1
42 // CHECK-REQ: error: expected readable system register
43 // CHECK-REQ-NEXT: mrs x0, apdakeyhi_el1
44 // CHECK-REQ: error: expected readable system register
45 // CHECK-REQ-NEXT: mrs x0, apdbkeylo_el1
46 // CHECK-REQ: error: expected readable system register
47 // CHECK-REQ-NEXT: mrs x0, apdbkeyhi_el1
48 // CHECK-REQ: error: expected readable system register
49 // CHECK-REQ-NEXT: mrs x0, apgakeylo_el1
50 // CHECK-REQ: error: expected readable system register
51 // CHECK-REQ-NEXT: mrs x0, apgakeyhi_el1
53 msr apiakeylo_el1, x0
54 msr apiakeyhi_el1, x0
55 msr apibkeylo_el1, x0
56 msr apibkeyhi_el1, x0
57 msr apdakeylo_el1, x0
58 msr apdakeyhi_el1, x0
59 msr apdbkeylo_el1, x0
60 msr apdbkeyhi_el1, x0
61 msr apgakeylo_el1, x0
62 msr apgakeyhi_el1, x0
63 // ALL-EMPTY:
64 // ALL-EMPTY:
65 // CHECK-NEXT: msr APIAKeyLo_EL1, x0 // encoding: [0x00,0x21,0x18,0xd5]
66 // CHECK-NEXT: msr APIAKeyHi_EL1, x0 // encoding: [0x20,0x21,0x18,0xd5]
67 // CHECK-NEXT: msr APIBKeyLo_EL1, x0 // encoding: [0x40,0x21,0x18,0xd5]
68 // CHECK-NEXT: msr APIBKeyHi_EL1, x0 // encoding: [0x60,0x21,0x18,0xd5]
69 // CHECK-NEXT: msr APDAKeyLo_EL1, x0 // encoding: [0x00,0x22,0x18,0xd5]
70 // CHECK-NEXT: msr APDAKeyHi_EL1, x0 // encoding: [0x20,0x22,0x18,0xd5]
71 // CHECK-NEXT: msr APDBKeyLo_EL1, x0 // encoding: [0x40,0x22,0x18,0xd5]
72 // CHECK-NEXT: msr APDBKeyHi_EL1, x0 // encoding: [0x60,0x22,0x18,0xd5]
73 // CHECK-NEXT: msr APGAKeyLo_EL1, x0 // encoding: [0x00,0x23,0x18,0xd5]
74 // CHECK-NEXT: msr APGAKeyHi_EL1, x0 // encoding: [0x20,0x23,0x18,0xd5]
76 // CHECK-REQ: error: expected writable system register or pstate
77 // CHECK-REQ-NEXT: msr apiakeylo_el1, x0
78 // CHECK-REQ: error: expected writable system register or pstate
79 // CHECK-REQ-NEXT: msr apiakeyhi_el1, x0
80 // CHECK-REQ: error: expected writable system register or pstate
81 // CHECK-REQ-NEXT: msr apibkeylo_el1, x0
82 // CHECK-REQ: error: expected writable system register or pstate
83 // CHECK-REQ-NEXT: msr apibkeyhi_el1, x0
84 // CHECK-REQ: error: expected writable system register or pstate
85 // CHECK-REQ-NEXT: msr apdakeylo_el1, x0
86 // CHECK-REQ: error: expected writable system register or pstate
87 // CHECK-REQ-NEXT: msr apdakeyhi_el1, x0
88 // CHECK-REQ: error: expected writable system register or pstate
89 // CHECK-REQ-NEXT: msr apdbkeylo_el1, x0
90 // CHECK-REQ: error: expected writable system register or pstate
91 // CHECK-REQ-NEXT: msr apdbkeyhi_el1, x0
92 // CHECK-REQ: error: expected writable system register or pstate
93 // CHECK-REQ-NEXT: msr apgakeylo_el1, x0
94 // CHECK-REQ: error: expected writable system register or pstate
95 // CHECK-REQ-NEXT: msr apgakeyhi_el1, x0
97 // ALL-EMPTY:
98 // ALL-EMPTY:
99 paciasp
100 // CHECK-NEXT: paciasp // encoding: [0x3f,0x23,0x03,0xd5]
101 // NOENC-NEXT: paciasp
102 autiasp
103 // CHECK-NEXT: autiasp // encoding: [0xbf,0x23,0x03,0xd5]
104 // NOENC-NEXT: autiasp
105 paciaz
106 // CHECK-NEXT: paciaz // encoding: [0x1f,0x23,0x03,0xd5]
107 // NOENC-NEXT: paciaz
108 autiaz
109 // CHECK-NEXT: autiaz // encoding: [0x9f,0x23,0x03,0xd5]
110 // NOENC-NEXT: autiaz
111 pacia1716
112 // CHECK-NEXT: pacia1716 // encoding: [0x1f,0x21,0x03,0xd5]
113 // NOENC-NEXT: pacia1716
114 autia1716
115 // CHECK-NEXT: autia1716 // encoding: [0x9f,0x21,0x03,0xd5]
116 // NOENC-NEXT: autia1716
117 pacibsp
118 // CHECK-NEXT: pacibsp // encoding: [0x7f,0x23,0x03,0xd5]
119 // NOENC-NEXT: pacibsp
120 autibsp
121 // CHECK-NEXT: autibsp // encoding: [0xff,0x23,0x03,0xd5]
122 // NOENC-NEXT: autibsp
123 pacibz
124 // CHECK-NEXT: pacibz // encoding: [0x5f,0x23,0x03,0xd5]
125 // NOENC-NEXT: pacibz
126 autibz
127 // CHECK-NEXT: autibz // encoding: [0xdf,0x23,0x03,0xd5]
128 // NOENC-NEXT: autibz
129 pacib1716
130 // CHECK-NEXT: pacib1716 // encoding: [0x5f,0x21,0x03,0xd5]
131 // NOENC-NEXT: pacib1716
132 autib1716
133 // CHECK-NEXT: autib1716 // encoding: [0xdf,0x21,0x03,0xd5]
134 // NOENC-NEXT: autib1716
135 xpaclri
136 // CHECK-NEXT: xpaclri // encoding: [0xff,0x20,0x03,0xd5]
137 // NOENC-NEXT: xpaclri
139 // ALL-EMPTY:
140 pacia x0, x1
141 // CHECK-NEXT: pacia x0, x1 // encoding: [0x20,0x00,0xc1,0xda]
142 // CHECK-REQ-NEXT: ^
143 // CHECK-REQ-NEXT: error: instruction requires: pa
144 // CHECK-REQ-NEXT: pacia x0, x1
145 autia x0, x1
146 // CHECK-NEXT: autia x0, x1 // encoding: [0x20,0x10,0xc1,0xda]
147 // CHECK-REQ: error: instruction requires: pa
148 // CHECK-REQ-NEXT: autia x0, x1
149 pacda x0, x1
150 // CHECK-NEXT: pacda x0, x1 // encoding: [0x20,0x08,0xc1,0xda]
151 // CHECK-REQ: error: instruction requires: pa
152 // CHECK-REQ-NEXT: pacda x0, x1
153 autda x0, x1
154 // CHECK-NEXT: autda x0, x1 // encoding: [0x20,0x18,0xc1,0xda]
155 // CHECK-REQ: error: instruction requires: pa
156 // CHECK-REQ-NEXT: autda x0, x1
157 pacib x0, x1
158 // CHECK-NEXT: pacib x0, x1 // encoding: [0x20,0x04,0xc1,0xda]
159 // CHECK-REQ: error: instruction requires: pa
160 // CHECK-REQ-NEXT: pacib x0, x1
161 autib x0, x1
162 // CHECK-NEXT: autib x0, x1 // encoding: [0x20,0x14,0xc1,0xda]
163 // CHECK-REQ: error: instruction requires: pa
164 // CHECK-REQ-NEXT: autib x0, x1
165 pacdb x0, x1
166 // CHECK-NEXT: pacdb x0, x1 // encoding: [0x20,0x0c,0xc1,0xda]
167 // CHECK-REQ: error: instruction requires: pa
168 // CHECK-REQ-NEXT: pacdb x0, x1
169 autdb x0, x1
170 // CHECK-NEXT: autdb x0, x1 // encoding: [0x20,0x1c,0xc1,0xda]
171 // CHECK-REQ: error: instruction requires: pa
172 // CHECK-REQ-NEXT: autdb x0, x1
173 pacga x0, x1, x2
174 // CHECK-NEXT: pacga x0, x1, x2 // encoding: [0x20,0x30,0xc2,0x9a]
175 // CHECK-REQ: error: instruction requires: pa
176 // CHECK-REQ-NEXT: pacga x0, x1, x2
177 paciza x0
178 // CHECK-NEXT: paciza x0 // encoding: [0xe0,0x23,0xc1,0xda]
179 // CHECK-REQ: error: instruction requires: pa
180 // CHECK-REQ-NEXT: paciza x0
181 autiza x0
182 // CHECK-NEXT: autiza x0 // encoding: [0xe0,0x33,0xc1,0xda]
183 // CHECK-REQ: error: instruction requires: pa
184 // CHECK-REQ-NEXT: autiza x0
185 pacdza x0
186 // CHECK-NEXT: pacdza x0 // encoding: [0xe0,0x2b,0xc1,0xda]
187 // CHECK-REQ: error: instruction requires: pa
188 // CHECK-REQ-NEXT: pacdza x0
189 autdza x0
190 // CHECK-NEXT: autdza x0 // encoding: [0xe0,0x3b,0xc1,0xda]
191 // CHECK-REQ: error: instruction requires: pa
192 // CHECK-REQ-NEXT: autdza x0
193 pacizb x0
194 // CHECK-NEXT: pacizb x0 // encoding: [0xe0,0x27,0xc1,0xda]
195 // CHECK-REQ: error: instruction requires: pa
196 // CHECK-REQ-NEXT: pacizb x0
197 autizb x0
198 // CHECK-NEXT: autizb x0 // encoding: [0xe0,0x37,0xc1,0xda]
199 // CHECK-REQ: error: instruction requires: pa
200 // CHECK-REQ-NEXT: autizb x0
201 pacdzb x0
202 // CHECK-NEXT: pacdzb x0 // encoding: [0xe0,0x2f,0xc1,0xda]
203 // CHECK-REQ: error: instruction requires: pa
204 // CHECK-REQ-NEXT: pacdzb x0
205 autdzb x0
206 // CHECK-NEXT: autdzb x0 // encoding: [0xe0,0x3f,0xc1,0xda]
207 // CHECK-REQ: error: instruction requires: pa
208 // CHECK-REQ-NEXT: autdzb x0
209 xpaci x0
210 // CHECK-NEXT: xpaci x0 // encoding: [0xe0,0x43,0xc1,0xda]
211 // CHECK-REQ: error: instruction requires: pa
212 // CHECK-REQ-NEXT: xpaci x0
213 xpacd x0
214 // CHECK-NEXT: xpacd x0 // encoding: [0xe0,0x47,0xc1,0xda]
215 // CHECK-REQ: error: instruction requires: pa
216 // CHECK-REQ-NEXT: xpacd x0
218 braa x0, x1
219 // CHECK-EMPTY:
220 // CHECK-NEXT: braa x0, x1 // encoding: [0x01,0x08,0x1f,0xd7]
221 // CHECK-REQ: error: instruction requires: pa
222 // CHECK-REQ-NEXT: braa x0, x1
223 brab x0, x1
224 // CHECK-NEXT: brab x0, x1 // encoding: [0x01,0x0c,0x1f,0xd7]
225 // CHECK-REQ: error: instruction requires: pa
226 // CHECK-REQ-NEXT: brab x0, x1
227 blraa x0, x1
228 // CHECK-NEXT: blraa x0, x1 // encoding: [0x01,0x08,0x3f,0xd7]
229 // CHECK-REQ: error: instruction requires: pa
230 // CHECK-REQ-NEXT: blraa x0, x1
231 blrab x0, x1
232 // CHECK-NEXT: blrab x0, x1 // encoding: [0x01,0x0c,0x3f,0xd7]
233 // CHECK-REQ: error: instruction requires: pa
234 // CHECK-REQ-NEXT: blrab x0, x1
236 braaz x0
237 // CHECK-EMPTY:
238 // CHECK-NEXT: braaz x0 // encoding: [0x1f,0x08,0x1f,0xd6]
239 // CHECK-REQ: error: instruction requires: pa
240 // CHECK-REQ-NEXT: braaz x0
241 brabz x0
242 // CHECK-NEXT: brabz x0 // encoding: [0x1f,0x0c,0x1f,0xd6]
243 // CHECK-REQ: error: instruction requires: pa
244 // CHECK-REQ-NEXT: brabz x0
245 blraaz x0
246 // CHECK-NEXT: blraaz x0 // encoding: [0x1f,0x08,0x3f,0xd6]
247 // CHECK-REQ: error: instruction requires: pa
248 // CHECK-REQ-NEXT: blraaz x0
249 blrabz x0
250 // CHECK-NEXT: blrabz x0 // encoding: [0x1f,0x0c,0x3f,0xd6]
251 // CHECK-REQ: error: instruction requires: pa
252 // CHECK-REQ-NEXT: blrabz x0
253 retaa
254 // CHECK-NEXT: retaa // encoding: [0xff,0x0b,0x5f,0xd6]
255 // CHECK-REQ: error: instruction requires: pa
256 // CHECK-REQ-NEXT: retaa
257 retab
258 // CHECK-NEXT: retab // encoding: [0xff,0x0f,0x5f,0xd6]
259 // CHECK-REQ: error: instruction requires: pa
260 // CHECK-REQ-NEXT: retab
261 eretaa
262 // CHECK-NEXT: eretaa // encoding: [0xff,0x0b,0x9f,0xd6]
263 // CHECK-REQ: error: instruction requires: pa
264 // CHECK-REQ-NEXT: eretaa
265 eretab
266 // CHECK-NEXT: eretab // encoding: [0xff,0x0f,0x9f,0xd6]
267 // CHECK-REQ: error: instruction requires: pa
268 // CHECK-REQ-NEXT: eretab
269 ldraa x0, [x1, 4088]
270 // CHECK-NEXT: ldraa x0, [x1, #4088] // encoding: [0x20,0xf4,0x3f,0xf8]
271 // CHECK-REQ: error: instruction requires: pa
272 // CHECK-REQ-NEXT: ldraa x0, [x1, 4088]
273 ldraa x0, [x1, -4096]
274 // CHECK-NEXT: ldraa x0, [x1, #-4096] // encoding: [0x20,0x04,0x60,0xf8]
275 // CHECK-REQ: error: instruction requires: pa
276 // CHECK-REQ-NEXT: ldraa x0, [x1, -4096]
277 ldrab x0, [x1, 4088]
278 // CHECK-NEXT: ldrab x0, [x1, #4088] // encoding: [0x20,0xf4,0xbf,0xf8]
279 // CHECK-REQ: error: instruction requires: pa
280 // CHECK-REQ-NEXT: ldrab x0, [x1, 4088]
281 ldrab x0, [x1, -4096]
282 // CHECK-NEXT: ldrab x0, [x1, #-4096] // encoding: [0x20,0x04,0xe0,0xf8]
283 // CHECK-REQ: error: instruction requires: pa
284 // CHECK-REQ-NEXT: ldrab x0, [x1, -4096]
285 ldraa x0, [x1, 4088]!
286 // CHECK-NEXT: ldraa x0, [x1, #4088]! // encoding: [0x20,0xfc,0x3f,0xf8]
287 // CHECK-REQ: error: instruction requires: pa
288 // CHECK-REQ-NEXT: ldraa x0, [x1, 4088]!
289 ldraa x0, [x1, -4096]!
290 // CHECK-NEXT: ldraa x0, [x1, #-4096]! // encoding: [0x20,0x0c,0x60,0xf8]
291 // CHECK-REQ: error: instruction requires: pa
292 // CHECK-REQ-NEXT: ldraa x0, [x1, -4096]!
293 ldrab x0, [x1, 4088]!
294 // CHECK-NEXT: ldrab x0, [x1, #4088]! // encoding: [0x20,0xfc,0xbf,0xf8]
295 // CHECK-REQ: error: instruction requires: pa
296 // CHECK-REQ-NEXT: ldrab x0, [x1, 4088]!
297 ldrab x0, [x1, -4096]!
298 // CHECK-NEXT: ldrab x0, [x1, #-4096]! // encoding: [0x20,0x0c,0xe0,0xf8]
299 // CHECK-REQ: error: instruction requires: pa
300 // CHECK-REQ-NEXT: ldrab x0, [x1, -4096]!
301 ldraa x0, [x1]
302 // CHECK-NEXT: ldraa x0, [x1] // encoding: [0x20,0x04,0x20,0xf8]
303 // CHECK-REQ: error: instruction requires: pa
304 // CHECK-REQ-NEXT: ldraa x0, [x1]
305 ldrab x0, [x1]
306 // CHECK-NEXT: ldrab x0, [x1] // encoding: [0x20,0x04,0xa0,0xf8]
307 // CHECK-REQ: error: instruction requires: pa
308 // CHECK-REQ-NEXT: ldrab x0, [x1]