VirtualBox

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

Last change on this file since 106659 was 106659, checked in by vboxsync, 6 months ago

Disassembler: Decode post-indexed load/store instructions, bugref:10394

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 39.2 KB
Line 
1/* $Id: tstDisasmArmv8-1-asm.S 106659 2024-10-24 12:55:19Z 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 retaa
99 retab
100 br x15
101 braaz x15
102 brabz xzr
103 blr x15
104 blraaz x15
105 blrabz xzr
106 eret
107 eretaa
108 eretab
109 drps
110 braa xzr, sp
111 braa x0, x1
112 brab xzr, sp
113 brab x0, x1
114 blraa xzr, sp
115 blraa x0, x1
116 blrab xzr, sp
117 blrab x0, x1
118
119 ; System register access instructions
120 msr ttbr0_el1, x0
121 mrs x0, ttbr0_el1
122
123 ; Arithmetic instructions
124 add x0, x0, #0x0
125 add x0, x1, #0x10000
126 add x0, x1, #65536
127 add x0, x0, x0
128 add x0, x1, x29
129 add x0, x1, x28, LSL #1
130 add x0, x1, x28, LSL #63
131 add x0, x1, x28, LSR #1
132 add x0, x1, x28, LSR #63
133 add x0, x1, x28, ASR #1
134 add x0, x1, x28, ASR #63
135 ; ROR is reserved
136
137 add w0, w1, #0x0
138 add w0, w1, #0x10000
139 add w0, w1, #65536
140 add w0, w1, w29
141 add w0, w1, w28, LSL #1
142 add w0, w1, w28, LSL #31
143 add w0, w1, w28, LSR #1
144 add w0, w1, w28, LSR #31
145 add w0, w1, w28, ASR #1
146 add w0, w1, w28, ASR #31
147 ; ROR is reserved
148
149 adds x0, x0, #0x0
150 adds x0, x1, #0x10000
151 adds x0, x1, #65536
152 adds x0, x0, x0
153 adds x0, x1, x29
154 adds x0, x1, x28, LSL #1
155 adds x0, x1, x28, LSL #63
156 adds x0, x1, x28, LSR #1
157 adds x0, x1, x28, LSR #63
158 adds x0, x1, x28, ASR #1
159 adds x0, x1, x28, ASR #63
160 ; ROR is reserved
161
162 adds w0, w1, #0x0
163 adds w0, w1, #0x10000
164 adds w0, w1, #65536
165 adds w0, w1, w29
166 adds w0, w1, w28, LSL #1
167 adds w0, w1, w28, LSL #31
168 adds w0, w1, w28, LSR #1
169 adds w0, w1, w28, LSR #31
170 adds w0, w1, w28, ASR #1
171 adds w0, w1, w28, ASR #31
172 ; ROR is reserved
173
174 sub x0, x0, #0x0
175 sub x0, x1, #0x10000
176 sub x0, x1, #65536
177 sub x0, x0, x0
178 sub x0, x1, x29
179 sub x0, x1, x28, LSL #1
180 sub x0, x1, x28, LSL #63
181 sub x0, x1, x28, LSR #1
182 sub x0, x1, x28, LSR #63
183 sub x0, x1, x28, ASR #1
184 sub x0, x1, x28, ASR #63
185 ; ROR is reserved
186
187 sub w0, w1, #0x0
188 sub w0, w1, #0x10000
189 sub w0, w1, #65536
190 sub w0, w1, w29
191 sub w0, w1, w28, LSL #1
192 sub w0, w1, w28, LSL #31
193 sub w0, w1, w28, LSR #1
194 sub w0, w1, w28, LSR #31
195 sub w0, w1, w28, ASR #1
196 sub w0, w1, w28, ASR #31
197 ; ROR is reserved
198
199 subs x0, x0, #0x0
200 subs x0, x1, #0x10000
201 subs x0, x1, #65536
202 subs x0, x0, x0
203 subs x0, x1, x29
204 subs x0, x1, x28, LSL #1
205 subs x0, x1, x28, LSL #63
206 subs x0, x1, x28, LSR #1
207 subs x0, x1, x28, LSR #63
208 subs x0, x1, x28, ASR #1
209 subs x0, x1, x28, ASR #63
210 ; ROR is reserved
211
212 subs w0, w1, #0x0
213 subs w0, w1, #0x10000
214 subs w0, w1, #65536
215 subs w0, w1, w29
216 subs w0, w1, w28, LSL #1
217 subs w0, w1, w28, LSL #31
218 subs w0, w1, w28, LSR #1
219 subs w0, w1, w28, LSR #31
220 subs w0, w1, w28, ASR #1
221 subs w0, w1, w28, ASR #31
222 ; ROR is reserved
223
224 ; Aliases of subs -> cmp
225 cmp x0, x1
226 cmp w0, w1
227 cmp x0, x1, LSL #1
228 cmp w0, w1, LSL #1
229
230 ; Logical instructions
231 and x0, x0, #0xffff
232 and w0, wzr, #0xffff
233
234 ands x0, x0, #0x00ffff00
235 ands w10, w23, #0x55555555
236
237 orr x0, x0, #0xffff
238 orr w0, wzr, #0xffff
239
240 mov x0, x1 ; Alias of orr
241 mov w0, w1 ; Alias of orr
242
243 eor x0, x0, #0x00ffff00
244 eor w10, w23, #0x55555555
245
246 sbfm x0, x0, #0x1, #0x2
247 sbfm w0, w0, #0xf, #0x9
248 bfm x0, x0, #0x1, #0x2
249 bfm w0, w0, #0xf, #0x9
250 ubfm x0, x0, #0x1, #0x2
251 ubfm w0, w0, #0xf, #0x9
252
253 movn x0, #0xffff
254 movn x0, #0xffff, LSL #16
255 movn w0, #0xffff
256 movn w0, #0xffff, LSL #16
257
258 movz x0, #0xffff
259 movz x0, #0xffff, LSL #48
260 movz w0, #0xffff
261 movz w0, #0xffff, LSL #16
262
263 movk x0, #0xffff
264 movk x0, #0xffff, LSL #32
265 movk w0, #0xffff
266 movk w0, #0xffff, LSL #16
267
268 ; Logical instructions with a shifted register
269 and w0, w0, w27
270 and w0, w1, w28, LSL #1
271 and w0, w1, w28, LSL #31
272 and w0, w1, w28, LSR #1
273 and w0, w1, w28, LSR #31
274 and w0, w1, w28, ASR #1
275 and w0, w1, w28, ASR #31
276 and w0, w1, w28, ROR #1
277 and w0, w1, w28, ROR #31
278
279 and x0, x0, x27
280 and x0, x1, x28, LSL #1
281 and x0, x1, x28, LSL #63
282 and x0, x1, x28, LSR #1
283 and x0, x1, x28, LSR #63
284 and x0, x1, x28, ASR #1
285 and x0, x1, x28, ASR #63
286 and x0, x1, x28, ROR #1
287 and x0, x1, x28, ROR #63
288
289 orr w0, w0, w27
290 orr w0, w1, w28, LSL #1
291 orr w0, w1, w28, LSL #31
292 orr w0, w1, w28, LSR #1
293 orr w0, w1, w28, LSR #31
294 orr w0, w1, w28, ASR #1
295 orr w0, w1, w28, ASR #31
296 orr w0, w1, w28, ROR #1
297 orr w0, w1, w28, ROR #31
298
299 orr x0, x0, x27
300 orr x0, x1, x28, LSL #1
301 orr x0, x1, x28, LSL #63
302 orr x0, x1, x28, LSR #1
303 orr x0, x1, x28, LSR #63
304 orr x0, x1, x28, ASR #1
305 orr x0, x1, x28, ASR #63
306 orr x0, x1, x28, ROR #1
307 orr x0, x1, x28, ROR #63
308
309 eor w0, w0, w27
310 eor w0, w1, w28, LSL #1
311 eor w0, w1, w28, LSL #31
312 eor w0, w1, w28, LSR #1
313 eor w0, w1, w28, LSR #31
314 eor w0, w1, w28, ASR #1
315 eor w0, w1, w28, ASR #31
316 eor w0, w1, w28, ROR #1
317 eor w0, w1, w28, ROR #31
318
319 eor x0, x0, x27
320 eor x0, x1, x28, LSL #1
321 eor x0, x1, x28, LSL #63
322 eor x0, x1, x28, LSR #1
323 eor x0, x1, x28, LSR #63
324 eor x0, x1, x28, ASR #1
325 eor x0, x1, x28, ASR #63
326 eor x0, x1, x28, ROR #1
327 eor x0, x1, x28, ROR #63
328
329 ands x0, x0, x27
330 ands x0, x1, x28, LSL #1
331 ands x0, x1, x28, LSL #63
332 ands x0, x1, x28, LSR #1
333 ands x0, x1, x28, LSR #63
334 ands x0, x1, x28, ASR #1
335 ands x0, x1, x28, ASR #63
336 ands x0, x1, x28, ROR #1
337 ands x0, x1, x28, ROR #63
338
339 bic w0, w0, w27
340 bic w0, w1, w28, LSL #1
341 bic w0, w1, w28, LSL #31
342 bic w0, w1, w28, LSR #1
343 bic w0, w1, w28, LSR #31
344 bic w0, w1, w28, ASR #1
345 bic w0, w1, w28, ASR #31
346 bic w0, w1, w28, ROR #1
347 bic w0, w1, w28, ROR #31
348
349 bic wzr, wzr, wzr
350 bic wzr, wzr, wzr, LSL #1
351 bic wzr, wzr, wzr, LSL #31
352 bic wzr, wzr, wzr, LSR #1
353 bic wzr, wzr, wzr, LSR #31
354 bic wzr, wzr, wzr, ASR #1
355 bic wzr, wzr, wzr, ASR #31
356 bic wzr, wzr, wzr, ROR #1
357 bic wzr, wzr, wzr, ROR #31
358
359 bic x0, x0, x27
360 bic x0, x1, x28, LSL #1
361 bic x0, x1, x28, LSL #63
362 bic x0, x1, x28, LSR #1
363 bic x0, x1, x28, LSR #63
364 bic x0, x1, x28, ASR #1
365 bic x0, x1, x28, ASR #63
366 bic x0, x1, x28, ROR #1
367 bic x0, x1, x28, ROR #63
368
369 bic xzr, xzr, xzr
370 bic xzr, xzr, xzr, LSL #1
371 bic xzr, xzr, xzr, LSL #63
372 bic xzr, xzr, xzr, LSR #1
373 bic xzr, xzr, xzr, LSR #63
374 bic xzr, xzr, xzr, ASR #1
375 bic xzr, xzr, xzr, ASR #63
376 bic xzr, xzr, xzr, ROR #1
377 bic xzr, xzr, xzr, ROR #63
378
379 orn w0, w0, w27
380 orn w0, w1, w28, LSL #1
381 orn w0, w1, w28, LSL #31
382 orn w0, w1, w28, LSR #1
383 orn w0, w1, w28, LSR #31
384 orn w0, w1, w28, ASR #1
385 orn w0, w1, w28, ASR #31
386 orn w0, w1, w28, ROR #1
387 orn w0, w1, w28, ROR #31
388
389 orn wzr, wzr, wzr
390 orn wzr, wzr, wzr, LSL #1
391 orn wzr, wzr, wzr, LSL #31
392 orn wzr, wzr, wzr, LSR #1
393 orn wzr, wzr, wzr, LSR #31
394 orn wzr, wzr, wzr, ASR #1
395 orn wzr, wzr, wzr, ASR #31
396 orn wzr, wzr, wzr, ROR #1
397 orn wzr, wzr, wzr, ROR #31
398
399 orn x0, x0, x27
400 orn x0, x1, x28, LSL #1
401 orn x0, x1, x28, LSL #63
402 orn x0, x1, x28, LSR #1
403 orn x0, x1, x28, LSR #63
404 orn x0, x1, x28, ASR #1
405 orn x0, x1, x28, ASR #63
406 orn x0, x1, x28, ROR #1
407 orn x0, x1, x28, ROR #63
408
409 orn xzr, xzr, xzr
410 orn xzr, xzr, xzr, LSL #1
411 orn xzr, xzr, xzr, LSL #63
412 orn xzr, xzr, xzr, LSR #1
413 orn xzr, xzr, xzr, LSR #63
414 orn xzr, xzr, xzr, ASR #1
415 orn xzr, xzr, xzr, ASR #63
416 orn xzr, xzr, xzr, ROR #1
417 orn xzr, xzr, xzr, ROR #63
418
419 eon w0, w0, w27
420 eon w0, w1, w28, LSL #1
421 eon w0, w1, w28, LSL #31
422 eon w0, w1, w28, LSR #1
423 eon w0, w1, w28, LSR #31
424 eon w0, w1, w28, ASR #1
425 eon w0, w1, w28, ASR #31
426 eon w0, w1, w28, ROR #1
427 eon w0, w1, w28, ROR #31
428
429 eon wzr, wzr, wzr
430 eon wzr, wzr, wzr, LSL #1
431 eon wzr, wzr, wzr, LSL #31
432 eon wzr, wzr, wzr, LSR #1
433 eon wzr, wzr, wzr, LSR #31
434 eon wzr, wzr, wzr, ASR #1
435 eon wzr, wzr, wzr, ASR #31
436 eon wzr, wzr, wzr, ROR #1
437 eon wzr, wzr, wzr, ROR #31
438
439 eon x0, x0, x27
440 eon x0, x1, x28, LSL #1
441 eon x0, x1, x28, LSL #63
442 eon x0, x1, x28, LSR #1
443 eon x0, x1, x28, LSR #63
444 eon x0, x1, x28, ASR #1
445 eon x0, x1, x28, ASR #63
446 eon x0, x1, x28, ROR #1
447 eon x0, x1, x28, ROR #63
448
449 eon xzr, xzr, xzr
450 eon xzr, xzr, xzr, LSL #1
451 eon xzr, xzr, xzr, LSL #63
452 eon xzr, xzr, xzr, LSR #1
453 eon xzr, xzr, xzr, LSR #63
454 eon xzr, xzr, xzr, ASR #1
455 eon xzr, xzr, xzr, ASR #63
456 eon xzr, xzr, xzr, ROR #1
457 eon xzr, xzr, xzr, ROR #63
458
459 bics w0, w0, w27
460 bics w0, w1, w28, LSL #1
461 bics w0, w1, w28, LSL #31
462 bics w0, w1, w28, LSR #1
463 bics w0, w1, w28, LSR #31
464 bics w0, w1, w28, ASR #1
465 bics w0, w1, w28, ASR #31
466 bics w0, w1, w28, ROR #1
467 bics w0, w1, w28, ROR #31
468
469 bics wzr, wzr, wzr
470 bics wzr, wzr, wzr, LSL #1
471 bics wzr, wzr, wzr, LSL #31
472 bics wzr, wzr, wzr, LSR #1
473 bics wzr, wzr, wzr, LSR #31
474 bics wzr, wzr, wzr, ASR #1
475 bics wzr, wzr, wzr, ASR #31
476 bics wzr, wzr, wzr, ROR #1
477 bics wzr, wzr, wzr, ROR #31
478
479 bics x0, x0, x27
480 bics x0, x1, x28, LSL #1
481 bics x0, x1, x28, LSL #63
482 bics x0, x1, x28, LSR #1
483 bics x0, x1, x28, LSR #63
484 bics x0, x1, x28, ASR #1
485 bics x0, x1, x28, ASR #63
486 bics x0, x1, x28, ROR #1
487 bics x0, x1, x28, ROR #63
488
489 bics xzr, xzr, xzr
490 bics xzr, xzr, xzr, LSL #1
491 bics xzr, xzr, xzr, LSL #63
492 bics xzr, xzr, xzr, LSR #1
493 bics xzr, xzr, xzr, LSR #63
494 bics xzr, xzr, xzr, ASR #1
495 bics xzr, xzr, xzr, ASR #63
496 bics xzr, xzr, xzr, ROR #1
497 bics xzr, xzr, xzr, ROR #63
498
499 ; Memory loads
500 ldrb w0, [x28]
501 ldrb w0, [x28, #1]
502 ldrb w0, [x28, #4095]
503
504 ldrb w0, [sp]
505 ldrb w0, [sp, #1]
506 ldrb w0, [sp, #4095]
507
508 ldrsb w0, [x28]
509 ldrsb w0, [x28, #1]
510 ldrsb w0, [x28, #4095]
511
512 ldrsb w0, [sp]
513 ldrsb w0, [sp, #1]
514 ldrsb w0, [sp, #4095]
515
516 ldrsb x0, [x28]
517 ldrsb x0, [x28, #1]
518 ldrsb x0, [x28, #4095]
519
520 ldrsb x0, [sp]
521 ldrsb x0, [sp, #1]
522 ldrsb x0, [sp, #4095]
523
524 ldrh w0, [x28]
525 ldrh w0, [x28, #2]
526 ldrh w0, [x28, #1024]
527
528 ldrh w0, [sp]
529 ldrh w0, [sp, #2]
530 ldrh w0, [sp, #1024]
531
532 ldrsh w0, [x28]
533 ldrsh w0, [x28, #2]
534 ldrsh w0, [x28, #1024]
535
536 ldrsh w0, [sp]
537 ldrsh w0, [sp, #2]
538 ldrsh w0, [sp, #1024]
539
540 ldrsh x0, [x28]
541 ldrsh x0, [x28, #2]
542 ldrsh x0, [x28, #1024]
543
544 ldrsh x0, [sp]
545 ldrsh x0, [sp, #2]
546 ldrsh x0, [sp, #1024]
547
548 ldr x0, [x28]
549 ldr x0, [x28, #8]
550 ldr x0, [x28, #32760]
551
552 ldr x0, [sp]
553 ldr x0, [sp, #8]
554 ldr x0, [sp, #32760]
555
556 ldr w0, [x28]
557 ldr w0, [x28, #4]
558 ldr w0, [x28, #16380]
559
560 ldr w0, [sp]
561 ldr w0, [sp, #4]
562 ldr w0, [sp, #16380]
563
564 ldrsw x0, [x28]
565 ldrsw x0, [x28, #4]
566 ldrsw x0, [x28, #16380]
567
568 ldrsw x0, [sp]
569 ldrsw x0, [sp, #4]
570 ldrsw x0, [sp, #16380]
571
572 ldrb w0, [x28, #0]!
573 ldrb w0, [x28, #-256]!
574 ldrb w0, [x28, #255]!
575
576 ldrb w0, [sp, #0]!
577 ldrb w0, [sp, #-256]!
578 ldrb w0, [sp, #255]!
579
580 ldrsb w0, [x28, #0]!
581 ldrsb w0, [x28, #-256]!
582 ldrsb w0, [x28, #255]!
583
584 ldrsb w0, [sp, #0]!
585 ldrsb w0, [sp, #-256]!
586 ldrsb w0, [sp, #255]!
587
588 ldrsb x0, [x28, #0]!
589 ldrsb x0, [x28, #-256]!
590 ldrsb x0, [x28, #255]!
591
592 ldrsb x0, [sp, #0]!
593 ldrsb x0, [sp, #-256]!
594 ldrsb x0, [sp, #255]!
595
596 ldrh w0, [x28, #0]!
597 ldrh w0, [x28, #-256]!
598 ldrh w0, [x28, #255]!
599
600 ldrh w0, [sp, #0]!
601 ldrh w0, [sp, #-256]!
602 ldrh w0, [sp, #255]!
603
604 ldrsh w0, [x28, #0]!
605 ldrsh w0, [x28, #-256]!
606 ldrsh w0, [x28, #255]!
607
608 ldrsh w0, [sp, #0]!
609 ldrsh w0, [sp, #-256]!
610 ldrsh w0, [sp, #255]!
611
612 ldrsh x0, [x28, #0]!
613 ldrsh x0, [x28, #-256]!
614 ldrsh x0, [x28, #255]!
615
616 ldrsh x0, [sp, #0]!
617 ldrsh x0, [sp, #-256]!
618 ldrsh x0, [sp, #255]!
619
620 ldr x0, [x28, #0]!
621 ldr x0, [x28, #-256]!
622 ldr x0, [x28, #255]!
623
624 ldr x0, [sp, #0]!
625 ldr x0, [sp, #-256]!
626 ldr x0, [sp, #255]!
627
628 ldr w0, [x28, #0]!
629 ldr w0, [x28, #-256]!
630 ldr w0, [x28, #255]!
631
632 ldr w0, [sp, #0]!
633 ldr w0, [sp, #-256]!
634 ldr w0, [sp, #255]!
635
636 ldrsw x0, [x28, #0]!
637 ldrsw x0, [x28, #-256]!
638 ldrsw x0, [x28, #255]!
639
640 ldrsw x0, [sp, #0]!
641 ldrsw x0, [sp, #-256]!
642 ldrsw x0, [sp, #255]!
643
644 ldrb w0, [x28], #0
645 ldrb w0, [x28], #-256
646 ldrb w0, [x28], #255
647
648 ldrb w0, [sp], #0
649 ldrb w0, [sp], #-256
650 ldrb w0, [sp], #255
651
652 ldrsb w0, [x28], #0
653 ldrsb w0, [x28], #-256
654 ldrsb w0, [x28], #255
655
656 ldrsb w0, [sp], #0
657 ldrsb w0, [sp], #-256
658 ldrsb w0, [sp], #255
659
660 ldrsb x0, [x28], #0
661 ldrsb x0, [x28], #-256
662 ldrsb x0, [x28], #255
663
664 ldrsb x0, [sp], #0
665 ldrsb x0, [sp], #-256
666 ldrsb x0, [sp], #255
667
668 ldrh w0, [x28], #0
669 ldrh w0, [x28], #-256
670 ldrh w0, [x28], #255
671
672 ldrh w0, [sp], #0
673 ldrh w0, [sp], #-256
674 ldrh w0, [sp], #255
675
676 ldrsh w0, [x28], #0
677 ldrsh w0, [x28], #-256
678 ldrsh w0, [x28], #255
679
680 ldrsh w0, [sp], #0
681 ldrsh w0, [sp], #-256
682 ldrsh w0, [sp], #255
683
684 ldrsh x0, [x28], #0
685 ldrsh x0, [x28], #-256
686 ldrsh x0, [x28], #255
687
688 ldrsh x0, [sp], #0
689 ldrsh x0, [sp], #-256
690 ldrsh x0, [sp], #255
691
692 ldr x0, [x28], #0
693 ldr x0, [x28], #-256
694 ldr x0, [x28], #255
695
696 ldr x0, [sp], #0
697 ldr x0, [sp], #-256
698 ldr x0, [sp], #255
699
700 ldr w0, [x28], #0
701 ldr w0, [x28], #-256
702 ldr w0, [x28], #255
703
704 ldr w0, [sp], #0
705 ldr w0, [sp], #-256
706 ldr w0, [sp], #255
707
708 ldrsw x0, [x28], #0
709 ldrsw x0, [x28], #-256
710 ldrsw x0, [x28], #255
711
712 ldrsw x0, [sp], #0
713 ldrsw x0, [sp], #-256
714 ldrsw x0, [sp], #255
715
716
717 ldurb w0, [x28]
718 ldurb w0, [x28, #-256]
719 ldurb w0, [x28, #255]
720
721 ldurb w0, [sp]
722 ldurb w0, [sp, #-256]
723 ldurb w0, [sp, #255]
724
725 ldursb w0, [x28]
726 ldursb w0, [x28, #-256]
727 ldursb w0, [x28, #255]
728
729 ldursb w0, [sp]
730 ldursb w0, [sp, #-256]
731 ldursb w0, [sp, #255]
732
733 ldursb x0, [x28]
734 ldursb x0, [x28, #-256]
735 ldursb x0, [x28, #255]
736
737 ldursb x0, [sp]
738 ldursb x0, [sp, #-256]
739 ldursb x0, [sp, #255]
740
741 ldurh w0, [x28]
742 ldurh w0, [x28, #-256]
743 ldurh w0, [x28, #255]
744
745 ldurh w0, [sp]
746 ldurh w0, [sp, #-256]
747 ldurh w0, [sp, #255]
748
749 ldursh w0, [x28]
750 ldursh w0, [x28, #-256]
751 ldursh w0, [x28, #255]
752
753 ldursh w0, [sp]
754 ldursh w0, [sp, #-256]
755 ldursh w0, [sp, #255]
756
757 ldursh x0, [x28]
758 ldursh x0, [x28, #-256]
759 ldursh x0, [x28, #255]
760
761 ldursh x0, [sp]
762 ldursh x0, [sp, #-256]
763 ldursh x0, [sp, #255]
764
765 ldur x0, [x28]
766 ldur x0, [x28, #-256]
767 ldur x0, [x28, #255]
768
769 ldur x0, [sp]
770 ldur x0, [sp, #-256]
771 ldur x0, [sp, #255]
772
773 ldur w0, [x28]
774 ldur w0, [x28, #-256]
775 ldur w0, [x28, #255]
776
777 ldur w0, [sp]
778 ldur w0, [sp, #-256]
779 ldur w0, [sp, #255]
780
781 ldursw x0, [x28]
782 ldursw x0, [x28, #-256]
783 ldursw x0, [x28, #255]
784
785 ldursw x0, [sp]
786 ldursw x0, [sp, #-256]
787 ldursw x0, [sp, #255]
788
789 ldp w0, w1, [x28]
790 ldp w0, w1, [x28, #4]
791 ldp w0, w1, [x28, #-256]
792 ldp w0, w1, [x28, #252]
793
794 ldp w0, w1, [sp]
795 ldp w0, w1, [sp, #4]
796 ldp w0, w1, [sp, #-256]
797 ldp w0, w1, [sp, #252]
798
799 ldp x0, x1, [x28]
800 ldp x0, x1, [x28, #8]
801 ldp x0, x1, [x28, #-512]
802 ldp x0, x1, [x28, #504]
803
804 ldp x0, x1, [sp]
805 ldp x0, x1, [sp, #8]
806 ldp x0, x1, [sp, #-512]
807 ldp x0, x1, [sp, #504]
808
809 ldp w0, w1, [x28, #4]!
810 ldp w0, w1, [x28, #-256]!
811 ldp w0, w1, [x28, #252]!
812
813 ldp w0, w1, [sp, #4]!
814 ldp w0, w1, [sp, #-256]!
815 ldp w0, w1, [sp, #252]!
816
817 ldp x0, x1, [x28, #8]!
818 ldp x0, x1, [x28, #-512]!
819 ldp x0, x1, [x28, #504]!
820
821 ldp x0, x1, [sp, #8]!
822 ldp x0, x1, [sp, #-512]!
823 ldp x0, x1, [sp, #504]!
824
825 ldp w0, w1, [x28], #4
826 ldp w0, w1, [x28], #-256
827 ldp w0, w1, [x28], #252
828
829 ldp w0, w1, [sp], #4
830 ldp w0, w1, [sp], #-256
831 ldp w0, w1, [sp], #252
832
833 ldp x0, x1, [x28], #8
834 ldp x0, x1, [x28], #-512
835 ldp x0, x1, [x28], #504
836
837 ldp x0, x1, [sp], #8
838 ldp x0, x1, [sp], #-512
839 ldp x0, x1, [sp], #504
840
841 ldr x0, [x1, x2]
842 ldr w0, [x1, x2]
843 ldr x0, [x1, x2, SXTX #0]
844 ldr x0, [x1, x2, LSL #3] ; UXTX
845 ldr x0, [x1, x2, SXTX #3]
846 ldr w0, [x1, w2, UXTW #0]
847 ldr w0, [x1, w2, SXTW #0]
848 ldr w0, [x1, w2, UXTW #2]
849 ldr w0, [x1, w2, SXTW #2]
850
851 ldr x0, [sp, x2]
852 ldr w0, [sp, x2]
853 ldr x0, [sp, x2, SXTX #0]
854 ldr x0, [sp, x2, LSL #3] ; UXTX
855 ldr x0, [sp, x2, SXTX #3]
856 ldr w0, [sp, w2, UXTW #0]
857 ldr w0, [sp, w2, SXTW #0]
858 ldr w0, [sp, w2, UXTW #2]
859 ldr w0, [sp, w2, SXTW #2]
860
861 ldrb w0, [x1, x2]
862 ldrb w0, [x1, x2, LSL #0] ; UXTX
863 ldrb w0, [x1, x2, SXTX #0]
864 ldrb w0, [x1, w2, UXTW #0]
865 ldrb w0, [x1, w2, SXTW #0]
866
867 ldrb w0, [sp, x2]
868 ldrb w0, [sp, x2, LSL #0] ; UXTX
869 ldrb w0, [sp, x2, SXTX #0]
870 ldrb w0, [sp, w2, UXTW #0]
871 ldrb w0, [sp, w2, SXTW #0]
872
873 ldrsb w0, [x1, x2]
874 ldrsb w0, [x1, x2, LSL #0] ; UXTX
875 ldrsb w0, [x1, x2, SXTX #0]
876 ldrsb w0, [x1, w2, UXTW #0]
877 ldrsb w0, [x1, w2, SXTW #0]
878
879 ldrsb w0, [sp, x2]
880 ldrsb w0, [sp, x2, LSL #0] ; UXTX
881 ldrsb w0, [sp, x2, SXTX #0]
882 ldrsb w0, [sp, w2, UXTW #0]
883 ldrsb w0, [sp, w2, SXTW #0]
884
885 ldrh w0, [x1, x2]
886 ;ldrh w0, [x1, x2, LSL #0] ; UXTX
887 ldrh w0, [x1, x2, SXTX #0]
888 ldrh w0, [x1, x2, LSL #1] ; UXTX
889 ldrh w0, [x1, x2, SXTX #1]
890 ldrh w0, [x1, w2, UXTW #0]
891 ldrh w0, [x1, w2, SXTW #0]
892 ldrh w0, [x1, w2, UXTW #1]
893 ldrh w0, [x1, w2, SXTW #1]
894
895 ldrh w0, [sp, x2]
896 ;ldrh w0, [sp, x2, LSL #0] ; UXTX
897 ldrh w0, [sp, x2, SXTX #0]
898 ldrh w0, [sp, x2, LSL #1] ; UXTX
899 ldrh w0, [sp, x2, SXTX #1]
900 ldrh w0, [sp, w2, UXTW #0]
901 ldrh w0, [sp, w2, SXTW #0]
902 ldrh w0, [sp, w2, UXTW #1]
903 ldrh w0, [sp, w2, SXTW #1]
904
905 ldrsh w0, [x1, x2]
906 ;ldrsh w0, [x1, x2, LSL #0] ; UXTX
907 ldrsh w0, [x1, x2, SXTX #0]
908 ldrsh w0, [x1, x2, LSL #1] ; UXTX
909 ldrsh w0, [x1, x2, SXTX #1]
910 ldrsh w0, [x1, w2, UXTW #0]
911 ldrsh w0, [x1, w2, SXTW #0]
912 ldrsh w0, [x1, w2, UXTW #1]
913 ldrsh w0, [x1, w2, SXTW #1]
914
915 ldrsh w0, [sp, x2]
916 ;ldrsh w0, [sp, x2, LSL #0] ; UXTX
917 ldrsh w0, [sp, x2, SXTX #0]
918 ldrsh w0, [sp, x2, LSL #1] ; UXTX
919 ldrsh w0, [sp, x2, SXTX #1]
920 ldrsh w0, [sp, w2, UXTW #0]
921 ldrsh w0, [sp, w2, SXTW #0]
922 ldrsh w0, [sp, w2, UXTW #1]
923 ldrsh w0, [sp, w2, SXTW #1]
924
925 ldrsw x0, [x1, x2]
926 ;ldrsw x0, [x1, x2, LSL #0] ; UXTX
927 ldrsw x0, [x1, x2, SXTX #0]
928 ldrsw x0, [x1, x2, LSL #2] ; UXTX
929 ldrsw x0, [x1, x2, SXTX #2]
930 ldrsw x0, [x1, w2, UXTW #0]
931 ldrsw x0, [x1, w2, SXTW #0]
932 ldrsw x0, [x1, w2, UXTW #2]
933 ldrsw x0, [x1, w2, SXTW #2]
934
935 ldrsw x0, [sp, x2]
936 ;ldrsw x0, [sp, x2, LSL #0] ; UXTX
937 ldrsw x0, [sp, x2, SXTX #0]
938 ldrsw x0, [sp, x2, LSL #2] ; UXTX
939 ldrsw x0, [sp, x2, SXTX #2]
940 ldrsw x0, [sp, w2, UXTW #0]
941 ldrsw x0, [sp, w2, SXTW #0]
942 ldrsw x0, [sp, w2, UXTW #2]
943 ldrsw x0, [sp, w2, SXTW #2]
944
945 ; Memory stores
946 strb w0, [x28]
947 strb w0, [x28, #1]
948 strb w0, [x28, #4095]
949
950 strb w0, [sp]
951 strb w0, [sp, #1]
952 strb w0, [sp, #4095]
953
954 strh w0, [x28]
955 strh w0, [x28, #2]
956 strh w0, [x28, #1024]
957
958 strh w0, [sp]
959 strh w0, [sp, #2]
960 strh w0, [sp, #1024]
961
962 str x0, [x28]
963 str x0, [x28, #8]
964 str x0, [x28, #32760]
965
966 str x0, [sp]
967 str x0, [sp, #8]
968 str x0, [sp, #32760]
969
970 str w0, [x28]
971 str w0, [x28, #4]
972 str w0, [x28, #16380]
973
974 str w0, [sp]
975 str w0, [sp, #4]
976 str w0, [sp, #16380]
977
978 strb w0, [x28, #0]!
979 strb w0, [x28, #-256]!
980 strb w0, [x28, #255]!
981
982 strb w0, [sp, #0]!
983 strb w0, [sp, #-256]!
984 strb w0, [sp, #255]!
985
986 strh w0, [x28, #0]!
987 strh w0, [x28, #-256]!
988 strh w0, [x28, #255]!
989
990 strh w0, [sp, #0]!
991 strh w0, [sp, #-256]!
992 strh w0, [sp, #255]!
993
994 str x0, [x28, #0]!
995 str x0, [x28, #-256]!
996 str x0, [x28, #255]!
997
998 str x0, [sp, #0]!
999 str x0, [sp, #-256]!
1000 str x0, [sp, #255]!
1001
1002 str w0, [x28, #0]!
1003 str w0, [x28, #-256]!
1004 str w0, [x28, #255]!
1005
1006 str w0, [sp, #0]!
1007 str w0, [sp, #-256]!
1008 str w0, [sp, #255]!
1009
1010
1011 strb w0, [x28], #0
1012 strb w0, [x28], #-256
1013 strb w0, [x28], #255
1014
1015 strb w0, [sp], #0
1016 strb w0, [sp], #-256
1017 strb w0, [sp], #255
1018
1019 strh w0, [x28], #0
1020 strh w0, [x28], #-256
1021 strh w0, [x28], #255
1022
1023 strh w0, [sp], #0
1024 strh w0, [sp], #-256
1025 strh w0, [sp], #255
1026
1027 str x0, [x28], #0
1028 str x0, [x28], #-256
1029 str x0, [x28], #255
1030
1031 str x0, [sp], #0
1032 str x0, [sp], #-256
1033 str x0, [sp], #255
1034
1035 str w0, [x28], #0
1036 str w0, [x28], #-256
1037 str w0, [x28], #255
1038
1039 str w0, [sp], #0
1040 str w0, [sp], #-256
1041 str w0, [sp], #255
1042
1043 sturb w0, [x28]
1044 sturb w0, [x28, #-256]
1045 sturb w0, [x28, #255]
1046
1047 sturb w0, [sp]
1048 sturb w0, [sp, #-256]
1049 sturb w0, [sp, #255]
1050
1051 sturh w0, [x28]
1052 sturh w0, [x28, #-256]
1053 sturh w0, [x28, #255]
1054
1055 sturh w0, [sp]
1056 sturh w0, [sp, #-256]
1057 sturh w0, [sp, #255]
1058
1059 stur x0, [x28]
1060 stur x0, [x28, #-256]
1061 stur x0, [x28, #255]
1062
1063 stur x0, [sp]
1064 stur x0, [sp, #-256]
1065 stur x0, [sp, #255]
1066
1067 stur w0, [x28]
1068 stur w0, [x28, #-256]
1069 stur w0, [x28, #255]
1070
1071 stur w0, [sp]
1072 stur w0, [sp, #-256]
1073 stur w0, [sp, #255]
1074
1075 stp w0, w1, [x28]
1076 stp w0, w1, [x28, #4]
1077 stp w0, w1, [x28, #-256]
1078 stp w0, w1, [x28, #252]
1079
1080 stp w0, w1, [sp]
1081 stp w0, w1, [sp, #4]
1082 stp w0, w1, [sp, #-256]
1083 stp w0, w1, [sp, #252]
1084
1085 stp x0, x1, [x28]
1086 stp x0, x1, [x28, #8]
1087 stp x0, x1, [x28, #-512]
1088 stp x0, x1, [x28, #504]
1089
1090 stp x0, x1, [sp]
1091 stp x0, x1, [sp, #8]
1092 stp x0, x1, [sp, #-512]
1093 stp x0, x1, [sp, #504]
1094
1095 stp w0, w1, [x28, #4]!
1096 stp w0, w1, [x28, #-256]!
1097 stp w0, w1, [x28, #252]!
1098
1099 stp w0, w1, [sp, #4]!
1100 stp w0, w1, [sp, #-256]!
1101 stp w0, w1, [sp, #252]!
1102
1103 stp x0, x1, [x28, #8]!
1104 stp x0, x1, [x28, #-512]!
1105 stp x0, x1, [x28, #504]!
1106
1107 stp x0, x1, [sp, #8]!
1108 stp x0, x1, [sp, #-512]!
1109 stp x0, x1, [sp, #504]!
1110
1111 stp w0, w1, [x28], #4
1112 stp w0, w1, [x28], #-256
1113 stp w0, w1, [x28], #252
1114
1115 stp w0, w1, [sp], #4
1116 stp w0, w1, [sp], #-256
1117 stp w0, w1, [sp], #252
1118
1119 stp x0, x1, [x28], #8
1120 stp x0, x1, [x28], #-512
1121 stp x0, x1, [x28], #504
1122
1123 stp x0, x1, [sp], #8
1124 stp x0, x1, [sp], #-512
1125 stp x0, x1, [sp], #504
1126
1127 str x0, [x1, x2]
1128 str w0, [x1, x2]
1129 str x0, [x1, x2, SXTX #0]
1130 str x0, [x1, x2, LSL #3] ; UXTX
1131 str x0, [x1, x2, SXTX #3]
1132 str w0, [x1, w2, UXTW #0]
1133 str w0, [x1, w2, SXTW #0]
1134 str w0, [x1, w2, UXTW #2]
1135 str w0, [x1, w2, SXTW #2]
1136
1137 str x0, [sp, x2]
1138 str w0, [sp, x2]
1139 str x0, [sp, x2, SXTX #0]
1140 str x0, [sp, x2, LSL #3] ; UXTX
1141 str x0, [sp, x2, SXTX #3]
1142 str w0, [sp, w2, UXTW #0]
1143 str w0, [sp, w2, SXTW #0]
1144 str w0, [sp, w2, UXTW #2]
1145 str w0, [sp, w2, SXTW #2]
1146
1147 strb w0, [x1, x2]
1148 strb w0, [x1, x2, LSL #0x0]
1149 strb w0, [x1, x2, SXTX #0x0]
1150 strb w0, [x1, w2, UXTW #0x0]
1151 strb w0, [x1, w2, SXTW #0x0]
1152
1153 strb w0, [sp, x2]
1154 strb w0, [sp, x2, LSL #0x0]
1155 strb w0, [sp, x2, SXTX #0x0]
1156 strb w0, [sp, w2, UXTW #0x0]
1157 strb w0, [sp, w2, SXTW #0x0]
1158
1159 strh w0, [x1, x2]
1160 ;strh w0, [x1, x2, LSL #0x0] ; UXTX
1161 strh w0, [x1, x2, SXTX #0x0]
1162 strh w0, [x1, x2, LSL #1] ; UXTX
1163 strh w0, [x1, x2, SXTX #1]
1164 strh w0, [x1, w2, UXTW #0x0]
1165 strh w0, [x1, w2, SXTW #0x0]
1166 strh w0, [x1, w2, UXTW #1]
1167 strh w0, [x1, w2, SXTW #1]
1168
1169 strh w0, [sp, x2]
1170 ;strh w0, [sp, x2, LSL #0x0] ; UXTX
1171 strh w0, [sp, x2, SXTX #0x0]
1172 strh w0, [sp, x2, LSL #1] ; UXTX
1173 strh w0, [sp, x2, SXTX #1]
1174 strh w0, [sp, w2, UXTW #0x0]
1175 strh w0, [sp, w2, SXTW #0x0]
1176 strh w0, [sp, w2, UXTW #1]
1177 strh w0, [sp, w2, SXTW #1]
1178
1179 ; Conditional compare
1180 ccmp x0, x1, #0x3, eq
1181 ccmp w0, w1, #0xf, eq
1182 ccmp x0, x1, #0x3, ne
1183 ccmp w0, w1, #0xf, ne
1184 ccmp x0, x1, #0x3, cs
1185 ccmp w0, w1, #0xf, cc
1186 ccmp x0, x1, #0x3, mi
1187 ccmp w0, w1, #0xf, mi
1188 ccmp x0, x1, #0x3, pl
1189 ccmp w0, w1, #0xf, vs
1190 ccmp x0, x1, #0x3, vc
1191 ccmp w0, w1, #0xf, vc
1192 ccmp x0, x1, #0x3, hi
1193 ccmp w0, w1, #0xf, hi
1194 ccmp x0, x1, #0x3, ls
1195 ccmp w0, w1, #0xf, ls
1196 ccmp x0, x1, #0x3, ge
1197 ccmp w0, w1, #0xf, ge
1198 ccmp x0, x1, #0x3, lt
1199 ccmp w0, w1, #0xf, lt
1200 ccmp x0, x1, #0x3, gt
1201 ccmp w0, w1, #0xf, gt
1202 ccmp x0, x1, #0x3, le
1203 ccmp w0, w1, #0xf, le
1204 ccmp x0, x1, #0x3, al
1205 ccmp w0, w1, #0xf, al
1206
1207 ccmn x0, x1, #0x3, eq
1208 ccmn w0, w1, #0xf, eq
1209 ccmn x0, x1, #0x3, ne
1210 ccmn w0, w1, #0xf, ne
1211 ccmn x0, x1, #0x3, cs
1212 ccmn w0, w1, #0xf, cc
1213 ccmn x0, x1, #0x3, mi
1214 ccmn w0, w1, #0xf, mi
1215 ccmn x0, x1, #0x3, pl
1216 ccmn w0, w1, #0xf, vs
1217 ccmn x0, x1, #0x3, vc
1218 ccmn w0, w1, #0xf, vc
1219 ccmn x0, x1, #0x3, hi
1220 ccmn w0, w1, #0xf, hi
1221 ccmn x0, x1, #0x3, ls
1222 ccmn w0, w1, #0xf, ls
1223 ccmn x0, x1, #0x3, ge
1224 ccmn w0, w1, #0xf, ge
1225 ccmn x0, x1, #0x3, lt
1226 ccmn w0, w1, #0xf, lt
1227 ccmn x0, x1, #0x3, gt
1228 ccmn w0, w1, #0xf, gt
1229 ccmn x0, x1, #0x3, le
1230 ccmn w0, w1, #0xf, le
1231 ccmn x0, x1, #0x3, al
1232 ccmn w0, w1, #0xf, al
1233
1234 msr spsel, #1
1235 msr spsel, #0
1236 msr daifset, #0
1237 msr daifset, #15
1238 msr daifclr, #0
1239 msr daifclr, #15
1240 msr uao, #1
1241 msr uao, #0
1242 msr pan, #1
1243 msr pan, #0
1244 ; msr allint, #1 Not supported by the toolchain
1245 ; msr allint, #0 Not supported by the toolchain
1246 ;msr pm, #1 Not supported by the maca1 toolchain
1247 ;msr pm, #0 Not supported by the maca1 toolchain
1248 msr ssbs, #1
1249 msr ssbs, #0
1250 msr dit, #1
1251 msr dit, #0
1252 ; msr tco, #1 Not supported by the toolchain
1253 ; msr tco, #0 Not supported by the toolchain
1254 ; msr svcrsm, #1 Not supported by the toolchain
1255 ; msr svcrsm, #0 Not supported by the toolchain
1256 ; msr svcrza, #1 Not supported by the toolchain
1257 ; msr svcrza, #0 Not supported by the toolchain
1258 ; msr svcrsma, #1 Not supported by the toolchain
1259 ; msr svcrsma, #0 Not supported by the toolchain
1260
1261 ; Floating Point instructions.
1262 fmadd s0, s1, s3, s31
1263 fmadd d0, d1, d3, d31
1264 fmadd h0, h1, h3, h31
1265
1266 fmsub s0, s1, s3, s31
1267 fmsub d0, d1, d3, d31
1268 fmsub h0, h1, h3, h31
1269
1270 fnmadd s0, s1, s3, s31
1271 fnmadd d0, d1, d3, d31
1272 fnmadd h0, h1, h3, h31
1273
1274 fnmsub s0, s1, s3, s31
1275 fnmsub d0, d1, d3, d31
1276 fnmsub h0, h1, h3, h31
1277
1278 fcvtzu x0, s0, #1
1279 fcvtzu x0, s0, #31
1280 fcvtzu x0, s0, #63
1281 fcvtzu w0, s0, #1
1282 fcvtzu w0, s0, #32
1283
1284 fcvtzu x0, d0, #1
1285 fcvtzu x0, d0, #31
1286 fcvtzu x0, d0, #63
1287 fcvtzu w0, d0, #1
1288 fcvtzu w0, d0, #32
1289
1290 fcvtzu x0, h0, #1
1291 fcvtzu x0, h0, #31
1292 fcvtzu x0, h0, #63
1293 fcvtzu w0, h0, #1
1294 fcvtzu w0, h0, #32
1295
1296 fcvtzs x0, s0, #1
1297 fcvtzs x0, s0, #31
1298 fcvtzs x0, s0, #63
1299 fcvtzs w0, s0, #1
1300 fcvtzs w0, s0, #32
1301
1302 fcvtzs x0, d0, #1
1303 fcvtzs x0, d0, #31
1304 fcvtzs x0, d0, #63
1305 fcvtzs w0, d0, #1
1306 fcvtzs w0, d0, #32
1307
1308 fcvtzs x0, h0, #1
1309 fcvtzs x0, h0, #31
1310 fcvtzs x0, h0, #63
1311 fcvtzs w0, h0, #1
1312 fcvtzs w0, h0, #32
1313
1314 ucvtf s0, x0, #1
1315 ucvtf s0, x0, #31
1316 ucvtf s0, x0, #63
1317 ucvtf s0, w0, #1
1318 ucvtf s0, w0, #32
1319
1320 ucvtf d0, x0, #1
1321 ucvtf d0, x0, #31
1322 ucvtf d0, x0, #63
1323 ucvtf d0, w0, #1
1324 ucvtf d0, w0, #32
1325
1326 ucvtf h0, x0, #1
1327 ucvtf h0, x0, #31
1328 ucvtf h0, x0, #63
1329 ucvtf h0, w0, #1
1330 ucvtf h0, w0, #32
1331
1332 scvtf s0, x0, #1
1333 scvtf s0, x0, #31
1334 scvtf s0, x0, #63
1335 scvtf s0, w0, #1
1336 scvtf s0, w0, #32
1337
1338 scvtf d0, x0, #1
1339 scvtf d0, x0, #31
1340 scvtf d0, x0, #63
1341 scvtf d0, w0, #1
1342 scvtf d0, w0, #32
1343
1344 scvtf h0, x0, #1
1345 scvtf h0, x0, #31
1346 scvtf h0, x0, #63
1347 scvtf h0, w0, #1
1348 scvtf h0, w0, #32
1349
1350 fcsel s0, s1, s2, eq
1351 fcsel d0, d1, d2, eq
1352 fcsel h0, h1, h2, eq
1353
1354 fmul s0, s1, s2
1355 fmul d0, d1, d2
1356 fmul h0, h1, h2
1357
1358 fdiv s0, s1, s2
1359 fdiv d0, d1, d2
1360 fdiv h0, h1, h2
1361
1362 fadd s0, s1, s2
1363 fadd d0, d1, d2
1364 fadd h0, h1, h2
1365
1366 fsub s0, s1, s2
1367 fsub d0, d1, d2
1368 fsub h0, h1, h2
1369
1370 fmax s0, s1, s2
1371 fmax d0, d1, d2
1372 fmax h0, h1, h2
1373
1374 fmin s0, s1, s2
1375 fmin d0, d1, d2
1376 fmin h0, h1, h2
1377
1378 fmaxnm s0, s1, s2
1379 fmaxnm d0, d1, d2
1380 fmaxnm h0, h1, h2
1381
1382 fminnm s0, s1, s2
1383 fminnm d0, d1, d2
1384 fminnm h0, h1, h2
1385
1386 fnmul s0, s1, s2
1387 fnmul d0, d1, d2
1388 fnmul h0, h1, h2
1389
1390 fccmp s0, s1, #0, eq
1391 fccmp s0, s1, #15, ne
1392 fccmp d0, d1, #0, eq
1393 fccmp d0, d1, #15, ne
1394 fccmp h0, h1, #0, eq
1395 fccmp h0, h1, #15, ne
1396
1397 fccmpe s0, s1, #0, eq
1398 fccmpe s0, s1, #15, ne
1399 fccmpe d0, d1, #0, eq
1400 fccmpe d0, d1, #15, ne
1401 fccmpe h0, h1, #0, eq
1402 fccmpe h0, h1, #15, ne
1403
1404 ;fmov s0, #1 @todo Needs FP immediate parsing
1405
1406 fcmp s0, s1
1407 ;fcmp s0, #0.0
1408 fcmp d0, d1
1409 ;fcmp d0, #0.0
1410 fcmp h0, h1
1411 ;fcmp h0, #0.0
1412
1413 fcmpe s0, s1
1414 ;fcmpe s0, #0.0
1415 fcmpe d0, d1
1416 ;fcmpe d0, #0.0
1417 fcmpe h0, h1
1418 ;fcmpe h0, #0.0
1419
1420 fmov s0, s1
1421 fmov d0, d1
1422 fmov h0, h1
1423
1424 fabs s0, s1
1425 fabs d0, d1
1426 fabs h0, h1
1427
1428 fneg s0, s1
1429 fneg d0, d1
1430 fneg h0, h1
1431
1432 fsqrt s0, s1
1433 fsqrt d0, d1
1434 fsqrt h0, h1
1435
1436 fcvt s0, d1
1437 fcvt s0, h1
1438 fcvt d0, s1
1439 fcvt d0, h1
1440 fcvt h0, s1
1441 fcvt h0, d1
1442
1443 frintn s0, s1
1444 frintn d0, d1
1445 frintn h0, h1
1446
1447 frintp s0, s1
1448 frintp d0, d1
1449 frintp h0, h1
1450
1451 frintm s0, s1
1452 frintm d0, d1
1453 frintm h0, h1
1454
1455 frintz s0, s1
1456 frintz d0, d1
1457 frintz h0, h1
1458
1459 frinta s0, s1
1460 frinta d0, d1
1461 frinta h0, h1
1462
1463 frintx s0, s1
1464 frintx d0, d1
1465 frintx h0, h1
1466
1467 frinti s0, s1
1468 frinti d0, d1
1469 frinti h0, h1
1470
1471 frint32z s0, s1
1472 frint32z d0, d1
1473
1474 frint32x s0, s1
1475 frint32x d0, d1
1476
1477 frint64z s0, s1
1478 frint64z d0, d1
1479
1480 frint64x s0, s1
1481 frint64x d0, d1
1482
1483 sshr d0, d1, #1
1484 sshr d0, d1, #64
1485
1486 ssra d0, d1, #1
1487 ssra d0, d1, #64
1488
1489 srshr d0, d1, #1
1490 srshr d0, d1, #64
1491
1492 srsra d0, d1, #1
1493 srsra d0, d1, #64
1494
1495 ; @todo
1496 ;shl d0, d1, #0
1497 ;shl d0, d1, #63
1498
1499 ;sqshl d0, d1, #0
1500 ;sqshl d0, d1, #63
1501
1502 ;sqshrn q0, q1, #1
1503 ;sqshrn q0, q1, #64
1504
1505 ;sqrshrn q0, dq, #1
1506 ;sqrshrn q0, q1, #64
1507
1508 dsb #0
1509 dsb #1
1510 dsb #2
1511 dsb #3
1512 dsb #4
1513 dsb #5
1514 dsb #6
1515 dsb #7
1516 dsb #8
1517 dsb #9
1518 dsb #0xa
1519 dsb #0xb
1520 dsb #0xc
1521 dsb #0xd
1522 dsb #0xe
1523 dsb #0xf
1524
1525 ;subps x0, x1, x3 - Requires FEAT_MTE
1526 ;subps x0, sp, sp - Requires FEAT_MTE
1527
1528 ;subp x0, x1, x3 - Requires FEAT_MTE
1529 ;subp x0, sp, sp - Requires FEAT_MTE
1530
1531 ;gmi x0, x1, x3 - Requires FEAT_MTE
1532 ;gmi x0, sp, x3 - Requires FEAT_MTE
1533
1534 ;irg x0, x1, x3 - Requires FEAT_MTE
1535 ;irg x0, x1, xzr - Requires FEAT_MTE
1536 ;irg sp, sp, x3 - Requires FEAT_MTE
1537 ;irg sp, sp, xzr - Requires FEAT_MTE
1538
1539 udiv w0, w1, wzr
1540 udiv x0, x1, xzr
1541
1542 sdiv w0, w1, wzr
1543 sdiv x0, x1, xzr
1544
1545 lslv w0, w1, wzr
1546 lslv x0, x1, xzr
1547
1548 lsrv w0, w1, wzr
1549 lsrv x0, x1, xzr
1550
1551 asrv w0, w1, wzr
1552 asrv x0, x1, xzr
1553
1554 rorv w0, w1, wzr
1555 rorv x0, x1, xzr
1556
1557 crc32b w0, w1, wzr
1558 crc32w w0, w1, wzr
1559 crc32h w0, w1, wzr
1560
1561 crc32cb w0, w1, wzr
1562 crc32cw w0, w1, wzr
1563 crc32ch w0, w1, wzr
1564
1565 crc32x w0, w1, x3
1566 crc32x w0, w1, xzr
1567
1568 crc32cx w0, w1, x3
1569 crc32cx w0, w1, xzr
1570
1571 ;umax w0, w1, wzr - Requires FEAT_CSSC
1572 ;umax x0, x1, xzr - Requires FEAT_CSSC
1573
1574 ;smax w0, w1, wzr - Requires FEAT_CSSC
1575 ;smax x0, x1, xzr - Requires FEAT_CSSC
1576
1577 ;umin w0, w1, wzr - Requires FEAT_CSSC
1578 ;umin x0, x1, xzr - Requires FEAT_CSSC
1579
1580 ;smin w0, w1, wzr - Requires FEAT_CSSC
1581 ;smin x0, x1, xzr - Requires FEAT_CSSC
1582
1583 rbit w0, wzr
1584 rbit w0, w1
1585 rbit x0, xzr
1586 rbit x0, x1
1587
1588 rev16 w0, wzr
1589 rev16 w0, w1
1590 rev16 x0, xzr
1591 rev16 x0, x1
1592
1593 rev w0, wzr
1594 rev w0, w1
1595 rev x0, xzr
1596 rev x0, x1
1597
1598 ; @todo rev32
1599
1600 clz w0, wzr
1601 clz w0, w1
1602 clz x0, xzr
1603 clz x0, x1
1604
1605 cls w0, wzr
1606 cls w0, w1
1607 cls x0, xzr
1608 cls x0, x1
1609
1610 ;ctz w0, wzr - Requires FEAT_CSSC
1611 ;ctz w0, w1 - Requires FEAT_CSSC
1612 ;ctz x0, xzr - Requires FEAT_CSSC
1613 ;ctz x0, x1 - Requires FEAT_CSSC
1614
1615 ;cnt w0, wzr - Requires FEAT_CSSC
1616 ;cnt w0, w1 - Requires FEAT_CSSC
1617 ;cnt x0, xzr - Requires FEAT_CSSC
1618 ;cnt x0, x1 - Requires FEAT_CSSC
1619
1620 ;
1621 ; Keep last so the testcase can catch errors in
1622 ; the disassembly of the last instruction.
1623 ;
1624 nop
1625
1626.private_extern _TestProcA64_EndProc
1627_TestProcA64_EndProc:
Note: See TracBrowser for help on using the repository browser.

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