VirtualBox

source: vbox/trunk/src/VBox/Disassembler/testcase/tstDisasmArmv8-1-asm.S@ 106632

Last change on this file since 106632 was 106632, checked in by vboxsync, 5 weeks ago

Disassembler: Decode more hint instructions instructions, bugref:10394

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 34.4 KB
Line 
1/* $Id: tstDisasmArmv8-1-asm.S 106632 2024-10-23 19:15:01Z vboxsync $ */
2/** @file
3 * VBox disassembler - Tables for ARMv8 A64.
4 */
5
6/*
7 * Copyright (C) 2024 Oracle and/or its affiliates.
8 *
9 * This file is part of VirtualBox base platform packages, as
10 * available from https://www.virtualbox.org.
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation, in version 3 of the
15 * License.
16 *
17 * This program is distributed in the hope that it will be useful, but
18 * WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * General Public License for more details.
21 *
22 * You should have received a copy of the GNU General Public License
23 * along with this program; if not, see <https://www.gnu.org/licenses>.
24 *
25 * SPDX-License-Identifier: GPL-3.0-only
26 */
27
28.private_extern _TestProcA64
29_TestProcA64:
30
31 ; Miscellaneous instructions without a parameter
32 nop
33 yield
34 wfe
35 wfi
36 sev
37 sevl
38 dgh
39 xpaclri
40
41 pacia1716
42 pacib1716
43 autia1716
44 autib1716
45 esb
46 ;psb csync - Requires FEAT_SPE
47 tsb csync
48 gcsb dsync
49 csdb
50 clrbhb
51 paciaz
52 paciasp
53 pacibz
54 pacibsp
55 autiaz
56 autiasp
57 autibz
58 autibsp
59
60 bti
61 bti j
62 bti c
63 bti jc
64
65 chkfeat x16
66
67 ; Control flow instructions
68 svc #0xfefe
69 hvc #0xdead
70 smc #0xcafe
71 brk #0xd0d0
72 hlt #0xc0de
73; tcancel #0xd00f Requires FEAT_TME
74 dcps1 #0xdeca
75 dcps2 #0xdec0
76 dcps3 #0xfeed
77 b #0x100
78 b #-0x100
79 bl #0x100
80 bl #-0x100
81 b.ne #+0x1000
82 b.eq #-0x1000
83; bc.ne #+0x1000 Requires FEAT_HBC
84; bc.eq #-0x1000 Requires FEAT_HBC
85 cbz x0, #+0x100
86 cbz x0, #-0x100
87 cbz w0, #+0x100
88 cbnz x0, #+0x100
89 cbnz x0, #-0x100
90 cbnz w0, #+0x100
91 tbz w0, #13, #+0x100
92 tbz x0, #63, #-0x100
93 tbz w0, #8, #+0x100
94 ret x30
95 ret x1
96 ret x2
97 ret x15
98 br x15
99 blr x15
100
101 ; System register access instructions
102 msr ttbr0_el1, x0
103 mrs x0, ttbr0_el1
104
105 ; Arithmetic instructions
106 add x0, x0, #0x0
107 add x0, x1, #0x10000
108 add x0, x1, #65536
109 add x0, x0, x0
110 add x0, x1, x29
111 add x0, x1, x28, LSL #1
112 add x0, x1, x28, LSL #63
113 add x0, x1, x28, LSR #1
114 add x0, x1, x28, LSR #63
115 add x0, x1, x28, ASR #1
116 add x0, x1, x28, ASR #63
117 ; ROR is reserved
118
119 add w0, w1, #0x0
120 add w0, w1, #0x10000
121 add w0, w1, #65536
122 add w0, w1, w29
123 add w0, w1, w28, LSL #1
124 add w0, w1, w28, LSL #31
125 add w0, w1, w28, LSR #1
126 add w0, w1, w28, LSR #31
127 add w0, w1, w28, ASR #1
128 add w0, w1, w28, ASR #31
129 ; ROR is reserved
130
131 adds x0, x0, #0x0
132 adds x0, x1, #0x10000
133 adds x0, x1, #65536
134 adds x0, x0, x0
135 adds x0, x1, x29
136 adds x0, x1, x28, LSL #1
137 adds x0, x1, x28, LSL #63
138 adds x0, x1, x28, LSR #1
139 adds x0, x1, x28, LSR #63
140 adds x0, x1, x28, ASR #1
141 adds x0, x1, x28, ASR #63
142 ; ROR is reserved
143
144 adds w0, w1, #0x0
145 adds w0, w1, #0x10000
146 adds w0, w1, #65536
147 adds w0, w1, w29
148 adds w0, w1, w28, LSL #1
149 adds w0, w1, w28, LSL #31
150 adds w0, w1, w28, LSR #1
151 adds w0, w1, w28, LSR #31
152 adds w0, w1, w28, ASR #1
153 adds w0, w1, w28, ASR #31
154 ; ROR is reserved
155
156 sub x0, x0, #0x0
157 sub x0, x1, #0x10000
158 sub x0, x1, #65536
159 sub x0, x0, x0
160 sub x0, x1, x29
161 sub x0, x1, x28, LSL #1
162 sub x0, x1, x28, LSL #63
163 sub x0, x1, x28, LSR #1
164 sub x0, x1, x28, LSR #63
165 sub x0, x1, x28, ASR #1
166 sub x0, x1, x28, ASR #63
167 ; ROR is reserved
168
169 sub w0, w1, #0x0
170 sub w0, w1, #0x10000
171 sub w0, w1, #65536
172 sub w0, w1, w29
173 sub w0, w1, w28, LSL #1
174 sub w0, w1, w28, LSL #31
175 sub w0, w1, w28, LSR #1
176 sub w0, w1, w28, LSR #31
177 sub w0, w1, w28, ASR #1
178 sub w0, w1, w28, ASR #31
179 ; ROR is reserved
180
181 subs x0, x0, #0x0
182 subs x0, x1, #0x10000
183 subs x0, x1, #65536
184 subs x0, x0, x0
185 subs x0, x1, x29
186 subs x0, x1, x28, LSL #1
187 subs x0, x1, x28, LSL #63
188 subs x0, x1, x28, LSR #1
189 subs x0, x1, x28, LSR #63
190 subs x0, x1, x28, ASR #1
191 subs x0, x1, x28, ASR #63
192 ; ROR is reserved
193
194 subs w0, w1, #0x0
195 subs w0, w1, #0x10000
196 subs w0, w1, #65536
197 subs w0, w1, w29
198 subs w0, w1, w28, LSL #1
199 subs w0, w1, w28, LSL #31
200 subs w0, w1, w28, LSR #1
201 subs w0, w1, w28, LSR #31
202 subs w0, w1, w28, ASR #1
203 subs w0, w1, w28, ASR #31
204 ; ROR is reserved
205
206 ; Aliases of subs -> cmp
207 cmp x0, x1
208 cmp w0, w1
209 cmp x0, x1, LSL #1
210 cmp w0, w1, LSL #1
211
212 ; Logical instructions
213 and x0, x0, #0xffff
214 and w0, wzr, #0xffff
215
216 ands x0, x0, #0x00ffff00
217 ands w10, w23, #0x55555555
218
219 orr x0, x0, #0xffff
220 orr w0, wzr, #0xffff
221
222 mov x0, x1 ; Alias of orr
223 mov w0, w1 ; Alias of orr
224
225 eor x0, x0, #0x00ffff00
226 eor w10, w23, #0x55555555
227
228 sbfm x0, x0, #0x1, #0x2
229 sbfm w0, w0, #0xf, #0x9
230 bfm x0, x0, #0x1, #0x2
231 bfm w0, w0, #0xf, #0x9
232 ubfm x0, x0, #0x1, #0x2
233 ubfm w0, w0, #0xf, #0x9
234
235 movn x0, #0xffff
236 movn x0, #0xffff, LSL #16
237 movn w0, #0xffff
238 movn w0, #0xffff, LSL #16
239
240 movz x0, #0xffff
241 movz x0, #0xffff, LSL #48
242 movz w0, #0xffff
243 movz w0, #0xffff, LSL #16
244
245 movk x0, #0xffff
246 movk x0, #0xffff, LSL #32
247 movk w0, #0xffff
248 movk w0, #0xffff, LSL #16
249
250 ; Logical instructions with a shifted register
251 and w0, w0, w27
252 and w0, w1, w28, LSL #1
253 and w0, w1, w28, LSL #31
254 and w0, w1, w28, LSR #1
255 and w0, w1, w28, LSR #31
256 and w0, w1, w28, ASR #1
257 and w0, w1, w28, ASR #31
258 and w0, w1, w28, ROR #1
259 and w0, w1, w28, ROR #31
260
261 and x0, x0, x27
262 and x0, x1, x28, LSL #1
263 and x0, x1, x28, LSL #63
264 and x0, x1, x28, LSR #1
265 and x0, x1, x28, LSR #63
266 and x0, x1, x28, ASR #1
267 and x0, x1, x28, ASR #63
268 and x0, x1, x28, ROR #1
269 and x0, x1, x28, ROR #63
270
271 orr w0, w0, w27
272 orr w0, w1, w28, LSL #1
273 orr w0, w1, w28, LSL #31
274 orr w0, w1, w28, LSR #1
275 orr w0, w1, w28, LSR #31
276 orr w0, w1, w28, ASR #1
277 orr w0, w1, w28, ASR #31
278 orr w0, w1, w28, ROR #1
279 orr w0, w1, w28, ROR #31
280
281 orr x0, x0, x27
282 orr x0, x1, x28, LSL #1
283 orr x0, x1, x28, LSL #63
284 orr x0, x1, x28, LSR #1
285 orr x0, x1, x28, LSR #63
286 orr x0, x1, x28, ASR #1
287 orr x0, x1, x28, ASR #63
288 orr x0, x1, x28, ROR #1
289 orr x0, x1, x28, ROR #63
290
291 eor w0, w0, w27
292 eor w0, w1, w28, LSL #1
293 eor w0, w1, w28, LSL #31
294 eor w0, w1, w28, LSR #1
295 eor w0, w1, w28, LSR #31
296 eor w0, w1, w28, ASR #1
297 eor w0, w1, w28, ASR #31
298 eor w0, w1, w28, ROR #1
299 eor w0, w1, w28, ROR #31
300
301 eor x0, x0, x27
302 eor x0, x1, x28, LSL #1
303 eor x0, x1, x28, LSL #63
304 eor x0, x1, x28, LSR #1
305 eor x0, x1, x28, LSR #63
306 eor x0, x1, x28, ASR #1
307 eor x0, x1, x28, ASR #63
308 eor x0, x1, x28, ROR #1
309 eor x0, x1, x28, ROR #63
310
311 ands x0, x0, x27
312 ands x0, x1, x28, LSL #1
313 ands x0, x1, x28, LSL #63
314 ands x0, x1, x28, LSR #1
315 ands x0, x1, x28, LSR #63
316 ands x0, x1, x28, ASR #1
317 ands x0, x1, x28, ASR #63
318 ands x0, x1, x28, ROR #1
319 ands x0, x1, x28, ROR #63
320
321 bic w0, w0, w27
322 bic w0, w1, w28, LSL #1
323 bic w0, w1, w28, LSL #31
324 bic w0, w1, w28, LSR #1
325 bic w0, w1, w28, LSR #31
326 bic w0, w1, w28, ASR #1
327 bic w0, w1, w28, ASR #31
328 bic w0, w1, w28, ROR #1
329 bic w0, w1, w28, ROR #31
330
331 bic wzr, wzr, wzr
332 bic wzr, wzr, wzr, LSL #1
333 bic wzr, wzr, wzr, LSL #31
334 bic wzr, wzr, wzr, LSR #1
335 bic wzr, wzr, wzr, LSR #31
336 bic wzr, wzr, wzr, ASR #1
337 bic wzr, wzr, wzr, ASR #31
338 bic wzr, wzr, wzr, ROR #1
339 bic wzr, wzr, wzr, ROR #31
340
341 bic x0, x0, x27
342 bic x0, x1, x28, LSL #1
343 bic x0, x1, x28, LSL #63
344 bic x0, x1, x28, LSR #1
345 bic x0, x1, x28, LSR #63
346 bic x0, x1, x28, ASR #1
347 bic x0, x1, x28, ASR #63
348 bic x0, x1, x28, ROR #1
349 bic x0, x1, x28, ROR #63
350
351 bic xzr, xzr, xzr
352 bic xzr, xzr, xzr, LSL #1
353 bic xzr, xzr, xzr, LSL #63
354 bic xzr, xzr, xzr, LSR #1
355 bic xzr, xzr, xzr, LSR #63
356 bic xzr, xzr, xzr, ASR #1
357 bic xzr, xzr, xzr, ASR #63
358 bic xzr, xzr, xzr, ROR #1
359 bic xzr, xzr, xzr, ROR #63
360
361 orn w0, w0, w27
362 orn w0, w1, w28, LSL #1
363 orn w0, w1, w28, LSL #31
364 orn w0, w1, w28, LSR #1
365 orn w0, w1, w28, LSR #31
366 orn w0, w1, w28, ASR #1
367 orn w0, w1, w28, ASR #31
368 orn w0, w1, w28, ROR #1
369 orn w0, w1, w28, ROR #31
370
371 orn wzr, wzr, wzr
372 orn wzr, wzr, wzr, LSL #1
373 orn wzr, wzr, wzr, LSL #31
374 orn wzr, wzr, wzr, LSR #1
375 orn wzr, wzr, wzr, LSR #31
376 orn wzr, wzr, wzr, ASR #1
377 orn wzr, wzr, wzr, ASR #31
378 orn wzr, wzr, wzr, ROR #1
379 orn wzr, wzr, wzr, ROR #31
380
381 orn x0, x0, x27
382 orn x0, x1, x28, LSL #1
383 orn x0, x1, x28, LSL #63
384 orn x0, x1, x28, LSR #1
385 orn x0, x1, x28, LSR #63
386 orn x0, x1, x28, ASR #1
387 orn x0, x1, x28, ASR #63
388 orn x0, x1, x28, ROR #1
389 orn x0, x1, x28, ROR #63
390
391 orn xzr, xzr, xzr
392 orn xzr, xzr, xzr, LSL #1
393 orn xzr, xzr, xzr, LSL #63
394 orn xzr, xzr, xzr, LSR #1
395 orn xzr, xzr, xzr, LSR #63
396 orn xzr, xzr, xzr, ASR #1
397 orn xzr, xzr, xzr, ASR #63
398 orn xzr, xzr, xzr, ROR #1
399 orn xzr, xzr, xzr, ROR #63
400
401 eon w0, w0, w27
402 eon w0, w1, w28, LSL #1
403 eon w0, w1, w28, LSL #31
404 eon w0, w1, w28, LSR #1
405 eon w0, w1, w28, LSR #31
406 eon w0, w1, w28, ASR #1
407 eon w0, w1, w28, ASR #31
408 eon w0, w1, w28, ROR #1
409 eon w0, w1, w28, ROR #31
410
411 eon wzr, wzr, wzr
412 eon wzr, wzr, wzr, LSL #1
413 eon wzr, wzr, wzr, LSL #31
414 eon wzr, wzr, wzr, LSR #1
415 eon wzr, wzr, wzr, LSR #31
416 eon wzr, wzr, wzr, ASR #1
417 eon wzr, wzr, wzr, ASR #31
418 eon wzr, wzr, wzr, ROR #1
419 eon wzr, wzr, wzr, ROR #31
420
421 eon x0, x0, x27
422 eon x0, x1, x28, LSL #1
423 eon x0, x1, x28, LSL #63
424 eon x0, x1, x28, LSR #1
425 eon x0, x1, x28, LSR #63
426 eon x0, x1, x28, ASR #1
427 eon x0, x1, x28, ASR #63
428 eon x0, x1, x28, ROR #1
429 eon x0, x1, x28, ROR #63
430
431 eon xzr, xzr, xzr
432 eon xzr, xzr, xzr, LSL #1
433 eon xzr, xzr, xzr, LSL #63
434 eon xzr, xzr, xzr, LSR #1
435 eon xzr, xzr, xzr, LSR #63
436 eon xzr, xzr, xzr, ASR #1
437 eon xzr, xzr, xzr, ASR #63
438 eon xzr, xzr, xzr, ROR #1
439 eon xzr, xzr, xzr, ROR #63
440
441 bics w0, w0, w27
442 bics w0, w1, w28, LSL #1
443 bics w0, w1, w28, LSL #31
444 bics w0, w1, w28, LSR #1
445 bics w0, w1, w28, LSR #31
446 bics w0, w1, w28, ASR #1
447 bics w0, w1, w28, ASR #31
448 bics w0, w1, w28, ROR #1
449 bics w0, w1, w28, ROR #31
450
451 bics wzr, wzr, wzr
452 bics wzr, wzr, wzr, LSL #1
453 bics wzr, wzr, wzr, LSL #31
454 bics wzr, wzr, wzr, LSR #1
455 bics wzr, wzr, wzr, LSR #31
456 bics wzr, wzr, wzr, ASR #1
457 bics wzr, wzr, wzr, ASR #31
458 bics wzr, wzr, wzr, ROR #1
459 bics wzr, wzr, wzr, ROR #31
460
461 bics x0, x0, x27
462 bics x0, x1, x28, LSL #1
463 bics x0, x1, x28, LSL #63
464 bics x0, x1, x28, LSR #1
465 bics x0, x1, x28, LSR #63
466 bics x0, x1, x28, ASR #1
467 bics x0, x1, x28, ASR #63
468 bics x0, x1, x28, ROR #1
469 bics x0, x1, x28, ROR #63
470
471 bics xzr, xzr, xzr
472 bics xzr, xzr, xzr, LSL #1
473 bics xzr, xzr, xzr, LSL #63
474 bics xzr, xzr, xzr, LSR #1
475 bics xzr, xzr, xzr, LSR #63
476 bics xzr, xzr, xzr, ASR #1
477 bics xzr, xzr, xzr, ASR #63
478 bics xzr, xzr, xzr, ROR #1
479 bics xzr, xzr, xzr, ROR #63
480
481 ; Memory loads
482 ldrb w0, [x28]
483 ldrb w0, [x28, #1]
484 ldrb w0, [x28, #4095]
485
486 ldrb w0, [sp]
487 ldrb w0, [sp, #1]
488 ldrb w0, [sp, #4095]
489
490 ldrsb w0, [x28]
491 ldrsb w0, [x28, #1]
492 ldrsb w0, [x28, #4095]
493
494 ldrsb w0, [sp]
495 ldrsb w0, [sp, #1]
496 ldrsb w0, [sp, #4095]
497
498 ldrsb x0, [x28]
499 ldrsb x0, [x28, #1]
500 ldrsb x0, [x28, #4095]
501
502 ldrsb x0, [sp]
503 ldrsb x0, [sp, #1]
504 ldrsb x0, [sp, #4095]
505
506 ldrh w0, [x28]
507 ldrh w0, [x28, #2]
508 ldrh w0, [x28, #1024]
509
510 ldrh w0, [sp]
511 ldrh w0, [sp, #2]
512 ldrh w0, [sp, #1024]
513
514 ldrsh w0, [x28]
515 ldrsh w0, [x28, #2]
516 ldrsh w0, [x28, #1024]
517
518 ldrsh w0, [sp]
519 ldrsh w0, [sp, #2]
520 ldrsh w0, [sp, #1024]
521
522 ldrsh x0, [x28]
523 ldrsh x0, [x28, #2]
524 ldrsh x0, [x28, #1024]
525
526 ldrsh x0, [sp]
527 ldrsh x0, [sp, #2]
528 ldrsh x0, [sp, #1024]
529
530 ldr x0, [x28]
531 ldr x0, [x28, #8]
532 ldr x0, [x28, #32760]
533
534 ldr x0, [sp]
535 ldr x0, [sp, #8]
536 ldr x0, [sp, #32760]
537
538 ldr w0, [x28]
539 ldr w0, [x28, #4]
540 ldr w0, [x28, #16380]
541
542 ldr w0, [sp]
543 ldr w0, [sp, #4]
544 ldr w0, [sp, #16380]
545
546 ldrsw x0, [x28]
547 ldrsw x0, [x28, #4]
548 ldrsw x0, [x28, #16380]
549
550 ldrsw x0, [sp]
551 ldrsw x0, [sp, #4]
552 ldrsw x0, [sp, #16380]
553
554 ldurb w0, [x28]
555 ldurb w0, [x28, #-256]
556 ldurb w0, [x28, #255]
557
558 ldurb w0, [sp]
559 ldurb w0, [sp, #-256]
560 ldurb w0, [sp, #255]
561
562 ldursb w0, [x28]
563 ldursb w0, [x28, #-256]
564 ldursb w0, [x28, #255]
565
566 ldursb w0, [sp]
567 ldursb w0, [sp, #-256]
568 ldursb w0, [sp, #255]
569
570 ldursb x0, [x28]
571 ldursb x0, [x28, #-256]
572 ldursb x0, [x28, #255]
573
574 ldursb x0, [sp]
575 ldursb x0, [sp, #-256]
576 ldursb x0, [sp, #255]
577
578 ldurh w0, [x28]
579 ldurh w0, [x28, #-256]
580 ldurh w0, [x28, #255]
581
582 ldurh w0, [sp]
583 ldurh w0, [sp, #-256]
584 ldurh w0, [sp, #255]
585
586 ldursh w0, [x28]
587 ldursh w0, [x28, #-256]
588 ldursh w0, [x28, #255]
589
590 ldursh w0, [sp]
591 ldursh w0, [sp, #-256]
592 ldursh w0, [sp, #255]
593
594 ldursh x0, [x28]
595 ldursh x0, [x28, #-256]
596 ldursh x0, [x28, #255]
597
598 ldursh x0, [sp]
599 ldursh x0, [sp, #-256]
600 ldursh x0, [sp, #255]
601
602 ldur x0, [x28]
603 ldur x0, [x28, #-256]
604 ldur x0, [x28, #255]
605
606 ldur x0, [sp]
607 ldur x0, [sp, #-256]
608 ldur x0, [sp, #255]
609
610 ldur w0, [x28]
611 ldur w0, [x28, #-256]
612 ldur w0, [x28, #255]
613
614 ldur w0, [sp]
615 ldur w0, [sp, #-256]
616 ldur w0, [sp, #255]
617
618 ldursw x0, [x28]
619 ldursw x0, [x28, #-256]
620 ldursw x0, [x28, #255]
621
622 ldursw x0, [sp]
623 ldursw x0, [sp, #-256]
624 ldursw x0, [sp, #255]
625
626 ldp w0, w1, [x28]
627 ldp w0, w1, [x28, #4]
628 ldp w0, w1, [x28, #-256]
629 ldp w0, w1, [x28, #252]
630
631 ldp w0, w1, [sp]
632 ldp w0, w1, [sp, #4]
633 ldp w0, w1, [sp, #-256]
634 ldp w0, w1, [sp, #252]
635
636 ldp x0, x1, [x28]
637 ldp x0, x1, [x28, #8]
638 ldp x0, x1, [x28, #-512]
639 ldp x0, x1, [x28, #504]
640
641 ldp x0, x1, [sp]
642 ldp x0, x1, [sp, #8]
643 ldp x0, x1, [sp, #-512]
644 ldp x0, x1, [sp, #504]
645
646 ldp w0, w1, [x28, #4]!
647 ldp w0, w1, [x28, #-256]!
648 ldp w0, w1, [x28, #252]!
649
650 ldp w0, w1, [sp, #4]!
651 ldp w0, w1, [sp, #-256]!
652 ldp w0, w1, [sp, #252]!
653
654 ldp x0, x1, [x28, #8]!
655 ldp x0, x1, [x28, #-512]!
656 ldp x0, x1, [x28, #504]!
657
658 ldp x0, x1, [sp, #8]!
659 ldp x0, x1, [sp, #-512]!
660 ldp x0, x1, [sp, #504]!
661
662 ldp w0, w1, [x28], #4
663 ldp w0, w1, [x28], #-256
664 ldp w0, w1, [x28], #252
665
666 ldp w0, w1, [sp], #4
667 ldp w0, w1, [sp], #-256
668 ldp w0, w1, [sp], #252
669
670 ldp x0, x1, [x28], #8
671 ldp x0, x1, [x28], #-512
672 ldp x0, x1, [x28], #504
673
674 ldp x0, x1, [sp], #8
675 ldp x0, x1, [sp], #-512
676 ldp x0, x1, [sp], #504
677
678 ldr x0, [x1, x2]
679 ldr w0, [x1, x2]
680 ldr x0, [x1, x2, SXTX #0]
681 ldr x0, [x1, x2, LSL #3] ; UXTX
682 ldr x0, [x1, x2, SXTX #3]
683 ldr w0, [x1, w2, UXTW #0]
684 ldr w0, [x1, w2, SXTW #0]
685 ldr w0, [x1, w2, UXTW #2]
686 ldr w0, [x1, w2, SXTW #2]
687
688 ldr x0, [sp, x2]
689 ldr w0, [sp, x2]
690 ldr x0, [sp, x2, SXTX #0]
691 ldr x0, [sp, x2, LSL #3] ; UXTX
692 ldr x0, [sp, x2, SXTX #3]
693 ldr w0, [sp, w2, UXTW #0]
694 ldr w0, [sp, w2, SXTW #0]
695 ldr w0, [sp, w2, UXTW #2]
696 ldr w0, [sp, w2, SXTW #2]
697
698 ldrb w0, [x1, x2]
699 ldrb w0, [x1, x2, LSL #0] ; UXTX
700 ldrb w0, [x1, x2, SXTX #0]
701 ldrb w0, [x1, w2, UXTW #0]
702 ldrb w0, [x1, w2, SXTW #0]
703
704 ldrb w0, [sp, x2]
705 ldrb w0, [sp, x2, LSL #0] ; UXTX
706 ldrb w0, [sp, x2, SXTX #0]
707 ldrb w0, [sp, w2, UXTW #0]
708 ldrb w0, [sp, w2, SXTW #0]
709
710 ldrsb w0, [x1, x2]
711 ldrsb w0, [x1, x2, LSL #0] ; UXTX
712 ldrsb w0, [x1, x2, SXTX #0]
713 ldrsb w0, [x1, w2, UXTW #0]
714 ldrsb w0, [x1, w2, SXTW #0]
715
716 ldrsb w0, [sp, x2]
717 ldrsb w0, [sp, x2, LSL #0] ; UXTX
718 ldrsb w0, [sp, x2, SXTX #0]
719 ldrsb w0, [sp, w2, UXTW #0]
720 ldrsb w0, [sp, w2, SXTW #0]
721
722 ldrh w0, [x1, x2]
723 ;ldrh w0, [x1, x2, LSL #0] ; UXTX
724 ldrh w0, [x1, x2, SXTX #0]
725 ldrh w0, [x1, x2, LSL #1] ; UXTX
726 ldrh w0, [x1, x2, SXTX #1]
727 ldrh w0, [x1, w2, UXTW #0]
728 ldrh w0, [x1, w2, SXTW #0]
729 ldrh w0, [x1, w2, UXTW #1]
730 ldrh w0, [x1, w2, SXTW #1]
731
732 ldrh w0, [sp, x2]
733 ;ldrh w0, [sp, x2, LSL #0] ; UXTX
734 ldrh w0, [sp, x2, SXTX #0]
735 ldrh w0, [sp, x2, LSL #1] ; UXTX
736 ldrh w0, [sp, x2, SXTX #1]
737 ldrh w0, [sp, w2, UXTW #0]
738 ldrh w0, [sp, w2, SXTW #0]
739 ldrh w0, [sp, w2, UXTW #1]
740 ldrh w0, [sp, w2, SXTW #1]
741
742 ldrsh w0, [x1, x2]
743 ;ldrsh w0, [x1, x2, LSL #0] ; UXTX
744 ldrsh w0, [x1, x2, SXTX #0]
745 ldrsh w0, [x1, x2, LSL #1] ; UXTX
746 ldrsh w0, [x1, x2, SXTX #1]
747 ldrsh w0, [x1, w2, UXTW #0]
748 ldrsh w0, [x1, w2, SXTW #0]
749 ldrsh w0, [x1, w2, UXTW #1]
750 ldrsh w0, [x1, w2, SXTW #1]
751
752 ldrsh w0, [sp, x2]
753 ;ldrsh w0, [sp, x2, LSL #0] ; UXTX
754 ldrsh w0, [sp, x2, SXTX #0]
755 ldrsh w0, [sp, x2, LSL #1] ; UXTX
756 ldrsh w0, [sp, x2, SXTX #1]
757 ldrsh w0, [sp, w2, UXTW #0]
758 ldrsh w0, [sp, w2, SXTW #0]
759 ldrsh w0, [sp, w2, UXTW #1]
760 ldrsh w0, [sp, w2, SXTW #1]
761
762 ldrsw x0, [x1, x2]
763 ;ldrsw x0, [x1, x2, LSL #0] ; UXTX
764 ldrsw x0, [x1, x2, SXTX #0]
765 ldrsw x0, [x1, x2, LSL #2] ; UXTX
766 ldrsw x0, [x1, x2, SXTX #2]
767 ldrsw x0, [x1, w2, UXTW #0]
768 ldrsw x0, [x1, w2, SXTW #0]
769 ldrsw x0, [x1, w2, UXTW #2]
770 ldrsw x0, [x1, w2, SXTW #2]
771
772 ldrsw x0, [sp, x2]
773 ;ldrsw x0, [sp, x2, LSL #0] ; UXTX
774 ldrsw x0, [sp, x2, SXTX #0]
775 ldrsw x0, [sp, x2, LSL #2] ; UXTX
776 ldrsw x0, [sp, x2, SXTX #2]
777 ldrsw x0, [sp, w2, UXTW #0]
778 ldrsw x0, [sp, w2, SXTW #0]
779 ldrsw x0, [sp, w2, UXTW #2]
780 ldrsw x0, [sp, w2, SXTW #2]
781
782 ; Memory stores
783 strb w0, [x28]
784 strb w0, [x28, #1]
785 strb w0, [x28, #4095]
786
787 strb w0, [sp]
788 strb w0, [sp, #1]
789 strb w0, [sp, #4095]
790
791 strh w0, [x28]
792 strh w0, [x28, #2]
793 strh w0, [x28, #1024]
794
795 strh w0, [sp]
796 strh w0, [sp, #2]
797 strh w0, [sp, #1024]
798
799 str x0, [x28]
800 str x0, [x28, #8]
801 str x0, [x28, #32760]
802
803 str x0, [sp]
804 str x0, [sp, #8]
805 str x0, [sp, #32760]
806
807 str w0, [x28]
808 str w0, [x28, #4]
809 str w0, [x28, #16380]
810
811 str w0, [sp]
812 str w0, [sp, #4]
813 str w0, [sp, #16380]
814
815 sturb w0, [x28]
816 sturb w0, [x28, #-256]
817 sturb w0, [x28, #255]
818
819 sturb w0, [sp]
820 sturb w0, [sp, #-256]
821 sturb w0, [sp, #255]
822
823 sturh w0, [x28]
824 sturh w0, [x28, #-256]
825 sturh w0, [x28, #255]
826
827 sturh w0, [sp]
828 sturh w0, [sp, #-256]
829 sturh w0, [sp, #255]
830
831 stur x0, [x28]
832 stur x0, [x28, #-256]
833 stur x0, [x28, #255]
834
835 stur x0, [sp]
836 stur x0, [sp, #-256]
837 stur x0, [sp, #255]
838
839 stur w0, [x28]
840 stur w0, [x28, #-256]
841 stur w0, [x28, #255]
842
843 stur w0, [sp]
844 stur w0, [sp, #-256]
845 stur w0, [sp, #255]
846
847 stp w0, w1, [x28]
848 stp w0, w1, [x28, #4]
849 stp w0, w1, [x28, #-256]
850 stp w0, w1, [x28, #252]
851
852 stp w0, w1, [sp]
853 stp w0, w1, [sp, #4]
854 stp w0, w1, [sp, #-256]
855 stp w0, w1, [sp, #252]
856
857 stp x0, x1, [x28]
858 stp x0, x1, [x28, #8]
859 stp x0, x1, [x28, #-512]
860 stp x0, x1, [x28, #504]
861
862 stp x0, x1, [sp]
863 stp x0, x1, [sp, #8]
864 stp x0, x1, [sp, #-512]
865 stp x0, x1, [sp, #504]
866
867 stp w0, w1, [x28, #4]!
868 stp w0, w1, [x28, #-256]!
869 stp w0, w1, [x28, #252]!
870
871 stp w0, w1, [sp, #4]!
872 stp w0, w1, [sp, #-256]!
873 stp w0, w1, [sp, #252]!
874
875 stp x0, x1, [x28, #8]!
876 stp x0, x1, [x28, #-512]!
877 stp x0, x1, [x28, #504]!
878
879 stp x0, x1, [sp, #8]!
880 stp x0, x1, [sp, #-512]!
881 stp x0, x1, [sp, #504]!
882
883 stp w0, w1, [x28], #4
884 stp w0, w1, [x28], #-256
885 stp w0, w1, [x28], #252
886
887 stp w0, w1, [sp], #4
888 stp w0, w1, [sp], #-256
889 stp w0, w1, [sp], #252
890
891 stp x0, x1, [x28], #8
892 stp x0, x1, [x28], #-512
893 stp x0, x1, [x28], #504
894
895 stp x0, x1, [sp], #8
896 stp x0, x1, [sp], #-512
897 stp x0, x1, [sp], #504
898
899 str x0, [x1, x2]
900 str w0, [x1, x2]
901 str x0, [x1, x2, SXTX #0]
902 str x0, [x1, x2, LSL #3] ; UXTX
903 str x0, [x1, x2, SXTX #3]
904 str w0, [x1, w2, UXTW #0]
905 str w0, [x1, w2, SXTW #0]
906 str w0, [x1, w2, UXTW #2]
907 str w0, [x1, w2, SXTW #2]
908
909 str x0, [sp, x2]
910 str w0, [sp, x2]
911 str x0, [sp, x2, SXTX #0]
912 str x0, [sp, x2, LSL #3] ; UXTX
913 str x0, [sp, x2, SXTX #3]
914 str w0, [sp, w2, UXTW #0]
915 str w0, [sp, w2, SXTW #0]
916 str w0, [sp, w2, UXTW #2]
917 str w0, [sp, w2, SXTW #2]
918
919 strb w0, [x1, x2]
920 strb w0, [x1, x2, LSL #0x0]
921 strb w0, [x1, x2, SXTX #0x0]
922 strb w0, [x1, w2, UXTW #0x0]
923 strb w0, [x1, w2, SXTW #0x0]
924
925 strb w0, [sp, x2]
926 strb w0, [sp, x2, LSL #0x0]
927 strb w0, [sp, x2, SXTX #0x0]
928 strb w0, [sp, w2, UXTW #0x0]
929 strb w0, [sp, w2, SXTW #0x0]
930
931 strh w0, [x1, x2]
932 ;strh w0, [x1, x2, LSL #0x0] ; UXTX
933 strh w0, [x1, x2, SXTX #0x0]
934 strh w0, [x1, x2, LSL #1] ; UXTX
935 strh w0, [x1, x2, SXTX #1]
936 strh w0, [x1, w2, UXTW #0x0]
937 strh w0, [x1, w2, SXTW #0x0]
938 strh w0, [x1, w2, UXTW #1]
939 strh w0, [x1, w2, SXTW #1]
940
941 strh w0, [sp, x2]
942 ;strh w0, [sp, x2, LSL #0x0] ; UXTX
943 strh w0, [sp, x2, SXTX #0x0]
944 strh w0, [sp, x2, LSL #1] ; UXTX
945 strh w0, [sp, x2, SXTX #1]
946 strh w0, [sp, w2, UXTW #0x0]
947 strh w0, [sp, w2, SXTW #0x0]
948 strh w0, [sp, w2, UXTW #1]
949 strh w0, [sp, w2, SXTW #1]
950
951 ; Conditional compare
952 ccmp x0, x1, #0x3, eq
953 ccmp w0, w1, #0xf, eq
954 ccmp x0, x1, #0x3, ne
955 ccmp w0, w1, #0xf, ne
956 ccmp x0, x1, #0x3, cs
957 ccmp w0, w1, #0xf, cc
958 ccmp x0, x1, #0x3, mi
959 ccmp w0, w1, #0xf, mi
960 ccmp x0, x1, #0x3, pl
961 ccmp w0, w1, #0xf, vs
962 ccmp x0, x1, #0x3, vc
963 ccmp w0, w1, #0xf, vc
964 ccmp x0, x1, #0x3, hi
965 ccmp w0, w1, #0xf, hi
966 ccmp x0, x1, #0x3, ls
967 ccmp w0, w1, #0xf, ls
968 ccmp x0, x1, #0x3, ge
969 ccmp w0, w1, #0xf, ge
970 ccmp x0, x1, #0x3, lt
971 ccmp w0, w1, #0xf, lt
972 ccmp x0, x1, #0x3, gt
973 ccmp w0, w1, #0xf, gt
974 ccmp x0, x1, #0x3, le
975 ccmp w0, w1, #0xf, le
976 ccmp x0, x1, #0x3, al
977 ccmp w0, w1, #0xf, al
978
979 ccmn x0, x1, #0x3, eq
980 ccmn w0, w1, #0xf, eq
981 ccmn x0, x1, #0x3, ne
982 ccmn w0, w1, #0xf, ne
983 ccmn x0, x1, #0x3, cs
984 ccmn w0, w1, #0xf, cc
985 ccmn x0, x1, #0x3, mi
986 ccmn w0, w1, #0xf, mi
987 ccmn x0, x1, #0x3, pl
988 ccmn w0, w1, #0xf, vs
989 ccmn x0, x1, #0x3, vc
990 ccmn w0, w1, #0xf, vc
991 ccmn x0, x1, #0x3, hi
992 ccmn w0, w1, #0xf, hi
993 ccmn x0, x1, #0x3, ls
994 ccmn w0, w1, #0xf, ls
995 ccmn x0, x1, #0x3, ge
996 ccmn w0, w1, #0xf, ge
997 ccmn x0, x1, #0x3, lt
998 ccmn w0, w1, #0xf, lt
999 ccmn x0, x1, #0x3, gt
1000 ccmn w0, w1, #0xf, gt
1001 ccmn x0, x1, #0x3, le
1002 ccmn w0, w1, #0xf, le
1003 ccmn x0, x1, #0x3, al
1004 ccmn w0, w1, #0xf, al
1005
1006 msr spsel, #1
1007 msr spsel, #0
1008 msr daifset, #0
1009 msr daifset, #15
1010 msr daifclr, #0
1011 msr daifclr, #15
1012 msr uao, #1
1013 msr uao, #0
1014 msr pan, #1
1015 msr pan, #0
1016 ; msr allint, #1 Not supported by the toolchain
1017 ; msr allint, #0 Not supported by the toolchain
1018 ;msr pm, #1 Not supported by the maca1 toolchain
1019 ;msr pm, #0 Not supported by the maca1 toolchain
1020 msr ssbs, #1
1021 msr ssbs, #0
1022 msr dit, #1
1023 msr dit, #0
1024 ; msr tco, #1 Not supported by the toolchain
1025 ; msr tco, #0 Not supported by the toolchain
1026 ; msr svcrsm, #1 Not supported by the toolchain
1027 ; msr svcrsm, #0 Not supported by the toolchain
1028 ; msr svcrza, #1 Not supported by the toolchain
1029 ; msr svcrza, #0 Not supported by the toolchain
1030 ; msr svcrsma, #1 Not supported by the toolchain
1031 ; msr svcrsma, #0 Not supported by the toolchain
1032
1033 ; Floating Point instructions.
1034 fmadd s0, s1, s3, s31
1035 fmadd d0, d1, d3, d31
1036 fmadd h0, h1, h3, h31
1037
1038 fmsub s0, s1, s3, s31
1039 fmsub d0, d1, d3, d31
1040 fmsub h0, h1, h3, h31
1041
1042 fnmadd s0, s1, s3, s31
1043 fnmadd d0, d1, d3, d31
1044 fnmadd h0, h1, h3, h31
1045
1046 fnmsub s0, s1, s3, s31
1047 fnmsub d0, d1, d3, d31
1048 fnmsub h0, h1, h3, h31
1049
1050 fcvtzu x0, s0, #1
1051 fcvtzu x0, s0, #31
1052 fcvtzu x0, s0, #63
1053 fcvtzu w0, s0, #1
1054 fcvtzu w0, s0, #32
1055
1056 fcvtzu x0, d0, #1
1057 fcvtzu x0, d0, #31
1058 fcvtzu x0, d0, #63
1059 fcvtzu w0, d0, #1
1060 fcvtzu w0, d0, #32
1061
1062 fcvtzu x0, h0, #1
1063 fcvtzu x0, h0, #31
1064 fcvtzu x0, h0, #63
1065 fcvtzu w0, h0, #1
1066 fcvtzu w0, h0, #32
1067
1068 fcvtzs x0, s0, #1
1069 fcvtzs x0, s0, #31
1070 fcvtzs x0, s0, #63
1071 fcvtzs w0, s0, #1
1072 fcvtzs w0, s0, #32
1073
1074 fcvtzs x0, d0, #1
1075 fcvtzs x0, d0, #31
1076 fcvtzs x0, d0, #63
1077 fcvtzs w0, d0, #1
1078 fcvtzs w0, d0, #32
1079
1080 fcvtzs x0, h0, #1
1081 fcvtzs x0, h0, #31
1082 fcvtzs x0, h0, #63
1083 fcvtzs w0, h0, #1
1084 fcvtzs w0, h0, #32
1085
1086 ucvtf s0, x0, #1
1087 ucvtf s0, x0, #31
1088 ucvtf s0, x0, #63
1089 ucvtf s0, w0, #1
1090 ucvtf s0, w0, #32
1091
1092 ucvtf d0, x0, #1
1093 ucvtf d0, x0, #31
1094 ucvtf d0, x0, #63
1095 ucvtf d0, w0, #1
1096 ucvtf d0, w0, #32
1097
1098 ucvtf h0, x0, #1
1099 ucvtf h0, x0, #31
1100 ucvtf h0, x0, #63
1101 ucvtf h0, w0, #1
1102 ucvtf h0, w0, #32
1103
1104 scvtf s0, x0, #1
1105 scvtf s0, x0, #31
1106 scvtf s0, x0, #63
1107 scvtf s0, w0, #1
1108 scvtf s0, w0, #32
1109
1110 scvtf d0, x0, #1
1111 scvtf d0, x0, #31
1112 scvtf d0, x0, #63
1113 scvtf d0, w0, #1
1114 scvtf d0, w0, #32
1115
1116 scvtf h0, x0, #1
1117 scvtf h0, x0, #31
1118 scvtf h0, x0, #63
1119 scvtf h0, w0, #1
1120 scvtf h0, w0, #32
1121
1122 fcsel s0, s1, s2, eq
1123 fcsel d0, d1, d2, eq
1124 fcsel h0, h1, h2, eq
1125
1126 fmul s0, s1, s2
1127 fmul d0, d1, d2
1128 fmul h0, h1, h2
1129
1130 fdiv s0, s1, s2
1131 fdiv d0, d1, d2
1132 fdiv h0, h1, h2
1133
1134 fadd s0, s1, s2
1135 fadd d0, d1, d2
1136 fadd h0, h1, h2
1137
1138 fsub s0, s1, s2
1139 fsub d0, d1, d2
1140 fsub h0, h1, h2
1141
1142 fmax s0, s1, s2
1143 fmax d0, d1, d2
1144 fmax h0, h1, h2
1145
1146 fmin s0, s1, s2
1147 fmin d0, d1, d2
1148 fmin h0, h1, h2
1149
1150 fmaxnm s0, s1, s2
1151 fmaxnm d0, d1, d2
1152 fmaxnm h0, h1, h2
1153
1154 fminnm s0, s1, s2
1155 fminnm d0, d1, d2
1156 fminnm h0, h1, h2
1157
1158 fnmul s0, s1, s2
1159 fnmul d0, d1, d2
1160 fnmul h0, h1, h2
1161
1162 fccmp s0, s1, #0, eq
1163 fccmp s0, s1, #15, ne
1164 fccmp d0, d1, #0, eq
1165 fccmp d0, d1, #15, ne
1166 fccmp h0, h1, #0, eq
1167 fccmp h0, h1, #15, ne
1168
1169 fccmpe s0, s1, #0, eq
1170 fccmpe s0, s1, #15, ne
1171 fccmpe d0, d1, #0, eq
1172 fccmpe d0, d1, #15, ne
1173 fccmpe h0, h1, #0, eq
1174 fccmpe h0, h1, #15, ne
1175
1176 ;fmov s0, #1 @todo Needs FP immediate parsing
1177
1178 fcmp s0, s1
1179 ;fcmp s0, #0.0
1180 fcmp d0, d1
1181 ;fcmp d0, #0.0
1182 fcmp h0, h1
1183 ;fcmp h0, #0.0
1184
1185 fcmpe s0, s1
1186 ;fcmpe s0, #0.0
1187 fcmpe d0, d1
1188 ;fcmpe d0, #0.0
1189 fcmpe h0, h1
1190 ;fcmpe h0, #0.0
1191
1192 fmov s0, s1
1193 fmov d0, d1
1194 fmov h0, h1
1195
1196 fabs s0, s1
1197 fabs d0, d1
1198 fabs h0, h1
1199
1200 fneg s0, s1
1201 fneg d0, d1
1202 fneg h0, h1
1203
1204 fsqrt s0, s1
1205 fsqrt d0, d1
1206 fsqrt h0, h1
1207
1208 fcvt s0, d1
1209 fcvt s0, h1
1210 fcvt d0, s1
1211 fcvt d0, h1
1212 fcvt h0, s1
1213 fcvt h0, d1
1214
1215 frintn s0, s1
1216 frintn d0, d1
1217 frintn h0, h1
1218
1219 frintp s0, s1
1220 frintp d0, d1
1221 frintp h0, h1
1222
1223 frintm s0, s1
1224 frintm d0, d1
1225 frintm h0, h1
1226
1227 frintz s0, s1
1228 frintz d0, d1
1229 frintz h0, h1
1230
1231 frinta s0, s1
1232 frinta d0, d1
1233 frinta h0, h1
1234
1235 frintx s0, s1
1236 frintx d0, d1
1237 frintx h0, h1
1238
1239 frinti s0, s1
1240 frinti d0, d1
1241 frinti h0, h1
1242
1243 frint32z s0, s1
1244 frint32z d0, d1
1245
1246 frint32x s0, s1
1247 frint32x d0, d1
1248
1249 frint64z s0, s1
1250 frint64z d0, d1
1251
1252 frint64x s0, s1
1253 frint64x d0, d1
1254
1255 sshr d0, d1, #1
1256 sshr d0, d1, #64
1257
1258 ssra d0, d1, #1
1259 ssra d0, d1, #64
1260
1261 srshr d0, d1, #1
1262 srshr d0, d1, #64
1263
1264 srsra d0, d1, #1
1265 srsra d0, d1, #64
1266
1267 ; @todo
1268 ;shl d0, d1, #0
1269 ;shl d0, d1, #63
1270
1271 ;sqshl d0, d1, #0
1272 ;sqshl d0, d1, #63
1273
1274 ;sqshrn q0, q1, #1
1275 ;sqshrn q0, q1, #64
1276
1277 ;sqrshrn q0, dq, #1
1278 ;sqrshrn q0, q1, #64
1279
1280 dsb #0
1281 dsb #1
1282 dsb #2
1283 dsb #3
1284 dsb #4
1285 dsb #5
1286 dsb #6
1287 dsb #7
1288 dsb #8
1289 dsb #9
1290 dsb #0xa
1291 dsb #0xb
1292 dsb #0xc
1293 dsb #0xd
1294 dsb #0xe
1295 dsb #0xf
1296
1297 ;subps x0, x1, x3 - Requires FEAT_MTE
1298 ;subps x0, sp, sp - Requires FEAT_MTE
1299
1300 ;subp x0, x1, x3 - Requires FEAT_MTE
1301 ;subp x0, sp, sp - Requires FEAT_MTE
1302
1303 ;gmi x0, x1, x3 - Requires FEAT_MTE
1304 ;gmi x0, sp, x3 - Requires FEAT_MTE
1305
1306 ;irg x0, x1, x3 - Requires FEAT_MTE
1307 ;irg x0, x1, xzr - Requires FEAT_MTE
1308 ;irg sp, sp, x3 - Requires FEAT_MTE
1309 ;irg sp, sp, xzr - Requires FEAT_MTE
1310
1311 udiv w0, w1, wzr
1312 udiv x0, x1, xzr
1313
1314 sdiv w0, w1, wzr
1315 sdiv x0, x1, xzr
1316
1317 lslv w0, w1, wzr
1318 lslv x0, x1, xzr
1319
1320 lsrv w0, w1, wzr
1321 lsrv x0, x1, xzr
1322
1323 asrv w0, w1, wzr
1324 asrv x0, x1, xzr
1325
1326 rorv w0, w1, wzr
1327 rorv x0, x1, xzr
1328
1329 crc32b w0, w1, wzr
1330 crc32w w0, w1, wzr
1331 crc32h w0, w1, wzr
1332
1333 crc32cb w0, w1, wzr
1334 crc32cw w0, w1, wzr
1335 crc32ch w0, w1, wzr
1336
1337 crc32x w0, w1, x3
1338 crc32x w0, w1, xzr
1339
1340 crc32cx w0, w1, x3
1341 crc32cx w0, w1, xzr
1342
1343 ;umax w0, w1, wzr - Requires FEAT_CSSC
1344 ;umax x0, x1, xzr - Requires FEAT_CSSC
1345
1346 ;smax w0, w1, wzr - Requires FEAT_CSSC
1347 ;smax x0, x1, xzr - Requires FEAT_CSSC
1348
1349 ;umin w0, w1, wzr - Requires FEAT_CSSC
1350 ;umin x0, x1, xzr - Requires FEAT_CSSC
1351
1352 ;smin w0, w1, wzr - Requires FEAT_CSSC
1353 ;smin x0, x1, xzr - Requires FEAT_CSSC
1354
1355 rbit w0, wzr
1356 rbit w0, w1
1357 rbit x0, xzr
1358 rbit x0, x1
1359
1360 rev16 w0, wzr
1361 rev16 w0, w1
1362 rev16 x0, xzr
1363 rev16 x0, x1
1364
1365 rev w0, wzr
1366 rev w0, w1
1367 rev x0, xzr
1368 rev x0, x1
1369
1370 ; @todo rev32
1371
1372 clz w0, wzr
1373 clz w0, w1
1374 clz x0, xzr
1375 clz x0, x1
1376
1377 cls w0, wzr
1378 cls w0, w1
1379 cls x0, xzr
1380 cls x0, x1
1381
1382 ;ctz w0, wzr - Requires FEAT_CSSC
1383 ;ctz w0, w1 - Requires FEAT_CSSC
1384 ;ctz x0, xzr - Requires FEAT_CSSC
1385 ;ctz x0, x1 - Requires FEAT_CSSC
1386
1387 ;cnt w0, wzr - Requires FEAT_CSSC
1388 ;cnt w0, w1 - Requires FEAT_CSSC
1389 ;cnt x0, xzr - Requires FEAT_CSSC
1390 ;cnt x0, x1 - Requires FEAT_CSSC
1391
1392 ;
1393 ; Keep last so the testcase can catch errors in
1394 ; the disassembly of the last instruction.
1395 ;
1396 nop
1397
1398.private_extern _TestProcA64_EndProc
1399_TestProcA64_EndProc:
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette