]> git.proxmox.com Git - rustc.git/blob - src/llvm/test/MC/Disassembler/AArch64/basic-a64-instructions.txt
Imported Upstream version 1.0.0+dfsg1
[rustc.git] / src / llvm / test / MC / Disassembler / AArch64 / basic-a64-instructions.txt
1 # RUN: llvm-mc -triple=aarch64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s
2 # RUN: llvm-mc -triple=arm64 -mattr=+fp-armv8 -disassemble < %s | FileCheck %s
3
4 #------------------------------------------------------------------------------
5 # Add/sub (immediate)
6 #------------------------------------------------------------------------------
7 # CHECK: add w4, w5, #0
8 # CHECK: add w2, w3, #4095
9 # CHECK: add w30, w29, #1, lsl #12
10 # CHECK: add w13, w5, #4095, lsl #12
11 # CHECK: add x5, x7, #1638
12 0xa4 0x0 0x0 0x11
13 0x62 0xfc 0x3f 0x11
14 0xbe 0x7 0x40 0x11
15 0xad 0xfc 0x7f 0x11
16 0xe5 0x98 0x19 0x91
17
18 # CHECK: add w20, wsp, #801
19 # CHECK: add wsp, wsp, #1104
20 # CHECK: add wsp, w30, #4084
21 0xf4 0x87 0xc 0x11
22 0xff 0x43 0x11 0x11
23 0xdf 0xd3 0x3f 0x11
24
25 # CHECK: add x0, x24, #291
26 # CHECK: add x3, x24, #4095, lsl #12
27 # CHECK: add x8, sp, #1074
28 # CHECK: add sp, x29, #3816
29 0x0 0x8f 0x4 0x91
30 0x3 0xff 0x7f 0x91
31 0xe8 0xcb 0x10 0x91
32 0xbf 0xa3 0x3b 0x91
33
34 # CHECK: sub w0, wsp, #4077
35 # CHECK: sub w4, w20, #546, lsl #12
36 # CHECK: sub sp, sp, #288
37 # CHECK: sub wsp, w19, #16
38 0xe0 0xb7 0x3f 0x51
39 0x84 0x8a 0x48 0x51
40 0xff 0x83 0x4 0xd1
41 0x7f 0x42 0x0 0x51
42
43
44 # CHECK: adds w13, w23, #291, lsl #12
45 # CHECK: cmn w2, #4095
46 # CHECK: adds w20, wsp, #0
47 # CHECK: cmn x3, #1, lsl #12
48 0xed 0x8e 0x44 0x31
49 0x5f 0xfc 0x3f 0x31
50 0xf4 0x3 0x0 0x31
51 0x7f 0x4 0x40 0xb1
52
53 # CHECK: cmp sp, #20, lsl #12
54 # CHECK: cmp x30, #4095
55 # CHECK: subs x4, sp, #3822
56 0xff 0x53 0x40 0xf1
57 0xdf 0xff 0x3f 0xf1
58 0xe4 0xbb 0x3b 0xf1
59
60 # These should really be CMN
61 # CHECK: cmn w3, #291, lsl #12
62 # CHECK: cmn wsp, #1365
63 # CHECK: cmn sp, #1092, lsl #12
64 0x7f 0x8c 0x44 0x31
65 0xff 0x57 0x15 0x31
66 0xff 0x13 0x51 0xb1
67
68 # CHECK: mov sp, x30
69 # CHECK: mov wsp, w20
70 # CHECK: mov x11, sp
71 # CHECK: mov w24, wsp
72 0xdf 0x3 0x0 0x91
73 0x9f 0x2 0x0 0x11
74 0xeb 0x3 0x0 0x91
75 0xf8 0x3 0x0 0x11
76
77 #------------------------------------------------------------------------------
78 # Add-subtract (shifted register)
79 #------------------------------------------------------------------------------
80
81 # CHECK: add w3, w5, w7
82 # CHECK: add wzr, w3, w5
83 # CHECK: add w20, wzr, w4
84 # CHECK: add w4, w6, wzr
85 # CHECK: add w11, w13, w15
86 # CHECK: add w9, w3, wzr, lsl #10
87 # CHECK: add w17, w29, w20, lsl #31
88 # CHECK: add w21, w22, w23, lsr #0
89 # CHECK: add w24, w25, w26, lsr #18
90 # CHECK: add w27, w28, w29, lsr #31
91 # CHECK: add w2, w3, w4, asr #0
92 # CHECK: add w5, w6, w7, asr #21
93 # CHECK: add w8, w9, w10, asr #31
94 0xa3 0x0 0x7 0xb
95 0x7f 0x0 0x5 0xb
96 0xf4 0x3 0x4 0xb
97 0xc4 0x0 0x1f 0xb
98 0xab 0x1 0xf 0xb
99 0x69 0x28 0x1f 0xb
100 0xb1 0x7f 0x14 0xb
101 0xd5 0x2 0x57 0xb
102 0x38 0x4b 0x5a 0xb
103 0x9b 0x7f 0x5d 0xb
104 0x62 0x0 0x84 0xb
105 0xc5 0x54 0x87 0xb
106 0x28 0x7d 0x8a 0xb
107
108 # CHECK: add x3, x5, x7
109 # CHECK: add xzr, x3, x5
110 # CHECK: add x20, xzr, x4
111 # CHECK: add x4, x6, xzr
112 # CHECK: add x11, x13, x15
113 # CHECK: add x9, x3, xzr, lsl #10
114 # CHECK: add x17, x29, x20, lsl #63
115 # CHECK: add x21, x22, x23, lsr #0
116 # CHECK: add x24, x25, x26, lsr #18
117 # CHECK: add x27, x28, x29, lsr #63
118 # CHECK: add x2, x3, x4, asr #0
119 # CHECK: add x5, x6, x7, asr #21
120 # CHECK: add x8, x9, x10, asr #63
121 0xa3 0x0 0x7 0x8b
122 0x7f 0x0 0x5 0x8b
123 0xf4 0x3 0x4 0x8b
124 0xc4 0x0 0x1f 0x8b
125 0xab 0x1 0xf 0x8b
126 0x69 0x28 0x1f 0x8b
127 0xb1 0xff 0x14 0x8b
128 0xd5 0x2 0x57 0x8b
129 0x38 0x4b 0x5a 0x8b
130 0x9b 0xff 0x5d 0x8b
131 0x62 0x0 0x84 0x8b
132 0xc5 0x54 0x87 0x8b
133 0x28 0xfd 0x8a 0x8b
134
135 # CHECK: adds w3, w5, w7
136 # CHECK: cmn w3, w5
137 # CHECK: adds w20, wzr, w4
138 # CHECK: adds w4, w6, wzr
139 # CHECK: adds w11, w13, w15
140 # CHECK: adds w9, w3, wzr, lsl #10
141 # CHECK: adds w17, w29, w20, lsl #31
142 # CHECK: adds w21, w22, w23, lsr #0
143 # CHECK: adds w24, w25, w26, lsr #18
144 # CHECK: adds w27, w28, w29, lsr #31
145 # CHECK: adds w2, w3, w4, asr #0
146 # CHECK: adds w5, w6, w7, asr #21
147 # CHECK: adds w8, w9, w10, asr #31
148 0xa3 0x0 0x7 0x2b
149 0x7f 0x0 0x5 0x2b
150 0xf4 0x3 0x4 0x2b
151 0xc4 0x0 0x1f 0x2b
152 0xab 0x1 0xf 0x2b
153 0x69 0x28 0x1f 0x2b
154 0xb1 0x7f 0x14 0x2b
155 0xd5 0x2 0x57 0x2b
156 0x38 0x4b 0x5a 0x2b
157 0x9b 0x7f 0x5d 0x2b
158 0x62 0x0 0x84 0x2b
159 0xc5 0x54 0x87 0x2b
160 0x28 0x7d 0x8a 0x2b
161
162 # CHECK: adds x3, x5, x7
163 # CHECK: cmn x3, x5
164 # CHECK: adds x20, xzr, x4
165 # CHECK: adds x4, x6, xzr
166 # CHECK: adds x11, x13, x15
167 # CHECK: adds x9, x3, xzr, lsl #10
168 # CHECK: adds x17, x29, x20, lsl #63
169 # CHECK: adds x21, x22, x23, lsr #0
170 # CHECK: adds x24, x25, x26, lsr #18
171 # CHECK: adds x27, x28, x29, lsr #63
172 # CHECK: adds x2, x3, x4, asr #0
173 # CHECK: adds x5, x6, x7, asr #21
174 # CHECK: adds x8, x9, x10, asr #63
175 0xa3 0x0 0x7 0xab
176 0x7f 0x0 0x5 0xab
177 0xf4 0x3 0x4 0xab
178 0xc4 0x0 0x1f 0xab
179 0xab 0x1 0xf 0xab
180 0x69 0x28 0x1f 0xab
181 0xb1 0xff 0x14 0xab
182 0xd5 0x2 0x57 0xab
183 0x38 0x4b 0x5a 0xab
184 0x9b 0xff 0x5d 0xab
185 0x62 0x0 0x84 0xab
186 0xc5 0x54 0x87 0xab
187 0x28 0xfd 0x8a 0xab
188
189 # CHECK: sub w3, w5, w7
190 # CHECK: sub wzr, w3, w5
191 # CHECK: {{sub w20, wzr, w4|neg w20, w4}}
192 # CHECK: sub w4, w6, wzr
193 # CHECK: sub w11, w13, w15
194 # CHECK: sub w9, w3, wzr, lsl #10
195 # CHECK: sub w17, w29, w20, lsl #31
196 # CHECK: sub w21, w22, w23, lsr #0
197 # CHECK: sub w24, w25, w26, lsr #18
198 # CHECK: sub w27, w28, w29, lsr #31
199 # CHECK: sub w2, w3, w4, asr #0
200 # CHECK: sub w5, w6, w7, asr #21
201 # CHECK: sub w8, w9, w10, asr #31
202 0xa3 0x0 0x7 0x4b
203 0x7f 0x0 0x5 0x4b
204 0xf4 0x3 0x4 0x4b
205 0xc4 0x0 0x1f 0x4b
206 0xab 0x1 0xf 0x4b
207 0x69 0x28 0x1f 0x4b
208 0xb1 0x7f 0x14 0x4b
209 0xd5 0x2 0x57 0x4b
210 0x38 0x4b 0x5a 0x4b
211 0x9b 0x7f 0x5d 0x4b
212 0x62 0x0 0x84 0x4b
213 0xc5 0x54 0x87 0x4b
214 0x28 0x7d 0x8a 0x4b
215
216 # CHECK: sub x3, x5, x7
217 # CHECK: sub xzr, x3, x5
218 # CHECK: {{sub x20, xzr, x4|neg x20, x4}}
219 # CHECK: sub x4, x6, xzr
220 # CHECK: sub x11, x13, x15
221 # CHECK: sub x9, x3, xzr, lsl #10
222 # CHECK: sub x17, x29, x20, lsl #63
223 # CHECK: sub x21, x22, x23, lsr #0
224 # CHECK: sub x24, x25, x26, lsr #18
225 # CHECK: sub x27, x28, x29, lsr #63
226 # CHECK: sub x2, x3, x4, asr #0
227 # CHECK: sub x5, x6, x7, asr #21
228 # CHECK: sub x8, x9, x10, asr #63
229 0xa3 0x0 0x7 0xcb
230 0x7f 0x0 0x5 0xcb
231 0xf4 0x3 0x4 0xcb
232 0xc4 0x0 0x1f 0xcb
233 0xab 0x1 0xf 0xcb
234 0x69 0x28 0x1f 0xcb
235 0xb1 0xff 0x14 0xcb
236 0xd5 0x2 0x57 0xcb
237 0x38 0x4b 0x5a 0xcb
238 0x9b 0xff 0x5d 0xcb
239 0x62 0x0 0x84 0xcb
240 0xc5 0x54 0x87 0xcb
241 0x28 0xfd 0x8a 0xcb
242
243 # CHECK: subs w3, w5, w7
244 # CHECK: cmp w3, w5
245 # CHECK: {{subs w20, wzr, w4|negs w20, w4}}
246 # CHECK: subs w4, w6, wzr
247 # CHECK: subs w11, w13, w15
248 # CHECK: subs w9, w3, wzr, lsl #10
249 # CHECK: subs w17, w29, w20, lsl #31
250 # CHECK: subs w21, w22, w23, lsr #0
251 # CHECK: subs w24, w25, w26, lsr #18
252 # CHECK: subs w27, w28, w29, lsr #31
253 # CHECK: subs w2, w3, w4, asr #0
254 # CHECK: subs w5, w6, w7, asr #21
255 # CHECK: subs w8, w9, w10, asr #31
256 0xa3 0x0 0x7 0x6b
257 0x7f 0x0 0x5 0x6b
258 0xf4 0x3 0x4 0x6b
259 0xc4 0x0 0x1f 0x6b
260 0xab 0x1 0xf 0x6b
261 0x69 0x28 0x1f 0x6b
262 0xb1 0x7f 0x14 0x6b
263 0xd5 0x2 0x57 0x6b
264 0x38 0x4b 0x5a 0x6b
265 0x9b 0x7f 0x5d 0x6b
266 0x62 0x0 0x84 0x6b
267 0xc5 0x54 0x87 0x6b
268 0x28 0x7d 0x8a 0x6b
269
270 # CHECK: subs x3, x5, x7
271 # CHECK: cmp x3, x5
272 # CHECK: {{subs x20, xzr, x4|negs x20, x4}}
273 # CHECK: subs x4, x6, xzr
274 # CHECK: subs x11, x13, x15
275 # CHECK: subs x9, x3, xzr, lsl #10
276 # CHECK: subs x17, x29, x20, lsl #63
277 # CHECK: subs x21, x22, x23, lsr #0
278 # CHECK: subs x24, x25, x26, lsr #18
279 # CHECK: subs x27, x28, x29, lsr #63
280 # CHECK: subs x2, x3, x4, asr #0
281 # CHECK: subs x5, x6, x7, asr #21
282 # CHECK: subs x8, x9, x10, asr #63
283 0xa3 0x0 0x7 0xeb
284 0x7f 0x0 0x5 0xeb
285 0xf4 0x3 0x4 0xeb
286 0xc4 0x0 0x1f 0xeb
287 0xab 0x1 0xf 0xeb
288 0x69 0x28 0x1f 0xeb
289 0xb1 0xff 0x14 0xeb
290 0xd5 0x2 0x57 0xeb
291 0x38 0x4b 0x5a 0xeb
292 0x9b 0xff 0x5d 0xeb
293 0x62 0x0 0x84 0xeb
294 0xc5 0x54 0x87 0xeb
295 0x28 0xfd 0x8a 0xeb
296
297 # CHECK: cmn w0, w3
298 # CHECK: cmn wzr, w4
299 # CHECK: cmn w5, wzr
300 # CHECK: cmn w6, w7
301 # CHECK: cmn w8, w9, lsl #15
302 # CHECK: cmn w10, w11, lsl #31
303 # CHECK: cmn w12, w13, lsr #0
304 # CHECK: cmn w14, w15, lsr #21
305 # CHECK: cmn w16, w17, lsr #31
306 # CHECK: cmn w18, w19, asr #0
307 # CHECK: cmn w20, w21, asr #22
308 # CHECK: cmn w22, w23, asr #31
309 0x1f 0x0 0x3 0x2b
310 0xff 0x3 0x4 0x2b
311 0xbf 0x0 0x1f 0x2b
312 0xdf 0x0 0x7 0x2b
313 0x1f 0x3d 0x9 0x2b
314 0x5f 0x7d 0xb 0x2b
315 0x9f 0x1 0x4d 0x2b
316 0xdf 0x55 0x4f 0x2b
317 0x1f 0x7e 0x51 0x2b
318 0x5f 0x2 0x93 0x2b
319 0x9f 0x5a 0x95 0x2b
320 0xdf 0x7e 0x97 0x2b
321
322 # CHECK: cmn x0, x3
323 # CHECK: cmn xzr, x4
324 # CHECK: cmn x5, xzr
325 # CHECK: cmn x6, x7
326 # CHECK: cmn x8, x9, lsl #15
327 # CHECK: cmn x10, x11, lsl #63
328 # CHECK: cmn x12, x13, lsr #0
329 # CHECK: cmn x14, x15, lsr #41
330 # CHECK: cmn x16, x17, lsr #63
331 # CHECK: cmn x18, x19, asr #0
332 # CHECK: cmn x20, x21, asr #55
333 # CHECK: cmn x22, x23, asr #63
334 0x1f 0x0 0x3 0xab
335 0xff 0x3 0x4 0xab
336 0xbf 0x0 0x1f 0xab
337 0xdf 0x0 0x7 0xab
338 0x1f 0x3d 0x9 0xab
339 0x5f 0xfd 0xb 0xab
340 0x9f 0x1 0x4d 0xab
341 0xdf 0xa5 0x4f 0xab
342 0x1f 0xfe 0x51 0xab
343 0x5f 0x2 0x93 0xab
344 0x9f 0xde 0x95 0xab
345 0xdf 0xfe 0x97 0xab
346
347 # CHECK: cmp w0, w3
348 # CHECK: cmp wzr, w4
349 # CHECK: cmp w5, wzr
350 # CHECK: cmp w6, w7
351 # CHECK: cmp w8, w9, lsl #15
352 # CHECK: cmp w10, w11, lsl #31
353 # CHECK: cmp w12, w13, lsr #0
354 # CHECK: cmp w14, w15, lsr #21
355 # CHECK: cmp w16, w17, lsr #31
356 # CHECK: cmp w18, w19, asr #0
357 # CHECK: cmp w20, w21, asr #22
358 # CHECK: cmp w22, w23, asr #31
359 0x1f 0x0 0x3 0x6b
360 0xff 0x3 0x4 0x6b
361 0xbf 0x0 0x1f 0x6b
362 0xdf 0x0 0x7 0x6b
363 0x1f 0x3d 0x9 0x6b
364 0x5f 0x7d 0xb 0x6b
365 0x9f 0x1 0x4d 0x6b
366 0xdf 0x55 0x4f 0x6b
367 0x1f 0x7e 0x51 0x6b
368 0x5f 0x2 0x93 0x6b
369 0x9f 0x5a 0x95 0x6b
370 0xdf 0x7e 0x97 0x6b
371
372 # CHECK: cmp x0, x3
373 # CHECK: cmp xzr, x4
374 # CHECK: cmp x5, xzr
375 # CHECK: cmp x6, x7
376 # CHECK: cmp x8, x9, lsl #15
377 # CHECK: cmp x10, x11, lsl #63
378 # CHECK: cmp x12, x13, lsr #0
379 # CHECK: cmp x14, x15, lsr #41
380 # CHECK: cmp x16, x17, lsr #63
381 # CHECK: cmp x18, x19, asr #0
382 # CHECK: cmp x20, x21, asr #55
383 # CHECK: cmp x22, x23, asr #63
384 0x1f 0x0 0x3 0xeb
385 0xff 0x3 0x4 0xeb
386 0xbf 0x0 0x1f 0xeb
387 0xdf 0x0 0x7 0xeb
388 0x1f 0x3d 0x9 0xeb
389 0x5f 0xfd 0xb 0xeb
390 0x9f 0x1 0x4d 0xeb
391 0xdf 0xa5 0x4f 0xeb
392 0x1f 0xfe 0x51 0xeb
393 0x5f 0x2 0x93 0xeb
394 0x9f 0xde 0x95 0xeb
395 0xdf 0xfe 0x97 0xeb
396
397 # CHECK: {{sub w29, wzr|neg w29}}, w30
398 # CHECK: {{sub w30, wzr|neg w30}}, wzr
399 # CHECK: {{sub wzr, wzr|neg wzr}}, w0
400 # CHECK: {{sub w28, wzr|neg w28}}, w27
401 # CHECK: {{sub w26, wzr|neg w26}}, w25, lsl #29
402 # CHECK: {{sub w24, wzr|neg w24}}, w23, lsl #31
403 # CHECK: {{sub w22, wzr|neg w22}}, w21, lsr #0
404 # CHECK: {{sub w20, wzr|neg w20}}, w19, lsr #1
405 # CHECK: {{sub w18, wzr|neg w18}}, w17, lsr #31
406 # CHECK: {{sub w16, wzr|neg w16}}, w15, asr #0
407 # CHECK: {{sub w14, wzr|neg w14}}, w13, asr #12
408 # CHECK: {{sub w12, wzr|neg w12}}, w11, asr #31
409 0xfd 0x3 0x1e 0x4b
410 0xfe 0x3 0x1f 0x4b
411 0xff 0x3 0x0 0x4b
412 0xfc 0x3 0x1b 0x4b
413 0xfa 0x77 0x19 0x4b
414 0xf8 0x7f 0x17 0x4b
415 0xf6 0x3 0x55 0x4b
416 0xf4 0x7 0x53 0x4b
417 0xf2 0x7f 0x51 0x4b
418 0xf0 0x3 0x8f 0x4b
419 0xee 0x33 0x8d 0x4b
420 0xec 0x7f 0x8b 0x4b
421
422 # CHECK: {{sub x29, xzr|neg x29}}, x30
423 # CHECK: {{sub x30, xzr|neg x30}}, xzr
424 # CHECK: {{sub xzr, xzr|neg xzr}}, x0
425 # CHECK: {{sub x28, xzr|neg x28}}, x27
426 # CHECK: {{sub x26, xzr|neg x26}}, x25, lsl #29
427 # CHECK: {{sub x24, xzr|neg x24}}, x23, lsl #31
428 # CHECK: {{sub x22, xzr|neg x22}}, x21, lsr #0
429 # CHECK: {{sub x20, xzr|neg x20}}, x19, lsr #1
430 # CHECK: {{sub x18, xzr|neg x18}}, x17, lsr #31
431 # CHECK: {{sub x16, xzr|neg x16}}, x15, asr #0
432 # CHECK: {{sub x14, xzr|neg x14}}, x13, asr #12
433 # CHECK: {{sub x12, xzr|neg x12}}, x11, asr #31
434 0xfd 0x3 0x1e 0xcb
435 0xfe 0x3 0x1f 0xcb
436 0xff 0x3 0x0 0xcb
437 0xfc 0x3 0x1b 0xcb
438 0xfa 0x77 0x19 0xcb
439 0xf8 0x7f 0x17 0xcb
440 0xf6 0x3 0x55 0xcb
441 0xf4 0x7 0x53 0xcb
442 0xf2 0x7f 0x51 0xcb
443 0xf0 0x3 0x8f 0xcb
444 0xee 0x33 0x8d 0xcb
445 0xec 0x7f 0x8b 0xcb
446
447 # CHECK: {{subs w29, wzr|negs w29}}, w30
448 # CHECK: {{subs w30, wzr|negs w30}}, wzr
449 # CHECK: cmp wzr, w0
450 # CHECK: {{subs w28, wzr|negs w28}}, w27
451 # CHECK: {{subs w26, wzr|negs w26}}, w25, lsl #29
452 # CHECK: {{subs w24, wzr|negs w24}}, w23, lsl #31
453 # CHECK: {{subs w22, wzr|negs w22}}, w21, lsr #0
454 # CHECK: {{subs w20, wzr|negs w20}}, w19, lsr #1
455 # CHECK: {{subs w18, wzr|negs w18}}, w17, lsr #31
456 # CHECK: {{subs w16, wzr|negs w16}}, w15, asr #0
457 # CHECK: {{subs w14, wzr|negs w14}}, w13, asr #12
458 # CHECK: {{subs w12, wzr|negs w12}}, w11, asr #31
459 0xfd 0x3 0x1e 0x6b
460 0xfe 0x3 0x1f 0x6b
461 0xff 0x3 0x0 0x6b
462 0xfc 0x3 0x1b 0x6b
463 0xfa 0x77 0x19 0x6b
464 0xf8 0x7f 0x17 0x6b
465 0xf6 0x3 0x55 0x6b
466 0xf4 0x7 0x53 0x6b
467 0xf2 0x7f 0x51 0x6b
468 0xf0 0x3 0x8f 0x6b
469 0xee 0x33 0x8d 0x6b
470 0xec 0x7f 0x8b 0x6b
471
472 # CHECK: {{subs x29, xzr|negs x29}}, x30
473 # CHECK: {{subs x30, xzr|negs x30}}, xzr
474 # CHECK: cmp xzr, x0
475 # CHECK: {{subs x28, xzr|negs x28}}, x27
476 # CHECK: {{subs x26, xzr|negs x26}}, x25, lsl #29
477 # CHECK: {{subs x24, xzr|negs x24}}, x23, lsl #31
478 # CHECK: {{subs x22, xzr|negs x22}}, x21, lsr #0
479 # CHECK: {{subs x20, xzr|negs x20}}, x19, lsr #1
480 # CHECK: {{subs x18, xzr|negs x18}}, x17, lsr #31
481 # CHECK: {{subs x16, xzr|negs x16}}, x15, asr #0
482 # CHECK: {{subs x14, xzr|negs x14}}, x13, asr #12
483 # CHECK: {{subs x12, xzr|negs x12}}, x11, asr #31
484 0xfd 0x3 0x1e 0xeb
485 0xfe 0x3 0x1f 0xeb
486 0xff 0x3 0x0 0xeb
487 0xfc 0x3 0x1b 0xeb
488 0xfa 0x77 0x19 0xeb
489 0xf8 0x7f 0x17 0xeb
490 0xf6 0x3 0x55 0xeb
491 0xf4 0x7 0x53 0xeb
492 0xf2 0x7f 0x51 0xeb
493 0xf0 0x3 0x8f 0xeb
494 0xee 0x33 0x8d 0xeb
495 0xec 0x7f 0x8b 0xeb
496
497 #------------------------------------------------------------------------------
498 # Add-subtract (shifted register)
499 #------------------------------------------------------------------------------
500
501 # CHECK: adc w29, w27, w25
502 # CHECK: adc wzr, w3, w4
503 # CHECK: adc w9, wzr, w10
504 # CHECK: adc w20, w0, wzr
505 0x7d 0x3 0x19 0x1a
506 0x7f 0x0 0x4 0x1a
507 0xe9 0x3 0xa 0x1a
508 0x14 0x0 0x1f 0x1a
509
510 # CHECK: adc x29, x27, x25
511 # CHECK: adc xzr, x3, x4
512 # CHECK: adc x9, xzr, x10
513 # CHECK: adc x20, x0, xzr
514 0x7d 0x3 0x19 0x9a
515 0x7f 0x0 0x4 0x9a
516 0xe9 0x3 0xa 0x9a
517 0x14 0x0 0x1f 0x9a
518
519 # CHECK: adcs w29, w27, w25
520 # CHECK: adcs wzr, w3, w4
521 # CHECK: adcs w9, wzr, w10
522 # CHECK: adcs w20, w0, wzr
523 0x7d 0x3 0x19 0x3a
524 0x7f 0x0 0x4 0x3a
525 0xe9 0x3 0xa 0x3a
526 0x14 0x0 0x1f 0x3a
527
528 # CHECK: adcs x29, x27, x25
529 # CHECK: adcs xzr, x3, x4
530 # CHECK: adcs x9, xzr, x10
531 # CHECK: adcs x20, x0, xzr
532 0x7d 0x3 0x19 0xba
533 0x7f 0x0 0x4 0xba
534 0xe9 0x3 0xa 0xba
535 0x14 0x0 0x1f 0xba
536
537 # CHECK: sbc w29, w27, w25
538 # CHECK: sbc wzr, w3, w4
539 # CHECK: ngc w9, w10
540 # CHECK: sbc w20, w0, wzr
541 0x7d 0x3 0x19 0x5a
542 0x7f 0x0 0x4 0x5a
543 0xe9 0x3 0xa 0x5a
544 0x14 0x0 0x1f 0x5a
545
546 # CHECK: sbc x29, x27, x25
547 # CHECK: sbc xzr, x3, x4
548 # CHECK: ngc x9, x10
549 # CHECK: sbc x20, x0, xzr
550 0x7d 0x3 0x19 0xda
551 0x7f 0x0 0x4 0xda
552 0xe9 0x3 0xa 0xda
553 0x14 0x0 0x1f 0xda
554
555 # CHECK: sbcs w29, w27, w25
556 # CHECK: sbcs wzr, w3, w4
557 # CHECK: ngcs w9, w10
558 # CHECK: sbcs w20, w0, wzr
559 0x7d 0x3 0x19 0x7a
560 0x7f 0x0 0x4 0x7a
561 0xe9 0x3 0xa 0x7a
562 0x14 0x0 0x1f 0x7a
563
564 # CHECK: sbcs x29, x27, x25
565 # CHECK: sbcs xzr, x3, x4
566 # CHECK: ngcs x9, x10
567 # CHECK: sbcs x20, x0, xzr
568 0x7d 0x3 0x19 0xfa
569 0x7f 0x0 0x4 0xfa
570 0xe9 0x3 0xa 0xfa
571 0x14 0x0 0x1f 0xfa
572
573 # CHECK: ngc w3, w12
574 # CHECK: ngc wzr, w9
575 # CHECK: ngc w23, wzr
576 0xe3 0x3 0xc 0x5a
577 0xff 0x3 0x9 0x5a
578 0xf7 0x3 0x1f 0x5a
579
580 # CHECK: ngc x29, x30
581 # CHECK: ngc xzr, x0
582 # CHECK: ngc x0, xzr
583 0xfd 0x3 0x1e 0xda
584 0xff 0x3 0x0 0xda
585 0xe0 0x3 0x1f 0xda
586
587 # CHECK: ngcs w3, w12
588 # CHECK: ngcs wzr, w9
589 # CHECK: ngcs w23, wzr
590 0xe3 0x3 0xc 0x7a
591 0xff 0x3 0x9 0x7a
592 0xf7 0x3 0x1f 0x7a
593
594 # CHECK: ngcs x29, x30
595 # CHECK: ngcs xzr, x0
596 # CHECK: ngcs x0, xzr
597 0xfd 0x3 0x1e 0xfa
598 0xff 0x3 0x0 0xfa
599 0xe0 0x3 0x1f 0xfa
600
601 #------------------------------------------------------------------------------
602 # Compare and branch (immediate)
603 #------------------------------------------------------------------------------
604
605 # CHECK: sbfx x1, x2, #3, #2
606 # CHECK: asr x3, x4, #63
607 # CHECK: asr wzr, wzr, #31
608 # CHECK: sbfx w12, w9, #0, #1
609 0x41 0x10 0x43 0x93
610 0x83 0xfc 0x7f 0x93
611 0xff 0x7f 0x1f 0x13
612 0x2c 0x1 0x0 0x13
613
614 # CHECK: ubfiz x4, x5, #52, #11
615 # CHECK: ubfx xzr, x4, #0, #1
616 # CHECK: ubfiz x4, xzr, #1, #6
617 # CHECK: lsr x5, x6, #12
618 0xa4 0x28 0x4c 0xd3
619 0x9f 0x0 0x40 0xd3
620 0xe4 0x17 0x7f 0xd3
621 0xc5 0xfc 0x4c 0xd3
622
623 # CHECK: bfi x4, x5, #52, #11
624 # CHECK: bfxil xzr, x4, #0, #1
625 # CHECK: bfi x4, xzr, #1, #6
626 # CHECK: bfxil x5, x6, #12, #52
627 0xa4 0x28 0x4c 0xb3
628 0x9f 0x0 0x40 0xb3
629 0xe4 0x17 0x7f 0xb3
630 0xc5 0xfc 0x4c 0xb3
631
632 # CHECK: sxtb w1, w2
633 # CHECK: sxtb xzr, w3
634 # CHECK: sxth w9, w10
635 # CHECK: sxth x0, w1
636 # CHECK: sxtw x3, w30
637 0x41 0x1c 0x0 0x13
638 0x7f 0x1c 0x40 0x93
639 0x49 0x3d 0x0 0x13
640 0x20 0x3c 0x40 0x93
641 0xc3 0x7f 0x40 0x93
642
643 # CHECK: uxtb w1, w2
644 # CHECK: uxth w9, w10
645 # CHECK: ubfx x3, x30, #0, #32
646 0x41 0x1c 0x0 0x53
647 0x49 0x3d 0x0 0x53
648 0xc3 0x7f 0x40 0xd3
649
650 # CHECK: asr w3, w2, #0
651 # CHECK: asr w9, w10, #31
652 # CHECK: asr x20, x21, #63
653 # CHECK: asr w1, wzr, #3
654 0x43 0x7c 0x0 0x13
655 0x49 0x7d 0x1f 0x13
656 0xb4 0xfe 0x7f 0x93
657 0xe1 0x7f 0x3 0x13
658
659 # CHECK: lsr w3, w2, #0
660 # CHECK: lsr w9, w10, #31
661 # CHECK: lsr x20, x21, #63
662 # CHECK: lsr wzr, wzr, #3
663 0x43 0x7c 0x0 0x53
664 0x49 0x7d 0x1f 0x53
665 0xb4 0xfe 0x7f 0xd3
666 0xff 0x7f 0x3 0x53
667
668 # CHECK: lsr w3, w2, #0
669 # CHECK: lsl w9, w10, #31
670 # CHECK: lsl x20, x21, #63
671 # CHECK: lsl w1, wzr, #3
672 0x43 0x7c 0x0 0x53
673 0x49 0x1 0x1 0x53
674 0xb4 0x2 0x41 0xd3
675 0xe1 0x73 0x1d 0x53
676
677 # CHECK: sbfx w9, w10, #0, #1
678 # CHECK: sbfiz x2, x3, #63, #1
679 # CHECK: asr x19, x20, #0
680 # CHECK: sbfiz x9, x10, #5, #59
681 # CHECK: asr w9, w10, #0
682 # CHECK: sbfiz w11, w12, #31, #1
683 # CHECK: sbfiz w13, w14, #29, #3
684 # CHECK: sbfiz xzr, xzr, #10, #11
685 0x49 0x1 0x0 0x13
686 0x62 0x0 0x41 0x93
687 0x93 0xfe 0x40 0x93
688 0x49 0xe9 0x7b 0x93
689 0x49 0x7d 0x0 0x13
690 0x8b 0x1 0x1 0x13
691 0xcd 0x9 0x3 0x13
692 0xff 0x2b 0x76 0x93
693
694 # CHECK: sbfx w9, w10, #0, #1
695 # CHECK: asr x2, x3, #63
696 # CHECK: asr x19, x20, #0
697 # CHECK: asr x9, x10, #5
698 # CHECK: asr w9, w10, #0
699 # CHECK: asr w11, w12, #31
700 # CHECK: asr w13, w14, #29
701 # CHECK: sbfx xzr, xzr, #10, #11
702 0x49 0x1 0x0 0x13
703 0x62 0xfc 0x7f 0x93
704 0x93 0xfe 0x40 0x93
705 0x49 0xfd 0x45 0x93
706 0x49 0x7d 0x0 0x13
707 0x8b 0x7d 0x1f 0x13
708 0xcd 0x7d 0x1d 0x13
709 0xff 0x53 0x4a 0x93
710
711 # CHECK: bfxil w9, w10, #0, #1
712 # CHECK: bfi x2, x3, #63, #1
713 # CHECK: bfxil x19, x20, #0, #64
714 # CHECK: bfi x9, x10, #5, #59
715 # CHECK: bfxil w9, w10, #0, #32
716 # CHECK: bfi w11, w12, #31, #1
717 # CHECK: bfi w13, w14, #29, #3
718 # CHECK: bfi xzr, xzr, #10, #11
719 0x49 0x1 0x0 0x33
720 0x62 0x0 0x41 0xb3
721 0x93 0xfe 0x40 0xb3
722 0x49 0xe9 0x7b 0xb3
723 0x49 0x7d 0x0 0x33
724 0x8b 0x1 0x1 0x33
725 0xcd 0x9 0x3 0x33
726 0xff 0x2b 0x76 0xb3
727
728 # CHECK: bfxil w9, w10, #0, #1
729 # CHECK: bfxil x2, x3, #63, #1
730 # CHECK: bfxil x19, x20, #0, #64
731 # CHECK: bfxil x9, x10, #5, #59
732 # CHECK: bfxil w9, w10, #0, #32
733 # CHECK: bfxil w11, w12, #31, #1
734 # CHECK: bfxil w13, w14, #29, #3
735 # CHECK: bfxil xzr, xzr, #10, #11
736 0x49 0x1 0x0 0x33
737 0x62 0xfc 0x7f 0xb3
738 0x93 0xfe 0x40 0xb3
739 0x49 0xfd 0x45 0xb3
740 0x49 0x7d 0x0 0x33
741 0x8b 0x7d 0x1f 0x33
742 0xcd 0x7d 0x1d 0x33
743 0xff 0x53 0x4a 0xb3
744
745 # CHECK: ubfx w9, w10, #0, #1
746 # CHECK: lsl x2, x3, #63
747 # CHECK: lsr x19, x20, #0
748 # CHECK: lsl x9, x10, #5
749 # CHECK: lsr w9, w10, #0
750 # CHECK: lsl w11, w12, #31
751 # CHECK: lsl w13, w14, #29
752 # CHECK: ubfiz xzr, xzr, #10, #11
753 0x49 0x1 0x0 0x53
754 0x62 0x0 0x41 0xd3
755 0x93 0xfe 0x40 0xd3
756 0x49 0xe9 0x7b 0xd3
757 0x49 0x7d 0x0 0x53
758 0x8b 0x1 0x1 0x53
759 0xcd 0x9 0x3 0x53
760 0xff 0x2b 0x76 0xd3
761
762 # CHECK: ubfx w9, w10, #0, #1
763 # CHECK: lsr x2, x3, #63
764 # CHECK: lsr x19, x20, #0
765 # CHECK: lsr x9, x10, #5
766 # CHECK: lsr w9, w10, #0
767 # CHECK: lsr w11, w12, #31
768 # CHECK: lsr w13, w14, #29
769 # CHECK: ubfx xzr, xzr, #10, #11
770 0x49 0x1 0x0 0x53
771 0x62 0xfc 0x7f 0xd3
772 0x93 0xfe 0x40 0xd3
773 0x49 0xfd 0x45 0xd3
774 0x49 0x7d 0x0 0x53
775 0x8b 0x7d 0x1f 0x53
776 0xcd 0x7d 0x1d 0x53
777 0xff 0x53 0x4a 0xd3
778
779
780 #------------------------------------------------------------------------------
781 # Compare and branch (immediate)
782 #------------------------------------------------------------------------------
783
784 # CHECK: cbz w5, #4
785 # CHECK: cbz x5, #0
786 # CHECK: cbnz x2, #-4
787 # CHECK: cbnz x26, #1048572
788 0x25 0x0 0x0 0x34
789 0x05 0x0 0x0 0xb4
790 0xe2 0xff 0xff 0xb5
791 0xfa 0xff 0x7f 0xb5
792
793 # CHECK: cbz wzr, #0
794 # CHECK: cbnz xzr, #0
795 0x1f 0x0 0x0 0x34
796 0x1f 0x0 0x0 0xb5
797
798 #------------------------------------------------------------------------------
799 # Conditional branch (immediate)
800 #------------------------------------------------------------------------------
801
802 # CHECK: b.ne #4
803 # CHECK: b.ge #1048572
804 # CHECK: b.ge #-4
805 0x21 0x00 0x00 0x54
806 0xea 0xff 0x7f 0x54
807 0xea 0xff 0xff 0x54
808
809 #------------------------------------------------------------------------------
810 # Conditional compare (immediate)
811 #------------------------------------------------------------------------------
812
813 # CHECK: ccmp w1, #31, #0, eq
814 # CHECK: ccmp w3, #0, #15, hs
815 # CHECK: ccmp wzr, #15, #13, hs
816 0x20 0x08 0x5f 0x7a
817 0x6f 0x28 0x40 0x7a
818 0xed 0x2b 0x4f 0x7a
819
820 # CHECK: ccmp x9, #31, #0, le
821 # CHECK: ccmp x3, #0, #15, gt
822 # CHECK: ccmp xzr, #5, #7, ne
823 0x20 0xd9 0x5f 0xfa
824 0x6f 0xc8 0x40 0xfa
825 0xe7 0x1b 0x45 0xfa
826
827 # CHECK: ccmn w1, #31, #0, eq
828 # CHECK: ccmn w3, #0, #15, hs
829 # CHECK: ccmn wzr, #15, #13, hs
830 0x20 0x08 0x5f 0x3a
831 0x6f 0x28 0x40 0x3a
832 0xed 0x2b 0x4f 0x3a
833
834 # CHECK: ccmn x9, #31, #0, le
835 # CHECK: ccmn x3, #0, #15, gt
836 # CHECK: ccmn xzr, #5, #7, ne
837 0x20 0xd9 0x5f 0xba
838 0x6f 0xc8 0x40 0xba
839 0xe7 0x1b 0x45 0xba
840
841 #------------------------------------------------------------------------------
842 # Conditional compare (register)
843 #------------------------------------------------------------------------------
844
845 # CHECK: ccmp w1, wzr, #0, eq
846 # CHECK: ccmp w3, w0, #15, hs
847 # CHECK: ccmp wzr, w15, #13, hs
848 0x20 0x00 0x5f 0x7a
849 0x6f 0x20 0x40 0x7a
850 0xed 0x23 0x4f 0x7a
851
852 # CHECK: ccmp x9, xzr, #0, le
853 # CHECK: ccmp x3, x0, #15, gt
854 # CHECK: ccmp xzr, x5, #7, ne
855 0x20 0xd1 0x5f 0xfa
856 0x6f 0xc0 0x40 0xfa
857 0xe7 0x13 0x45 0xfa
858
859 # CHECK: ccmn w1, wzr, #0, eq
860 # CHECK: ccmn w3, w0, #15, hs
861 # CHECK: ccmn wzr, w15, #13, hs
862 0x20 0x00 0x5f 0x3a
863 0x6f 0x20 0x40 0x3a
864 0xed 0x23 0x4f 0x3a
865
866 # CHECK: ccmn x9, xzr, #0, le
867 # CHECK: ccmn x3, x0, #15, gt
868 # CHECK: ccmn xzr, x5, #7, ne
869 0x20 0xd1 0x5f 0xba
870 0x6f 0xc0 0x40 0xba
871 0xe7 0x13 0x45 0xba
872
873 #------------------------------------------------------------------------------
874 # Conditional branch (immediate)
875 #------------------------------------------------------------------------------
876 # CHECK: csel w1, w0, w19, ne
877 # CHECK: csel wzr, w5, w9, eq
878 # CHECK: csel w9, wzr, w30, gt
879 # CHECK: csel w1, w28, wzr, mi
880 # CHECK: csel x19, x23, x29, lt
881 # CHECK: csel xzr, x3, x4, ge
882 # CHECK: csel x5, xzr, x6, hs
883 # CHECK: csel x7, x8, xzr, lo
884 0x1 0x10 0x93 0x1a
885 0xbf 0x0 0x89 0x1a
886 0xe9 0xc3 0x9e 0x1a
887 0x81 0x43 0x9f 0x1a
888 0xf3 0xb2 0x9d 0x9a
889 0x7f 0xa0 0x84 0x9a
890 0xe5 0x23 0x86 0x9a
891 0x7 0x31 0x9f 0x9a
892
893 # CHECK: csinc w1, w0, w19, ne
894 # CHECK: csinc wzr, w5, w9, eq
895 # CHECK: csinc w9, wzr, w30, gt
896 # CHECK: csinc w1, w28, wzr, mi
897 # CHECK: csinc x19, x23, x29, lt
898 # CHECK: csinc xzr, x3, x4, ge
899 # CHECK: csinc x5, xzr, x6, hs
900 # CHECK: csinc x7, x8, xzr, lo
901 0x1 0x14 0x93 0x1a
902 0xbf 0x4 0x89 0x1a
903 0xe9 0xc7 0x9e 0x1a
904 0x81 0x47 0x9f 0x1a
905 0xf3 0xb6 0x9d 0x9a
906 0x7f 0xa4 0x84 0x9a
907 0xe5 0x27 0x86 0x9a
908 0x7 0x35 0x9f 0x9a
909
910 # CHECK: csinv w1, w0, w19, ne
911 # CHECK: csinv wzr, w5, w9, eq
912 # CHECK: csinv w9, wzr, w30, gt
913 # CHECK: csinv w1, w28, wzr, mi
914 # CHECK: csinv x19, x23, x29, lt
915 # CHECK: csinv xzr, x3, x4, ge
916 # CHECK: csinv x5, xzr, x6, hs
917 # CHECK: csinv x7, x8, xzr, lo
918 0x1 0x10 0x93 0x5a
919 0xbf 0x0 0x89 0x5a
920 0xe9 0xc3 0x9e 0x5a
921 0x81 0x43 0x9f 0x5a
922 0xf3 0xb2 0x9d 0xda
923 0x7f 0xa0 0x84 0xda
924 0xe5 0x23 0x86 0xda
925 0x7 0x31 0x9f 0xda
926
927 # CHECK: csneg w1, w0, w19, ne
928 # CHECK: csneg wzr, w5, w9, eq
929 # CHECK: csneg w9, wzr, w30, gt
930 # CHECK: csneg w1, w28, wzr, mi
931 # CHECK: csneg x19, x23, x29, lt
932 # CHECK: csneg xzr, x3, x4, ge
933 # CHECK: csneg x5, xzr, x6, hs
934 # CHECK: csneg x7, x8, xzr, lo
935 0x1 0x14 0x93 0x5a
936 0xbf 0x4 0x89 0x5a
937 0xe9 0xc7 0x9e 0x5a
938 0x81 0x47 0x9f 0x5a
939 0xf3 0xb6 0x9d 0xda
940 0x7f 0xa4 0x84 0xda
941 0xe5 0x27 0x86 0xda
942 0x7 0x35 0x9f 0xda
943
944 # CHECK: cset w3, eq
945 # CHECK: cset x9, pl
946 # CHECK: csetm w20, ne
947 # CHECK: csetm x30, ge
948 # "cset w2, nv" and "csetm x3, al" are invalid aliases for these two
949 # CHECK: csinc w2, wzr, wzr, al
950 # CHECK: csinv x3, xzr, xzr, nv
951 0xe3 0x17 0x9f 0x1a
952 0xe9 0x47 0x9f 0x9a
953 0xf4 0x3 0x9f 0x5a
954 0xfe 0xb3 0x9f 0xda
955 0xe2,0xe7,0x9f,0x1a
956 0xe3,0xf3,0x9f,0xda
957
958 # CHECK: cinc w3, w5, gt
959 # CHECK: cinc wzr, w4, le
960 # CHECK: cset w9, lt
961 # CHECK: cinc x3, x5, gt
962 # CHECK: cinc xzr, x4, le
963 # CHECK: cset x9, lt
964 # "cinc w5, w6, al" and "cinc x1, x2, nv" are invalid aliases for these two
965 # CHECK: csinc w5, w6, w6, nv
966 # CHECK: csinc x1, x2, x2, al
967 0xa3 0xd4 0x85 0x1a
968 0x9f 0xc4 0x84 0x1a
969 0xe9 0xa7 0x9f 0x1a
970 0xa3 0xd4 0x85 0x9a
971 0x9f 0xc4 0x84 0x9a
972 0xe9 0xa7 0x9f 0x9a
973 0xc5,0xf4,0x86,0x1a
974 0x41,0xe4,0x82,0x9a
975
976 # CHECK: cinv w3, w5, gt
977 # CHECK: cinv wzr, w4, le
978 # CHECK: csetm w9, lt
979 # CHECK: cinv x3, x5, gt
980 # CHECK: cinv xzr, x4, le
981 # CHECK: csetm x9, lt
982 # "cinv x1, x0, nv" and "cinv w9, w8, al" are invalid aliases for these two
983 # CHECK: csinv x1, x0, x0, al
984 # CHECK: csinv w9, w8, w8, nv
985 0xa3 0xd0 0x85 0x5a
986 0x9f 0xc0 0x84 0x5a
987 0xe9 0xa3 0x9f 0x5a
988 0xa3 0xd0 0x85 0xda
989 0x9f 0xc0 0x84 0xda
990 0xe9 0xa3 0x9f 0xda
991 0x01 0xe0 0x80 0xda
992 0x09,0xf1,0x88,0x5a
993
994 # CHECK: cneg w3, w5, gt
995 # CHECK: cneg wzr, w4, le
996 # CHECK: cneg w9, wzr, lt
997 # CHECK: cneg x3, x5, gt
998 # CHECK: cneg xzr, x4, le
999 # CHECK: cneg x9, xzr, lt
1000 # "cneg x4, x8, nv" and "cneg w5, w6, al" are invalid aliases for these two
1001 # CHECK: csneg x4, x8, x8, al
1002 # CHECK: csinv w9, w8, w8, nv
1003 0xa3 0xd4 0x85 0x5a
1004 0x9f 0xc4 0x84 0x5a
1005 0xe9 0xa7 0x9f 0x5a
1006 0xa3 0xd4 0x85 0xda
1007 0x9f 0xc4 0x84 0xda
1008 0xe9 0xa7 0x9f 0xda
1009 0x04,0xe5,0x88,0xda
1010 0x09,0xf1,0x88,0x5a
1011
1012 #------------------------------------------------------------------------------
1013 # Data-processing (1 source)
1014 #------------------------------------------------------------------------------
1015
1016 # CHECK: rbit w0, w7
1017 # CHECK: rbit x18, x3
1018 # CHECK: rev16 w17, w1
1019 # CHECK: rev16 x5, x2
1020 # CHECK: rev w18, w0
1021 # CHECK: rev32 x20, x1
1022 0xe0 0x00 0xc0 0x5a
1023 0x72 0x00 0xc0 0xda
1024 0x31 0x04 0xc0 0x5a
1025 0x45 0x04 0xc0 0xda
1026 0x12 0x08 0xc0 0x5a
1027 0x34 0x08 0xc0 0xda
1028
1029 # CHECK: rev x22, x2
1030 # CHECK: clz w24, w3
1031 # CHECK: clz x26, x4
1032 # CHECK: cls w3, w5
1033 # CHECK: cls x20, x5
1034 0x56 0x0c 0xc0 0xda
1035 0x78 0x10 0xc0 0x5a
1036 0x9a 0x10 0xc0 0xda
1037 0xa3 0x14 0xc0 0x5a
1038 0xb4 0x14 0xc0 0xda
1039
1040 #------------------------------------------------------------------------------
1041 # Data-processing (2 source)
1042 #------------------------------------------------------------------------------
1043
1044 # CHECK: crc32b w5, w7, w20
1045 # CHECK: crc32h w28, wzr, w30
1046 # CHECK: crc32w w0, w1, w2
1047 # CHECK: crc32x w7, w9, x20
1048 # CHECK: crc32cb w9, w5, w4
1049 # CHECK: crc32ch w13, w17, w25
1050 # CHECK: crc32cw wzr, w3, w5
1051 # CHECK: crc32cx w18, w16, xzr
1052 0xe5 0x40 0xd4 0x1a
1053 0xfc 0x47 0xde 0x1a
1054 0x20 0x48 0xc2 0x1a
1055 0x27 0x4d 0xd4 0x9a
1056 0xa9 0x50 0xc4 0x1a
1057 0x2d 0x56 0xd9 0x1a
1058 0x7f 0x58 0xc5 0x1a
1059 0x12 0x5e 0xdf 0x9a
1060
1061 # CHECK: udiv w0, w7, w10
1062 # CHECK: udiv x9, x22, x4
1063 # CHECK: sdiv w12, w21, w0
1064 # CHECK: sdiv x13, x2, x1
1065 # CHECK: lsl w11, w12, w13
1066 # CHECK: lsl x14, x15, x16
1067 # CHECK: lsr w17, w18, w19
1068 # CHECK: lsr x20, x21, x22
1069 # CHECK: asr w23, w24, w25
1070 # CHECK: asr x26, x27, x28
1071 # CHECK: ror w0, w1, w2
1072 # CHECK: ror x3, x4, x5
1073 0xe0 0x08 0xca 0x1a
1074 0xc9 0x0a 0xc4 0x9a
1075 0xac 0x0e 0xc0 0x1a
1076 0x4d 0x0c 0xc1 0x9a
1077 0x8b 0x21 0xcd 0x1a
1078 0xee 0x21 0xd0 0x9a
1079 0x51 0x26 0xd3 0x1a
1080 0xb4 0x26 0xd6 0x9a
1081 0x17 0x2b 0xd9 0x1a
1082 0x7a 0x2b 0xdc 0x9a
1083 0x20 0x2c 0xc2 0x1a
1084 0x83 0x2c 0xc5 0x9a
1085
1086 # CHECK: lsl w6, w7, w8
1087 # CHECK: lsl x9, x10, x11
1088 # CHECK: lsr w12, w13, w14
1089 # CHECK: lsr x15, x16, x17
1090 # CHECK: asr w18, w19, w20
1091 # CHECK: asr x21, x22, x23
1092 # CHECK: ror w24, w25, w26
1093 # CHECK: ror x27, x28, x29
1094 0xe6 0x20 0xc8 0x1a
1095 0x49 0x21 0xcb 0x9a
1096 0xac 0x25 0xce 0x1a
1097 0x0f 0x26 0xd1 0x9a
1098 0x72 0x2a 0xd4 0x1a
1099 0xd5 0x2a 0xd7 0x9a
1100 0x38 0x2f 0xda 0x1a
1101 0x9b 0x2f 0xdd 0x9a
1102
1103 #------------------------------------------------------------------------------
1104 # Data-processing (3 sources)
1105 #------------------------------------------------------------------------------
1106
1107 # First check some non-canonical encodings where Ra is not 0b11111 (only umulh
1108 # and smulh have them).
1109
1110 # CHECK: smulh x30, x29, x28
1111 # CHECK: smulh xzr, x27, x26
1112 # CHECK: umulh x30, x29, x28
1113 # CHECK: umulh x23, x30, xzr
1114 0xbe 0x73 0x5c 0x9b
1115 0x7f 0x2f 0x5a 0x9b
1116 0xbe 0x3f 0xdc 0x9b
1117 0xd7 0x77 0xdf 0x9b
1118
1119 # Now onto the boilerplate stuff
1120
1121 # CHECK: madd w1, w3, w7, w4
1122 # CHECK: madd wzr, w0, w9, w11
1123 # CHECK: madd w13, wzr, w4, w4
1124 # CHECK: madd w19, w30, wzr, w29
1125 # CHECK: mul w4, w5, w6
1126 0x61 0x10 0x7 0x1b
1127 0x1f 0x2c 0x9 0x1b
1128 0xed 0x13 0x4 0x1b
1129 0xd3 0x77 0x1f 0x1b
1130 0xa4 0x7c 0x6 0x1b
1131
1132 # CHECK: madd x1, x3, x7, x4
1133 # CHECK: madd xzr, x0, x9, x11
1134 # CHECK: madd x13, xzr, x4, x4
1135 # CHECK: madd x19, x30, xzr, x29
1136 # CHECK: mul x4, x5, x6
1137 0x61 0x10 0x7 0x9b
1138 0x1f 0x2c 0x9 0x9b
1139 0xed 0x13 0x4 0x9b
1140 0xd3 0x77 0x1f 0x9b
1141 0xa4 0x7c 0x6 0x9b
1142
1143 # CHECK: msub w1, w3, w7, w4
1144 # CHECK: msub wzr, w0, w9, w11
1145 # CHECK: msub w13, wzr, w4, w4
1146 # CHECK: msub w19, w30, wzr, w29
1147 # CHECK: mneg w4, w5, w6
1148 0x61 0x90 0x7 0x1b
1149 0x1f 0xac 0x9 0x1b
1150 0xed 0x93 0x4 0x1b
1151 0xd3 0xf7 0x1f 0x1b
1152 0xa4 0xfc 0x6 0x1b
1153
1154 # CHECK: msub x1, x3, x7, x4
1155 # CHECK: msub xzr, x0, x9, x11
1156 # CHECK: msub x13, xzr, x4, x4
1157 # CHECK: msub x19, x30, xzr, x29
1158 # CHECK: mneg x4, x5, x6
1159 0x61 0x90 0x7 0x9b
1160 0x1f 0xac 0x9 0x9b
1161 0xed 0x93 0x4 0x9b
1162 0xd3 0xf7 0x1f 0x9b
1163 0xa4 0xfc 0x6 0x9b
1164
1165 # CHECK: smaddl x3, w5, w2, x9
1166 # CHECK: smaddl xzr, w10, w11, x12
1167 # CHECK: smaddl x13, wzr, w14, x15
1168 # CHECK: smaddl x16, w17, wzr, x18
1169 # CHECK: smull x19, w20, w21
1170 0xa3 0x24 0x22 0x9b
1171 0x5f 0x31 0x2b 0x9b
1172 0xed 0x3f 0x2e 0x9b
1173 0x30 0x4a 0x3f 0x9b
1174 0x93 0x7e 0x35 0x9b
1175
1176 # CHECK: smsubl x3, w5, w2, x9
1177 # CHECK: smsubl xzr, w10, w11, x12
1178 # CHECK: smsubl x13, wzr, w14, x15
1179 # CHECK: smsubl x16, w17, wzr, x18
1180 # CHECK: smnegl x19, w20, w21
1181 0xa3 0xa4 0x22 0x9b
1182 0x5f 0xb1 0x2b 0x9b
1183 0xed 0xbf 0x2e 0x9b
1184 0x30 0xca 0x3f 0x9b
1185 0x93 0xfe 0x35 0x9b
1186
1187 # CHECK: umaddl x3, w5, w2, x9
1188 # CHECK: umaddl xzr, w10, w11, x12
1189 # CHECK: umaddl x13, wzr, w14, x15
1190 # CHECK: umaddl x16, w17, wzr, x18
1191 # CHECK: umull x19, w20, w21
1192 0xa3 0x24 0xa2 0x9b
1193 0x5f 0x31 0xab 0x9b
1194 0xed 0x3f 0xae 0x9b
1195 0x30 0x4a 0xbf 0x9b
1196 0x93 0x7e 0xb5 0x9b
1197
1198 # CHECK: umsubl x3, w5, w2, x9
1199 # CHECK: umsubl xzr, w10, w11, x12
1200 # CHECK: umsubl x13, wzr, w14, x15
1201 # CHECK: umsubl x16, w17, wzr, x18
1202 # CHECK: umnegl x19, w20, w21
1203 0xa3 0xa4 0xa2 0x9b
1204 0x5f 0xb1 0xab 0x9b
1205 0xed 0xbf 0xae 0x9b
1206 0x30 0xca 0xbf 0x9b
1207 0x93 0xfe 0xb5 0x9b
1208
1209 # CHECK: smulh x30, x29, x28
1210 # CHECK: smulh xzr, x27, x26
1211 # CHECK: smulh x25, xzr, x24
1212 # CHECK: smulh x23, x22, xzr
1213 0xbe 0x7f 0x5c 0x9b
1214 0x7f 0x7f 0x5a 0x9b
1215 0xf9 0x7f 0x58 0x9b
1216 0xd7 0x7e 0x5f 0x9b
1217
1218 # CHECK: umulh x30, x29, x28
1219 # CHECK: umulh xzr, x27, x26
1220 # CHECK: umulh x25, xzr, x24
1221 # CHECK: umulh x23, x22, xzr
1222 0xbe 0x7f 0xdc 0x9b
1223 0x7f 0x7f 0xda 0x9b
1224 0xf9 0x7f 0xd8 0x9b
1225 0xd7 0x7e 0xdf 0x9b
1226
1227 # CHECK: mul w3, w4, w5
1228 # CHECK: mul wzr, w6, w7
1229 # CHECK: mul w8, wzr, w9
1230 # CHECK: mul w10, w11, wzr
1231 # CHECK: mul x12, x13, x14
1232 # CHECK: mul xzr, x15, x16
1233 # CHECK: mul x17, xzr, x18
1234 # CHECK: mul x19, x20, xzr
1235 0x83 0x7c 0x5 0x1b
1236 0xdf 0x7c 0x7 0x1b
1237 0xe8 0x7f 0x9 0x1b
1238 0x6a 0x7d 0x1f 0x1b
1239 0xac 0x7d 0xe 0x9b
1240 0xff 0x7d 0x10 0x9b
1241 0xf1 0x7f 0x12 0x9b
1242 0x93 0x7e 0x1f 0x9b
1243
1244 # CHECK: mneg w21, w22, w23
1245 # CHECK: mneg wzr, w24, w25
1246 # CHECK: mneg w26, wzr, w27
1247 # CHECK: mneg w28, w29, wzr
1248 0xd5 0xfe 0x17 0x1b
1249 0x1f 0xff 0x19 0x1b
1250 0xfa 0xff 0x1b 0x1b
1251 0xbc 0xff 0x1f 0x1b
1252
1253 # CHECK: smull x11, w13, w17
1254 # CHECK: umull x11, w13, w17
1255 # CHECK: smnegl x11, w13, w17
1256 # CHECK: umnegl x11, w13, w17
1257 0xab 0x7d 0x31 0x9b
1258 0xab 0x7d 0xb1 0x9b
1259 0xab 0xfd 0x31 0x9b
1260 0xab 0xfd 0xb1 0x9b
1261
1262 #------------------------------------------------------------------------------
1263 # Exception generation
1264 #------------------------------------------------------------------------------
1265
1266 # CHECK: svc #0
1267 # CHECK: svc #{{65535|0xffff}}
1268 0x1 0x0 0x0 0xd4
1269 0xe1 0xff 0x1f 0xd4
1270
1271 # CHECK: hvc #{{1|0x1}}
1272 # CHECK: smc #{{12000|0x2ee0}}
1273 # CHECK: brk #{{12|0xc}}
1274 # CHECK: hlt #{{123|0x7b}}
1275 0x22 0x0 0x0 0xd4
1276 0x3 0xdc 0x5 0xd4
1277 0x80 0x1 0x20 0xd4
1278 0x60 0xf 0x40 0xd4
1279
1280 # CHECK: dcps1 #{{42|0x2a}}
1281 # CHECK: dcps2 #{{9|0x9}}
1282 # CHECK: dcps3 #{{1000|0x3e8}}
1283 0x41 0x5 0xa0 0xd4
1284 0x22 0x1 0xa0 0xd4
1285 0x3 0x7d 0xa0 0xd4
1286
1287 # CHECK: dcps1
1288 # CHECK: dcps2
1289 # CHECK: dcps3
1290 0x1 0x0 0xa0 0xd4
1291 0x2 0x0 0xa0 0xd4
1292 0x3 0x0 0xa0 0xd4
1293
1294 #------------------------------------------------------------------------------
1295 # Extract (immediate)
1296 #------------------------------------------------------------------------------
1297
1298 # CHECK: extr w3, w5, w7, #0
1299 # CHECK: extr w11, w13, w17, #31
1300 0xa3 0x0 0x87 0x13
1301 0xab 0x7d 0x91 0x13
1302
1303 # CHECK: extr x3, x5, x7, #15
1304 # CHECK: extr x11, x13, x17, #63
1305 0xa3 0x3c 0xc7 0x93
1306 0xab 0xfd 0xd1 0x93
1307
1308 # CHECK: ror x19, x23, #24
1309 # CHECK: ror x29, xzr, #63
1310 # CHECK: ror w9, w13, #31
1311 0xf3 0x62 0xd7 0x93
1312 0xfd 0xff 0xdf 0x93
1313 0xa9 0x7d 0x8d 0x13
1314
1315 #------------------------------------------------------------------------------
1316 # Floating-point compare
1317 #------------------------------------------------------------------------------
1318
1319 # CHECK: fcmp s3, s5
1320 # CHECK: fcmp s31, #0.0
1321 # CHECK: fcmp s31, #0.0
1322 0x60 0x20 0x25 0x1e
1323 0xe8 0x23 0x20 0x1e
1324 0xe8 0x23 0x3f 0x1e
1325
1326 # CHECK: fcmpe s29, s30
1327 # CHECK: fcmpe s15, #0.0
1328 # CHECK: fcmpe s15, #0.0
1329 0xb0 0x23 0x3e 0x1e
1330 0xf8 0x21 0x20 0x1e
1331 0xf8 0x21 0x2f 0x1e
1332
1333 # CHECK: fcmp d4, d12
1334 # CHECK: fcmp d23, #0.0
1335 # CHECK: fcmp d23, #0.0
1336 0x80 0x20 0x6c 0x1e
1337 0xe8 0x22 0x60 0x1e
1338 0xe8 0x22 0x77 0x1e
1339
1340 # CHECK: fcmpe d26, d22
1341 # CHECK: fcmpe d29, #0.0
1342 # CHECK: fcmpe d29, #0.0
1343 0x50 0x23 0x76 0x1e
1344 0xb8 0x23 0x60 0x1e
1345 0xb8 0x23 0x6d 0x1e
1346
1347 #------------------------------------------------------------------------------
1348 # Floating-point conditional compare
1349 #------------------------------------------------------------------------------
1350
1351 # CHECK: fccmp s1, s31, #0, eq
1352 # CHECK: fccmp s3, s0, #15, hs
1353 # CHECK: fccmp s31, s15, #13, hs
1354 0x20 0x04 0x3f 0x1e
1355 0x6f 0x24 0x20 0x1e
1356 0xed 0x27 0x2f 0x1e
1357
1358 # CHECK: fccmp d9, d31, #0, le
1359 # CHECK: fccmp d3, d0, #15, gt
1360 # CHECK: fccmp d31, d5, #7, ne
1361 0x20 0xd5 0x7f 0x1e
1362 0x6f 0xc4 0x60 0x1e
1363 0xe7 0x17 0x65 0x1e
1364
1365 # CHECK: fccmpe s1, s31, #0, eq
1366 # CHECK: fccmpe s3, s0, #15, hs
1367 # CHECK: fccmpe s31, s15, #13, hs
1368 0x30 0x04 0x3f 0x1e
1369 0x7f 0x24 0x20 0x1e
1370 0xfd 0x27 0x2f 0x1e
1371
1372 # CHECK: fccmpe d9, d31, #0, le
1373 # CHECK: fccmpe d3, d0, #15, gt
1374 # CHECK: fccmpe d31, d5, #7, ne
1375 0x30 0xd5 0x7f 0x1e
1376 0x7f 0xc4 0x60 0x1e
1377 0xf7 0x17 0x65 0x1e
1378
1379 #-------------------------------------------------------------------------------
1380 # Floating-point conditional compare
1381 #-------------------------------------------------------------------------------
1382
1383 # CHECK: fcsel s3, s20, s9, pl
1384 # CHECK: fcsel d9, d10, d11, mi
1385 0x83 0x5e 0x29 0x1e
1386 0x49 0x4d 0x6b 0x1e
1387
1388 #------------------------------------------------------------------------------
1389 # Floating-point data-processing (1 source)
1390 #------------------------------------------------------------------------------
1391
1392 # CHECK: fmov s0, s1
1393 # CHECK: fabs s2, s3
1394 # CHECK: fneg s4, s5
1395 # CHECK: fsqrt s6, s7
1396 # CHECK: fcvt d8, s9
1397 # CHECK: fcvt h10, s11
1398 # CHECK: frintn s12, s13
1399 # CHECK: frintp s14, s15
1400 # CHECK: frintm s16, s17
1401 # CHECK: frintz s18, s19
1402 # CHECK: frinta s20, s21
1403 # CHECK: frintx s22, s23
1404 # CHECK: frinti s24, s25
1405 0x20 0x40 0x20 0x1e
1406 0x62 0xc0 0x20 0x1e
1407 0xa4 0x40 0x21 0x1e
1408 0xe6 0xc0 0x21 0x1e
1409 0x28 0xc1 0x22 0x1e
1410 0x6a 0xc1 0x23 0x1e
1411 0xac 0x41 0x24 0x1e
1412 0xee 0xc1 0x24 0x1e
1413 0x30 0x42 0x25 0x1e
1414 0x72 0xc2 0x25 0x1e
1415 0xb4 0x42 0x26 0x1e
1416 0xf6 0x42 0x27 0x1e
1417 0x38 0xc3 0x27 0x1e
1418
1419 # CHECK: fmov d0, d1
1420 # CHECK: fabs d2, d3
1421 # CHECK: fneg d4, d5
1422 # CHECK: fsqrt d6, d7
1423 # CHECK: fcvt s8, d9
1424 # CHECK: fcvt h10, d11
1425 # CHECK: frintn d12, d13
1426 # CHECK: frintp d14, d15
1427 # CHECK: frintm d16, d17
1428 # CHECK: frintz d18, d19
1429 # CHECK: frinta d20, d21
1430 # CHECK: frintx d22, d23
1431 # CHECK: frinti d24, d25
1432 0x20 0x40 0x60 0x1e
1433 0x62 0xc0 0x60 0x1e
1434 0xa4 0x40 0x61 0x1e
1435 0xe6 0xc0 0x61 0x1e
1436 0x28 0x41 0x62 0x1e
1437 0x6a 0xc1 0x63 0x1e
1438 0xac 0x41 0x64 0x1e
1439 0xee 0xc1 0x64 0x1e
1440 0x30 0x42 0x65 0x1e
1441 0x72 0xc2 0x65 0x1e
1442 0xb4 0x42 0x66 0x1e
1443 0xf6 0x42 0x67 0x1e
1444 0x38 0xc3 0x67 0x1e
1445
1446 # CHECK: fcvt s26, h27
1447 # CHECK: fcvt d28, h29
1448 0x7a 0x43 0xe2 0x1e
1449 0xbc 0xc3 0xe2 0x1e
1450
1451 #------------------------------------------------------------------------------
1452 # Floating-point data-processing (2 sources)
1453 #------------------------------------------------------------------------------
1454
1455 # CHECK: fmul s20, s19, s17
1456 # CHECK: fdiv s1, s2, s3
1457 # CHECK: fadd s4, s5, s6
1458 # CHECK: fsub s7, s8, s9
1459 # CHECK: fmax s10, s11, s12
1460 # CHECK: fmin s13, s14, s15
1461 # CHECK: fmaxnm s16, s17, s18
1462 # CHECK: fminnm s19, s20, s21
1463 # CHECK: fnmul s22, s23, s2
1464 0x74 0xa 0x31 0x1e
1465 0x41 0x18 0x23 0x1e
1466 0xa4 0x28 0x26 0x1e
1467 0x7 0x39 0x29 0x1e
1468 0x6a 0x49 0x2c 0x1e
1469 0xcd 0x59 0x2f 0x1e
1470 0x30 0x6a 0x32 0x1e
1471 0x93 0x7a 0x35 0x1e
1472 0xf6 0x8a 0x38 0x1e
1473
1474
1475 # CHECK: fmul d20, d19, d17
1476 # CHECK: fdiv d1, d2, d3
1477 # CHECK: fadd d4, d5, d6
1478 # CHECK: fsub d7, d8, d9
1479 # CHECK: fmax d10, d11, d12
1480 # CHECK: fmin d13, d14, d15
1481 # CHECK: fmaxnm d16, d17, d18
1482 # CHECK: fminnm d19, d20, d21
1483 # CHECK: fnmul d22, d23, d24
1484 0x74 0xa 0x71 0x1e
1485 0x41 0x18 0x63 0x1e
1486 0xa4 0x28 0x66 0x1e
1487 0x7 0x39 0x69 0x1e
1488 0x6a 0x49 0x6c 0x1e
1489 0xcd 0x59 0x6f 0x1e
1490 0x30 0x6a 0x72 0x1e
1491 0x93 0x7a 0x75 0x1e
1492 0xf6 0x8a 0x78 0x1e
1493
1494 #------------------------------------------------------------------------------
1495 # Floating-point data-processing (1 source)
1496 #------------------------------------------------------------------------------
1497
1498 # CHECK: fmadd s3, s5, s6, s31
1499 # CHECK: fmadd d3, d13, d0, d23
1500 # CHECK: fmsub s3, s5, s6, s31
1501 # CHECK: fmsub d3, d13, d0, d23
1502 # CHECK: fnmadd s3, s5, s6, s31
1503 # CHECK: fnmadd d3, d13, d0, d23
1504 # CHECK: fnmsub s3, s5, s6, s31
1505 # CHECK: fnmsub d3, d13, d0, d23
1506 0xa3 0x7c 0x06 0x1f
1507 0xa3 0x5d 0x40 0x1f
1508 0xa3 0xfc 0x06 0x1f
1509 0xa3 0xdd 0x40 0x1f
1510 0xa3 0x7c 0x26 0x1f
1511 0xa3 0x5d 0x60 0x1f
1512 0xa3 0xfc 0x26 0x1f
1513 0xa3 0xdd 0x60 0x1f
1514
1515 #------------------------------------------------------------------------------
1516 # Floating-point <-> fixed-point conversion
1517 #------------------------------------------------------------------------------
1518
1519 # CHECK: fcvtzs w3, s5, #1
1520 # CHECK: fcvtzs wzr, s20, #13
1521 # CHECK: fcvtzs w19, s0, #32
1522 0xa3 0xfc 0x18 0x1e
1523 0x9f 0xce 0x18 0x1e
1524 0x13 0x80 0x18 0x1e
1525
1526 # CHECK: fcvtzs x3, s5, #1
1527 # CHECK: fcvtzs x12, s30, #45
1528 # CHECK: fcvtzs x19, s0, #64
1529 0xa3 0xfc 0x18 0x9e
1530 0xcc 0x4f 0x18 0x9e
1531 0x13 0x00 0x18 0x9e
1532
1533 # CHECK: fcvtzs w3, d5, #1
1534 # CHECK: fcvtzs wzr, d20, #13
1535 # CHECK: fcvtzs w19, d0, #32
1536 0xa3 0xfc 0x58 0x1e
1537 0x9f 0xce 0x58 0x1e
1538 0x13 0x80 0x58 0x1e
1539
1540 # CHECK: fcvtzs x3, d5, #1
1541 # CHECK: fcvtzs x12, d30, #45
1542 # CHECK: fcvtzs x19, d0, #64
1543 0xa3 0xfc 0x58 0x9e
1544 0xcc 0x4f 0x58 0x9e
1545 0x13 0x00 0x58 0x9e
1546
1547 # CHECK: fcvtzu w3, s5, #1
1548 # CHECK: fcvtzu wzr, s20, #13
1549 # CHECK: fcvtzu w19, s0, #32
1550 0xa3 0xfc 0x19 0x1e
1551 0x9f 0xce 0x19 0x1e
1552 0x13 0x80 0x19 0x1e
1553
1554 # CHECK: fcvtzu x3, s5, #1
1555 # CHECK: fcvtzu x12, s30, #45
1556 # CHECK: fcvtzu x19, s0, #64
1557 0xa3 0xfc 0x19 0x9e
1558 0xcc 0x4f 0x19 0x9e
1559 0x13 0x00 0x19 0x9e
1560
1561 # CHECK: fcvtzu w3, d5, #1
1562 # CHECK: fcvtzu wzr, d20, #13
1563 # CHECK: fcvtzu w19, d0, #32
1564 0xa3 0xfc 0x59 0x1e
1565 0x9f 0xce 0x59 0x1e
1566 0x13 0x80 0x59 0x1e
1567
1568 # CHECK: fcvtzu x3, d5, #1
1569 # CHECK: fcvtzu x12, d30, #45
1570 # CHECK: fcvtzu x19, d0, #64
1571 0xa3 0xfc 0x59 0x9e
1572 0xcc 0x4f 0x59 0x9e
1573 0x13 0x00 0x59 0x9e
1574
1575 # CHECK: scvtf s23, w19, #1
1576 # CHECK: scvtf s31, wzr, #20
1577 # CHECK: scvtf s14, w0, #32
1578 0x77 0xfe 0x02 0x1e
1579 0xff 0xb3 0x02 0x1e
1580 0x0e 0x80 0x02 0x1e
1581
1582 # CHECK: scvtf s23, x19, #1
1583 # CHECK: scvtf s31, xzr, #20
1584 # CHECK: scvtf s14, x0, #64
1585 0x77 0xfe 0x02 0x9e
1586 0xff 0xb3 0x02 0x9e
1587 0x0e 0x00 0x02 0x9e
1588
1589 # CHECK: scvtf d23, w19, #1
1590 # CHECK: scvtf d31, wzr, #20
1591 # CHECK: scvtf d14, w0, #32
1592 0x77 0xfe 0x42 0x1e
1593 0xff 0xb3 0x42 0x1e
1594 0x0e 0x80 0x42 0x1e
1595
1596 # CHECK: scvtf d23, x19, #1
1597 # CHECK: scvtf d31, xzr, #20
1598 # CHECK: scvtf d14, x0, #64
1599 0x77 0xfe 0x42 0x9e
1600 0xff 0xb3 0x42 0x9e
1601 0x0e 0x00 0x42 0x9e
1602
1603 # CHECK: ucvtf s23, w19, #1
1604 # CHECK: ucvtf s31, wzr, #20
1605 # CHECK: ucvtf s14, w0, #32
1606 0x77 0xfe 0x03 0x1e
1607 0xff 0xb3 0x03 0x1e
1608 0x0e 0x80 0x03 0x1e
1609
1610 # CHECK: ucvtf s23, x19, #1
1611 # CHECK: ucvtf s31, xzr, #20
1612 # CHECK: ucvtf s14, x0, #64
1613 0x77 0xfe 0x03 0x9e
1614 0xff 0xb3 0x03 0x9e
1615 0x0e 0x00 0x03 0x9e
1616
1617 # CHECK: ucvtf d23, w19, #1
1618 # CHECK: ucvtf d31, wzr, #20
1619 # CHECK: ucvtf d14, w0, #32
1620 0x77 0xfe 0x43 0x1e
1621 0xff 0xb3 0x43 0x1e
1622 0x0e 0x80 0x43 0x1e
1623
1624 # CHECK: ucvtf d23, x19, #1
1625 # CHECK: ucvtf d31, xzr, #20
1626 # CHECK: ucvtf d14, x0, #64
1627 0x77 0xfe 0x43 0x9e
1628 0xff 0xb3 0x43 0x9e
1629 0x0e 0x00 0x43 0x9e
1630
1631 #------------------------------------------------------------------------------
1632 # Floating-point <-> integer conversion
1633 #------------------------------------------------------------------------------
1634 # CHECK: fcvtns w3, s31
1635 # CHECK: fcvtns xzr, s12
1636 # CHECK: fcvtnu wzr, s12
1637 # CHECK: fcvtnu x0, s0
1638 0xe3 0x3 0x20 0x1e
1639 0x9f 0x1 0x20 0x9e
1640 0x9f 0x1 0x21 0x1e
1641 0x0 0x0 0x21 0x9e
1642
1643 # CHECK: fcvtps wzr, s9
1644 # CHECK: fcvtps x12, s20
1645 # CHECK: fcvtpu w30, s23
1646 # CHECK: fcvtpu x29, s3
1647 0x3f 0x1 0x28 0x1e
1648 0x8c 0x2 0x28 0x9e
1649 0xfe 0x2 0x29 0x1e
1650 0x7d 0x0 0x29 0x9e
1651
1652 # CHECK: fcvtms w2, s3
1653 # CHECK: fcvtms x4, s5
1654 # CHECK: fcvtmu w6, s7
1655 # CHECK: fcvtmu x8, s9
1656 0x62 0x0 0x30 0x1e
1657 0xa4 0x0 0x30 0x9e
1658 0xe6 0x0 0x31 0x1e
1659 0x28 0x1 0x31 0x9e
1660
1661 # CHECK: fcvtzs w10, s11
1662 # CHECK: fcvtzs x12, s13
1663 # CHECK: fcvtzu w14, s15
1664 # CHECK: fcvtzu x15, s16
1665 0x6a 0x1 0x38 0x1e
1666 0xac 0x1 0x38 0x9e
1667 0xee 0x1 0x39 0x1e
1668 0xf 0x2 0x39 0x9e
1669
1670 # CHECK: scvtf s17, w18
1671 # CHECK: scvtf s19, x20
1672 # CHECK: ucvtf s21, w22
1673 # CHECK: scvtf s23, x24
1674 0x51 0x2 0x22 0x1e
1675 0x93 0x2 0x22 0x9e
1676 0xd5 0x2 0x23 0x1e
1677 0x17 0x3 0x22 0x9e
1678
1679 # CHECK: fcvtas w25, s26
1680 # CHECK: fcvtas x27, s28
1681 # CHECK: fcvtau w29, s30
1682 # CHECK: fcvtau xzr, s0
1683 0x59 0x3 0x24 0x1e
1684 0x9b 0x3 0x24 0x9e
1685 0xdd 0x3 0x25 0x1e
1686 0x1f 0x0 0x25 0x9e
1687
1688 # CHECK: fcvtns w3, d31
1689 # CHECK: fcvtns xzr, d12
1690 # CHECK: fcvtnu wzr, d12
1691 # CHECK: fcvtnu x0, d0
1692 0xe3 0x3 0x60 0x1e
1693 0x9f 0x1 0x60 0x9e
1694 0x9f 0x1 0x61 0x1e
1695 0x0 0x0 0x61 0x9e
1696
1697 # CHECK: fcvtps wzr, d9
1698 # CHECK: fcvtps x12, d20
1699 # CHECK: fcvtpu w30, d23
1700 # CHECK: fcvtpu x29, d3
1701 0x3f 0x1 0x68 0x1e
1702 0x8c 0x2 0x68 0x9e
1703 0xfe 0x2 0x69 0x1e
1704 0x7d 0x0 0x69 0x9e
1705
1706 # CHECK: fcvtms w2, d3
1707 # CHECK: fcvtms x4, d5
1708 # CHECK: fcvtmu w6, d7
1709 # CHECK: fcvtmu x8, d9
1710 0x62 0x0 0x70 0x1e
1711 0xa4 0x0 0x70 0x9e
1712 0xe6 0x0 0x71 0x1e
1713 0x28 0x1 0x71 0x9e
1714
1715 # CHECK: fcvtzs w10, d11
1716 # CHECK: fcvtzs x12, d13
1717 # CHECK: fcvtzu w14, d15
1718 # CHECK: fcvtzu x15, d16
1719 0x6a 0x1 0x78 0x1e
1720 0xac 0x1 0x78 0x9e
1721 0xee 0x1 0x79 0x1e
1722 0xf 0x2 0x79 0x9e
1723
1724 # CHECK: scvtf d17, w18
1725 # CHECK: scvtf d19, x20
1726 # CHECK: ucvtf d21, w22
1727 # CHECK: ucvtf d23, x24
1728 0x51 0x2 0x62 0x1e
1729 0x93 0x2 0x62 0x9e
1730 0xd5 0x2 0x63 0x1e
1731 0x17 0x3 0x63 0x9e
1732
1733 # CHECK: fcvtas w25, d26
1734 # CHECK: fcvtas x27, d28
1735 # CHECK: fcvtau w29, d30
1736 # CHECK: fcvtau xzr, d0
1737 0x59 0x3 0x64 0x1e
1738 0x9b 0x3 0x64 0x9e
1739 0xdd 0x3 0x65 0x1e
1740 0x1f 0x0 0x65 0x9e
1741
1742 # CHECK: fmov w3, s9
1743 # CHECK: fmov s9, w3
1744 0x23 0x1 0x26 0x1e
1745 0x69 0x0 0x27 0x1e
1746
1747 # CHECK: fmov x20, d31
1748 # CHECK: fmov d1, x15
1749 0xf4 0x3 0x66 0x9e
1750 0xe1 0x1 0x67 0x9e
1751
1752 # CHECK: fmov x3, v12.d[1]
1753 # CHECK: fmov v1.d[1], x19
1754 0x83 0x1 0xae 0x9e
1755 0x61 0x2 0xaf 0x9e
1756
1757 #------------------------------------------------------------------------------
1758 # Floating-point immediate
1759 #------------------------------------------------------------------------------
1760
1761 # CHECK: fmov s2, #0.12500000
1762 # CHECK: fmov s3, #1.00000000
1763 # CHECK: fmov d30, #16.00000000
1764 0x2 0x10 0x28 0x1e
1765 0x3 0x10 0x2e 0x1e
1766 0x1e 0x10 0x66 0x1e
1767
1768 # CHECK: fmov s4, #1.06250000
1769 # CHECK: fmov d10, #1.93750000
1770 0x4 0x30 0x2e 0x1e
1771 0xa 0xf0 0x6f 0x1e
1772
1773 # CHECK: fmov s12, #-1.00000000
1774 0xc 0x10 0x3e 0x1e
1775
1776 # CHECK: fmov d16, #8.50000000
1777 0x10 0x30 0x64 0x1e
1778
1779 #------------------------------------------------------------------------------
1780 # Load-register (literal)
1781 #------------------------------------------------------------------------------
1782
1783 # CHECK: ldr w3, #0
1784 # CHECK: ldr x29, #4
1785 # CHECK: ldrsw xzr, #-4
1786 0x03 0x00 0x00 0x18
1787 0x3d 0x00 0x00 0x58
1788 0xff 0xff 0xff 0x98
1789
1790 # CHECK: ldr s0, #8
1791 # CHECK: ldr d0, #1048572
1792 # CHECK: ldr q0, #-1048576
1793 0x40 0x00 0x00 0x1c
1794 0xe0 0xff 0x7f 0x5c
1795 0x00 0x00 0x80 0x9c
1796
1797 # CHECK: prfm pldl1strm, #0
1798 # CHECK: prfm #22, #0
1799 0x01 0x00 0x00 0xd8
1800 0x16 0x00 0x00 0xd8
1801
1802 #------------------------------------------------------------------------------
1803 # Load/store exclusive
1804 #------------------------------------------------------------------------------
1805
1806 #CHECK: stxrb w18, w8, [sp]
1807 #CHECK: stxrh w24, w15, [x16]
1808 #CHECK: stxr w5, w6, [x17]
1809 #CHECK: stxr w1, x10, [x21]
1810 #CHECK: stxr w1, x10, [x21]
1811 0xe8 0x7f 0x12 0x08
1812 0x0f 0x7e 0x18 0x48
1813 0x26 0x7e 0x05 0x88
1814 0xaa 0x7e 0x01 0xc8
1815 0xaa 0x7a 0x01 0xc8
1816
1817 #CHECK: ldxrb w30, [x0]
1818 #CHECK: ldxrh w17, [x4]
1819 #CHECK: ldxr w22, [sp]
1820 #CHECK: ldxr x11, [x29]
1821 #CHECK: ldxr x11, [x29]
1822 #CHECK: ldxr x11, [x29]
1823 0x1e 0x7c 0x5f 0x08
1824 0x91 0x7c 0x5f 0x48
1825 0xf6 0x7f 0x5f 0x88
1826 0xab 0x7f 0x5f 0xc8
1827 0xab 0x6f 0x5f 0xc8
1828 0xab 0x7f 0x5e 0xc8
1829
1830 #CHECK: stxp w12, w11, w10, [sp]
1831 #CHECK: stxp wzr, x27, x9, [x12]
1832 0xeb 0x2b 0x2c 0x88
1833 0x9b 0x25 0x3f 0xc8
1834
1835 #CHECK: ldxp w0, wzr, [sp]
1836 #CHECK: ldxp x17, x0, [x18]
1837 #CHECK: ldxp x17, x0, [x18]
1838 0xe0 0x7f 0x7f 0x88
1839 0x51 0x02 0x7f 0xc8
1840 0x51 0x02 0x7e 0xc8
1841
1842 #CHECK: stlxrb w12, w22, [x0]
1843 #CHECK: stlxrh w10, w1, [x1]
1844 #CHECK: stlxr w9, w2, [x2]
1845 #CHECK: stlxr w9, x3, [sp]
1846
1847 0x16 0xfc 0x0c 0x08
1848 0x21 0xfc 0x0a 0x48
1849 0x42 0xfc 0x09 0x88
1850 0xe3 0xff 0x09 0xc8
1851
1852 #CHECK: ldaxrb w8, [x4]
1853 #CHECK: ldaxrh w7, [x5]
1854 #CHECK: ldaxr w6, [sp]
1855 #CHECK: ldaxr x5, [x6]
1856 #CHECK: ldaxr x5, [x6]
1857 #CHECK: ldaxr x5, [x6]
1858 0x88 0xfc 0x5f 0x08
1859 0xa7 0xfc 0x5f 0x48
1860 0xe6 0xff 0x5f 0x88
1861 0xc5 0xfc 0x5f 0xc8
1862 0xc5 0xec 0x5f 0xc8
1863 0xc5 0xfc 0x5e 0xc8
1864
1865 #CHECK: stlxp w4, w5, w6, [sp]
1866 #CHECK: stlxp wzr, x6, x7, [x1]
1867 0xe5 0x9b 0x24 0x88
1868 0x26 0x9c 0x3f 0xc8
1869
1870 #CHECK: ldaxp w5, w18, [sp]
1871 #CHECK: ldaxp x6, x19, [x22]
1872 #CHECK: ldaxp x6, x19, [x22]
1873 0xe5 0xcb 0x7f 0x88
1874 0xc6 0xce 0x7f 0xc8
1875 0xc6 0xce 0x7e 0xc8
1876
1877 #CHECK: stlrb w24, [sp]
1878 #CHECK: stlrh w25, [x30]
1879 #CHECK: stlr w26, [x29]
1880 #CHECK: stlr x27, [x28]
1881 #CHECK: stlr x27, [x28]
1882 #CHECK: stlr x27, [x28]
1883 0xf8 0xff 0x9f 0x08
1884 0xd9 0xff 0x9f 0x48
1885 0xba 0xff 0x9f 0x88
1886 0x9b 0xff 0x9f 0xc8
1887 0x9b 0xef 0x9f 0xc8
1888 0x9b 0xff 0x9e 0xc8
1889
1890 #CHECK: ldarb w23, [sp]
1891 #CHECK: ldarh w22, [x30]
1892 #CHECK: ldar wzr, [x29]
1893 #CHECK: ldar x21, [x28]
1894 #CHECK: ldar x21, [x28]
1895 #CHECK: ldar x21, [x28]
1896 0xf7 0xff 0xdf 0x08
1897 0xd6 0xff 0xdf 0x48
1898 0xbf 0xff 0xdf 0x88
1899 0x95 0xff 0xdf 0xc8
1900 0x95 0xef 0xdf 0xc8
1901 0x95 0xff 0xde 0xc8
1902
1903 #------------------------------------------------------------------------------
1904 # Load/store (unscaled immediate)
1905 #------------------------------------------------------------------------------
1906
1907 # CHECK: sturb w9, [sp]
1908 # CHECK: sturh wzr, [x12, #255]
1909 # CHECK: stur w16, [x0, #-256]
1910 # CHECK: stur x28, [x14, #1]
1911 0xe9 0x3 0x0 0x38
1912 0x9f 0xf1 0xf 0x78
1913 0x10 0x0 0x10 0xb8
1914 0xdc 0x11 0x0 0xf8
1915
1916 # CHECK: ldurb w1, [x20, #255]
1917 # CHECK: ldurh w20, [x1, #255]
1918 # CHECK: ldur w12, [sp, #255]
1919 # CHECK: ldur xzr, [x12, #255]
1920 0x81 0xf2 0x4f 0x38
1921 0x34 0xf0 0x4f 0x78
1922 0xec 0xf3 0x4f 0xb8
1923 0x9f 0xf1 0x4f 0xf8
1924
1925 # CHECK: ldursb x9, [x7, #-256]
1926 # CHECK: ldursh x17, [x19, #-256]
1927 # CHECK: ldursw x20, [x15, #-256]
1928 # CHECK: prfum pldl2keep, [sp, #-256]
1929 # CHECK: ldursb w19, [x1, #-256]
1930 # CHECK: ldursh w15, [x21, #-256]
1931 0xe9 0x0 0x90 0x38
1932 0x71 0x2 0x90 0x78
1933 0xf4 0x1 0x90 0xb8
1934 0xe2 0x3 0x90 0xf8
1935 0x33 0x0 0xd0 0x38
1936 0xaf 0x2 0xd0 0x78
1937
1938 # CHECK: stur b0, [sp, #1]
1939 # CHECK: stur h12, [x12, #-1]
1940 # CHECK: stur s15, [x0, #255]
1941 # CHECK: stur d31, [x5, #25]
1942 # CHECK: stur q9, [x5]
1943 0xe0 0x13 0x0 0x3c
1944 0x8c 0xf1 0x1f 0x7c
1945 0xf 0xf0 0xf 0xbc
1946 0xbf 0x90 0x1 0xfc
1947 0xa9 0x0 0x80 0x3c
1948
1949 # CHECK: ldur b3, [sp]
1950 # CHECK: ldur h5, [x4, #-256]
1951 # CHECK: ldur s7, [x12, #-1]
1952 # CHECK: ldur d11, [x19, #4]
1953 # CHECK: ldur q13, [x1, #2]
1954 0xe3 0x3 0x40 0x3c
1955 0x85 0x0 0x50 0x7c
1956 0x87 0xf1 0x5f 0xbc
1957 0x6b 0x42 0x40 0xfc
1958 0x2d 0x20 0xc0 0x3c
1959
1960 #------------------------------------------------------------------------------
1961 # Load/store (immediate post-indexed)
1962 #------------------------------------------------------------------------------
1963
1964 # E.g. "str xzr, [sp], #4" is *not* unpredictable
1965 # CHECK-NOT: warning: potentially undefined instruction encoding
1966 0xff 0x47 0x40 0xb8
1967
1968 # CHECK: strb w9, [x2], #255
1969 # CHECK: strb w10, [x3], #1
1970 # CHECK: strb w10, [x3], #-256
1971 # CHECK: strh w9, [x2], #255
1972 # CHECK: strh w9, [x2], #1
1973 # CHECK: strh w10, [x3], #-256
1974 0x49 0xf4 0xf 0x38
1975 0x6a 0x14 0x0 0x38
1976 0x6a 0x4 0x10 0x38
1977 0x49 0xf4 0xf 0x78
1978 0x49 0x14 0x0 0x78
1979 0x6a 0x4 0x10 0x78
1980
1981 # CHECK: str w19, [sp], #255
1982 # CHECK: str w20, [x30], #1
1983 # CHECK: str w21, [x12], #-256
1984 # CHECK: str xzr, [x9], #255
1985 # CHECK: str x2, [x3], #1
1986 # CHECK: str x19, [x12], #-256
1987 0xf3 0xf7 0xf 0xb8
1988 0xd4 0x17 0x0 0xb8
1989 0x95 0x5 0x10 0xb8
1990 0x3f 0xf5 0xf 0xf8
1991 0x62 0x14 0x0 0xf8
1992 0x93 0x5 0x10 0xf8
1993
1994 # CHECK: ldrb w9, [x2], #255
1995 # CHECK: ldrb w10, [x3], #1
1996 # CHECK: ldrb w10, [x3], #-256
1997 # CHECK: ldrh w9, [x2], #255
1998 # CHECK: ldrh w9, [x2], #1
1999 # CHECK: ldrh w10, [x3], #-256
2000 0x49 0xf4 0x4f 0x38
2001 0x6a 0x14 0x40 0x38
2002 0x6a 0x4 0x50 0x38
2003 0x49 0xf4 0x4f 0x78
2004 0x49 0x14 0x40 0x78
2005 0x6a 0x4 0x50 0x78
2006
2007 # CHECK: ldr w19, [sp], #255
2008 # CHECK: ldr w20, [x30], #1
2009 # CHECK: ldr w21, [x12], #-256
2010 # CHECK: ldr xzr, [x9], #255
2011 # CHECK: ldr x2, [x3], #1
2012 # CHECK: ldr x19, [x12], #-256
2013 0xf3 0xf7 0x4f 0xb8
2014 0xd4 0x17 0x40 0xb8
2015 0x95 0x5 0x50 0xb8
2016 0x3f 0xf5 0x4f 0xf8
2017 0x62 0x14 0x40 0xf8
2018 0x93 0x5 0x50 0xf8
2019
2020 # CHECK: ldrsb xzr, [x9], #255
2021 # CHECK: ldrsb x2, [x3], #1
2022 # CHECK: ldrsb x19, [x12], #-256
2023 # CHECK: ldrsh xzr, [x9], #255
2024 # CHECK: ldrsh x2, [x3], #1
2025 # CHECK: ldrsh x19, [x12], #-256
2026 # CHECK: ldrsw xzr, [x9], #255
2027 # CHECK: ldrsw x2, [x3], #1
2028 # CHECK: ldrsw x19, [x12], #-256
2029 0x3f 0xf5 0x8f 0x38
2030 0x62 0x14 0x80 0x38
2031 0x93 0x5 0x90 0x38
2032 0x3f 0xf5 0x8f 0x78
2033 0x62 0x14 0x80 0x78
2034 0x93 0x5 0x90 0x78
2035 0x3f 0xf5 0x8f 0xb8
2036 0x62 0x14 0x80 0xb8
2037 0x93 0x5 0x90 0xb8
2038
2039 # CHECK: ldrsb wzr, [x9], #255
2040 # CHECK: ldrsb w2, [x3], #1
2041 # CHECK: ldrsb w19, [x12], #-256
2042 # CHECK: ldrsh wzr, [x9], #255
2043 # CHECK: ldrsh w2, [x3], #1
2044 # CHECK: ldrsh w19, [x12], #-256
2045 0x3f 0xf5 0xcf 0x38
2046 0x62 0x14 0xc0 0x38
2047 0x93 0x5 0xd0 0x38
2048 0x3f 0xf5 0xcf 0x78
2049 0x62 0x14 0xc0 0x78
2050 0x93 0x5 0xd0 0x78
2051
2052 # CHECK: str b0, [x0], #255
2053 # CHECK: str b3, [x3], #1
2054 # CHECK: str b5, [sp], #-256
2055 # CHECK: str h10, [x10], #255
2056 # CHECK: str h13, [x23], #1
2057 # CHECK: str h15, [sp], #-256
2058 # CHECK: str s20, [x20], #255
2059 # CHECK: str s23, [x23], #1
2060 # CHECK: str s25, [x0], #-256
2061 # CHECK: str d20, [x20], #255
2062 # CHECK: str d23, [x23], #1
2063 # CHECK: str d25, [x0], #-256
2064 0x0 0xf4 0xf 0x3c
2065 0x63 0x14 0x0 0x3c
2066 0xe5 0x7 0x10 0x3c
2067 0x4a 0xf5 0xf 0x7c
2068 0xed 0x16 0x0 0x7c
2069 0xef 0x7 0x10 0x7c
2070 0x94 0xf6 0xf 0xbc
2071 0xf7 0x16 0x0 0xbc
2072 0x19 0x4 0x10 0xbc
2073 0x94 0xf6 0xf 0xfc
2074 0xf7 0x16 0x0 0xfc
2075 0x19 0x4 0x10 0xfc
2076
2077 # CHECK: ldr b0, [x0], #255
2078 # CHECK: ldr b3, [x3], #1
2079 # CHECK: ldr b5, [sp], #-256
2080 # CHECK: ldr h10, [x10], #255
2081 # CHECK: ldr h13, [x23], #1
2082 # CHECK: ldr h15, [sp], #-256
2083 # CHECK: ldr s20, [x20], #255
2084 # CHECK: ldr s23, [x23], #1
2085 # CHECK: ldr s25, [x0], #-256
2086 # CHECK: ldr d20, [x20], #255
2087 # CHECK: ldr d23, [x23], #1
2088 # CHECK: ldr d25, [x0], #-256
2089 0x0 0xf4 0x4f 0x3c
2090 0x63 0x14 0x40 0x3c
2091 0xe5 0x7 0x50 0x3c
2092 0x4a 0xf5 0x4f 0x7c
2093 0xed 0x16 0x40 0x7c
2094 0xef 0x7 0x50 0x7c
2095 0x94 0xf6 0x4f 0xbc
2096 0xf7 0x16 0x40 0xbc
2097 0x19 0x4 0x50 0xbc
2098 0x94 0xf6 0x4f 0xfc
2099 0xf7 0x16 0x40 0xfc
2100 0x19 0x4 0x50 0xfc
2101 0x34 0xf4 0xcf 0x3c
2102
2103 # CHECK: ldr q20, [x1], #255
2104 # CHECK: ldr q23, [x9], #1
2105 # CHECK: ldr q25, [x20], #-256
2106 # CHECK: str q10, [x1], #255
2107 # CHECK: str q22, [sp], #1
2108 # CHECK: str q21, [x20], #-256
2109 0x37 0x15 0xc0 0x3c
2110 0x99 0x6 0xd0 0x3c
2111 0x2a 0xf4 0x8f 0x3c
2112 0xf6 0x17 0x80 0x3c
2113 0x95 0x6 0x90 0x3c
2114
2115 #-------------------------------------------------------------------------------
2116 # Load-store register (immediate pre-indexed)
2117 #-------------------------------------------------------------------------------
2118
2119 # E.g. "str xzr, [sp, #4]!" is *not* unpredictable
2120 # CHECK-NOT: warning: potentially undefined instruction encoding
2121 0xff 0xf 0x40 0xf8
2122
2123 # CHECK: ldr x3, [x4, #0]!
2124 0x83 0xc 0x40 0xf8
2125
2126 # CHECK: strb w9, [x2, #255]!
2127 # CHECK: strb w10, [x3, #1]!
2128 # CHECK: strb w10, [x3, #-256]!
2129 # CHECK: strh w9, [x2, #255]!
2130 # CHECK: strh w9, [x2, #1]!
2131 # CHECK: strh w10, [x3, #-256]!
2132 0x49 0xfc 0xf 0x38
2133 0x6a 0x1c 0x0 0x38
2134 0x6a 0xc 0x10 0x38
2135 0x49 0xfc 0xf 0x78
2136 0x49 0x1c 0x0 0x78
2137 0x6a 0xc 0x10 0x78
2138
2139 # CHECK: str w19, [sp, #255]!
2140 # CHECK: str w20, [x30, #1]!
2141 # CHECK: str w21, [x12, #-256]!
2142 # CHECK: str xzr, [x9, #255]!
2143 # CHECK: str x2, [x3, #1]!
2144 # CHECK: str x19, [x12, #-256]!
2145 0xf3 0xff 0xf 0xb8
2146 0xd4 0x1f 0x0 0xb8
2147 0x95 0xd 0x10 0xb8
2148 0x3f 0xfd 0xf 0xf8
2149 0x62 0x1c 0x0 0xf8
2150 0x93 0xd 0x10 0xf8
2151
2152 # CHECK: ldrb w9, [x2, #255]!
2153 # CHECK: ldrb w10, [x3, #1]!
2154 # CHECK: ldrb w10, [x3, #-256]!
2155 # CHECK: ldrh w9, [x2, #255]!
2156 # CHECK: ldrh w9, [x2, #1]!
2157 # CHECK: ldrh w10, [x3, #-256]!
2158 0x49 0xfc 0x4f 0x38
2159 0x6a 0x1c 0x40 0x38
2160 0x6a 0xc 0x50 0x38
2161 0x49 0xfc 0x4f 0x78
2162 0x49 0x1c 0x40 0x78
2163 0x6a 0xc 0x50 0x78
2164
2165 # CHECK: ldr w19, [sp, #255]!
2166 # CHECK: ldr w20, [x30, #1]!
2167 # CHECK: ldr w21, [x12, #-256]!
2168 # CHECK: ldr xzr, [x9, #255]!
2169 # CHECK: ldr x2, [x3, #1]!
2170 # CHECK: ldr x19, [x12, #-256]!
2171 0xf3 0xff 0x4f 0xb8
2172 0xd4 0x1f 0x40 0xb8
2173 0x95 0xd 0x50 0xb8
2174 0x3f 0xfd 0x4f 0xf8
2175 0x62 0x1c 0x40 0xf8
2176 0x93 0xd 0x50 0xf8
2177
2178 # CHECK: ldrsb xzr, [x9, #255]!
2179 # CHECK: ldrsb x2, [x3, #1]!
2180 # CHECK: ldrsb x19, [x12, #-256]!
2181 # CHECK: ldrsh xzr, [x9, #255]!
2182 # CHECK: ldrsh x2, [x3, #1]!
2183 # CHECK: ldrsh x19, [x12, #-256]!
2184 # CHECK: ldrsw xzr, [x9, #255]!
2185 # CHECK: ldrsw x2, [x3, #1]!
2186 # CHECK: ldrsw x19, [x12, #-256]!
2187 0x3f 0xfd 0x8f 0x38
2188 0x62 0x1c 0x80 0x38
2189 0x93 0xd 0x90 0x38
2190 0x3f 0xfd 0x8f 0x78
2191 0x62 0x1c 0x80 0x78
2192 0x93 0xd 0x90 0x78
2193 0x3f 0xfd 0x8f 0xb8
2194 0x62 0x1c 0x80 0xb8
2195 0x93 0xd 0x90 0xb8
2196
2197 # CHECK: ldrsb wzr, [x9, #255]!
2198 # CHECK: ldrsb w2, [x3, #1]!
2199 # CHECK: ldrsb w19, [x12, #-256]!
2200 # CHECK: ldrsh wzr, [x9, #255]!
2201 # CHECK: ldrsh w2, [x3, #1]!
2202 # CHECK: ldrsh w19, [x12, #-256]!
2203 0x3f 0xfd 0xcf 0x38
2204 0x62 0x1c 0xc0 0x38
2205 0x93 0xd 0xd0 0x38
2206 0x3f 0xfd 0xcf 0x78
2207 0x62 0x1c 0xc0 0x78
2208 0x93 0xd 0xd0 0x78
2209
2210 # CHECK: str b0, [x0, #255]!
2211 # CHECK: str b3, [x3, #1]!
2212 # CHECK: str b5, [sp, #-256]!
2213 # CHECK: str h10, [x10, #255]!
2214 # CHECK: str h13, [x23, #1]!
2215 # CHECK: str h15, [sp, #-256]!
2216 # CHECK: str s20, [x20, #255]!
2217 # CHECK: str s23, [x23, #1]!
2218 # CHECK: str s25, [x0, #-256]!
2219 # CHECK: str d20, [x20, #255]!
2220 # CHECK: str d23, [x23, #1]!
2221 # CHECK: str d25, [x0, #-256]!
2222 0x0 0xfc 0xf 0x3c
2223 0x63 0x1c 0x0 0x3c
2224 0xe5 0xf 0x10 0x3c
2225 0x4a 0xfd 0xf 0x7c
2226 0xed 0x1e 0x0 0x7c
2227 0xef 0xf 0x10 0x7c
2228 0x94 0xfe 0xf 0xbc
2229 0xf7 0x1e 0x0 0xbc
2230 0x19 0xc 0x10 0xbc
2231 0x94 0xfe 0xf 0xfc
2232 0xf7 0x1e 0x0 0xfc
2233 0x19 0xc 0x10 0xfc
2234
2235 # CHECK: ldr b0, [x0, #255]!
2236 # CHECK: ldr b3, [x3, #1]!
2237 # CHECK: ldr b5, [sp, #-256]!
2238 # CHECK: ldr h10, [x10, #255]!
2239 # CHECK: ldr h13, [x23, #1]!
2240 # CHECK: ldr h15, [sp, #-256]!
2241 # CHECK: ldr s20, [x20, #255]!
2242 # CHECK: ldr s23, [x23, #1]!
2243 # CHECK: ldr s25, [x0, #-256]!
2244 # CHECK: ldr d20, [x20, #255]!
2245 # CHECK: ldr d23, [x23, #1]!
2246 # CHECK: ldr d25, [x0, #-256]!
2247 0x0 0xfc 0x4f 0x3c
2248 0x63 0x1c 0x40 0x3c
2249 0xe5 0xf 0x50 0x3c
2250 0x4a 0xfd 0x4f 0x7c
2251 0xed 0x1e 0x40 0x7c
2252 0xef 0xf 0x50 0x7c
2253 0x94 0xfe 0x4f 0xbc
2254 0xf7 0x1e 0x40 0xbc
2255 0x19 0xc 0x50 0xbc
2256 0x94 0xfe 0x4f 0xfc
2257 0xf7 0x1e 0x40 0xfc
2258 0x19 0xc 0x50 0xfc
2259
2260 # CHECK: ldr q20, [x1, #255]!
2261 # CHECK: ldr q23, [x9, #1]!
2262 # CHECK: ldr q25, [x20, #-256]!
2263 # CHECK: str q10, [x1, #255]!
2264 # CHECK: str q22, [sp, #1]!
2265 # CHECK: str q21, [x20, #-256]!
2266 0x34 0xfc 0xcf 0x3c
2267 0x37 0x1d 0xc0 0x3c
2268 0x99 0xe 0xd0 0x3c
2269 0x2a 0xfc 0x8f 0x3c
2270 0xf6 0x1f 0x80 0x3c
2271 0x95 0xe 0x90 0x3c
2272
2273 #------------------------------------------------------------------------------
2274 # Load/store (unprivileged)
2275 #------------------------------------------------------------------------------
2276
2277 # CHECK: sttrb w9, [sp]
2278 # CHECK: sttrh wzr, [x12, #255]
2279 # CHECK: sttr w16, [x0, #-256]
2280 # CHECK: sttr x28, [x14, #1]
2281 0xe9 0x0b 0x0 0x38
2282 0x9f 0xf9 0xf 0x78
2283 0x10 0x08 0x10 0xb8
2284 0xdc 0x19 0x0 0xf8
2285
2286 # CHECK: ldtrb w1, [x20, #255]
2287 # CHECK: ldtrh w20, [x1, #255]
2288 # CHECK: ldtr w12, [sp, #255]
2289 # CHECK: ldtr xzr, [x12, #255]
2290 0x81 0xfa 0x4f 0x38
2291 0x34 0xf8 0x4f 0x78
2292 0xec 0xfb 0x4f 0xb8
2293 0x9f 0xf9 0x4f 0xf8
2294
2295 # CHECK: ldtrsb x9, [x7, #-256]
2296 # CHECK: ldtrsh x17, [x19, #-256]
2297 # CHECK: ldtrsw x20, [x15, #-256]
2298 # CHECK: ldtrsb w19, [x1, #-256]
2299 # CHECK: ldtrsh w15, [x21, #-256]
2300 0xe9 0x08 0x90 0x38
2301 0x71 0x0a 0x90 0x78
2302 0xf4 0x09 0x90 0xb8
2303 0x33 0x08 0xd0 0x38
2304 0xaf 0x0a 0xd0 0x78
2305
2306 #------------------------------------------------------------------------------
2307 # Load/store (unsigned immediate)
2308 #------------------------------------------------------------------------------
2309
2310 # CHECK: ldr x0, [x0]
2311 # CHECK: ldr x4, [x29]
2312 # CHECK: ldr x30, [x12, #32760]
2313 # CHECK: ldr x20, [sp, #8]
2314 0x0 0x0 0x40 0xf9
2315 0xa4 0x3 0x40 0xf9
2316 0x9e 0xfd 0x7f 0xf9
2317 0xf4 0x7 0x40 0xf9
2318
2319 # CHECK: ldr xzr, [sp]
2320 0xff 0x3 0x40 0xf9
2321
2322 # CHECK: ldr w2, [sp]
2323 # CHECK: ldr w17, [sp, #16380]
2324 # CHECK: ldr w13, [x2, #4]
2325 0xe2 0x3 0x40 0xb9
2326 0xf1 0xff 0x7f 0xb9
2327 0x4d 0x4 0x40 0xb9
2328
2329 # CHECK: ldrsw x2, [x5, #4]
2330 # CHECK: ldrsw x23, [sp, #16380]
2331 0xa2 0x4 0x80 0xb9
2332 0xf7 0xff 0xbf 0xb9
2333
2334 # CHECK: ldrh w2, [x4]
2335 # CHECK: ldrsh w23, [x6, #8190]
2336 # CHECK: ldrsh wzr, [sp, #2]
2337 # CHECK: ldrsh x29, [x2, #2]
2338 0x82 0x0 0x40 0x79
2339 0xd7 0xfc 0xff 0x79
2340 0xff 0x7 0xc0 0x79
2341 0x5d 0x4 0x80 0x79
2342
2343 # CHECK: ldrb w26, [x3, #121]
2344 # CHECK: ldrb w12, [x2]
2345 # CHECK: ldrsb w27, [sp, #4095]
2346 # CHECK: ldrsb xzr, [x15]
2347 0x7a 0xe4 0x41 0x39
2348 0x4c 0x0 0x40 0x39
2349 0xfb 0xff 0xff 0x39
2350 0xff 0x1 0x80 0x39
2351
2352 # CHECK: str x30, [sp]
2353 # CHECK: str w20, [x4, #16380]
2354 # CHECK: strh w20, [x10, #14]
2355 # CHECK: strh w17, [sp, #8190]
2356 # CHECK: strb w23, [x3, #4095]
2357 # CHECK: strb wzr, [x2]
2358 0xfe 0x3 0x0 0xf9
2359 0x94 0xfc 0x3f 0xb9
2360 0x54 0x1d 0x0 0x79
2361 0xf1 0xff 0x3f 0x79
2362 0x77 0xfc 0x3f 0x39
2363 0x5f 0x0 0x0 0x39
2364
2365 # CHECK: ldr b31, [sp, #4095]
2366 # CHECK: ldr h20, [x2, #8190]
2367 # CHECK: ldr s10, [x19, #16380]
2368 # CHECK: ldr d3, [x10, #32760]
2369 # CHECK: str q12, [sp, #65520]
2370 0xff 0xff 0x7f 0x3d
2371 0x54 0xfc 0x7f 0x7d
2372 0x6a 0xfe 0x7f 0xbd
2373 0x43 0xfd 0x7f 0xfd
2374 0xec 0xff 0xbf 0x3d
2375
2376 # CHECK: prfm pldl1keep, [sp, #8]
2377 # CHECK: prfm pldl1strm, [x3{{(, #0)?}}]
2378 # CHECK: prfm pldl2keep, [x5, #16]
2379 # CHECK: prfm pldl2strm, [x2{{(, #0)?}}]
2380 # CHECK: prfm pldl3keep, [x5{{(, #0)?}}]
2381 # CHECK: prfm pldl3strm, [x6{{(, #0)?}}]
2382 # CHECK: prfm plil1keep, [sp, #8]
2383 # CHECK: prfm plil1strm, [x3{{(, #0)?}}]
2384 # CHECK: prfm plil2keep, [x5, #16]
2385 # CHECK: prfm plil2strm, [x2{{(, #0)?}}]
2386 # CHECK: prfm plil3keep, [x5{{(, #0)?}}]
2387 # CHECK: prfm plil3strm, [x6{{(, #0)?}}]
2388 # CHECK: prfm pstl1keep, [sp, #8]
2389 # CHECK: prfm pstl1strm, [x3{{(, #0)?}}]
2390 # CHECK: prfm pstl2keep, [x5, #16]
2391 # CHECK: prfm pstl2strm, [x2{{(, #0)?}}]
2392 # CHECK: prfm pstl3keep, [x5{{(, #0)?}}]
2393 # CHECK: prfm pstl3strm, [x6{{(, #0)?}}]
2394 0xe0 0x07 0x80 0xf9
2395 0x61 0x00 0x80 0xf9
2396 0xa2 0x08 0x80 0xf9
2397 0x43 0x00 0x80 0xf9
2398 0xa4 0x00 0x80 0xf9
2399 0xc5 0x00 0x80 0xf9
2400 0xe8 0x07 0x80 0xf9
2401 0x69 0x00 0x80 0xf9
2402 0xaa 0x08 0x80 0xf9
2403 0x4b 0x00 0x80 0xf9
2404 0xac 0x00 0x80 0xf9
2405 0xcd 0x00 0x80 0xf9
2406 0xf0 0x07 0x80 0xf9
2407 0x71 0x00 0x80 0xf9
2408 0xb2 0x08 0x80 0xf9
2409 0x53 0x00 0x80 0xf9
2410 0xb4 0x00 0x80 0xf9
2411 0xd5 0x00 0x80 0xf9
2412
2413
2414 #------------------------------------------------------------------------------
2415 # Load/store (register offset)
2416 #------------------------------------------------------------------------------
2417
2418 # CHECK: ldrb w3, [sp, x5]
2419 # CHECK: ldrb w9, [x27, x6]
2420 # CHECK: ldrsb w10, [x30, x7]
2421 # CHECK: ldrb w11, [x29, x3, sxtx]
2422 # CHECK: strb w12, [x28, xzr, sxtx]
2423 # CHECK: ldrb w14, [x26, w6, uxtw]
2424 # CHECK: ldrsb w15, [x25, w7, uxtw]
2425 # CHECK: ldrb w17, [x23, w9, sxtw]
2426 # CHECK: ldrsb x18, [x22, w10, sxtw]
2427 0xe3 0x6b 0x65 0x38
2428 0x69 0x6b 0x66 0x38
2429 0xca 0x6b 0xe7 0x38
2430 0xab 0xeb 0x63 0x38
2431 0x8c 0xeb 0x3f 0x38
2432 0x4e 0x4b 0x66 0x38
2433 0x2f 0x4b 0xe7 0x38
2434 0xf1 0xca 0x69 0x38
2435 0xd2 0xca 0xaa 0x38
2436
2437 # CHECK: ldrsh w3, [sp, x5]
2438 # CHECK: ldrsh w9, [x27, x6]
2439 # CHECK: ldrh w10, [x30, x7, lsl #1]
2440 # CHECK: strh w11, [x29, x3, sxtx]
2441 # CHECK: ldrh w12, [x28, xzr, sxtx]
2442 # CHECK: ldrsh x13, [x27, x5, sxtx #1]
2443 # CHECK: ldrh w14, [x26, w6, uxtw]
2444 # CHECK: ldrh w15, [x25, w7, uxtw]
2445 # CHECK: ldrsh w16, [x24, w8, uxtw #1]
2446 # CHECK: ldrh w17, [x23, w9, sxtw]
2447 # CHECK: ldrh w18, [x22, w10, sxtw]
2448 # CHECK: strh w19, [x21, wzr, sxtw #1]
2449 0xe3 0x6b 0xe5 0x78
2450 0x69 0x6b 0xe6 0x78
2451 0xca 0x7b 0x67 0x78
2452 0xab 0xeb 0x23 0x78
2453 0x8c 0xeb 0x7f 0x78
2454 0x6d 0xfb 0xa5 0x78
2455 0x4e 0x4b 0x66 0x78
2456 0x2f 0x4b 0x67 0x78
2457 0x10 0x5b 0xe8 0x78
2458 0xf1 0xca 0x69 0x78
2459 0xd2 0xca 0x6a 0x78
2460 0xb3 0xda 0x3f 0x78
2461
2462 # CHECK: ldr w3, [sp, x5]
2463 # CHECK: ldr s9, [x27, x6]
2464 # CHECK: ldr w10, [x30, x7, lsl #2]
2465 # CHECK: ldr w11, [x29, x3, sxtx]
2466 # CHECK: str s12, [x28, xzr, sxtx]
2467 # CHECK: str w13, [x27, x5, sxtx #2]
2468 # CHECK: str w14, [x26, w6, uxtw]
2469 # CHECK: ldr w15, [x25, w7, uxtw]
2470 # CHECK: ldr w16, [x24, w8, uxtw #2]
2471 # CHECK: ldrsw x17, [x23, w9, sxtw]
2472 # CHECK: ldr w18, [x22, w10, sxtw]
2473 # CHECK: ldrsw x19, [x21, wzr, sxtw #2]
2474 0xe3 0x6b 0x65 0xb8
2475 0x69 0x6b 0x66 0xbc
2476 0xca 0x7b 0x67 0xb8
2477 0xab 0xeb 0x63 0xb8
2478 0x8c 0xeb 0x3f 0xbc
2479 0x6d 0xfb 0x25 0xb8
2480 0x4e 0x4b 0x26 0xb8
2481 0x2f 0x4b 0x67 0xb8
2482 0x10 0x5b 0x68 0xb8
2483 0xf1 0xca 0xa9 0xb8
2484 0xd2 0xca 0x6a 0xb8
2485 0xb3 0xda 0xbf 0xb8
2486
2487 # CHECK: ldr x3, [sp, x5]
2488 # CHECK: str x9, [x27, x6]
2489 # CHECK: ldr d10, [x30, x7, lsl #3]
2490 # CHECK: str x11, [x29, x3, sxtx]
2491 # CHECK: ldr x12, [x28, xzr, sxtx]
2492 # CHECK: ldr x13, [x27, x5, sxtx #3]
2493 # CHECK: prfm pldl1keep, [x26, w6, uxtw]
2494 # CHECK: ldr x15, [x25, w7, uxtw]
2495 # CHECK: ldr x16, [x24, w8, uxtw #3]
2496 # CHECK: ldr x17, [x23, w9, sxtw]
2497 # CHECK: ldr x18, [x22, w10, sxtw]
2498 # CHECK: str d19, [x21, wzr, sxtw #3]
2499 0xe3 0x6b 0x65 0xf8
2500 0x69 0x6b 0x26 0xf8
2501 0xca 0x7b 0x67 0xfc
2502 0xab 0xeb 0x23 0xf8
2503 0x8c 0xeb 0x7f 0xf8
2504 0x6d 0xfb 0x65 0xf8
2505 0x40 0x4b 0xa6 0xf8
2506 0x2f 0x4b 0x67 0xf8
2507 0x10 0x5b 0x68 0xf8
2508 0xf1 0xca 0x69 0xf8
2509 0xd2 0xca 0x6a 0xf8
2510 0xb3 0xda 0x3f 0xfc
2511
2512 # CHECK: ldr q3, [sp, x5]
2513 # CHECK: ldr q9, [x27, x6]
2514 # CHECK: ldr q10, [x30, x7, lsl #4]
2515 # CHECK: str q11, [x29, x3, sxtx]
2516 # CHECK: str q12, [x28, xzr, sxtx]
2517 # CHECK: str q13, [x27, x5, sxtx #4]
2518 # CHECK: ldr q14, [x26, w6, uxtw]
2519 # CHECK: ldr q15, [x25, w7, uxtw]
2520 # CHECK: ldr q16, [x24, w8, uxtw #4]
2521 # CHECK: ldr q17, [x23, w9, sxtw]
2522 # CHECK: str q18, [x22, w10, sxtw]
2523 # CHECK: ldr q19, [x21, wzr, sxtw #4]
2524 0xe3 0x6b 0xe5 0x3c
2525 0x69 0x6b 0xe6 0x3c
2526 0xca 0x7b 0xe7 0x3c
2527 0xab 0xeb 0xa3 0x3c
2528 0x8c 0xeb 0xbf 0x3c
2529 0x6d 0xfb 0xa5 0x3c
2530 0x4e 0x4b 0xe6 0x3c
2531 0x2f 0x4b 0xe7 0x3c
2532 0x10 0x5b 0xe8 0x3c
2533 0xf1 0xca 0xe9 0x3c
2534 0xd2 0xca 0xaa 0x3c
2535 0xb3 0xda 0xff 0x3c
2536
2537 #------------------------------------------------------------------------------
2538 # Load/store register pair (offset)
2539 #------------------------------------------------------------------------------
2540
2541 # CHECK: ldp w3, w5, [sp]
2542 # CHECK: stp wzr, w9, [sp, #252]
2543 # CHECK: ldp w2, wzr, [sp, #-256]
2544 # CHECK: ldp w9, w10, [sp, #4]
2545 0xe3 0x17 0x40 0x29
2546 0xff 0xa7 0x1f 0x29
2547 0xe2 0x7f 0x60 0x29
2548 0xe9 0xab 0x40 0x29
2549
2550 # CHECK: ldpsw x9, x10, [sp, #4]
2551 # CHECK: ldpsw x9, x10, [x2, #-256]
2552 # CHECK: ldpsw x20, x30, [sp, #252]
2553 0xe9 0xab 0x40 0x69
2554 0x49 0x28 0x60 0x69
2555 0xf4 0xfb 0x5f 0x69
2556
2557 # CHECK: ldp x21, x29, [x2, #504]
2558 # CHECK: ldp x22, x23, [x3, #-512]
2559 # CHECK: ldp x24, x25, [x4, #8]
2560 0x55 0xf4 0x5f 0xa9
2561 0x76 0x5c 0x60 0xa9
2562 0x98 0xe4 0x40 0xa9
2563
2564 # CHECK: ldp s29, s28, [sp, #252]
2565 # CHECK: stp s27, s26, [sp, #-256]
2566 # CHECK: ldp s1, s2, [x3, #44]
2567 0xfd 0xf3 0x5f 0x2d
2568 0xfb 0x6b 0x20 0x2d
2569 0x61 0x88 0x45 0x2d
2570
2571 # CHECK: stp d3, d5, [x9, #504]
2572 # CHECK: stp d7, d11, [x10, #-512]
2573 # CHECK: ldp d2, d3, [x30, #-8]
2574 0x23 0x95 0x1f 0x6d
2575 0x47 0x2d 0x20 0x6d
2576 0xc2 0x8f 0x7f 0x6d
2577
2578 # CHECK: stp q3, q5, [sp]
2579 # CHECK: stp q17, q19, [sp, #1008]
2580 # CHECK: ldp q23, q29, [x1, #-1024]
2581 0xe3 0x17 0x0 0xad
2582 0xf1 0xcf 0x1f 0xad
2583 0x37 0x74 0x60 0xad
2584
2585 #------------------------------------------------------------------------------
2586 # Load/store register pair (post-indexed)
2587 #------------------------------------------------------------------------------
2588
2589 # CHECK: ldp w3, w5, [sp], #0
2590 # CHECK: stp wzr, w9, [sp], #252
2591 # CHECK: ldp w2, wzr, [sp], #-256
2592 # CHECK: ldp w9, w10, [sp], #4
2593 0xe3 0x17 0xc0 0x28
2594 0xff 0xa7 0x9f 0x28
2595 0xe2 0x7f 0xe0 0x28
2596 0xe9 0xab 0xc0 0x28
2597
2598 # CHECK: ldpsw x9, x10, [sp], #4
2599 # CHECK: ldpsw x9, x10, [x2], #-256
2600 # CHECK: ldpsw x20, x30, [sp], #252
2601 0xe9 0xab 0xc0 0x68
2602 0x49 0x28 0xe0 0x68
2603 0xf4 0xfb 0xdf 0x68
2604
2605 # CHECK: ldp x21, x29, [x2], #504
2606 # CHECK: ldp x22, x23, [x3], #-512
2607 # CHECK: ldp x24, x25, [x4], #8
2608 0x55 0xf4 0xdf 0xa8
2609 0x76 0x5c 0xe0 0xa8
2610 0x98 0xe4 0xc0 0xa8
2611
2612 # CHECK: ldp s29, s28, [sp], #252
2613 # CHECK: stp s27, s26, [sp], #-256
2614 # CHECK: ldp s1, s2, [x3], #44
2615 0xfd 0xf3 0xdf 0x2c
2616 0xfb 0x6b 0xa0 0x2c
2617 0x61 0x88 0xc5 0x2c
2618
2619 # CHECK: stp d3, d5, [x9], #504
2620 # CHECK: stp d7, d11, [x10], #-512
2621 # CHECK: ldp d2, d3, [x30], #-8
2622 0x23 0x95 0x9f 0x6c
2623 0x47 0x2d 0xa0 0x6c
2624 0xc2 0x8f 0xff 0x6c
2625
2626 # CHECK: stp q3, q5, [sp], #0
2627 # CHECK: stp q17, q19, [sp], #1008
2628 # CHECK: ldp q23, q29, [x1], #-1024
2629 0xe3 0x17 0x80 0xac
2630 0xf1 0xcf 0x9f 0xac
2631 0x37 0x74 0xe0 0xac
2632
2633 #------------------------------------------------------------------------------
2634 # Load/store register pair (pre-indexed)
2635 #------------------------------------------------------------------------------
2636
2637 # CHECK: ldp w3, w5, [sp, #0]!
2638 # CHECK: stp wzr, w9, [sp, #252]!
2639 # CHECK: ldp w2, wzr, [sp, #-256]!
2640 # CHECK: ldp w9, w10, [sp, #4]!
2641 0xe3 0x17 0xc0 0x29
2642 0xff 0xa7 0x9f 0x29
2643 0xe2 0x7f 0xe0 0x29
2644 0xe9 0xab 0xc0 0x29
2645
2646 # CHECK: ldpsw x9, x10, [sp, #4]!
2647 # CHECK: ldpsw x9, x10, [x2, #-256]!
2648 # CHECK: ldpsw x20, x30, [sp, #252]!
2649 0xe9 0xab 0xc0 0x69
2650 0x49 0x28 0xe0 0x69
2651 0xf4 0xfb 0xdf 0x69
2652
2653 # CHECK: ldp x21, x29, [x2, #504]!
2654 # CHECK: ldp x22, x23, [x3, #-512]!
2655 # CHECK: ldp x24, x25, [x4, #8]!
2656 0x55 0xf4 0xdf 0xa9
2657 0x76 0x5c 0xe0 0xa9
2658 0x98 0xe4 0xc0 0xa9
2659
2660 # CHECK: ldp s29, s28, [sp, #252]!
2661 # CHECK: stp s27, s26, [sp, #-256]!
2662 # CHECK: ldp s1, s2, [x3, #44]!
2663 0xfd 0xf3 0xdf 0x2d
2664 0xfb 0x6b 0xa0 0x2d
2665 0x61 0x88 0xc5 0x2d
2666
2667 # CHECK: stp d3, d5, [x9, #504]!
2668 # CHECK: stp d7, d11, [x10, #-512]!
2669 # CHECK: ldp d2, d3, [x30, #-8]!
2670 0x23 0x95 0x9f 0x6d
2671 0x47 0x2d 0xa0 0x6d
2672 0xc2 0x8f 0xff 0x6d
2673
2674 # CHECK: stp q3, q5, [sp, #0]!
2675 # CHECK: stp q17, q19, [sp, #1008]!
2676 # CHECK: ldp q23, q29, [x1, #-1024]!
2677 0xe3 0x17 0x80 0xad
2678 0xf1 0xcf 0x9f 0xad
2679 0x37 0x74 0xe0 0xad
2680
2681 #------------------------------------------------------------------------------
2682 # Load/store register pair (offset)
2683 #------------------------------------------------------------------------------
2684
2685 # CHECK: ldnp w3, w5, [sp]
2686 # CHECK: stnp wzr, w9, [sp, #252]
2687 # CHECK: ldnp w2, wzr, [sp, #-256]
2688 # CHECK: ldnp w9, w10, [sp, #4]
2689 0xe3 0x17 0x40 0x28
2690 0xff 0xa7 0x1f 0x28
2691 0xe2 0x7f 0x60 0x28
2692 0xe9 0xab 0x40 0x28
2693
2694 # CHECK: ldnp x21, x29, [x2, #504]
2695 # CHECK: ldnp x22, x23, [x3, #-512]
2696 # CHECK: ldnp x24, x25, [x4, #8]
2697 0x55 0xf4 0x5f 0xa8
2698 0x76 0x5c 0x60 0xa8
2699 0x98 0xe4 0x40 0xa8
2700
2701 # CHECK: ldnp s29, s28, [sp, #252]
2702 # CHECK: stnp s27, s26, [sp, #-256]
2703 # CHECK: ldnp s1, s2, [x3, #44]
2704 0xfd 0xf3 0x5f 0x2c
2705 0xfb 0x6b 0x20 0x2c
2706 0x61 0x88 0x45 0x2c
2707
2708 # CHECK: stnp d3, d5, [x9, #504]
2709 # CHECK: stnp d7, d11, [x10, #-512]
2710 # CHECK: ldnp d2, d3, [x30, #-8]
2711 0x23 0x95 0x1f 0x6c
2712 0x47 0x2d 0x20 0x6c
2713 0xc2 0x8f 0x7f 0x6c
2714
2715 # CHECK: stnp q3, q5, [sp]
2716 # CHECK: stnp q17, q19, [sp, #1008]
2717 # CHECK: ldnp q23, q29, [x1, #-1024]
2718 0xe3 0x17 0x0 0xac
2719 0xf1 0xcf 0x1f 0xac
2720 0x37 0x74 0x60 0xac
2721
2722 #------------------------------------------------------------------------------
2723 # Logical (immediate)
2724 #------------------------------------------------------------------------------
2725 # CHECK: orr w3, w9, #0xffff0000
2726 # CHECK: orr wsp, w10, #0xe00000ff
2727 # CHECK: orr w9, w10, #0x3ff
2728 0x23 0x3d 0x10 0x32
2729 0x5f 0x29 0x3 0x32
2730 0x49 0x25 0x0 0x32
2731
2732 # CHECK: and w14, w15, #0x80008000
2733 # CHECK: and w12, w13, #0xffc3ffc3
2734 # CHECK: and w11, wzr, #0x30003
2735 0xee 0x81 0x1 0x12
2736 0xac 0xad 0xa 0x12
2737 0xeb 0x87 0x0 0x12
2738
2739 # CHECK: eor w3, w6, #0xe0e0e0e0
2740 # CHECK: eor wsp, wzr, #0x3030303
2741 # CHECK: eor w16, w17, #0x81818181
2742 0xc3 0xc8 0x3 0x52
2743 0xff 0xc7 0x0 0x52
2744 0x30 0xc6 0x1 0x52
2745
2746 # CHECK: {{ands wzr,|tst}} w18, #0xcccccccc
2747 # CHECK: ands w19, w20, #0x33333333
2748 # CHECK: ands w21, w22, #0x99999999
2749 0x5f 0xe6 0x2 0x72
2750 0x93 0xe6 0x0 0x72
2751 0xd5 0xe6 0x1 0x72
2752
2753 # CHECK: {{ands wzr,|tst}} w3, #0xaaaaaaaa
2754 # CHECK: {{ands wzr,|tst}} wzr, #0x55555555
2755 0x7f 0xf0 0x1 0x72
2756 0xff 0xf3 0x0 0x72
2757
2758 # CHECK: eor x3, x5, #0xffffffffc000000
2759 # CHECK: and x9, x10, #0x7fffffffffff
2760 # CHECK: orr x11, x12, #0x8000000000000fff
2761 0xa3 0x84 0x66 0xd2
2762 0x49 0xb9 0x40 0x92
2763 0x8b 0x31 0x41 0xb2
2764
2765 # CHECK: orr x3, x9, #0xffff0000ffff0000
2766 # CHECK: orr sp, x10, #0xe00000ffe00000ff
2767 # CHECK: orr x9, x10, #0x3ff000003ff
2768 0x23 0x3d 0x10 0xb2
2769 0x5f 0x29 0x3 0xb2
2770 0x49 0x25 0x0 0xb2
2771
2772 # CHECK: and x14, x15, #0x8000800080008000
2773 # CHECK: and x12, x13, #0xffc3ffc3ffc3ffc3
2774 # CHECK: and x11, xzr, #0x3000300030003
2775 0xee 0x81 0x1 0x92
2776 0xac 0xad 0xa 0x92
2777 0xeb 0x87 0x0 0x92
2778
2779 # CHECK: eor x3, x6, #0xe0e0e0e0e0e0e0e0
2780 # CHECK: eor sp, xzr, #0x303030303030303
2781 # CHECK: eor x16, x17, #0x8181818181818181
2782 0xc3 0xc8 0x3 0xd2
2783 0xff 0xc7 0x0 0xd2
2784 0x30 0xc6 0x1 0xd2
2785
2786 # CHECK: {{ands xzr,|tst}} x18, #0xcccccccccccccccc
2787 # CHECK: ands x19, x20, #0x3333333333333333
2788 # CHECK: ands x21, x22, #0x9999999999999999
2789 0x5f 0xe6 0x2 0xf2
2790 0x93 0xe6 0x0 0xf2
2791 0xd5 0xe6 0x1 0xf2
2792
2793 # CHECK: {{ands xzr,|tst}} x3, #0xaaaaaaaaaaaaaaaa
2794 # CHECK: {{ands xzr,|tst}} xzr, #0x5555555555555555
2795 0x7f 0xf0 0x1 0xf2
2796 0xff 0xf3 0x0 0xf2
2797
2798 # CHECK: orr w3, wzr, #0xf000f
2799 # CHECK: orr x10, xzr, #0xaaaaaaaaaaaaaaaa
2800 0xe3 0x8f 0x0 0x32
2801 0xea 0xf3 0x1 0xb2
2802
2803 # CHECK: orr w3, wzr, #0xffff
2804 # CHECK: orr x9, xzr, #0xffff00000000
2805 0xe3 0x3f 0x0 0x32
2806 0xe9 0x3f 0x60 0xb2
2807
2808 #------------------------------------------------------------------------------
2809 # Logical (shifted register)
2810 #------------------------------------------------------------------------------
2811
2812 # CHECK: and w12, w23, w21
2813 # CHECK: and w16, w15, w1, lsl #1
2814 # CHECK: and w9, w4, w10, lsl #31
2815 # CHECK: and w3, w30, w11
2816 # CHECK: and x3, x5, x7, lsl #63
2817 0xec 0x2 0x15 0xa
2818 0xf0 0x5 0x1 0xa
2819 0x89 0x7c 0xa 0xa
2820 0xc3 0x3 0xb 0xa
2821 0xa3 0xfc 0x7 0x8a
2822
2823 # CHECK: and x5, x14, x19, asr #4
2824 # CHECK: and w3, w17, w19, ror #31
2825 # CHECK: and w0, w2, wzr, lsr #17
2826 # CHECK: and w3, w30, w11, asr
2827 0xc5 0x11 0x93 0x8a
2828 0x23 0x7e 0xd3 0xa
2829 0x40 0x44 0x5f 0xa
2830 0xc3 0x3 0x8b 0xa
2831
2832 # CHECK: and xzr, x4, x26
2833 # CHECK: and w3, wzr, w20, ror
2834 # CHECK: and x7, x20, xzr, asr #63
2835 0x9f 0x0 0x1a 0x8a
2836 0xe3 0x3 0xd4 0xa
2837 0x87 0xfe 0x9f 0x8a
2838
2839 # CHECK: bic x13, x20, x14, lsl #47
2840 # CHECK: bic w2, w7, w9
2841 # CHECK: orr w2, w7, w0, asr #31
2842 # CHECK: orr x8, x9, x10, lsl #12
2843 # CHECK: orn x3, x5, x7, asr
2844 # CHECK: orn w2, w5, w29
2845 0x8d 0xbe 0x2e 0x8a
2846 0xe2 0x0 0x29 0xa
2847 0xe2 0x7c 0x80 0x2a
2848 0x28 0x31 0xa 0xaa
2849 0xa3 0x0 0xa7 0xaa
2850 0xa2 0x0 0x3d 0x2a
2851
2852 # CHECK: ands w7, wzr, w9, lsl #1
2853 # CHECK: ands x3, x5, x20, ror #63
2854 # CHECK: bics w3, w5, w7
2855 # CHECK: bics x3, xzr, x3, lsl #1
2856 # CHECK: tst w3, w7, lsl #31
2857 # CHECK: tst x2, x20, asr
2858 0xe7 0x7 0x9 0x6a
2859 0xa3 0xfc 0xd4 0xea
2860 0xa3 0x0 0x27 0x6a
2861 0xe3 0x7 0x23 0xea
2862 0x7f 0x7c 0x7 0x6a
2863 0x5f 0x0 0x94 0xea
2864
2865 # CHECK: mov x3, x6
2866 # CHECK: mov x3, xzr
2867 # CHECK: mov wzr, w2
2868 # CHECK: mov w3, w5
2869 0xe3 0x3 0x6 0xaa
2870 0xe3 0x3 0x1f 0xaa
2871 0xff 0x3 0x2 0x2a
2872 0xe3 0x3 0x5 0x2a
2873
2874 #------------------------------------------------------------------------------
2875 # Move wide (immediate)
2876 #------------------------------------------------------------------------------
2877
2878 # N.b. (FIXME) canonical aliases aren't produced here because of
2879 # limitation in InstAlias. Lots of the "mov[nz]" instructions should
2880 # be "mov".
2881
2882 # CHECK: movz w1, #{{65535|0xffff}}
2883 # CHECK: movz w2, #0, lsl #16
2884 # CHECK: movn w2, #{{1234|0x4d2}}
2885 0xe1 0xff 0x9f 0x52
2886 0x2 0x0 0xa0 0x52
2887 0x42 0x9a 0x80 0x12
2888
2889 # CHECK: movz x2, #{{1234|0x4d2}}, lsl #32
2890 # CHECK: movk xzr, #{{4321|0x10e1}}, lsl #48
2891 0x42 0x9a 0xc0 0xd2
2892 0x3f 0x1c 0xe2 0xf2
2893
2894 # CHECK: movz x2, #0
2895 # CHECK: movk w3, #0
2896 # CHECK: movz x4, #0, lsl #16
2897 # CHECK: movk w5, #0, lsl #16
2898 # CHECK: movz x6, #0, lsl #32
2899 # CHECK: movk x7, #0, lsl #32
2900 # CHECK: movz x8, #0, lsl #48
2901 # CHECK: movk x9, #0, lsl #48
2902 0x2 0x0 0x80 0xd2
2903 0x3 0x0 0x80 0x72
2904 0x4 0x0 0xa0 0xd2
2905 0x5 0x0 0xa0 0x72
2906 0x6 0x0 0xc0 0xd2
2907 0x7 0x0 0xc0 0xf2
2908 0x8 0x0 0xe0 0xd2
2909 0x9 0x0 0xe0 0xf2
2910
2911 #------------------------------------------------------------------------------
2912 # PC-relative addressing
2913 #------------------------------------------------------------------------------
2914
2915 # It's slightly dodgy using immediates here, but harmless enough when
2916 # it's all that's available.
2917
2918 # CHECK: adr x2, #1600
2919 # CHECK: adrp x21, #6553600
2920 # CHECK: adr x0, #262144
2921 0x02 0x32 0x00 0x10
2922 0x15 0x32 0x00 0x90
2923 0x00 0x00 0x20 0x10
2924
2925 #------------------------------------------------------------------------------
2926 # System
2927 #------------------------------------------------------------------------------
2928
2929 # CHECK: nop
2930 # CHECK: hint #{{127|0x7f}}
2931 # CHECK: nop
2932 # CHECK: yield
2933 # CHECK: wfe
2934 # CHECK: wfi
2935 # CHECK: sev
2936 # CHECK: sevl
2937 0x1f 0x20 0x3 0xd5
2938 0xff 0x2f 0x3 0xd5
2939 0x1f 0x20 0x3 0xd5
2940 0x3f 0x20 0x3 0xd5
2941 0x5f 0x20 0x3 0xd5
2942 0x7f 0x20 0x3 0xd5
2943 0x9f 0x20 0x3 0xd5
2944 0xbf 0x20 0x3 0xd5
2945
2946 # CHECK: clrex
2947 # CHECK: clrex #0
2948 # CHECK: clrex #7
2949 # CHECK: clrex
2950 0x5f 0x3f 0x3 0xd5
2951 0x5f 0x30 0x3 0xd5
2952 0x5f 0x37 0x3 0xd5
2953 0x5f 0x3f 0x3 0xd5
2954
2955 # CHECK: dsb #0
2956 # CHECK: dsb #12
2957 # CHECK: dsb sy
2958 # CHECK: dsb oshld
2959 # CHECK: dsb oshst
2960 # CHECK: dsb osh
2961 # CHECK: dsb nshld
2962 # CHECK: dsb nshst
2963 # CHECK: dsb nsh
2964 # CHECK: dsb ishld
2965 # CHECK: dsb ishst
2966 # CHECK: dsb ish
2967 # CHECK: dsb ld
2968 # CHECK: dsb st
2969 # CHECK: dsb sy
2970 0x9f 0x30 0x3 0xd5
2971 0x9f 0x3c 0x3 0xd5
2972 0x9f 0x3f 0x3 0xd5
2973 0x9f 0x31 0x3 0xd5
2974 0x9f 0x32 0x3 0xd5
2975 0x9f 0x33 0x3 0xd5
2976 0x9f 0x35 0x3 0xd5
2977 0x9f 0x36 0x3 0xd5
2978 0x9f 0x37 0x3 0xd5
2979 0x9f 0x39 0x3 0xd5
2980 0x9f 0x3a 0x3 0xd5
2981 0x9f 0x3b 0x3 0xd5
2982 0x9f 0x3d 0x3 0xd5
2983 0x9f 0x3e 0x3 0xd5
2984 0x9f 0x3f 0x3 0xd5
2985
2986 # CHECK: dmb #0
2987 # CHECK: dmb #12
2988 # CHECK: dmb sy
2989 # CHECK: dmb oshld
2990 # CHECK: dmb oshst
2991 # CHECK: dmb osh
2992 # CHECK: dmb nshld
2993 # CHECK: dmb nshst
2994 # CHECK: dmb nsh
2995 # CHECK: dmb ishld
2996 # CHECK: dmb ishst
2997 # CHECK: dmb ish
2998 # CHECK: dmb ld
2999 # CHECK: dmb st
3000 # CHECK: dmb sy
3001 0xbf 0x30 0x3 0xd5
3002 0xbf 0x3c 0x3 0xd5
3003 0xbf 0x3f 0x3 0xd5
3004 0xbf 0x31 0x3 0xd5
3005 0xbf 0x32 0x3 0xd5
3006 0xbf 0x33 0x3 0xd5
3007 0xbf 0x35 0x3 0xd5
3008 0xbf 0x36 0x3 0xd5
3009 0xbf 0x37 0x3 0xd5
3010 0xbf 0x39 0x3 0xd5
3011 0xbf 0x3a 0x3 0xd5
3012 0xbf 0x3b 0x3 0xd5
3013 0xbf 0x3d 0x3 0xd5
3014 0xbf 0x3e 0x3 0xd5
3015 0xbf 0x3f 0x3 0xd5
3016
3017 # CHECK: isb
3018 # CHECK: isb #12
3019 0xdf 0x3f 0x3 0xd5
3020 0xdf 0x3c 0x3 0xd5
3021
3022 # CHECK: msr {{spsel|SPSEL}}, #0
3023 # CHECK: msr {{daifset|DAIFSET}}, #15
3024 # CHECK: msr {{daifclr|DAIFCLR}}, #12
3025 0xbf 0x40 0x0 0xd5
3026 0xdf 0x4f 0x3 0xd5
3027 0xff 0x4c 0x3 0xd5
3028
3029 # CHECK: sys #7, c5, c9, #7, x5
3030 # CHECK: sys #0, c15, c15, #2
3031 # CHECK: sysl x9, #7, c5, c9, #7
3032 # CHECK: sysl x1, #0, c15, c15, #2
3033 0xe5 0x59 0xf 0xd5
3034 0x5f 0xff 0x8 0xd5
3035 0xe9 0x59 0x2f 0xd5
3036 0x41 0xff 0x28 0xd5
3037
3038 # CHECK: {{sys #0, c7, c1, #0|ic ialluis}}
3039 # CHECK: {{sys #0, c7, c5, #0|ic iallu}}
3040 # CHECK: {{sys #3, c7, c5, #1|ic ivau}}, x9
3041 0x1f 0x71 0x8 0xd5
3042 0x1f 0x75 0x8 0xd5
3043 0x29 0x75 0xb 0xd5
3044
3045 # CHECK: {{sys #3, c7, c4, #1|dc zva}}, x12
3046 # CHECK: {{sys #0, c7, c6, #1|dc ivac}}
3047 # CHECK: {{sys #0, c7, c6, #2|dc isw}}, x2
3048 # CHECK: {{sys #3, c7, c10, #1|dc cvac}}, x9
3049 # CHECK: {{sys #0, c7, c10, #2|dc csw}}, x10
3050 # CHECK: {{sys #3, c7, c11, #1|dc cvau}}, x0
3051 # CHECK: {{sys #3, c7, c14, #1|dc civac}}, x3
3052 # CHECK: {{sys #0, c7, c14, #2|dc cisw}}, x30
3053 0x2c 0x74 0xb 0xd5
3054 0x3f 0x76 0x8 0xd5
3055 0x42 0x76 0x8 0xd5
3056 0x29 0x7a 0xb 0xd5
3057 0x4a 0x7a 0x8 0xd5
3058 0x20 0x7b 0xb 0xd5
3059 0x23 0x7e 0xb 0xd5
3060 0x5e 0x7e 0x8 0xd5
3061
3062
3063 # CHECK: msr {{teecr32_el1|TEECR32_EL1}}, x12
3064 # CHECK: msr {{osdtrrx_el1|OSDTRRX_EL1}}, x12
3065 # CHECK: msr {{mdccint_el1|MDCCINT_EL1}}, x12
3066 # CHECK: msr {{mdscr_el1|MDSCR_EL1}}, x12
3067 # CHECK: msr {{osdtrtx_el1|OSDTRTX_EL1}}, x12
3068 # CHECK: msr {{dbgdtr_el0|DBGDTR_EL0}}, x12
3069 # CHECK: msr {{dbgdtrtx_el0|DBGDTRTX_EL0}}, x12
3070 # CHECK: msr {{oseccr_el1|OSECCR_EL1}}, x12
3071 # CHECK: msr {{dbgvcr32_el2|DBGVCR32_EL2}}, x12
3072 # CHECK: msr {{dbgbvr0_el1|DBGBVR0_EL1}}, x12
3073 # CHECK: msr {{dbgbvr1_el1|DBGBVR1_EL1}}, x12
3074 # CHECK: msr {{dbgbvr2_el1|DBGBVR2_EL1}}, x12
3075 # CHECK: msr {{dbgbvr3_el1|DBGBVR3_EL1}}, x12
3076 # CHECK: msr {{dbgbvr4_el1|DBGBVR4_EL1}}, x12
3077 # CHECK: msr {{dbgbvr5_el1|DBGBVR5_EL1}}, x12
3078 # CHECK: msr {{dbgbvr6_el1|DBGBVR6_EL1}}, x12
3079 # CHECK: msr {{dbgbvr7_el1|DBGBVR7_EL1}}, x12
3080 # CHECK: msr {{dbgbvr8_el1|DBGBVR8_EL1}}, x12
3081 # CHECK: msr {{dbgbvr9_el1|DBGBVR9_EL1}}, x12
3082 # CHECK: msr {{dbgbvr10_el1|DBGBVR10_EL1}}, x12
3083 # CHECK: msr {{dbgbvr11_el1|DBGBVR11_EL1}}, x12
3084 # CHECK: msr {{dbgbvr12_el1|DBGBVR12_EL1}}, x12
3085 # CHECK: msr {{dbgbvr13_el1|DBGBVR13_EL1}}, x12
3086 # CHECK: msr {{dbgbvr14_el1|DBGBVR14_EL1}}, x12
3087 # CHECK: msr {{dbgbvr15_el1|DBGBVR15_EL1}}, x12
3088 # CHECK: msr {{dbgbcr0_el1|DBGBCR0_EL1}}, x12
3089 # CHECK: msr {{dbgbcr1_el1|DBGBCR1_EL1}}, x12
3090 # CHECK: msr {{dbgbcr2_el1|DBGBCR2_EL1}}, x12
3091 # CHECK: msr {{dbgbcr3_el1|DBGBCR3_EL1}}, x12
3092 # CHECK: msr {{dbgbcr4_el1|DBGBCR4_EL1}}, x12
3093 # CHECK: msr {{dbgbcr5_el1|DBGBCR5_EL1}}, x12
3094 # CHECK: msr {{dbgbcr6_el1|DBGBCR6_EL1}}, x12
3095 # CHECK: msr {{dbgbcr7_el1|DBGBCR7_EL1}}, x12
3096 # CHECK: msr {{dbgbcr8_el1|DBGBCR8_EL1}}, x12
3097 # CHECK: msr {{dbgbcr9_el1|DBGBCR9_EL1}}, x12
3098 # CHECK: msr {{dbgbcr10_el1|DBGBCR10_EL1}}, x12
3099 # CHECK: msr {{dbgbcr11_el1|DBGBCR11_EL1}}, x12
3100 # CHECK: msr {{dbgbcr12_el1|DBGBCR12_EL1}}, x12
3101 # CHECK: msr {{dbgbcr13_el1|DBGBCR13_EL1}}, x12
3102 # CHECK: msr {{dbgbcr14_el1|DBGBCR14_EL1}}, x12
3103 # CHECK: msr {{dbgbcr15_el1|DBGBCR15_EL1}}, x12
3104 # CHECK: msr {{dbgwvr0_el1|DBGWVR0_EL1}}, x12
3105 # CHECK: msr {{dbgwvr1_el1|DBGWVR1_EL1}}, x12
3106 # CHECK: msr {{dbgwvr2_el1|DBGWVR2_EL1}}, x12
3107 # CHECK: msr {{dbgwvr3_el1|DBGWVR3_EL1}}, x12
3108 # CHECK: msr {{dbgwvr4_el1|DBGWVR4_EL1}}, x12
3109 # CHECK: msr {{dbgwvr5_el1|DBGWVR5_EL1}}, x12
3110 # CHECK: msr {{dbgwvr6_el1|DBGWVR6_EL1}}, x12
3111 # CHECK: msr {{dbgwvr7_el1|DBGWVR7_EL1}}, x12
3112 # CHECK: msr {{dbgwvr8_el1|DBGWVR8_EL1}}, x12
3113 # CHECK: msr {{dbgwvr9_el1|DBGWVR9_EL1}}, x12
3114 # CHECK: msr {{dbgwvr10_el1|DBGWVR10_EL1}}, x12
3115 # CHECK: msr {{dbgwvr11_el1|DBGWVR11_EL1}}, x12
3116 # CHECK: msr {{dbgwvr12_el1|DBGWVR12_EL1}}, x12
3117 # CHECK: msr {{dbgwvr13_el1|DBGWVR13_EL1}}, x12
3118 # CHECK: msr {{dbgwvr14_el1|DBGWVR14_EL1}}, x12
3119 # CHECK: msr {{dbgwvr15_el1|DBGWVR15_EL1}}, x12
3120 # CHECK: msr {{dbgwcr0_el1|DBGWCR0_EL1}}, x12
3121 # CHECK: msr {{dbgwcr1_el1|DBGWCR1_EL1}}, x12
3122 # CHECK: msr {{dbgwcr2_el1|DBGWCR2_EL1}}, x12
3123 # CHECK: msr {{dbgwcr3_el1|DBGWCR3_EL1}}, x12
3124 # CHECK: msr {{dbgwcr4_el1|DBGWCR4_EL1}}, x12
3125 # CHECK: msr {{dbgwcr5_el1|DBGWCR5_EL1}}, x12
3126 # CHECK: msr {{dbgwcr6_el1|DBGWCR6_EL1}}, x12
3127 # CHECK: msr {{dbgwcr7_el1|DBGWCR7_EL1}}, x12
3128 # CHECK: msr {{dbgwcr8_el1|DBGWCR8_EL1}}, x12
3129 # CHECK: msr {{dbgwcr9_el1|DBGWCR9_EL1}}, x12
3130 # CHECK: msr {{dbgwcr10_el1|DBGWCR10_EL1}}, x12
3131 # CHECK: msr {{dbgwcr11_el1|DBGWCR11_EL1}}, x12
3132 # CHECK: msr {{dbgwcr12_el1|DBGWCR12_EL1}}, x12
3133 # CHECK: msr {{dbgwcr13_el1|DBGWCR13_EL1}}, x12
3134 # CHECK: msr {{dbgwcr14_el1|DBGWCR14_EL1}}, x12
3135 # CHECK: msr {{dbgwcr15_el1|DBGWCR15_EL1}}, x12
3136 # CHECK: msr {{teehbr32_el1|TEEHBR32_EL1}}, x12
3137 # CHECK: msr {{oslar_el1|OSLAR_EL1}}, x12
3138 # CHECK: msr {{osdlr_el1|OSDLR_EL1}}, x12
3139 # CHECK: msr {{dbgprcr_el1|DBGPRCR_EL1}}, x12
3140 # CHECK: msr {{dbgclaimset_el1|DBGCLAIMSET_EL1}}, x12
3141 # CHECK: msr {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}, x12
3142 # CHECK: msr {{csselr_el1|CSSELR_EL1}}, x12
3143 # CHECK: msr {{vpidr_el2|VPIDR_EL2}}, x12
3144 # CHECK: msr {{vmpidr_el2|VMPIDR_EL2}}, x12
3145 # CHECK: msr {{sctlr_el1|SCTLR_EL1}}, x12
3146 # CHECK: msr {{sctlr_el2|SCTLR_EL2}}, x12
3147 # CHECK: msr {{sctlr_el3|SCTLR_EL3}}, x12
3148 # CHECK: msr {{actlr_el1|ACTLR_EL1}}, x12
3149 # CHECK: msr {{actlr_el2|ACTLR_EL2}}, x12
3150 # CHECK: msr {{actlr_el3|ACTLR_EL3}}, x12
3151 # CHECK: msr {{cpacr_el1|CPACR_EL1}}, x12
3152 # CHECK: msr {{hcr_el2|HCR_EL2}}, x12
3153 # CHECK: msr {{scr_el3|SCR_EL3}}, x12
3154 # CHECK: msr {{mdcr_el2|MDCR_EL2}}, x12
3155 # CHECK: msr {{sder32_el3|SDER32_EL3}}, x12
3156 # CHECK: msr {{cptr_el2|CPTR_EL2}}, x12
3157 # CHECK: msr {{cptr_el3|CPTR_EL3}}, x12
3158 # CHECK: msr {{hstr_el2|HSTR_EL2}}, x12
3159 # CHECK: msr {{hacr_el2|HACR_EL2}}, x12
3160 # CHECK: msr {{mdcr_el3|MDCR_EL3}}, x12
3161 # CHECK: msr {{ttbr0_el1|TTBR0_EL1}}, x12
3162 # CHECK: msr {{ttbr0_el2|TTBR0_EL2}}, x12
3163 # CHECK: msr {{ttbr0_el3|TTBR0_EL3}}, x12
3164 # CHECK: msr {{ttbr1_el1|TTBR1_EL1}}, x12
3165 # CHECK: msr {{tcr_el1|TCR_EL1}}, x12
3166 # CHECK: msr {{tcr_el2|TCR_EL2}}, x12
3167 # CHECK: msr {{tcr_el3|TCR_EL3}}, x12
3168 # CHECK: msr {{vttbr_el2|VTTBR_EL2}}, x12
3169 # CHECK: msr {{vtcr_el2|VTCR_EL2}}, x12
3170 # CHECK: msr {{dacr32_el2|DACR32_EL2}}, x12
3171 # CHECK: msr {{spsr_el1|SPSR_EL1}}, x12
3172 # CHECK: msr {{spsr_el2|SPSR_EL2}}, x12
3173 # CHECK: msr {{spsr_el3|SPSR_EL3}}, x12
3174 # CHECK: msr {{elr_el1|ELR_EL1}}, x12
3175 # CHECK: msr {{elr_el2|ELR_EL2}}, x12
3176 # CHECK: msr {{elr_el3|ELR_EL3}}, x12
3177 # CHECK: msr {{sp_el0|SP_EL0}}, x12
3178 # CHECK: msr {{sp_el1|SP_EL1}}, x12
3179 # CHECK: msr {{sp_el2|SP_EL2}}, x12
3180 # CHECK: msr {{spsel|SPSEL}}, x12
3181 # CHECK: msr {{nzcv|NZCV}}, x12
3182 # CHECK: msr {{daif|DAIF}}, x12
3183 # CHECK: msr {{currentel|CURRENTEL}}, x12
3184 # CHECK: msr {{spsr_irq|SPSR_IRQ}}, x12
3185 # CHECK: msr {{spsr_abt|SPSR_ABT}}, x12
3186 # CHECK: msr {{spsr_und|SPSR_UND}}, x12
3187 # CHECK: msr {{spsr_fiq|SPSR_FIQ}}, x12
3188 # CHECK: msr {{fpcr|FPCR}}, x12
3189 # CHECK: msr {{fpsr|FPSR}}, x12
3190 # CHECK: msr {{dspsr_el0|DSPSR_EL0}}, x12
3191 # CHECK: msr {{dlr_el0|DLR_EL0}}, x12
3192 # CHECK: msr {{ifsr32_el2|IFSR32_EL2}}, x12
3193 # CHECK: msr {{afsr0_el1|AFSR0_EL1}}, x12
3194 # CHECK: msr {{afsr0_el2|AFSR0_EL2}}, x12
3195 # CHECK: msr {{afsr0_el3|AFSR0_EL3}}, x12
3196 # CHECK: msr {{afsr1_el1|AFSR1_EL1}}, x12
3197 # CHECK: msr {{afsr1_el2|AFSR1_EL2}}, x12
3198 # CHECK: msr {{afsr1_el3|AFSR1_EL3}}, x12
3199 # CHECK: msr {{esr_el1|ESR_EL1}}, x12
3200 # CHECK: msr {{esr_el2|ESR_EL2}}, x12
3201 # CHECK: msr {{esr_el3|ESR_EL3}}, x12
3202 # CHECK: msr {{fpexc32_el2|FPEXC32_EL2}}, x12
3203 # CHECK: msr {{far_el1|FAR_EL1}}, x12
3204 # CHECK: msr {{far_el2|FAR_EL2}}, x12
3205 # CHECK: msr {{far_el3|FAR_EL3}}, x12
3206 # CHECK: msr {{hpfar_el2|HPFAR_EL2}}, x12
3207 # CHECK: msr {{par_el1|PAR_EL1}}, x12
3208 # CHECK: msr {{pmcr_el0|PMCR_EL0}}, x12
3209 # CHECK: msr {{pmcntenset_el0|PMCNTENSET_EL0}}, x12
3210 # CHECK: msr {{pmcntenclr_el0|PMCNTENCLR_EL0}}, x12
3211 # CHECK: msr {{pmovsclr_el0|PMOVSCLR_EL0}}, x12
3212 # CHECK: msr {{pmselr_el0|PMSELR_EL0}}, x12
3213 # CHECK: msr {{pmccntr_el0|PMCCNTR_EL0}}, x12
3214 # CHECK: msr {{pmxevtyper_el0|PMXEVTYPER_EL0}}, x12
3215 # CHECK: msr {{pmxevcntr_el0|PMXEVCNTR_EL0}}, x12
3216 # CHECK: msr {{pmuserenr_el0|PMUSERENR_EL0}}, x12
3217 # CHECK: msr {{pmintenset_el1|PMINTENSET_EL1}}, x12
3218 # CHECK: msr {{pmintenclr_el1|PMINTENCLR_EL1}}, x12
3219 # CHECK: msr {{pmovsset_el0|PMOVSSET_EL0}}, x12
3220 # CHECK: msr {{mair_el1|MAIR_EL1}}, x12
3221 # CHECK: msr {{mair_el2|MAIR_EL2}}, x12
3222 # CHECK: msr {{mair_el3|MAIR_EL3}}, x12
3223 # CHECK: msr {{amair_el1|AMAIR_EL1}}, x12
3224 # CHECK: msr {{amair_el2|AMAIR_EL2}}, x12
3225 # CHECK: msr {{amair_el3|AMAIR_EL3}}, x12
3226 # CHECK: msr {{vbar_el1|VBAR_EL1}}, x12
3227 # CHECK: msr {{vbar_el2|VBAR_EL2}}, x12
3228 # CHECK: msr {{vbar_el3|VBAR_EL3}}, x12
3229 # CHECK: msr {{rmr_el1|RMR_EL1}}, x12
3230 # CHECK: msr {{rmr_el2|RMR_EL2}}, x12
3231 # CHECK: msr {{rmr_el3|RMR_EL3}}, x12
3232 # CHECK: msr {{tpidr_el0|TPIDR_EL0}}, x12
3233 # CHECK: msr {{tpidr_el2|TPIDR_EL2}}, x12
3234 # CHECK: msr {{tpidr_el3|TPIDR_EL3}}, x12
3235 # CHECK: msr {{tpidrro_el0|TPIDRRO_EL0}}, x12
3236 # CHECK: msr {{tpidr_el1|TPIDR_EL1}}, x12
3237 # CHECK: msr {{cntfrq_el0|CNTFRQ_EL0}}, x12
3238 # CHECK: msr {{cntvoff_el2|CNTVOFF_EL2}}, x12
3239 # CHECK: msr {{cntkctl_el1|CNTKCTL_EL1}}, x12
3240 # CHECK: msr {{cnthctl_el2|CNTHCTL_EL2}}, x12
3241 # CHECK: msr {{cntp_tval_el0|CNTP_TVAL_EL0}}, x12
3242 # CHECK: msr {{cnthp_tval_el2|CNTHP_TVAL_EL2}}, x12
3243 # CHECK: msr {{cntps_tval_el1|CNTPS_TVAL_EL1}}, x12
3244 # CHECK: msr {{cntp_ctl_el0|CNTP_CTL_EL0}}, x12
3245 # CHECK: msr {{cnthp_ctl_el2|CNTHP_CTL_EL2}}, x12
3246 # CHECK: msr {{cntps_ctl_el1|CNTPS_CTL_EL1}}, x12
3247 # CHECK: msr {{cntp_cval_el0|CNTP_CVAL_EL0}}, x12
3248 # CHECK: msr {{cnthp_cval_el2|CNTHP_CVAL_EL2}}, x12
3249 # CHECK: msr {{cntps_cval_el1|CNTPS_CVAL_EL1}}, x12
3250 # CHECK: msr {{cntv_tval_el0|CNTV_TVAL_EL0}}, x12
3251 # CHECK: msr {{cntv_ctl_el0|CNTV_CTL_EL0}}, x12
3252 # CHECK: msr {{cntv_cval_el0|CNTV_CVAL_EL0}}, x12
3253 # CHECK: msr {{pmevcntr0_el0|PMEVCNTR0_EL0}}, x12
3254 # CHECK: msr {{pmevcntr1_el0|PMEVCNTR1_EL0}}, x12
3255 # CHECK: msr {{pmevcntr2_el0|PMEVCNTR2_EL0}}, x12
3256 # CHECK: msr {{pmevcntr3_el0|PMEVCNTR3_EL0}}, x12
3257 # CHECK: msr {{pmevcntr4_el0|PMEVCNTR4_EL0}}, x12
3258 # CHECK: msr {{pmevcntr5_el0|PMEVCNTR5_EL0}}, x12
3259 # CHECK: msr {{pmevcntr6_el0|PMEVCNTR6_EL0}}, x12
3260 # CHECK: msr {{pmevcntr7_el0|PMEVCNTR7_EL0}}, x12
3261 # CHECK: msr {{pmevcntr8_el0|PMEVCNTR8_EL0}}, x12
3262 # CHECK: msr {{pmevcntr9_el0|PMEVCNTR9_EL0}}, x12
3263 # CHECK: msr {{pmevcntr10_el0|PMEVCNTR10_EL0}}, x12
3264 # CHECK: msr {{pmevcntr11_el0|PMEVCNTR11_EL0}}, x12
3265 # CHECK: msr {{pmevcntr12_el0|PMEVCNTR12_EL0}}, x12
3266 # CHECK: msr {{pmevcntr13_el0|PMEVCNTR13_EL0}}, x12
3267 # CHECK: msr {{pmevcntr14_el0|PMEVCNTR14_EL0}}, x12
3268 # CHECK: msr {{pmevcntr15_el0|PMEVCNTR15_EL0}}, x12
3269 # CHECK: msr {{pmevcntr16_el0|PMEVCNTR16_EL0}}, x12
3270 # CHECK: msr {{pmevcntr17_el0|PMEVCNTR17_EL0}}, x12
3271 # CHECK: msr {{pmevcntr18_el0|PMEVCNTR18_EL0}}, x12
3272 # CHECK: msr {{pmevcntr19_el0|PMEVCNTR19_EL0}}, x12
3273 # CHECK: msr {{pmevcntr20_el0|PMEVCNTR20_EL0}}, x12
3274 # CHECK: msr {{pmevcntr21_el0|PMEVCNTR21_EL0}}, x12
3275 # CHECK: msr {{pmevcntr22_el0|PMEVCNTR22_EL0}}, x12
3276 # CHECK: msr {{pmevcntr23_el0|PMEVCNTR23_EL0}}, x12
3277 # CHECK: msr {{pmevcntr24_el0|PMEVCNTR24_EL0}}, x12
3278 # CHECK: msr {{pmevcntr25_el0|PMEVCNTR25_EL0}}, x12
3279 # CHECK: msr {{pmevcntr26_el0|PMEVCNTR26_EL0}}, x12
3280 # CHECK: msr {{pmevcntr27_el0|PMEVCNTR27_EL0}}, x12
3281 # CHECK: msr {{pmevcntr28_el0|PMEVCNTR28_EL0}}, x12
3282 # CHECK: msr {{pmevcntr29_el0|PMEVCNTR29_EL0}}, x12
3283 # CHECK: msr {{pmevcntr30_el0|PMEVCNTR30_EL0}}, x12
3284 # CHECK: msr {{pmccfiltr_el0|PMCCFILTR_EL0}}, x12
3285 # CHECK: msr {{pmevtyper0_el0|PMEVTYPER0_EL0}}, x12
3286 # CHECK: msr {{pmevtyper1_el0|PMEVTYPER1_EL0}}, x12
3287 # CHECK: msr {{pmevtyper2_el0|PMEVTYPER2_EL0}}, x12
3288 # CHECK: msr {{pmevtyper3_el0|PMEVTYPER3_EL0}}, x12
3289 # CHECK: msr {{pmevtyper4_el0|PMEVTYPER4_EL0}}, x12
3290 # CHECK: msr {{pmevtyper5_el0|PMEVTYPER5_EL0}}, x12
3291 # CHECK: msr {{pmevtyper6_el0|PMEVTYPER6_EL0}}, x12
3292 # CHECK: msr {{pmevtyper7_el0|PMEVTYPER7_EL0}}, x12
3293 # CHECK: msr {{pmevtyper8_el0|PMEVTYPER8_EL0}}, x12
3294 # CHECK: msr {{pmevtyper9_el0|PMEVTYPER9_EL0}}, x12
3295 # CHECK: msr {{pmevtyper10_el0|PMEVTYPER10_EL0}}, x12
3296 # CHECK: msr {{pmevtyper11_el0|PMEVTYPER11_EL0}}, x12
3297 # CHECK: msr {{pmevtyper12_el0|PMEVTYPER12_EL0}}, x12
3298 # CHECK: msr {{pmevtyper13_el0|PMEVTYPER13_EL0}}, x12
3299 # CHECK: msr {{pmevtyper14_el0|PMEVTYPER14_EL0}}, x12
3300 # CHECK: msr {{pmevtyper15_el0|PMEVTYPER15_EL0}}, x12
3301 # CHECK: msr {{pmevtyper16_el0|PMEVTYPER16_EL0}}, x12
3302 # CHECK: msr {{pmevtyper17_el0|PMEVTYPER17_EL0}}, x12
3303 # CHECK: msr {{pmevtyper18_el0|PMEVTYPER18_EL0}}, x12
3304 # CHECK: msr {{pmevtyper19_el0|PMEVTYPER19_EL0}}, x12
3305 # CHECK: msr {{pmevtyper20_el0|PMEVTYPER20_EL0}}, x12
3306 # CHECK: msr {{pmevtyper21_el0|PMEVTYPER21_EL0}}, x12
3307 # CHECK: msr {{pmevtyper22_el0|PMEVTYPER22_EL0}}, x12
3308 # CHECK: msr {{pmevtyper23_el0|PMEVTYPER23_EL0}}, x12
3309 # CHECK: msr {{pmevtyper24_el0|PMEVTYPER24_EL0}}, x12
3310 # CHECK: msr {{pmevtyper25_el0|PMEVTYPER25_EL0}}, x12
3311 # CHECK: msr {{pmevtyper26_el0|PMEVTYPER26_EL0}}, x12
3312 # CHECK: msr {{pmevtyper27_el0|PMEVTYPER27_EL0}}, x12
3313 # CHECK: msr {{pmevtyper28_el0|PMEVTYPER28_EL0}}, x12
3314 # CHECK: msr {{pmevtyper29_el0|PMEVTYPER29_EL0}}, x12
3315 # CHECK: msr {{pmevtyper30_el0|PMEVTYPER30_EL0}}, x12
3316 # CHECK: mrs x9, {{teecr32_el1|TEECR32_EL1}}
3317 # CHECK: mrs x9, {{osdtrrx_el1|OSDTRRX_EL1}}
3318 # CHECK: mrs x9, {{mdccsr_el0|MDCCSR_EL0}}
3319 # CHECK: mrs x9, {{mdccint_el1|MDCCINT_EL1}}
3320 # CHECK: mrs x9, {{mdscr_el1|MDSCR_EL1}}
3321 # CHECK: mrs x9, {{osdtrtx_el1|OSDTRTX_EL1}}
3322 # CHECK: mrs x9, {{dbgdtr_el0|DBGDTR_EL0}}
3323 # CHECK: mrs x9, {{dbgdtrrx_el0|DBGDTRRX_EL0}}
3324 # CHECK: mrs x9, {{oseccr_el1|OSECCR_EL1}}
3325 # CHECK: mrs x9, {{dbgvcr32_el2|DBGVCR32_EL2}}
3326 # CHECK: mrs x9, {{dbgbvr0_el1|DBGBVR0_EL1}}
3327 # CHECK: mrs x9, {{dbgbvr1_el1|DBGBVR1_EL1}}
3328 # CHECK: mrs x9, {{dbgbvr2_el1|DBGBVR2_EL1}}
3329 # CHECK: mrs x9, {{dbgbvr3_el1|DBGBVR3_EL1}}
3330 # CHECK: mrs x9, {{dbgbvr4_el1|DBGBVR4_EL1}}
3331 # CHECK: mrs x9, {{dbgbvr5_el1|DBGBVR5_EL1}}
3332 # CHECK: mrs x9, {{dbgbvr6_el1|DBGBVR6_EL1}}
3333 # CHECK: mrs x9, {{dbgbvr7_el1|DBGBVR7_EL1}}
3334 # CHECK: mrs x9, {{dbgbvr8_el1|DBGBVR8_EL1}}
3335 # CHECK: mrs x9, {{dbgbvr9_el1|DBGBVR9_EL1}}
3336 # CHECK: mrs x9, {{dbgbvr10_el1|DBGBVR10_EL1}}
3337 # CHECK: mrs x9, {{dbgbvr11_el1|DBGBVR11_EL1}}
3338 # CHECK: mrs x9, {{dbgbvr12_el1|DBGBVR12_EL1}}
3339 # CHECK: mrs x9, {{dbgbvr13_el1|DBGBVR13_EL1}}
3340 # CHECK: mrs x9, {{dbgbvr14_el1|DBGBVR14_EL1}}
3341 # CHECK: mrs x9, {{dbgbvr15_el1|DBGBVR15_EL1}}
3342 # CHECK: mrs x9, {{dbgbcr0_el1|DBGBCR0_EL1}}
3343 # CHECK: mrs x9, {{dbgbcr1_el1|DBGBCR1_EL1}}
3344 # CHECK: mrs x9, {{dbgbcr2_el1|DBGBCR2_EL1}}
3345 # CHECK: mrs x9, {{dbgbcr3_el1|DBGBCR3_EL1}}
3346 # CHECK: mrs x9, {{dbgbcr4_el1|DBGBCR4_EL1}}
3347 # CHECK: mrs x9, {{dbgbcr5_el1|DBGBCR5_EL1}}
3348 # CHECK: mrs x9, {{dbgbcr6_el1|DBGBCR6_EL1}}
3349 # CHECK: mrs x9, {{dbgbcr7_el1|DBGBCR7_EL1}}
3350 # CHECK: mrs x9, {{dbgbcr8_el1|DBGBCR8_EL1}}
3351 # CHECK: mrs x9, {{dbgbcr9_el1|DBGBCR9_EL1}}
3352 # CHECK: mrs x9, {{dbgbcr10_el1|DBGBCR10_EL1}}
3353 # CHECK: mrs x9, {{dbgbcr11_el1|DBGBCR11_EL1}}
3354 # CHECK: mrs x9, {{dbgbcr12_el1|DBGBCR12_EL1}}
3355 # CHECK: mrs x9, {{dbgbcr13_el1|DBGBCR13_EL1}}
3356 # CHECK: mrs x9, {{dbgbcr14_el1|DBGBCR14_EL1}}
3357 # CHECK: mrs x9, {{dbgbcr15_el1|DBGBCR15_EL1}}
3358 # CHECK: mrs x9, {{dbgwvr0_el1|DBGWVR0_EL1}}
3359 # CHECK: mrs x9, {{dbgwvr1_el1|DBGWVR1_EL1}}
3360 # CHECK: mrs x9, {{dbgwvr2_el1|DBGWVR2_EL1}}
3361 # CHECK: mrs x9, {{dbgwvr3_el1|DBGWVR3_EL1}}
3362 # CHECK: mrs x9, {{dbgwvr4_el1|DBGWVR4_EL1}}
3363 # CHECK: mrs x9, {{dbgwvr5_el1|DBGWVR5_EL1}}
3364 # CHECK: mrs x9, {{dbgwvr6_el1|DBGWVR6_EL1}}
3365 # CHECK: mrs x9, {{dbgwvr7_el1|DBGWVR7_EL1}}
3366 # CHECK: mrs x9, {{dbgwvr8_el1|DBGWVR8_EL1}}
3367 # CHECK: mrs x9, {{dbgwvr9_el1|DBGWVR9_EL1}}
3368 # CHECK: mrs x9, {{dbgwvr10_el1|DBGWVR10_EL1}}
3369 # CHECK: mrs x9, {{dbgwvr11_el1|DBGWVR11_EL1}}
3370 # CHECK: mrs x9, {{dbgwvr12_el1|DBGWVR12_EL1}}
3371 # CHECK: mrs x9, {{dbgwvr13_el1|DBGWVR13_EL1}}
3372 # CHECK: mrs x9, {{dbgwvr14_el1|DBGWVR14_EL1}}
3373 # CHECK: mrs x9, {{dbgwvr15_el1|DBGWVR15_EL1}}
3374 # CHECK: mrs x9, {{dbgwcr0_el1|DBGWCR0_EL1}}
3375 # CHECK: mrs x9, {{dbgwcr1_el1|DBGWCR1_EL1}}
3376 # CHECK: mrs x9, {{dbgwcr2_el1|DBGWCR2_EL1}}
3377 # CHECK: mrs x9, {{dbgwcr3_el1|DBGWCR3_EL1}}
3378 # CHECK: mrs x9, {{dbgwcr4_el1|DBGWCR4_EL1}}
3379 # CHECK: mrs x9, {{dbgwcr5_el1|DBGWCR5_EL1}}
3380 # CHECK: mrs x9, {{dbgwcr6_el1|DBGWCR6_EL1}}
3381 # CHECK: mrs x9, {{dbgwcr7_el1|DBGWCR7_EL1}}
3382 # CHECK: mrs x9, {{dbgwcr8_el1|DBGWCR8_EL1}}
3383 # CHECK: mrs x9, {{dbgwcr9_el1|DBGWCR9_EL1}}
3384 # CHECK: mrs x9, {{dbgwcr10_el1|DBGWCR10_EL1}}
3385 # CHECK: mrs x9, {{dbgwcr11_el1|DBGWCR11_EL1}}
3386 # CHECK: mrs x9, {{dbgwcr12_el1|DBGWCR12_EL1}}
3387 # CHECK: mrs x9, {{dbgwcr13_el1|DBGWCR13_EL1}}
3388 # CHECK: mrs x9, {{dbgwcr14_el1|DBGWCR14_EL1}}
3389 # CHECK: mrs x9, {{dbgwcr15_el1|DBGWCR15_EL1}}
3390 # CHECK: mrs x9, {{mdrar_el1|MDRAR_EL1}}
3391 # CHECK: mrs x9, {{teehbr32_el1|TEEHBR32_EL1}}
3392 # CHECK: mrs x9, {{oslsr_el1|OSLSR_EL1}}
3393 # CHECK: mrs x9, {{osdlr_el1|OSDLR_EL1}}
3394 # CHECK: mrs x9, {{dbgprcr_el1|DBGPRCR_EL1}}
3395 # CHECK: mrs x9, {{dbgclaimset_el1|DBGCLAIMSET_EL1}}
3396 # CHECK: mrs x9, {{dbgclaimclr_el1|DBGCLAIMCLR_EL1}}
3397 # CHECK: mrs x9, {{dbgauthstatus_el1|DBGAUTHSTATUS_EL1}}
3398 # CHECK: mrs x9, {{midr_el1|MIDR_EL1}}
3399 # CHECK: mrs x9, {{ccsidr_el1|CCSIDR_EL1}}
3400 # CHECK: mrs x9, {{csselr_el1|CSSELR_EL1}}
3401 # CHECK: mrs x9, {{vpidr_el2|VPIDR_EL2}}
3402 # CHECK: mrs x9, {{clidr_el1|CLIDR_EL1}}
3403 # CHECK: mrs x9, {{ctr_el0|CTR_EL0}}
3404 # CHECK: mrs x9, {{mpidr_el1|MPIDR_EL1}}
3405 # CHECK: mrs x9, {{vmpidr_el2|VMPIDR_EL2}}
3406 # CHECK: mrs x9, {{revidr_el1|REVIDR_EL1}}
3407 # CHECK: mrs x9, {{aidr_el1|AIDR_EL1}}
3408 # CHECK: mrs x9, {{dczid_el0|DCZID_EL0}}
3409 # CHECK: mrs x9, {{id_pfr0_el1|ID_PFR0_EL1}}
3410 # CHECK: mrs x9, {{id_pfr1_el1|ID_PFR1_EL1}}
3411 # CHECK: mrs x9, {{id_dfr0_el1|ID_DFR0_EL1}}
3412 # CHECK: mrs x9, {{id_afr0_el1|ID_AFR0_EL1}}
3413 # CHECK: mrs x9, {{id_mmfr0_el1|ID_MMFR0_EL1}}
3414 # CHECK: mrs x9, {{id_mmfr1_el1|ID_MMFR1_EL1}}
3415 # CHECK: mrs x9, {{id_mmfr2_el1|ID_MMFR2_EL1}}
3416 # CHECK: mrs x9, {{id_mmfr3_el1|ID_MMFR3_EL1}}
3417 # CHECK: mrs x9, {{id_isar0_el1|ID_ISAR0_EL1}}
3418 # CHECK: mrs x9, {{id_isar1_el1|ID_ISAR1_EL1}}
3419 # CHECK: mrs x9, {{id_isar2_el1|ID_ISAR2_EL1}}
3420 # CHECK: mrs x9, {{id_isar3_el1|ID_ISAR3_EL1}}
3421 # CHECK: mrs x9, {{id_isar4_el1|ID_ISAR4_EL1}}
3422 # CHECK: mrs x9, {{id_isar5_el1|ID_ISAR5_EL1}}
3423 # CHECK: mrs x9, {{mvfr0_el1|MVFR0_EL1}}
3424 # CHECK: mrs x9, {{mvfr1_el1|MVFR1_EL1}}
3425 # CHECK: mrs x9, {{mvfr2_el1|MVFR2_EL1}}
3426 # CHECK: mrs x9, {{id_aa64pfr0_el1|ID_AA64PFR0_EL1}}
3427 # CHECK: mrs x9, {{id_aa64pfr1_el1|ID_AA64PFR1_EL1}}
3428 # CHECK: mrs x9, {{id_aa64dfr0_el1|ID_AA64DFR0_EL1}}
3429 # CHECK: mrs x9, {{id_aa64dfr1_el1|ID_AA64DFR1_EL1}}
3430 # CHECK: mrs x9, {{id_aa64afr0_el1|ID_AA64AFR0_EL1}}
3431 # CHECK: mrs x9, {{id_aa64afr1_el1|ID_AA64AFR1_EL1}}
3432 # CHECK: mrs x9, {{id_aa64isar0_el1|ID_AA64ISAR0_EL1}}
3433 # CHECK: mrs x9, {{id_aa64isar1_el1|ID_AA64ISAR1_EL1}}
3434 # CHECK: mrs x9, {{id_aa64mmfr0_el1|ID_AA64MMFR0_EL1}}
3435 # CHECK: mrs x9, {{id_aa64mmfr1_el1|ID_AA64MMFR1_EL1}}
3436 # CHECK: mrs x9, {{sctlr_el1|SCTLR_EL1}}
3437 # CHECK: mrs x9, {{sctlr_el2|SCTLR_EL2}}
3438 # CHECK: mrs x9, {{sctlr_el3|SCTLR_EL3}}
3439 # CHECK: mrs x9, {{actlr_el1|ACTLR_EL1}}
3440 # CHECK: mrs x9, {{actlr_el2|ACTLR_EL2}}
3441 # CHECK: mrs x9, {{actlr_el3|ACTLR_EL3}}
3442 # CHECK: mrs x9, {{cpacr_el1|CPACR_EL1}}
3443 # CHECK: mrs x9, {{hcr_el2|HCR_EL2}}
3444 # CHECK: mrs x9, {{scr_el3|SCR_EL3}}
3445 # CHECK: mrs x9, {{mdcr_el2|MDCR_EL2}}
3446 # CHECK: mrs x9, {{sder32_el3|SDER32_EL3}}
3447 # CHECK: mrs x9, {{cptr_el2|CPTR_EL2}}
3448 # CHECK: mrs x9, {{cptr_el3|CPTR_EL3}}
3449 # CHECK: mrs x9, {{hstr_el2|HSTR_EL2}}
3450 # CHECK: mrs x9, {{hacr_el2|HACR_EL2}}
3451 # CHECK: mrs x9, {{mdcr_el3|MDCR_EL3}}
3452 # CHECK: mrs x9, {{ttbr0_el1|TTBR0_EL1}}
3453 # CHECK: mrs x9, {{ttbr0_el2|TTBR0_EL2}}
3454 # CHECK: mrs x9, {{ttbr0_el3|TTBR0_EL3}}
3455 # CHECK: mrs x9, {{ttbr1_el1|TTBR1_EL1}}
3456 # CHECK: mrs x9, {{tcr_el1|TCR_EL1}}
3457 # CHECK: mrs x9, {{tcr_el2|TCR_EL2}}
3458 # CHECK: mrs x9, {{tcr_el3|TCR_EL3}}
3459 # CHECK: mrs x9, {{vttbr_el2|VTTBR_EL2}}
3460 # CHECK: mrs x9, {{vtcr_el2|VTCR_EL2}}
3461 # CHECK: mrs x9, {{dacr32_el2|DACR32_EL2}}
3462 # CHECK: mrs x9, {{spsr_el1|SPSR_EL1}}
3463 # CHECK: mrs x9, {{spsr_el2|SPSR_EL2}}
3464 # CHECK: mrs x9, {{spsr_el3|SPSR_EL3}}
3465 # CHECK: mrs x9, {{elr_el1|ELR_EL1}}
3466 # CHECK: mrs x9, {{elr_el2|ELR_EL2}}
3467 # CHECK: mrs x9, {{elr_el3|ELR_EL3}}
3468 # CHECK: mrs x9, {{sp_el0|SP_EL0}}
3469 # CHECK: mrs x9, {{sp_el1|SP_EL1}}
3470 # CHECK: mrs x9, {{sp_el2|SP_EL2}}
3471 # CHECK: mrs x9, {{spsel|SPSEL}}
3472 # CHECK: mrs x9, {{nzcv|NZCV}}
3473 # CHECK: mrs x9, {{daif|DAIF}}
3474 # CHECK: mrs x9, {{currentel|CURRENTEL}}
3475 # CHECK: mrs x9, {{spsr_irq|SPSR_IRQ}}
3476 # CHECK: mrs x9, {{spsr_abt|SPSR_ABT}}
3477 # CHECK: mrs x9, {{spsr_und|SPSR_UND}}
3478 # CHECK: mrs x9, {{spsr_fiq|SPSR_FIQ}}
3479 # CHECK: mrs x9, {{fpcr|FPCR}}
3480 # CHECK: mrs x9, {{fpsr|FPSR}}
3481 # CHECK: mrs x9, {{dspsr_el0|DSPSR_EL0}}
3482 # CHECK: mrs x9, {{dlr_el0|DLR_EL0}}
3483 # CHECK: mrs x9, {{ifsr32_el2|IFSR32_EL2}}
3484 # CHECK: mrs x9, {{afsr0_el1|AFSR0_EL1}}
3485 # CHECK: mrs x9, {{afsr0_el2|AFSR0_EL2}}
3486 # CHECK: mrs x9, {{afsr0_el3|AFSR0_EL3}}
3487 # CHECK: mrs x9, {{afsr1_el1|AFSR1_EL1}}
3488 # CHECK: mrs x9, {{afsr1_el2|AFSR1_EL2}}
3489 # CHECK: mrs x9, {{afsr1_el3|AFSR1_EL3}}
3490 # CHECK: mrs x9, {{esr_el1|ESR_EL1}}
3491 # CHECK: mrs x9, {{esr_el2|ESR_EL2}}
3492 # CHECK: mrs x9, {{esr_el3|ESR_EL3}}
3493 # CHECK: mrs x9, {{fpexc32_el2|FPEXC32_EL2}}
3494 # CHECK: mrs x9, {{far_el1|FAR_EL1}}
3495 # CHECK: mrs x9, {{far_el2|FAR_EL2}}
3496 # CHECK: mrs x9, {{far_el3|FAR_EL3}}
3497 # CHECK: mrs x9, {{hpfar_el2|HPFAR_EL2}}
3498 # CHECK: mrs x9, {{par_el1|PAR_EL1}}
3499 # CHECK: mrs x9, {{pmcr_el0|PMCR_EL0}}
3500 # CHECK: mrs x9, {{pmcntenset_el0|PMCNTENSET_EL0}}
3501 # CHECK: mrs x9, {{pmcntenclr_el0|PMCNTENCLR_EL0}}
3502 # CHECK: mrs x9, {{pmovsclr_el0|PMOVSCLR_EL0}}
3503 # CHECK: mrs x9, {{pmselr_el0|PMSELR_EL0}}
3504 # CHECK: mrs x9, {{pmceid0_el0|PMCEID0_EL0}}
3505 # CHECK: mrs x9, {{pmceid1_el0|PMCEID1_EL0}}
3506 # CHECK: mrs x9, {{pmccntr_el0|PMCCNTR_EL0}}
3507 # CHECK: mrs x9, {{pmxevtyper_el0|PMXEVTYPER_EL0}}
3508 # CHECK: mrs x9, {{pmxevcntr_el0|PMXEVCNTR_EL0}}
3509 # CHECK: mrs x9, {{pmuserenr_el0|PMUSERENR_EL0}}
3510 # CHECK: mrs x9, {{pmintenset_el1|PMINTENSET_EL1}}
3511 # CHECK: mrs x9, {{pmintenclr_el1|PMINTENCLR_EL1}}
3512 # CHECK: mrs x9, {{pmovsset_el0|PMOVSSET_EL0}}
3513 # CHECK: mrs x9, {{mair_el1|MAIR_EL1}}
3514 # CHECK: mrs x9, {{mair_el2|MAIR_EL2}}
3515 # CHECK: mrs x9, {{mair_el3|MAIR_EL3}}
3516 # CHECK: mrs x9, {{amair_el1|AMAIR_EL1}}
3517 # CHECK: mrs x9, {{amair_el2|AMAIR_EL2}}
3518 # CHECK: mrs x9, {{amair_el3|AMAIR_EL3}}
3519 # CHECK: mrs x9, {{vbar_el1|VBAR_EL1}}
3520 # CHECK: mrs x9, {{vbar_el2|VBAR_EL2}}
3521 # CHECK: mrs x9, {{vbar_el3|VBAR_EL3}}
3522 # CHECK: mrs x9, {{rvbar_el1|RVBAR_EL1}}
3523 # CHECK: mrs x9, {{rvbar_el2|RVBAR_EL2}}
3524 # CHECK: mrs x9, {{rvbar_el3|RVBAR_EL3}}
3525 # CHECK: mrs x9, {{rmr_el1|RMR_EL1}}
3526 # CHECK: mrs x9, {{rmr_el2|RMR_EL2}}
3527 # CHECK: mrs x9, {{rmr_el3|RMR_EL3}}
3528 # CHECK: mrs x9, {{isr_el1|ISR_EL1}}
3529 # CHECK: mrs x9, {{contextidr_el1|CONTEXTIDR_EL1}}
3530 # CHECK: mrs x9, {{tpidr_el0|TPIDR_EL0}}
3531 # CHECK: mrs x9, {{tpidr_el2|TPIDR_EL2}}
3532 # CHECK: mrs x9, {{tpidr_el3|TPIDR_EL3}}
3533 # CHECK: mrs x9, {{tpidrro_el0|TPIDRRO_EL0}}
3534 # CHECK: mrs x9, {{tpidr_el1|TPIDR_EL1}}
3535 # CHECK: mrs x9, {{cntfrq_el0|CNTFRQ_EL0}}
3536 # CHECK: mrs x9, {{cntpct_el0|CNTPCT_EL0}}
3537 # CHECK: mrs x9, {{cntvct_el0|CNTVCT_EL0}}
3538 # CHECK: mrs x9, {{cntvoff_el2|CNTVOFF_EL2}}
3539 # CHECK: mrs x9, {{cntkctl_el1|CNTKCTL_EL1}}
3540 # CHECK: mrs x9, {{cnthctl_el2|CNTHCTL_EL2}}
3541 # CHECK: mrs x9, {{cntp_tval_el0|CNTP_TVAL_EL0}}
3542 # CHECK: mrs x9, {{cnthp_tval_el2|CNTHP_TVAL_EL2}}
3543 # CHECK: mrs x9, {{cntps_tval_el1|CNTPS_TVAL_EL1}}
3544 # CHECK: mrs x9, {{cntp_ctl_el0|CNTP_CTL_EL0}}
3545 # CHECK: mrs x9, {{cnthp_ctl_el2|CNTHP_CTL_EL2}}
3546 # CHECK: mrs x9, {{cntps_ctl_el1|CNTPS_CTL_EL1}}
3547 # CHECK: mrs x9, {{cntp_cval_el0|CNTP_CVAL_EL0}}
3548 # CHECK: mrs x9, {{cnthp_cval_el2|CNTHP_CVAL_EL2}}
3549 # CHECK: mrs x9, {{cntps_cval_el1|CNTPS_CVAL_EL1}}
3550 # CHECK: mrs x9, {{cntv_tval_el0|CNTV_TVAL_EL0}}
3551 # CHECK: mrs x9, {{cntv_ctl_el0|CNTV_CTL_EL0}}
3552 # CHECK: mrs x9, {{cntv_cval_el0|CNTV_CVAL_EL0}}
3553 # CHECK: mrs x9, {{pmevcntr0_el0|PMEVCNTR0_EL0}}
3554 # CHECK: mrs x9, {{pmevcntr1_el0|PMEVCNTR1_EL0}}
3555 # CHECK: mrs x9, {{pmevcntr2_el0|PMEVCNTR2_EL0}}
3556 # CHECK: mrs x9, {{pmevcntr3_el0|PMEVCNTR3_EL0}}
3557 # CHECK: mrs x9, {{pmevcntr4_el0|PMEVCNTR4_EL0}}
3558 # CHECK: mrs x9, {{pmevcntr5_el0|PMEVCNTR5_EL0}}
3559 # CHECK: mrs x9, {{pmevcntr6_el0|PMEVCNTR6_EL0}}
3560 # CHECK: mrs x9, {{pmevcntr7_el0|PMEVCNTR7_EL0}}
3561 # CHECK: mrs x9, {{pmevcntr8_el0|PMEVCNTR8_EL0}}
3562 # CHECK: mrs x9, {{pmevcntr9_el0|PMEVCNTR9_EL0}}
3563 # CHECK: mrs x9, {{pmevcntr10_el0|PMEVCNTR10_EL0}}
3564 # CHECK: mrs x9, {{pmevcntr11_el0|PMEVCNTR11_EL0}}
3565 # CHECK: mrs x9, {{pmevcntr12_el0|PMEVCNTR12_EL0}}
3566 # CHECK: mrs x9, {{pmevcntr13_el0|PMEVCNTR13_EL0}}
3567 # CHECK: mrs x9, {{pmevcntr14_el0|PMEVCNTR14_EL0}}
3568 # CHECK: mrs x9, {{pmevcntr15_el0|PMEVCNTR15_EL0}}
3569 # CHECK: mrs x9, {{pmevcntr16_el0|PMEVCNTR16_EL0}}
3570 # CHECK: mrs x9, {{pmevcntr17_el0|PMEVCNTR17_EL0}}
3571 # CHECK: mrs x9, {{pmevcntr18_el0|PMEVCNTR18_EL0}}
3572 # CHECK: mrs x9, {{pmevcntr19_el0|PMEVCNTR19_EL0}}
3573 # CHECK: mrs x9, {{pmevcntr20_el0|PMEVCNTR20_EL0}}
3574 # CHECK: mrs x9, {{pmevcntr21_el0|PMEVCNTR21_EL0}}
3575 # CHECK: mrs x9, {{pmevcntr22_el0|PMEVCNTR22_EL0}}
3576 # CHECK: mrs x9, {{pmevcntr23_el0|PMEVCNTR23_EL0}}
3577 # CHECK: mrs x9, {{pmevcntr24_el0|PMEVCNTR24_EL0}}
3578 # CHECK: mrs x9, {{pmevcntr25_el0|PMEVCNTR25_EL0}}
3579 # CHECK: mrs x9, {{pmevcntr26_el0|PMEVCNTR26_EL0}}
3580 # CHECK: mrs x9, {{pmevcntr27_el0|PMEVCNTR27_EL0}}
3581 # CHECK: mrs x9, {{pmevcntr28_el0|PMEVCNTR28_EL0}}
3582 # CHECK: mrs x9, {{pmevcntr29_el0|PMEVCNTR29_EL0}}
3583 # CHECK: mrs x9, {{pmevcntr30_el0|PMEVCNTR30_EL0}}
3584 # CHECK: mrs x9, {{pmccfiltr_el0|PMCCFILTR_EL0}}
3585 # CHECK: mrs x9, {{pmevtyper0_el0|PMEVTYPER0_EL0}}
3586 # CHECK: mrs x9, {{pmevtyper1_el0|PMEVTYPER1_EL0}}
3587 # CHECK: mrs x9, {{pmevtyper2_el0|PMEVTYPER2_EL0}}
3588 # CHECK: mrs x9, {{pmevtyper3_el0|PMEVTYPER3_EL0}}
3589 # CHECK: mrs x9, {{pmevtyper4_el0|PMEVTYPER4_EL0}}
3590 # CHECK: mrs x9, {{pmevtyper5_el0|PMEVTYPER5_EL0}}
3591 # CHECK: mrs x9, {{pmevtyper6_el0|PMEVTYPER6_EL0}}
3592 # CHECK: mrs x9, {{pmevtyper7_el0|PMEVTYPER7_EL0}}
3593 # CHECK: mrs x9, {{pmevtyper8_el0|PMEVTYPER8_EL0}}
3594 # CHECK: mrs x9, {{pmevtyper9_el0|PMEVTYPER9_EL0}}
3595 # CHECK: mrs x9, {{pmevtyper10_el0|PMEVTYPER10_EL0}}
3596 # CHECK: mrs x9, {{pmevtyper11_el0|PMEVTYPER11_EL0}}
3597 # CHECK: mrs x9, {{pmevtyper12_el0|PMEVTYPER12_EL0}}
3598 # CHECK: mrs x9, {{pmevtyper13_el0|PMEVTYPER13_EL0}}
3599 # CHECK: mrs x9, {{pmevtyper14_el0|PMEVTYPER14_EL0}}
3600 # CHECK: mrs x9, {{pmevtyper15_el0|PMEVTYPER15_EL0}}
3601 # CHECK: mrs x9, {{pmevtyper16_el0|PMEVTYPER16_EL0}}
3602 # CHECK: mrs x9, {{pmevtyper17_el0|PMEVTYPER17_EL0}}
3603 # CHECK: mrs x9, {{pmevtyper18_el0|PMEVTYPER18_EL0}}
3604 # CHECK: mrs x9, {{pmevtyper19_el0|PMEVTYPER19_EL0}}
3605 # CHECK: mrs x9, {{pmevtyper20_el0|PMEVTYPER20_EL0}}
3606 # CHECK: mrs x9, {{pmevtyper21_el0|PMEVTYPER21_EL0}}
3607 # CHECK: mrs x9, {{pmevtyper22_el0|PMEVTYPER22_EL0}}
3608 # CHECK: mrs x9, {{pmevtyper23_el0|PMEVTYPER23_EL0}}
3609 # CHECK: mrs x9, {{pmevtyper24_el0|PMEVTYPER24_EL0}}
3610 # CHECK: mrs x9, {{pmevtyper25_el0|PMEVTYPER25_EL0}}
3611 # CHECK: mrs x9, {{pmevtyper26_el0|PMEVTYPER26_EL0}}
3612 # CHECK: mrs x9, {{pmevtyper27_el0|PMEVTYPER27_EL0}}
3613 # CHECK: mrs x9, {{pmevtyper28_el0|PMEVTYPER28_EL0}}
3614 # CHECK: mrs x9, {{pmevtyper29_el0|PMEVTYPER29_EL0}}
3615 # CHECK: mrs x9, {{pmevtyper30_el0|PMEVTYPER30_EL0}}
3616
3617 0xc 0x0 0x12 0xd5
3618 0x4c 0x0 0x10 0xd5
3619 0xc 0x2 0x10 0xd5
3620 0x4c 0x2 0x10 0xd5
3621 0x4c 0x3 0x10 0xd5
3622 0xc 0x4 0x13 0xd5
3623 0xc 0x5 0x13 0xd5
3624 0x4c 0x6 0x10 0xd5
3625 0xc 0x7 0x14 0xd5
3626 0x8c 0x0 0x10 0xd5
3627 0x8c 0x1 0x10 0xd5
3628 0x8c 0x2 0x10 0xd5
3629 0x8c 0x3 0x10 0xd5
3630 0x8c 0x4 0x10 0xd5
3631 0x8c 0x5 0x10 0xd5
3632 0x8c 0x6 0x10 0xd5
3633 0x8c 0x7 0x10 0xd5
3634 0x8c 0x8 0x10 0xd5
3635 0x8c 0x9 0x10 0xd5
3636 0x8c 0xa 0x10 0xd5
3637 0x8c 0xb 0x10 0xd5
3638 0x8c 0xc 0x10 0xd5
3639 0x8c 0xd 0x10 0xd5
3640 0x8c 0xe 0x10 0xd5
3641 0x8c 0xf 0x10 0xd5
3642 0xac 0x0 0x10 0xd5
3643 0xac 0x1 0x10 0xd5
3644 0xac 0x2 0x10 0xd5
3645 0xac 0x3 0x10 0xd5
3646 0xac 0x4 0x10 0xd5
3647 0xac 0x5 0x10 0xd5
3648 0xac 0x6 0x10 0xd5
3649 0xac 0x7 0x10 0xd5
3650 0xac 0x8 0x10 0xd5
3651 0xac 0x9 0x10 0xd5
3652 0xac 0xa 0x10 0xd5
3653 0xac 0xb 0x10 0xd5
3654 0xac 0xc 0x10 0xd5
3655 0xac 0xd 0x10 0xd5
3656 0xac 0xe 0x10 0xd5
3657 0xac 0xf 0x10 0xd5
3658 0xcc 0x0 0x10 0xd5
3659 0xcc 0x1 0x10 0xd5
3660 0xcc 0x2 0x10 0xd5
3661 0xcc 0x3 0x10 0xd5
3662 0xcc 0x4 0x10 0xd5
3663 0xcc 0x5 0x10 0xd5
3664 0xcc 0x6 0x10 0xd5
3665 0xcc 0x7 0x10 0xd5
3666 0xcc 0x8 0x10 0xd5
3667 0xcc 0x9 0x10 0xd5
3668 0xcc 0xa 0x10 0xd5
3669 0xcc 0xb 0x10 0xd5
3670 0xcc 0xc 0x10 0xd5
3671 0xcc 0xd 0x10 0xd5
3672 0xcc 0xe 0x10 0xd5
3673 0xcc 0xf 0x10 0xd5
3674 0xec 0x0 0x10 0xd5
3675 0xec 0x1 0x10 0xd5
3676 0xec 0x2 0x10 0xd5
3677 0xec 0x3 0x10 0xd5
3678 0xec 0x4 0x10 0xd5
3679 0xec 0x5 0x10 0xd5
3680 0xec 0x6 0x10 0xd5
3681 0xec 0x7 0x10 0xd5
3682 0xec 0x8 0x10 0xd5
3683 0xec 0x9 0x10 0xd5
3684 0xec 0xa 0x10 0xd5
3685 0xec 0xb 0x10 0xd5
3686 0xec 0xc 0x10 0xd5
3687 0xec 0xd 0x10 0xd5
3688 0xec 0xe 0x10 0xd5
3689 0xec 0xf 0x10 0xd5
3690 0xc 0x10 0x12 0xd5
3691 0x8c 0x10 0x10 0xd5
3692 0x8c 0x13 0x10 0xd5
3693 0x8c 0x14 0x10 0xd5
3694 0xcc 0x78 0x10 0xd5
3695 0xcc 0x79 0x10 0xd5
3696 0xc 0x0 0x1a 0xd5
3697 0xc 0x0 0x1c 0xd5
3698 0xac 0x0 0x1c 0xd5
3699 0xc 0x10 0x18 0xd5
3700 0xc 0x10 0x1c 0xd5
3701 0xc 0x10 0x1e 0xd5
3702 0x2c 0x10 0x18 0xd5
3703 0x2c 0x10 0x1c 0xd5
3704 0x2c 0x10 0x1e 0xd5
3705 0x4c 0x10 0x18 0xd5
3706 0xc 0x11 0x1c 0xd5
3707 0xc 0x11 0x1e 0xd5
3708 0x2c 0x11 0x1c 0xd5
3709 0x2c 0x11 0x1e 0xd5
3710 0x4c 0x11 0x1c 0xd5
3711 0x4c 0x11 0x1e 0xd5
3712 0x6c 0x11 0x1c 0xd5
3713 0xec 0x11 0x1c 0xd5
3714 0x2c 0x13 0x1e 0xd5
3715 0xc 0x20 0x18 0xd5
3716 0xc 0x20 0x1c 0xd5
3717 0xc 0x20 0x1e 0xd5
3718 0x2c 0x20 0x18 0xd5
3719 0x4c 0x20 0x18 0xd5
3720 0x4c 0x20 0x1c 0xd5
3721 0x4c 0x20 0x1e 0xd5
3722 0xc 0x21 0x1c 0xd5
3723 0x4c 0x21 0x1c 0xd5
3724 0xc 0x30 0x1c 0xd5
3725 0xc 0x40 0x18 0xd5
3726 0xc 0x40 0x1c 0xd5
3727 0xc 0x40 0x1e 0xd5
3728 0x2c 0x40 0x18 0xd5
3729 0x2c 0x40 0x1c 0xd5
3730 0x2c 0x40 0x1e 0xd5
3731 0xc 0x41 0x18 0xd5
3732 0xc 0x41 0x1c 0xd5
3733 0xc 0x41 0x1e 0xd5
3734 0xc 0x42 0x18 0xd5
3735 0xc 0x42 0x1b 0xd5
3736 0x2c 0x42 0x1b 0xd5
3737 0x4c 0x42 0x18 0xd5
3738 0xc 0x43 0x1c 0xd5
3739 0x2c 0x43 0x1c 0xd5
3740 0x4c 0x43 0x1c 0xd5
3741 0x6c 0x43 0x1c 0xd5
3742 0xc 0x44 0x1b 0xd5
3743 0x2c 0x44 0x1b 0xd5
3744 0xc 0x45 0x1b 0xd5
3745 0x2c 0x45 0x1b 0xd5
3746 0x2c 0x50 0x1c 0xd5
3747 0xc 0x51 0x18 0xd5
3748 0xc 0x51 0x1c 0xd5
3749 0xc 0x51 0x1e 0xd5
3750 0x2c 0x51 0x18 0xd5
3751 0x2c 0x51 0x1c 0xd5
3752 0x2c 0x51 0x1e 0xd5
3753 0xc 0x52 0x18 0xd5
3754 0xc 0x52 0x1c 0xd5
3755 0xc 0x52 0x1e 0xd5
3756 0xc 0x53 0x1c 0xd5
3757 0xc 0x60 0x18 0xd5
3758 0xc 0x60 0x1c 0xd5
3759 0xc 0x60 0x1e 0xd5
3760 0x8c 0x60 0x1c 0xd5
3761 0xc 0x74 0x18 0xd5
3762 0xc 0x9c 0x1b 0xd5
3763 0x2c 0x9c 0x1b 0xd5
3764 0x4c 0x9c 0x1b 0xd5
3765 0x6c 0x9c 0x1b 0xd5
3766 0xac 0x9c 0x1b 0xd5
3767 0xc 0x9d 0x1b 0xd5
3768 0x2c 0x9d 0x1b 0xd5
3769 0x4c 0x9d 0x1b 0xd5
3770 0xc 0x9e 0x1b 0xd5
3771 0x2c 0x9e 0x18 0xd5
3772 0x4c 0x9e 0x18 0xd5
3773 0x6c 0x9e 0x1b 0xd5
3774 0xc 0xa2 0x18 0xd5
3775 0xc 0xa2 0x1c 0xd5
3776 0xc 0xa2 0x1e 0xd5
3777 0xc 0xa3 0x18 0xd5
3778 0xc 0xa3 0x1c 0xd5
3779 0xc 0xa3 0x1e 0xd5
3780 0xc 0xc0 0x18 0xd5
3781 0xc 0xc0 0x1c 0xd5
3782 0xc 0xc0 0x1e 0xd5
3783 0x4c 0xc0 0x18 0xd5
3784 0x4c 0xc0 0x1c 0xd5
3785 0x4c 0xc0 0x1e 0xd5
3786 0x4c 0xd0 0x1b 0xd5
3787 0x4c 0xd0 0x1c 0xd5
3788 0x4c 0xd0 0x1e 0xd5
3789 0x6c 0xd0 0x1b 0xd5
3790 0x8c 0xd0 0x18 0xd5
3791 0xc 0xe0 0x1b 0xd5
3792 0x6c 0xe0 0x1c 0xd5
3793 0xc 0xe1 0x18 0xd5
3794 0xc 0xe1 0x1c 0xd5
3795 0xc 0xe2 0x1b 0xd5
3796 0xc 0xe2 0x1c 0xd5
3797 0xc 0xe2 0x1f 0xd5
3798 0x2c 0xe2 0x1b 0xd5
3799 0x2c 0xe2 0x1c 0xd5
3800 0x2c 0xe2 0x1f 0xd5
3801 0x4c 0xe2 0x1b 0xd5
3802 0x4c 0xe2 0x1c 0xd5
3803 0x4c 0xe2 0x1f 0xd5
3804 0xc 0xe3 0x1b 0xd5
3805 0x2c 0xe3 0x1b 0xd5
3806 0x4c 0xe3 0x1b 0xd5
3807 0xc 0xe8 0x1b 0xd5
3808 0x2c 0xe8 0x1b 0xd5
3809 0x4c 0xe8 0x1b 0xd5
3810 0x6c 0xe8 0x1b 0xd5
3811 0x8c 0xe8 0x1b 0xd5
3812 0xac 0xe8 0x1b 0xd5
3813 0xcc 0xe8 0x1b 0xd5
3814 0xec 0xe8 0x1b 0xd5
3815 0xc 0xe9 0x1b 0xd5
3816 0x2c 0xe9 0x1b 0xd5
3817 0x4c 0xe9 0x1b 0xd5
3818 0x6c 0xe9 0x1b 0xd5
3819 0x8c 0xe9 0x1b 0xd5
3820 0xac 0xe9 0x1b 0xd5
3821 0xcc 0xe9 0x1b 0xd5
3822 0xec 0xe9 0x1b 0xd5
3823 0xc 0xea 0x1b 0xd5
3824 0x2c 0xea 0x1b 0xd5
3825 0x4c 0xea 0x1b 0xd5
3826 0x6c 0xea 0x1b 0xd5
3827 0x8c 0xea 0x1b 0xd5
3828 0xac 0xea 0x1b 0xd5
3829 0xcc 0xea 0x1b 0xd5
3830 0xec 0xea 0x1b 0xd5
3831 0xc 0xeb 0x1b 0xd5
3832 0x2c 0xeb 0x1b 0xd5
3833 0x4c 0xeb 0x1b 0xd5
3834 0x6c 0xeb 0x1b 0xd5
3835 0x8c 0xeb 0x1b 0xd5
3836 0xac 0xeb 0x1b 0xd5
3837 0xcc 0xeb 0x1b 0xd5
3838 0xec 0xef 0x1b 0xd5
3839 0xc 0xec 0x1b 0xd5
3840 0x2c 0xec 0x1b 0xd5
3841 0x4c 0xec 0x1b 0xd5
3842 0x6c 0xec 0x1b 0xd5
3843 0x8c 0xec 0x1b 0xd5
3844 0xac 0xec 0x1b 0xd5
3845 0xcc 0xec 0x1b 0xd5
3846 0xec 0xec 0x1b 0xd5
3847 0xc 0xed 0x1b 0xd5
3848 0x2c 0xed 0x1b 0xd5
3849 0x4c 0xed 0x1b 0xd5
3850 0x6c 0xed 0x1b 0xd5
3851 0x8c 0xed 0x1b 0xd5
3852 0xac 0xed 0x1b 0xd5
3853 0xcc 0xed 0x1b 0xd5
3854 0xec 0xed 0x1b 0xd5
3855 0xc 0xee 0x1b 0xd5
3856 0x2c 0xee 0x1b 0xd5
3857 0x4c 0xee 0x1b 0xd5
3858 0x6c 0xee 0x1b 0xd5
3859 0x8c 0xee 0x1b 0xd5
3860 0xac 0xee 0x1b 0xd5
3861 0xcc 0xee 0x1b 0xd5
3862 0xec 0xee 0x1b 0xd5
3863 0xc 0xef 0x1b 0xd5
3864 0x2c 0xef 0x1b 0xd5
3865 0x4c 0xef 0x1b 0xd5
3866 0x6c 0xef 0x1b 0xd5
3867 0x8c 0xef 0x1b 0xd5
3868 0xac 0xef 0x1b 0xd5
3869 0xcc 0xef 0x1b 0xd5
3870 0x9 0x0 0x32 0xd5
3871 0x49 0x0 0x30 0xd5
3872 0x9 0x1 0x33 0xd5
3873 0x9 0x2 0x30 0xd5
3874 0x49 0x2 0x30 0xd5
3875 0x49 0x3 0x30 0xd5
3876 0x9 0x4 0x33 0xd5
3877 0x9 0x5 0x33 0xd5
3878 0x49 0x6 0x30 0xd5
3879 0x9 0x7 0x34 0xd5
3880 0x89 0x0 0x30 0xd5
3881 0x89 0x1 0x30 0xd5
3882 0x89 0x2 0x30 0xd5
3883 0x89 0x3 0x30 0xd5
3884 0x89 0x4 0x30 0xd5
3885 0x89 0x5 0x30 0xd5
3886 0x89 0x6 0x30 0xd5
3887 0x89 0x7 0x30 0xd5
3888 0x89 0x8 0x30 0xd5
3889 0x89 0x9 0x30 0xd5
3890 0x89 0xa 0x30 0xd5
3891 0x89 0xb 0x30 0xd5
3892 0x89 0xc 0x30 0xd5
3893 0x89 0xd 0x30 0xd5
3894 0x89 0xe 0x30 0xd5
3895 0x89 0xf 0x30 0xd5
3896 0xa9 0x0 0x30 0xd5
3897 0xa9 0x1 0x30 0xd5
3898 0xa9 0x2 0x30 0xd5
3899 0xa9 0x3 0x30 0xd5
3900 0xa9 0x4 0x30 0xd5
3901 0xa9 0x5 0x30 0xd5
3902 0xa9 0x6 0x30 0xd5
3903 0xa9 0x7 0x30 0xd5
3904 0xa9 0x8 0x30 0xd5
3905 0xa9 0x9 0x30 0xd5
3906 0xa9 0xa 0x30 0xd5
3907 0xa9 0xb 0x30 0xd5
3908 0xa9 0xc 0x30 0xd5
3909 0xa9 0xd 0x30 0xd5
3910 0xa9 0xe 0x30 0xd5
3911 0xa9 0xf 0x30 0xd5
3912 0xc9 0x0 0x30 0xd5
3913 0xc9 0x1 0x30 0xd5
3914 0xc9 0x2 0x30 0xd5
3915 0xc9 0x3 0x30 0xd5
3916 0xc9 0x4 0x30 0xd5
3917 0xc9 0x5 0x30 0xd5
3918 0xc9 0x6 0x30 0xd5
3919 0xc9 0x7 0x30 0xd5
3920 0xc9 0x8 0x30 0xd5
3921 0xc9 0x9 0x30 0xd5
3922 0xc9 0xa 0x30 0xd5
3923 0xc9 0xb 0x30 0xd5
3924 0xc9 0xc 0x30 0xd5
3925 0xc9 0xd 0x30 0xd5
3926 0xc9 0xe 0x30 0xd5
3927 0xc9 0xf 0x30 0xd5
3928 0xe9 0x0 0x30 0xd5
3929 0xe9 0x1 0x30 0xd5
3930 0xe9 0x2 0x30 0xd5
3931 0xe9 0x3 0x30 0xd5
3932 0xe9 0x4 0x30 0xd5
3933 0xe9 0x5 0x30 0xd5
3934 0xe9 0x6 0x30 0xd5
3935 0xe9 0x7 0x30 0xd5
3936 0xe9 0x8 0x30 0xd5
3937 0xe9 0x9 0x30 0xd5
3938 0xe9 0xa 0x30 0xd5
3939 0xe9 0xb 0x30 0xd5
3940 0xe9 0xc 0x30 0xd5
3941 0xe9 0xd 0x30 0xd5
3942 0xe9 0xe 0x30 0xd5
3943 0xe9 0xf 0x30 0xd5
3944 0x9 0x10 0x30 0xd5
3945 0x9 0x10 0x32 0xd5
3946 0x89 0x11 0x30 0xd5
3947 0x89 0x13 0x30 0xd5
3948 0x89 0x14 0x30 0xd5
3949 0xc9 0x78 0x30 0xd5
3950 0xc9 0x79 0x30 0xd5
3951 0xc9 0x7e 0x30 0xd5
3952 0x9 0x0 0x38 0xd5
3953 0x9 0x0 0x39 0xd5
3954 0x9 0x0 0x3a 0xd5
3955 0x9 0x0 0x3c 0xd5
3956 0x29 0x0 0x39 0xd5
3957 0x29 0x0 0x3b 0xd5
3958 0xa9 0x0 0x38 0xd5
3959 0xa9 0x0 0x3c 0xd5
3960 0xc9 0x0 0x38 0xd5
3961 0xe9 0x0 0x39 0xd5
3962 0xe9 0x0 0x3b 0xd5
3963 0x9 0x1 0x38 0xd5
3964 0x29 0x1 0x38 0xd5
3965 0x49 0x1 0x38 0xd5
3966 0x69 0x1 0x38 0xd5
3967 0x89 0x1 0x38 0xd5
3968 0xa9 0x1 0x38 0xd5
3969 0xc9 0x1 0x38 0xd5
3970 0xe9 0x1 0x38 0xd5
3971 0x9 0x2 0x38 0xd5
3972 0x29 0x2 0x38 0xd5
3973 0x49 0x2 0x38 0xd5
3974 0x69 0x2 0x38 0xd5
3975 0x89 0x2 0x38 0xd5
3976 0xa9 0x2 0x38 0xd5
3977 0x9 0x3 0x38 0xd5
3978 0x29 0x3 0x38 0xd5
3979 0x49 0x3 0x38 0xd5
3980 0x9 0x4 0x38 0xd5
3981 0x29 0x4 0x38 0xd5
3982 0x9 0x5 0x38 0xd5
3983 0x29 0x5 0x38 0xd5
3984 0x89 0x5 0x38 0xd5
3985 0xa9 0x5 0x38 0xd5
3986 0x9 0x6 0x38 0xd5
3987 0x29 0x6 0x38 0xd5
3988 0x9 0x7 0x38 0xd5
3989 0x29 0x7 0x38 0xd5
3990 0x9 0x10 0x38 0xd5
3991 0x9 0x10 0x3c 0xd5
3992 0x9 0x10 0x3e 0xd5
3993 0x29 0x10 0x38 0xd5
3994 0x29 0x10 0x3c 0xd5
3995 0x29 0x10 0x3e 0xd5
3996 0x49 0x10 0x38 0xd5
3997 0x9 0x11 0x3c 0xd5
3998 0x9 0x11 0x3e 0xd5
3999 0x29 0x11 0x3c 0xd5
4000 0x29 0x11 0x3e 0xd5
4001 0x49 0x11 0x3c 0xd5
4002 0x49 0x11 0x3e 0xd5
4003 0x69 0x11 0x3c 0xd5
4004 0xe9 0x11 0x3c 0xd5
4005 0x29 0x13 0x3e 0xd5
4006 0x9 0x20 0x38 0xd5
4007 0x9 0x20 0x3c 0xd5
4008 0x9 0x20 0x3e 0xd5
4009 0x29 0x20 0x38 0xd5
4010 0x49 0x20 0x38 0xd5
4011 0x49 0x20 0x3c 0xd5
4012 0x49 0x20 0x3e 0xd5
4013 0x9 0x21 0x3c 0xd5
4014 0x49 0x21 0x3c 0xd5
4015 0x9 0x30 0x3c 0xd5
4016 0x9 0x40 0x38 0xd5
4017 0x9 0x40 0x3c 0xd5
4018 0x9 0x40 0x3e 0xd5
4019 0x29 0x40 0x38 0xd5
4020 0x29 0x40 0x3c 0xd5
4021 0x29 0x40 0x3e 0xd5
4022 0x9 0x41 0x38 0xd5
4023 0x9 0x41 0x3c 0xd5
4024 0x9 0x41 0x3e 0xd5
4025 0x9 0x42 0x38 0xd5
4026 0x9 0x42 0x3b 0xd5
4027 0x29 0x42 0x3b 0xd5
4028 0x49 0x42 0x38 0xd5
4029 0x9 0x43 0x3c 0xd5
4030 0x29 0x43 0x3c 0xd5
4031 0x49 0x43 0x3c 0xd5
4032 0x69 0x43 0x3c 0xd5
4033 0x9 0x44 0x3b 0xd5
4034 0x29 0x44 0x3b 0xd5
4035 0x9 0x45 0x3b 0xd5
4036 0x29 0x45 0x3b 0xd5
4037 0x29 0x50 0x3c 0xd5
4038 0x9 0x51 0x38 0xd5
4039 0x9 0x51 0x3c 0xd5
4040 0x9 0x51 0x3e 0xd5
4041 0x29 0x51 0x38 0xd5
4042 0x29 0x51 0x3c 0xd5
4043 0x29 0x51 0x3e 0xd5
4044 0x9 0x52 0x38 0xd5
4045 0x9 0x52 0x3c 0xd5
4046 0x9 0x52 0x3e 0xd5
4047 0x9 0x53 0x3c 0xd5
4048 0x9 0x60 0x38 0xd5
4049 0x9 0x60 0x3c 0xd5
4050 0x9 0x60 0x3e 0xd5
4051 0x89 0x60 0x3c 0xd5
4052 0x9 0x74 0x38 0xd5
4053 0x9 0x9c 0x3b 0xd5
4054 0x29 0x9c 0x3b 0xd5
4055 0x49 0x9c 0x3b 0xd5
4056 0x69 0x9c 0x3b 0xd5
4057 0xa9 0x9c 0x3b 0xd5
4058 0xc9 0x9c 0x3b 0xd5
4059 0xe9 0x9c 0x3b 0xd5
4060 0x9 0x9d 0x3b 0xd5
4061 0x29 0x9d 0x3b 0xd5
4062 0x49 0x9d 0x3b 0xd5
4063 0x9 0x9e 0x3b 0xd5
4064 0x29 0x9e 0x38 0xd5
4065 0x49 0x9e 0x38 0xd5
4066 0x69 0x9e 0x3b 0xd5
4067 0x9 0xa2 0x38 0xd5
4068 0x9 0xa2 0x3c 0xd5
4069 0x9 0xa2 0x3e 0xd5
4070 0x9 0xa3 0x38 0xd5
4071 0x9 0xa3 0x3c 0xd5
4072 0x9 0xa3 0x3e 0xd5
4073 0x9 0xc0 0x38 0xd5
4074 0x9 0xc0 0x3c 0xd5
4075 0x9 0xc0 0x3e 0xd5
4076 0x29 0xc0 0x38 0xd5
4077 0x29 0xc0 0x3c 0xd5
4078 0x29 0xc0 0x3e 0xd5
4079 0x49 0xc0 0x38 0xd5
4080 0x49 0xc0 0x3c 0xd5
4081 0x49 0xc0 0x3e 0xd5
4082 0x9 0xc1 0x38 0xd5
4083 0x29 0xd0 0x38 0xd5
4084 0x49 0xd0 0x3b 0xd5
4085 0x49 0xd0 0x3c 0xd5
4086 0x49 0xd0 0x3e 0xd5
4087 0x69 0xd0 0x3b 0xd5
4088 0x89 0xd0 0x38 0xd5
4089 0x9 0xe0 0x3b 0xd5
4090 0x29 0xe0 0x3b 0xd5
4091 0x49 0xe0 0x3b 0xd5
4092 0x69 0xe0 0x3c 0xd5
4093 0x9 0xe1 0x38 0xd5
4094 0x9 0xe1 0x3c 0xd5
4095 0x9 0xe2 0x3b 0xd5
4096 0x9 0xe2 0x3c 0xd5
4097 0x9 0xe2 0x3f 0xd5
4098 0x29 0xe2 0x3b 0xd5
4099 0x29 0xe2 0x3c 0xd5
4100 0x29 0xe2 0x3f 0xd5
4101 0x49 0xe2 0x3b 0xd5
4102 0x49 0xe2 0x3c 0xd5
4103 0x49 0xe2 0x3f 0xd5
4104 0x9 0xe3 0x3b 0xd5
4105 0x29 0xe3 0x3b 0xd5
4106 0x49 0xe3 0x3b 0xd5
4107 0x9 0xe8 0x3b 0xd5
4108 0x29 0xe8 0x3b 0xd5
4109 0x49 0xe8 0x3b 0xd5
4110 0x69 0xe8 0x3b 0xd5
4111 0x89 0xe8 0x3b 0xd5
4112 0xa9 0xe8 0x3b 0xd5
4113 0xc9 0xe8 0x3b 0xd5
4114 0xe9 0xe8 0x3b 0xd5
4115 0x9 0xe9 0x3b 0xd5
4116 0x29 0xe9 0x3b 0xd5
4117 0x49 0xe9 0x3b 0xd5
4118 0x69 0xe9 0x3b 0xd5
4119 0x89 0xe9 0x3b 0xd5
4120 0xa9 0xe9 0x3b 0xd5
4121 0xc9 0xe9 0x3b 0xd5
4122 0xe9 0xe9 0x3b 0xd5
4123 0x9 0xea 0x3b 0xd5
4124 0x29 0xea 0x3b 0xd5
4125 0x49 0xea 0x3b 0xd5
4126 0x69 0xea 0x3b 0xd5
4127 0x89 0xea 0x3b 0xd5
4128 0xa9 0xea 0x3b 0xd5
4129 0xc9 0xea 0x3b 0xd5
4130 0xe9 0xea 0x3b 0xd5
4131 0x9 0xeb 0x3b 0xd5
4132 0x29 0xeb 0x3b 0xd5
4133 0x49 0xeb 0x3b 0xd5
4134 0x69 0xeb 0x3b 0xd5
4135 0x89 0xeb 0x3b 0xd5
4136 0xa9 0xeb 0x3b 0xd5
4137 0xc9 0xeb 0x3b 0xd5
4138 0xe9 0xef 0x3b 0xd5
4139 0x9 0xec 0x3b 0xd5
4140 0x29 0xec 0x3b 0xd5
4141 0x49 0xec 0x3b 0xd5
4142 0x69 0xec 0x3b 0xd5
4143 0x89 0xec 0x3b 0xd5
4144 0xa9 0xec 0x3b 0xd5
4145 0xc9 0xec 0x3b 0xd5
4146 0xe9 0xec 0x3b 0xd5
4147 0x9 0xed 0x3b 0xd5
4148 0x29 0xed 0x3b 0xd5
4149 0x49 0xed 0x3b 0xd5
4150 0x69 0xed 0x3b 0xd5
4151 0x89 0xed 0x3b 0xd5
4152 0xa9 0xed 0x3b 0xd5
4153 0xc9 0xed 0x3b 0xd5
4154 0xe9 0xed 0x3b 0xd5
4155 0x9 0xee 0x3b 0xd5
4156 0x29 0xee 0x3b 0xd5
4157 0x49 0xee 0x3b 0xd5
4158 0x69 0xee 0x3b 0xd5
4159 0x89 0xee 0x3b 0xd5
4160 0xa9 0xee 0x3b 0xd5
4161 0xc9 0xee 0x3b 0xd5
4162 0xe9 0xee 0x3b 0xd5
4163 0x9 0xef 0x3b 0xd5
4164 0x29 0xef 0x3b 0xd5
4165 0x49 0xef 0x3b 0xd5
4166 0x69 0xef 0x3b 0xd5
4167 0x89 0xef 0x3b 0xd5
4168 0xa9 0xef 0x3b 0xd5
4169 0xc9 0xef 0x3b 0xd5
4170
4171 # CHECK: mrs x12, {{s3_7_c15_c1_5|S3_7_C15_C1_5}}
4172 # CHECK: mrs x13, {{s3_2_c11_c15_7|S3_2_C11_C15_7}}
4173 # CHECK: msr {{s3_0_c15_c0_0|S3_0_C15_C0_0}}, x12
4174 # CHECK: msr {{s3_7_c11_c13_7|S3_7_C11_C13_7}}, x5
4175 0xac 0xf1 0x3f 0xd5
4176 0xed 0xbf 0x3a 0xd5
4177 0x0c 0xf0 0x18 0xd5
4178 0xe5 0xbd 0x1f 0xd5
4179
4180 #------------------------------------------------------------------------------
4181 # Test and branch (immediate)
4182 #------------------------------------------------------------------------------
4183
4184 # CHECK: tbz x12, #62, #0
4185 # CHECK: tbz x12, #62, #4
4186 # CHECK: tbz x12, #62, #-32768
4187 # CHECK: tbnz x12, #60, #32764
4188 0x0c 0x00 0xf0 0xb6
4189 0x2c 0x00 0xf0 0xb6
4190 0x0c 0x00 0xf4 0xb6
4191 0xec 0xff 0xe3 0xb7
4192
4193 #------------------------------------------------------------------------------
4194 # Unconditional branch (immediate)
4195 #------------------------------------------------------------------------------
4196
4197 # CHECK: b #4
4198 # CHECK: b #-4
4199 # CHECK: b #134217724
4200 0x01 0x00 0x00 0x14
4201 0xff 0xff 0xff 0x17
4202 0xff 0xff 0xff 0x15
4203
4204 #------------------------------------------------------------------------------
4205 # Unconditional branch (register)
4206 #------------------------------------------------------------------------------
4207
4208 # CHECK: br x20
4209 # CHECK: blr xzr
4210 # CHECK: ret x10
4211 0x80 0x2 0x1f 0xd6
4212 0xe0 0x3 0x3f 0xd6
4213 0x40 0x1 0x5f 0xd6
4214
4215 # CHECK: ret
4216 # CHECK: eret
4217 # CHECK: drps
4218 0xc0 0x3 0x5f 0xd6
4219 0xe0 0x3 0x9f 0xd6
4220 0xe0 0x3 0xbf 0xd6
4221