Patch by Gordon Keiser!
[oota-llvm.git] / test / MC / Disassembler / ARM / thumb2.txt
1 # RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -disassemble < %s | FileCheck %s
2
3 #------------------------------------------------------------------------------
4 # ADC (immediate)
5 #------------------------------------------------------------------------------
6 # CHECK: adc r0, r1, #4
7 # CHECK: adcs r0, r1, #0
8 # CHECK: adc r1, r2, #255
9 # CHECK: adc r3, r7, #5570645
10 # CHECK: adc r8, r12, #2852170240
11 # CHECK: adc r9, r7, #2779096485
12 # CHECK: adc r5, r3, #2264924160
13 # CHECK: adc r4, r2, #2139095040
14 # CHECK: adc r4, r2, #1664
15
16 0x41 0xf1 0x04 0x00
17 0x51 0xf1 0x00 0x00
18 0x42 0xf1 0xff 0x01
19 0x47 0xf1 0x55 0x13
20 0x4c 0xf1 0xaa 0x28
21 0x47 0xf1 0xa5 0x39
22 0x43 0xf1 0x07 0x45
23 0x42 0xf1 0xff 0x44
24 0x42 0xf5 0xd0 0x64
25
26 #------------------------------------------------------------------------------
27 # ADC (register)
28 #------------------------------------------------------------------------------
29 # CHECK: adc.w r4, r5, r6
30 # CHECK: adcs.w r4, r5, r6
31 # CHECK: adc.w r9, r1, r3
32 # CHECK: adcs.w r9, r1, r3
33 # CHECK: adc.w r0, r1, r3, ror #4
34 # CHECK: adcs.w  r0, r1, r3, lsl #7
35 # CHECK: adc.w r0, r1, r3, lsr #31
36 # CHECK: adcs.w  r0, r1, r3, asr #32
37
38 0x45 0xeb 0x06 0x04
39 0x55 0xeb 0x06 0x04
40 0x41 0xeb 0x03 0x09
41 0x51 0xeb 0x03 0x09
42 0x41 0xeb 0x33 0x10
43 0x51 0xeb 0xc3 0x10
44 0x41 0xeb 0xd3 0x70
45 0x51 0xeb 0x23 0x00
46
47
48 #------------------------------------------------------------------------------
49 # ADD (immediate)
50 #------------------------------------------------------------------------------
51 # CHECK: itet eq
52 # CHECK: addeq r1, r2, #4
53 # CHECK: addwne r5, r3, #1023
54 # CHECK: addweq r4, r5, #293
55 # CHECK: add.w r2, sp, #1024
56 # CHECK: add.w r2, r8, #65280
57 # CHECK: addw r2, r3, #257
58 # CHECK: add.w r12, r6, #256
59 # CHECK: addw r12, r6, #256
60 # CHECK: adds.w r1, r2, #496
61
62 0x0a 0xbf
63 0x11 0x1d
64 0x03 0xf2 0xff 0x35
65 0x05 0xf2 0x25 0x14
66 0x0d 0xf5 0x80 0x62
67 0x08 0xf5 0x7f 0x42
68 0x03 0xf2 0x01 0x12
69 0x06 0xf5 0x80 0x7c
70 0x06 0xf2 0x00 0x1c
71 0x12 0xf5 0xf8 0x71
72
73
74 #------------------------------------------------------------------------------
75 # ADD (register)
76 #------------------------------------------------------------------------------
77 # CHECK: add.w r1, r2, r8
78 # CHECK: add.w r5, r9, r2, asr #32
79 # CHECK: adds.w r7, r3, r1, lsl #31
80 # CHECK: adds.w r0, r3, r6, lsr #25
81 # CHECK: add.w r4, r8, r1, ror #12
82
83 0x02 0xeb 0x08 0x01
84 0x09 0xeb 0x22 0x05
85 0x13 0xeb 0xc1 0x77
86 0x13 0xeb 0x56 0x60
87 0x08 0xeb 0x31 0x34
88
89
90 #------------------------------------------------------------------------------
91 # ADR
92 #------------------------------------------------------------------------------
93 # CHECK: subw r11, pc, #3270
94 # CHECK: subw r11, pc, #826
95 # CHECK: subw r1, pc, #0
96
97 0xaf 0xf6 0xc6 0x4b
98 0xaf 0xf2 0x3a 0x3b
99 0xaf 0xf2 0x00 0x01
100
101 #------------------------------------------------------------------------------
102 # AND (immediate)
103 #------------------------------------------------------------------------------
104 # CHECK: and r2, r5, #1044480
105 # CHECK: ands r3, r12, #15
106 # CHECK: and r1, r1, #255
107
108 0x05 0xf4 0x7f 0x22
109 0x1c 0xf0 0x0f 0x03
110 0x01 0xf0 0xff 0x01
111
112
113 #------------------------------------------------------------------------------
114 # AND (register)
115 #------------------------------------------------------------------------------
116 # CHECK: and.w r4, r9, r8
117 # CHECK: and.w r1, r4, r8, asr #3
118 # CHECK: ands.w r2, r1, r7, lsl #1
119 # CHECK: ands.w r4, r5, r2, lsr #20
120 # CHECK: and.w r9, r12, r1, ror #17
121
122 0x09 0xea 0x08 0x04
123 0x04 0xea 0xe8 0x01
124 0x11 0xea 0x47 0x02
125 0x15 0xea 0x12 0x54
126 0x0c 0xea 0x71 0x49
127
128 #------------------------------------------------------------------------------
129 # ASR (immediate)
130 #------------------------------------------------------------------------------
131 # CHECK: asr.w r2, r3, #12
132 # CHECK: asrs.w r8, r3, #32
133 # CHECK: asrs.w r2, r3, #1
134 # CHECK: asr.w r2, r3, #4
135 # CHECK: asrs.w r2, r12, #15
136
137 # CHECK: asr.w r3, r3, #19
138 # CHECK: asrs.w r8, r8, #2
139 # CHECK: asrs.w r7, r7, #5
140 # CHECK: asr.w r12, r12, #21
141
142 0x4f 0xea 0x23 0x32
143 0x5f 0xea 0x23 0x08
144 0x5f 0xea 0x63 0x02
145 0x4f 0xea 0x23 0x12
146 0x5f 0xea 0xec 0x32
147
148 0x4f 0xea 0xe3 0x43
149 0x5f 0xea 0xa8 0x08
150 0x5f 0xea 0x67 0x17
151 0x4f 0xea 0x6c 0x5c
152
153
154 #------------------------------------------------------------------------------
155 # ASR (register)
156 #------------------------------------------------------------------------------
157 # CHECK: asr.w r3, r4, r2
158 # CHECK: asr.w r1, r1, r2
159 # CHECK: asrs.w r3, r4, r8
160
161 0x44 0xfa 0x02 0xf3
162 0x41 0xfa 0x02 0xf1
163 0x54 0xfa 0x08 0xf3
164
165 #------------------------------------------------------------------------------
166 # B
167 #------------------------------------------------------------------------------
168 # CHECK: bmi.w   #-183396
169
170 0x13 0xf5 0xce 0xa9
171
172 # CHECK: b.w   #208962
173
174 0x33 0xf0 0x21 0xb8 # rdar://12585795
175
176 #------------------------------------------------------------------------------
177 # BFC
178 #------------------------------------------------------------------------------
179 # CHECK: bfc r5, #3, #17
180 # CHECK: it lo
181 # CHECK: bfclo r5, #3, #17
182
183 0x6f 0xf3 0xd3 0x05
184 0x38 0xbf
185 0x6f 0xf3 0xd3 0x05
186
187
188 #------------------------------------------------------------------------------
189 # BFI
190 #------------------------------------------------------------------------------
191 # CHECK: bfi r5, r2, #3, #17
192 # CHECK: it ne
193 # CHECK: bfine r5, r2, #3, #17
194 # CHECK: bfi r6, r0, #0, #32
195 # CHECK: bfi r6, r0, #31, #1
196
197 0x62 0xf3 0xd3 0x05
198 0x18 0xbf
199 0x62 0xf3 0xd3 0x05
200 0x60 0xf3 0x1f 0x06
201 0x60 0xf3 0xdf 0x76
202
203
204 #------------------------------------------------------------------------------
205 # BIC
206 #------------------------------------------------------------------------------
207 # CHECK: bic r10, r1, #15
208 # CHECK: bic.w r12, r3, r6
209 # CHECK: bic.w r11, r2, r6, lsl #12
210 # CHECK: bic.w r8, r4, r1, lsr #11
211 # CHECK: bic.w r7, r5, r7, lsr #15
212 # CHECK: bic.w r6, r7, r9, asr #32
213 # CHECK: bic.w r5, r6, r8, ror #1
214
215 # CHECK: bic r1, r1, #15
216 # CHECK: bic.w r1, r1, r1
217 # CHECK: bic.w r4, r4, r2, lsl #31
218 # CHECK: bic.w r6, r6, r3, lsr #12
219 # CHECK: bic.w r7, r7, r4, lsr #7
220 # CHECK: bic.w r8, r8, r5, asr #15
221 # CHECK: bic.w r12, r12, r6, ror #29
222
223 0x21 0xf0 0x0f 0x0a
224 0x23 0xea 0x06 0x0c
225 0x22 0xea 0x06 0x3b
226 0x24 0xea 0xd1 0x28
227 0x25 0xea 0xd7 0x37
228 0x27 0xea 0x29 0x06
229 0x26 0xea 0x78 0x05
230
231 0x21 0xf0 0x0f 0x01
232 0x21 0xea 0x01 0x01
233 0x24 0xea 0xc2 0x74
234 0x26 0xea 0x13 0x36
235 0x27 0xea 0xd4 0x17
236 0x28 0xea 0xe5 0x38
237 0x2c 0xea 0x76 0x7c
238
239
240 #------------------------------------------------------------------------------
241 # BXJ
242 #------------------------------------------------------------------------------
243 # CHECK: bxj r5
244 # CHECK: it ne
245 # CHECK: bxjne r7
246
247 0xc5 0xf3 0x00 0x8f
248 0x18 0xbf
249 0xc7 0xf3 0x00 0x8f
250
251
252 #------------------------------------------------------------------------------
253 # CBZ/CBNZ
254 #------------------------------------------------------------------------------
255 # CHECK: cbnz    r7, #6
256 # CHECK: cbnz    r7, #12
257
258 0x1f 0xb9
259 0x37 0xb9
260
261 #------------------------------------------------------------------------------
262 # CDP/CDP2
263 #------------------------------------------------------------------------------
264 # CHECK: cdp  p7, #1, c1, c1, c1, #4
265 # CHECK: cdp2  p7, #1, c1, c1, c1, #4
266
267 0x11 0xee 0x81 0x17
268 0x11 0xfe 0x81 0x17
269
270
271 #------------------------------------------------------------------------------
272 # CLREX
273 #------------------------------------------------------------------------------
274 #CHECK: clrex
275 #CHECK: it ne
276 #CHECK: clrexne
277
278 0xbf 0xf3 0x2f 0x8f
279 0x18 0xbf
280 0xbf 0xf3 0x2f 0x8f
281
282
283 #------------------------------------------------------------------------------
284 # CLZ
285 #------------------------------------------------------------------------------
286 #CHECK: clz r1, r2
287 #CHECK: it eq
288 #CHECK: clzeq r1, r2
289
290 0xb2 0xfa 0x82 0xf1
291 0x08 0xbf
292 0xb2 0xfa 0x82 0xf1
293
294
295 #------------------------------------------------------------------------------
296 # CMN
297 #------------------------------------------------------------------------------
298 #CHECK: cmn.w r1, #15
299 #CHECK: cmn.w r8, r6
300 #CHECK: cmn.w r1, r6, lsl #10
301 #CHECK: cmn.w r1, r6, lsr #10
302 #CHECK: cmn.w sp, r6, lsr #10
303 #CHECK: cmn.w r1, r6, asr #10
304 #CHECK: cmn.w r1, r6, ror #10
305
306 0x11 0xf1 0x0f 0x0f
307 0x18 0xeb 0x06 0x0f
308 0x11 0xeb 0x86 0x2f
309 0x11 0xeb 0x96 0x2f
310 0x1d 0xeb 0x96 0x2f
311 0x11 0xeb 0xa6 0x2f
312 0x11 0xeb 0xb6 0x2f
313
314
315 #------------------------------------------------------------------------------
316 # CMP
317 #------------------------------------------------------------------------------
318 #CHECK: cmp.w r5, #65280
319 #CHECK: cmp.w r4, r12
320 #CHECK: cmp.w r9, r6, lsl #12
321 #CHECK: cmp.w r3, r7, lsr #31
322 #CHECK: cmp.w sp, r6, lsr #1
323 #CHECK: cmp.w r2, r5, asr #24
324 #CHECK: cmp.w r1, r4, ror #15
325
326 0xb5 0xf5 0x7f 0x4f
327 0xb4 0xeb 0x0c 0x0f
328 0xb9 0xeb 0x06 0x3f
329 0xb3 0xeb 0xd7 0x7f
330 0xbd 0xeb 0x56 0x0f
331 0xb2 0xeb 0x25 0x6f
332 0xb1 0xeb 0xf4 0x3f
333
334
335 #------------------------------------------------------------------------------
336 # DBG
337 #------------------------------------------------------------------------------
338 #CHECK: dbg #5
339 #CHECK: dbg #0
340 #CHECK: dbg #15
341
342 0xaf 0xf3 0xf5 0x80
343 0xaf 0xf3 0xf0 0x80
344 0xaf 0xf3 0xff 0x80
345
346
347 #------------------------------------------------------------------------------
348 # DMB
349 #------------------------------------------------------------------------------
350 #CHECK: dmb sy
351 #CHECK: dmb st
352 #CHECK: dmb #0xd
353 #CHECK: dmb #0xc
354 #CHECK: dmb ish
355 #CHECK: dmb ishst
356 #CHECK: dmb #0x9
357 #CHECK: dmb #0x8
358 #CHECK: dmb nsh
359 #CHECK: dmb nshst
360 #CHECK: dmb #0x5
361 #CHECK: dmb #0x4
362 #CHECK: dmb osh
363 #CHECK: dmb oshst
364 #CHECK: dmb #0x1
365 #CHECK: dmb #0x0
366
367 0xbf 0xf3 0x5f 0x8f
368 0xbf 0xf3 0x5e 0x8f
369 0xbf 0xf3 0x5d 0x8f
370 0xbf 0xf3 0x5c 0x8f
371 0xbf 0xf3 0x5b 0x8f
372 0xbf 0xf3 0x5a 0x8f
373 0xbf 0xf3 0x59 0x8f
374 0xbf 0xf3 0x58 0x8f
375 0xbf 0xf3 0x57 0x8f
376 0xbf 0xf3 0x56 0x8f
377 0xbf 0xf3 0x55 0x8f
378 0xbf 0xf3 0x54 0x8f
379 0xbf 0xf3 0x53 0x8f
380 0xbf 0xf3 0x52 0x8f
381 0xbf 0xf3 0x51 0x8f
382 0xbf 0xf3 0x50 0x8f
383
384
385 #------------------------------------------------------------------------------
386 # DSB
387 #------------------------------------------------------------------------------
388 #CHECK: dsb sy
389 #CHECK: dsb st
390 #CHECK: dsb #0xd
391 #CHECK: dsb #0xc
392 #CHECK: dsb ish
393 #CHECK: dsb ishst
394 #CHECK: dsb #0x9
395 #CHECK: dsb #0x8
396 #CHECK: dsb nsh
397 #CHECK: dsb nshst
398 #CHECK: dsb #0x5
399 #CHECK: dsb #0x4
400 #CHECK: dsb osh
401 #CHECK: dsb oshst
402 #CHECK: dsb #0x1
403 #CHECK: dsb #0x0
404
405 0xbf 0xf3 0x4f 0x8f
406 0xbf 0xf3 0x4e 0x8f
407 0xbf 0xf3 0x4d 0x8f
408 0xbf 0xf3 0x4c 0x8f
409 0xbf 0xf3 0x4b 0x8f
410 0xbf 0xf3 0x4a 0x8f
411 0xbf 0xf3 0x49 0x8f
412 0xbf 0xf3 0x48 0x8f
413 0xbf 0xf3 0x47 0x8f
414 0xbf 0xf3 0x46 0x8f
415 0xbf 0xf3 0x45 0x8f
416 0xbf 0xf3 0x44 0x8f
417 0xbf 0xf3 0x43 0x8f
418 0xbf 0xf3 0x42 0x8f
419 0xbf 0xf3 0x41 0x8f
420 0xbf 0xf3 0x40 0x8f
421
422
423 #------------------------------------------------------------------------------
424 # EOR
425 #------------------------------------------------------------------------------
426 #CHECK: eor r4, r5, #61440
427 #CHECK: eor.w r4, r5, r6
428 #CHECK: eor.w r4, r5, r6, lsl #5
429 #CHECK: eor.w r4, r5, r6, lsr #5
430 #CHECK: eor.w r4, r5, r6, lsr #5
431 #CHECK: eor.w r4, r5, r6, asr #5
432 #CHECK: eor.w r4, r5, r6, ror #5
433
434 0x85 0xf4 0x70 0x44
435 0x85 0xea 0x06 0x04
436 0x85 0xea 0x46 0x14
437 0x85 0xea 0x56 0x14
438 0x85 0xea 0x56 0x14
439 0x85 0xea 0x66 0x14
440 0x85 0xea 0x76 0x14
441
442
443 #------------------------------------------------------------------------------
444 # ISB
445 #------------------------------------------------------------------------------
446 #CHECK: isb sy
447
448 0xbf 0xf3 0x6f 0x8f
449
450 #------------------------------------------------------------------------------
451 # IT
452 #------------------------------------------------------------------------------
453 # Test encodings of a few full IT blocks, not just the IT instruction
454
455 # CHECK: iteet eq
456 # CHECK: addeq r0, r1, r2
457 # CHECK: nopne
458 # CHECK: subne r5, r6, r7
459 # CHECK: addeq r1, r2, #4
460
461 0x0d 0xbf
462 0x88 0x18
463 0x00 0xbf
464 0xf5 0x1b
465 0x11 0x1d
466
467 # CHECK: ittee ls
468 # CHECK: addls r0, r1, r2
469 # CHECK: nopls
470 # CHECK: subhi r5, r6, r7
471 # CHECK: addhi r1, r2, #4
472
473 0x99 0xbf
474 0x88 0x18
475 0x00 0xbf
476 0xf5 0x1b
477 0x11 0x1d
478
479
480 #------------------------------------------------------------------------------
481 # LDMIA
482 #------------------------------------------------------------------------------
483 # CHECK: ldm.w r4, {r4, r5, r8, r9}
484 # CHECK: ldm.w r4, {r5, r6}
485 # CHECK: ldm.w r5!, {r3, r8}
486 # CHECK: ldm.w r4, {r4, r5, r8, r9}
487 # CHECK: ldm.w r4, {r5, r6}
488 # CHECK: ldm.w r5!, {r3, r8}
489 # CHECK: ldm.w r5!, {r1, r2}
490 # CHECK: ldm.w r2, {r1, r2}
491
492 # CHECK: ldm.w r4, {r4, r5, r8, r9}
493 # CHECK: ldm.w r4, {r5, r6}
494 # CHECK: ldm.w r5!, {r3, r8}
495 # CHECK: ldm.w r4, {r4, r5, r8, r9}
496 # CHECK: ldm.w r4, {r5, r6}
497 # CHECK: ldm.w r5!, {r3, r8}
498 # CHECK: ldm.w r5!, {r3, r8}
499
500 0x94 0xe8 0x30 0x03
501 0x94 0xe8 0x60 0x00
502 0xb5 0xe8 0x08 0x01
503 0x94 0xe8 0x30 0x03
504 0x94 0xe8 0x60 0x00
505 0xb5 0xe8 0x08 0x01
506 0xb5 0xe8 0x06 0x00
507 0x92 0xe8 0x06 0x00
508
509 0x94 0xe8 0x30 0x03
510 0x94 0xe8 0x60 0x00
511 0xb5 0xe8 0x08 0x01
512 0x94 0xe8 0x30 0x03
513 0x94 0xe8 0x60 0x00
514 0xb5 0xe8 0x08 0x01
515 0xb5 0xe8 0x08 0x01
516
517
518 #------------------------------------------------------------------------------
519 # LDMDB
520 #------------------------------------------------------------------------------
521 # CHECK: ldmdb r4, {r4, r5, r8, r9}
522 # CHECK: ldmdb r4, {r5, r6}
523 # CHECK: ldmdb r5!, {r3, r8}
524 # CHECK: ldmdb r5!, {r3, r8}
525
526 0x14 0xe9 0x30 0x03
527 0x14 0xe9 0x60 0x00
528 0x35 0xe9 0x08 0x01
529 0x35 0xe9 0x08 0x01
530
531
532 #------------------------------------------------------------------------------
533 # LDR(immediate)
534 #------------------------------------------------------------------------------
535 # CHECK: ldr r5, [r5, #-4]
536 # CHECK: ldr r5, [r6, #32]
537 # CHECK: ldr.w r5, [r6, #33]
538 # CHECK: ldr.w r5, [r6, #257]
539 # CHECK: ldr.w pc, [r7, #257]
540
541 0x55 0xf8 0x04 0x5c
542 0x35 0x6a
543 0xd6 0xf8 0x21 0x50
544 0xd6 0xf8 0x01 0x51
545 0xd7 0xf8 0x01 0xf1
546
547
548 #------------------------------------------------------------------------------
549 # LDR(register)
550 #------------------------------------------------------------------------------
551 # CHECK: ldr.w r1, [r8, r1]
552 # CHECK: ldr.w r4, [r5, r2]
553 # CHECK: ldr.w r6, [r0, r2, lsl #3]
554 # CHECK: ldr.w r8, [r8, r2, lsl #2]
555 # CHECK: ldr.w r7, [sp, r2, lsl #1]
556 # CHECK: ldr.w r7, [sp, r2]
557 # CHECK: ldr pc, [sp], #12
558 # CHECK: ldr r2, [r4, #255]!
559 # CHECK: ldr r8, [sp, #4]!
560 # CHECK: ldr lr, [sp, #-4]!
561 # CHECK: ldr r2, [r4], #255
562 # CHECK: ldr r8, [sp], #4
563 # CHECK: ldr lr, [sp], #-4
564
565 0x58 0xf8 0x01 0x10
566 0x55 0xf8 0x02 0x40
567 0x50 0xf8 0x32 0x60
568 0x58 0xf8 0x22 0x80
569 0x5d 0xf8 0x12 0x70
570 0x5d 0xf8 0x02 0x70
571 0x5d 0xf8 0x0c 0xfb
572 0x54 0xf8 0xff 0x2f
573 0x5d 0xf8 0x04 0x8f
574 0x5d 0xf8 0x04 0xed
575 0x54 0xf8 0xff 0x2b
576 0x5d 0xf8 0x04 0x8b
577 0x5d 0xf8 0x04 0xe9
578
579
580 #------------------------------------------------------------------------------
581 # LDRB(immediate)
582 #------------------------------------------------------------------------------
583 # CHECK: ldrb r5, [r5, #-4]
584 # CHECK: ldrb.w r5, [r6, #32]
585 # CHECK: ldrb.w r5, [r6, #33]
586 # CHECK: ldrb.w r5, [r6, #257]
587 # CHECK: ldrb.w lr, [r7, #257]
588
589 0x15 0xf8 0x04 0x5c
590 0x96 0xf8 0x20 0x50
591 0x96 0xf8 0x21 0x50
592 0x96 0xf8 0x01 0x51
593 0x97 0xf8 0x01 0xe1
594
595
596 #------------------------------------------------------------------------------
597 # LDRB(register)
598 #------------------------------------------------------------------------------
599 # CHECK: ldrb.w r1, [r8, r1]
600 # CHECK: ldrb.w r4, [r5, r2]
601 # CHECK: ldrb.w r6, [r0, r2, lsl #3]
602 # CHECK: ldrb.w r8, [r8, r2, lsl #2]
603 # CHECK: ldrb.w r7, [sp, r2, lsl #1]
604 # CHECK: ldrb.w r7, [sp, r2]
605 # CHECK: ldrb r5, [r8, #255]!
606 # CHECK: ldrb r2, [r5, #4]!
607 # CHECK: ldrb r1, [r4, #-4]!
608 # CHECK: ldrb lr, [r3], #255
609 # CHECK: ldrb r9, [r2], #4
610 # CHECK: ldrb r3, [sp], #-4
611
612 0x18 0xf8 0x01 0x10
613 0x15 0xf8 0x02 0x40
614 0x10 0xf8 0x32 0x60
615 0x18 0xf8 0x22 0x80
616 0x1d 0xf8 0x12 0x70
617 0x1d 0xf8 0x02 0x70
618 0x18 0xf8 0xff 0x5f
619 0x15 0xf8 0x04 0x2f
620 0x14 0xf8 0x04 0x1d
621 0x13 0xf8 0xff 0xeb
622 0x12 0xf8 0x04 0x9b
623 0x1d 0xf8 0x04 0x39
624
625
626 #------------------------------------------------------------------------------
627 # LDRBT
628 #------------------------------------------------------------------------------
629 # CHECK: ldrbt r1, [r2]
630 # CHECK: ldrbt r1, [r8]
631 # CHECK: ldrbt r1, [r8, #3]
632 # CHECK: ldrbt r1, [r8, #255]
633
634 0x12 0xf8 0x00 0x1e
635 0x18 0xf8 0x00 0x1e
636 0x18 0xf8 0x03 0x1e
637 0x18 0xf8 0xff 0x1e
638
639
640 #------------------------------------------------------------------------------
641 # LDRD(immediate)
642 #------------------------------------------------------------------------------
643 # CHECK: ldrd r3, r5, [r6, #24]
644 # CHECK: ldrd r3, r5, [r6, #24]!
645 # CHECK: ldrd r3, r5, [r6], #4
646 # CHECK: ldrd r3, r5, [r6], #-8
647 # CHECK: ldrd r3, r5, [r6]
648 # CHECK: ldrd r8, r1, [r3]
649 # CHECK: ldrd r0, r1, [r2], #-0
650 # CHECK: ldrd r0, r1, [r2, #-0]!
651 # CHECK: ldrd r0, r1, [r2, #-0]
652
653 0xd6 0xe9 0x06 0x35
654 0xf6 0xe9 0x06 0x35
655 0xf6 0xe8 0x01 0x35
656 0x76 0xe8 0x02 0x35
657 0xd6 0xe9 0x00 0x35
658 0xd3 0xe9 0x00 0x81
659 0x72 0xe8 0x00 0x01
660 0x72 0xe9 0x00 0x01
661 0x52 0xe9 0x00 0x01
662
663
664 #------------------------------------------------------------------------------
665 # FIXME: LDRD(literal)
666 #------------------------------------------------------------------------------
667
668
669 #------------------------------------------------------------------------------
670 # LDREX/LDREXB/LDREXH/LDREXD
671 #------------------------------------------------------------------------------
672 # CHECK: ldrex r1, [r4]
673 # CHECK: ldrex r8, [r4]
674 # CHECK: ldrex r2, [sp, #128]
675 # CHECK: ldrexb r5, [r7]
676 # CHECK: ldrexh r9, [r12]
677 # CHECK: ldrexd r9, r3, [r4]
678
679 0x54 0xe8 0x00 0x1f
680 0x54 0xe8 0x00 0x8f
681 0x5d 0xe8 0x20 0x2f
682 0xd7 0xe8 0x4f 0x5f
683 0xdc 0xe8 0x5f 0x9f
684 0xd4 0xe8 0x7f 0x93
685
686
687 #------------------------------------------------------------------------------
688 # LDRH(immediate)
689 #------------------------------------------------------------------------------
690 # CHECK: ldrh r5, [r5, #-4]
691 # CHECK: ldrh r5, [r6, #32]
692 # CHECK: ldrh.w r5, [r6, #33]
693 # CHECK: ldrh.w r5, [r6, #257]
694 # CHECK: ldrh.w lr, [r7, #257]
695 # CHECK: ldrh.w r0, [pc, #-21]
696
697 0x35 0xf8 0x04 0x5c
698 0x35 0x8c
699 0xb6 0xf8 0x21 0x50
700 0xb6 0xf8 0x01 0x51
701 0xb7 0xf8 0x01 0xe1
702 0x3f 0xf8 0x15 0x00
703
704
705 #------------------------------------------------------------------------------
706 # LDRH(register)
707 #------------------------------------------------------------------------------
708 # CHECK: ldrh.w r1, [r8, r1]
709 # CHECK: ldrh.w r4, [r5, r2]
710 # CHECK: ldrh.w r6, [r0, r2, lsl #3]
711 # CHECK: ldrh.w r8, [r8, r2, lsl #2]
712 # CHECK: ldrh.w r7, [sp, r2, lsl #1]
713 # CHECK: ldrh.w r7, [sp, r2]
714 # CHECK: ldrh r5, [r8, #255]!
715 # CHECK: ldrh r2, [r5, #4]!
716 # CHECK: ldrh r1, [r4, #-4]!
717 # CHECK: ldrh lr, [r3], #255
718 # CHECK: ldrh r9, [r2], #4
719 # CHECK: ldrh r3, [sp], #-4
720
721 0x38 0xf8 0x01 0x10
722 0x35 0xf8 0x02 0x40
723 0x30 0xf8 0x32 0x60
724 0x38 0xf8 0x22 0x80
725 0x3d 0xf8 0x12 0x70
726 0x3d 0xf8 0x02 0x70
727 0x38 0xf8 0xff 0x5f
728 0x35 0xf8 0x04 0x2f
729 0x34 0xf8 0x04 0x1d
730 0x33 0xf8 0xff 0xeb
731 0x32 0xf8 0x04 0x9b
732 0x3d 0xf8 0x04 0x39
733
734
735 #------------------------------------------------------------------------------
736 # LDRSB(immediate)
737 #------------------------------------------------------------------------------
738 # CHECK: ldrsb r5, [r5, #-4]
739 # CHECK: ldrsb.w r5, [r6, #32]
740 # CHECK: ldrsb.w r5, [r6, #33]
741 # CHECK: ldrsb.w r5, [r6, #257]
742 # CHECK: ldrsb.w lr, [r7, #257]
743
744 0x15 0xf9 0x04 0x5c
745 0x96 0xf9 0x20 0x50
746 0x96 0xf9 0x21 0x50
747 0x96 0xf9 0x01 0x51
748 0x97 0xf9 0x01 0xe1
749
750
751 #------------------------------------------------------------------------------
752 # LDRSB(register)
753 #------------------------------------------------------------------------------
754 # CHECK: ldrsb.w r1, [r8, r1]
755 # CHECK: ldrsb.w r4, [r5, r2]
756 # CHECK: ldrsb.w r6, [r0, r2, lsl #3]
757 # CHECK: ldrsb.w r8, [r8, r2, lsl #2]
758 # CHECK: ldrsb.w r7, [sp, r2, lsl #1]
759 # CHECK: ldrsb.w r7, [sp, r2]
760 # CHECK: ldrsb r5, [r8, #255]!
761 # CHECK: ldrsb r2, [r5, #4]!
762 # CHECK: ldrsb r1, [r4, #-4]!
763 # CHECK: ldrsb lr, [r3], #255
764 # CHECK: ldrsb r9, [r2], #4
765 # CHECK: ldrsb r3, [sp], #-4
766
767 0x18 0xf9 0x01 0x10
768 0x15 0xf9 0x02 0x40
769 0x10 0xf9 0x32 0x60
770 0x18 0xf9 0x22 0x80
771 0x1d 0xf9 0x12 0x70
772 0x1d 0xf9 0x02 0x70
773 0x18 0xf9 0xff 0x5f
774 0x15 0xf9 0x04 0x2f
775 0x14 0xf9 0x04 0x1d
776 0x13 0xf9 0xff 0xeb
777 0x12 0xf9 0x04 0x9b
778 0x1d 0xf9 0x04 0x39
779
780
781 #------------------------------------------------------------------------------
782 # LDRSBT
783 #------------------------------------------------------------------------------
784 # CHECK: ldrsbt r1, [r2]
785 # CHECK: ldrsbt r1, [r8]
786 # CHECK: ldrsbt r1, [r8, #3]
787 # CHECK: ldrsbt r1, [r8, #255]
788
789 0x12 0xf9 0x00 0x1e
790 0x18 0xf9 0x00 0x1e
791 0x18 0xf9 0x03 0x1e
792 0x18 0xf9 0xff 0x1e
793
794
795 #------------------------------------------------------------------------------
796 # LDRSH(immediate)
797 #------------------------------------------------------------------------------
798 # CHECK: ldrsh r5, [r5, #-4]
799 # CHECK: ldrsh.w r5, [r6, #32]
800 # CHECK: ldrsh.w r5, [r6, #33]
801 # CHECK: ldrsh.w r5, [r6, #257]
802 # CHECK: ldrsh.w lr, [r7, #257]
803 # CHECK: ldrsh r10, [r5, #-0]
804
805 0x35 0xf9 0x04 0x5c
806 0xb6 0xf9 0x20 0x50
807 0xb6 0xf9 0x21 0x50
808 0xb6 0xf9 0x01 0x51
809 0xb7 0xf9 0x01 0xe1
810 0x35 0xf9 0x00 0xac
811
812 #------------------------------------------------------------------------------
813 # LDRSH(register)
814 #------------------------------------------------------------------------------
815 # CHECK: ldrsh.w r1, [r8, r1]
816 # CHECK: ldrsh.w r4, [r5, r2]
817 # CHECK: ldrsh.w r6, [r0, r2, lsl #3]
818 # CHECK: ldrsh.w r8, [r8, r2, lsl #2]
819 # CHECK: ldrsh.w r7, [sp, r2, lsl #1]
820 # CHECK: ldrsh.w r7, [sp, r2]
821 # CHECK: ldrsh r5, [r8, #255]!
822 # CHECK: ldrsh r2, [r5, #4]!
823 # CHECK: ldrsh r1, [r4, #-4]!
824 # CHECK: ldrsh lr, [r3], #255
825 # CHECK: ldrsh r9, [r2], #4
826 # CHECK: ldrsh r3, [sp], #-4
827
828 0x38 0xf9 0x01 0x10
829 0x35 0xf9 0x02 0x40
830 0x30 0xf9 0x32 0x60
831 0x38 0xf9 0x22 0x80
832 0x3d 0xf9 0x12 0x70
833 0x3d 0xf9 0x02 0x70
834 0x38 0xf9 0xff 0x5f
835 0x35 0xf9 0x04 0x2f
836 0x34 0xf9 0x04 0x1d
837 0x33 0xf9 0xff 0xeb
838 0x32 0xf9 0x04 0x9b
839 0x3d 0xf9 0x04 0x39
840
841
842 #------------------------------------------------------------------------------
843 # LDRSHT
844 #------------------------------------------------------------------------------
845 # CHECK: ldrsht r1, [r2]
846 # CHECK: ldrsht r1, [r8]
847 # CHECK: ldrsht r1, [r8, #3]
848 # CHECK: ldrsht r1, [r8, #255]
849
850 0x32 0xf9 0x00 0x1e
851 0x38 0xf9 0x00 0x1e
852 0x38 0xf9 0x03 0x1e
853 0x38 0xf9 0xff 0x1e
854
855
856 #------------------------------------------------------------------------------
857 # LDRT
858 #------------------------------------------------------------------------------
859 # CHECK: ldrt r1, [r2]
860 # CHECK: ldrt r2, [r6]
861 # CHECK: ldrt r3, [r7, #3]
862 # CHECK: ldrt r4, [r9, #255]
863
864 0x52 0xf8 0x00 0x1e
865 0x56 0xf8 0x00 0x2e
866 0x57 0xf8 0x03 0x3e
867 0x59 0xf8 0xff 0x4e
868
869
870 #------------------------------------------------------------------------------
871 # LSL (immediate)
872 #------------------------------------------------------------------------------
873 # CHECK: lsl.w r2, r3, #12
874 # CHECK: lsls.w r8, r3, #31
875 # CHECK: lsls.w r2, r3, #1
876 # CHECK: lsl.w r2, r3, #4
877 # CHECK: lsls.w r2, r12, #15
878
879 # CHECK: lsl.w r3, r3, #19
880 # CHECK: lsls.w r8, r8, #2
881 # CHECK: lsls.w r7, r7, #5
882 # CHECK: lsl.w r12, r12, #21
883
884 0x4f 0xea 0x03 0x32
885 0x5f 0xea 0xc3 0x78
886 0x5f 0xea 0x43 0x02
887 0x4f 0xea 0x03 0x12
888 0x5f 0xea 0xcc 0x32
889
890 0x4f 0xea 0xc3 0x43
891 0x5f 0xea 0x88 0x08
892 0x5f 0xea 0x47 0x17
893 0x4f 0xea 0x4c 0x5c
894
895
896 #------------------------------------------------------------------------------
897 # LSL (register)
898 #------------------------------------------------------------------------------
899 # CHECK: lsl.w r3, r4, r2
900 # CHECK: lsl.w r1, r1, r2
901 # CHECK: lsls.w r3, r4, r8
902
903 0x04 0xfa 0x02 0xf3
904 0x01 0xfa 0x02 0xf1
905 0x14 0xfa 0x08 0xf3
906
907
908 #------------------------------------------------------------------------------
909 # LSR (immediate)
910 #------------------------------------------------------------------------------
911 # CHECK: lsr.w r2, r3, #12
912 # CHECK: lsrs.w r8, r3, #32
913 # CHECK: lsrs.w r2, r3, #1
914 # CHECK: lsr.w r2, r3, #4
915 # CHECK: lsrs.w r2, r12, #15
916
917 # CHECK: lsr.w r3, r3, #19
918 # CHECK: lsrs.w r8, r8, #2
919 # CHECK: lsrs.w r7, r7, #5
920 # CHECK: lsr.w r12, r12, #21
921
922 0x4f 0xea 0x13 0x32
923 0x5f 0xea 0x13 0x08
924 0x5f 0xea 0x53 0x02
925 0x4f 0xea 0x13 0x12
926 0x5f 0xea 0xdc 0x32
927
928 0x4f 0xea 0xd3 0x43
929 0x5f 0xea 0x98 0x08
930 0x5f 0xea 0x57 0x17
931 0x4f 0xea 0x5c 0x5c
932
933
934 #------------------------------------------------------------------------------
935 # LSR (register)
936 #------------------------------------------------------------------------------
937 # CHECK: lsr.w r3, r4, r2
938 # CHECK: lsr.w r1, r1, r2
939 # CHECK: lsrs.w r3, r4, r8
940
941 0x24 0xfa 0x02 0xf3
942 0x21 0xfa 0x02 0xf1
943 0x34 0xfa 0x08 0xf3
944
945 #------------------------------------------------------------------------------
946 # MCR/MCR2
947 #------------------------------------------------------------------------------
948 # CHECK: mcr  p7, #1, r5, c1, c1, #4
949 # CHECK: mcr2  p7, #1, r5, c1, c1, #4
950
951 0x21 0xee 0x91 0x57
952 0x21 0xfe 0x91 0x57
953
954
955 #------------------------------------------------------------------------------
956 # MCRR/MCRR2
957 #------------------------------------------------------------------------------
958 # CHECK: mcrr  p7, #15, r5, r4, c1
959 # CHECK: mcrr2  p7, #15, r5, r4, c1
960
961 0x44 0xec 0xf1 0x57
962 0x44 0xfc 0xf1 0x57
963
964
965 #------------------------------------------------------------------------------
966 # MLA/MLS
967 #------------------------------------------------------------------------------
968 # CHECK: mla  r1, r2, r3, r4
969 # CHECK: mls  r1, r2, r3, r4
970
971 0x02 0xfb 0x03 0x41
972 0x02 0xfb 0x13 0x41
973
974
975 #------------------------------------------------------------------------------
976 # MOV(immediate)
977 #------------------------------------------------------------------------------
978 # CHECK: movs r1, #21
979 # CHECK: movs.w r1, #21
980 # CHECK: movs.w r8, #21
981 # CHECK: movw r0, #65535
982 # CHECK: movw r1, #43777
983 # CHECK: movw r1, #43792
984 # CHECK: mov.w r0, #66846720
985 # CHECK: mov.w r0, #66846720
986 # CHECK: movs.w r0, #66846720
987
988 0x15 0x21
989 0x5f 0xf0 0x15 0x01
990 0x5f 0xf0 0x15 0x08
991 0x4f 0xf6 0xff 0x70
992 0x4a 0xf6 0x01 0x31
993 0x4a 0xf6 0x10 0x31
994 0x4f 0xf0 0x7f 0x70
995 0x4f 0xf0 0x7f 0x70
996 0x5f 0xf0 0x7f 0x70
997
998 #------------------------------------------------------------------------------
999 # MOVT
1000 #------------------------------------------------------------------------------
1001 # CHECK: movt r3, #7
1002 # CHECK: movt r6, #65535
1003 # CHECK: it eq
1004 # CHECK: movteq r4, #4080
1005
1006 0xc0 0xf2 0x07 0x03
1007 0xcf 0xf6 0xff 0x76
1008 0x08 0xbf
1009 0xc0 0xf6 0xf0 0x74
1010
1011 #------------------------------------------------------------------------------
1012 # MRC/MRC2
1013 #------------------------------------------------------------------------------
1014 # CHECK: mrc  p14, #0, r1, c1, c2, #4
1015 # CHECK: mrc2  p14, #0, r1, c1, c2, #4
1016
1017 0x11 0xee 0x92 0x1e
1018 0x11 0xfe 0x92 0x1e
1019
1020
1021 #------------------------------------------------------------------------------
1022 # MRRC/MRRC2
1023 #------------------------------------------------------------------------------
1024 # CHECK: mrrc  p7, #1, r5, r4, c1
1025 # CHECK: mrrc2  p7, #1, r5, r4, c1
1026
1027 0x54 0xec 0x11 0x57
1028 0x54 0xfc 0x11 0x57
1029
1030
1031 #------------------------------------------------------------------------------
1032 # MRS
1033 #------------------------------------------------------------------------------
1034 # CHECK: mrs  r8, apsr
1035 # CHECK: mrs  r8, spsr
1036
1037 0xef 0xf3 0x00 0x88
1038 0xff 0xf3 0x00 0x88
1039
1040
1041 #------------------------------------------------------------------------------
1042 # MSR
1043 #------------------------------------------------------------------------------
1044 # CHECK: msr  APSR_nzcvq, r1
1045 # CHECK: msr  APSR_g, r2
1046 # CHECK: msr  APSR_nzcvq, r3
1047 # CHECK: msr  APSR_nzcvq, r4
1048 # CHECK: msr  APSR_nzcvqg, r5
1049 # CHECK: msr  CPSR_fc, r6
1050 # CHECK: msr  CPSR_c, r7
1051 # CHECK: msr  CPSR_x, r8
1052 # CHECK: msr  CPSR_fc, r9
1053 # CHECK: msr  CPSR_fc, r11
1054 # CHECK: msr  CPSR_fsx, r12
1055 # CHECK: msr  SPSR_fc, r0
1056 # CHECK: msr  SPSR_fsxc, r5
1057 # CHECK: msr  CPSR_fsxc, r8
1058
1059 0x81 0xf3 0x00 0x88
1060 0x82 0xf3 0x00 0x84
1061 0x83 0xf3 0x00 0x88
1062 0x84 0xf3 0x00 0x88
1063 0x85 0xf3 0x00 0x8c
1064 0x86 0xf3 0x00 0x89
1065 0x87 0xf3 0x00 0x81
1066 0x88 0xf3 0x00 0x82
1067 0x89 0xf3 0x00 0x89
1068 0x8b 0xf3 0x00 0x89
1069 0x8c 0xf3 0x00 0x8e
1070 0x90 0xf3 0x00 0x89
1071 0x95 0xf3 0x00 0x8f
1072 0x88 0xf3 0x00 0x8f
1073
1074
1075 #------------------------------------------------------------------------------
1076 # MUL
1077 #------------------------------------------------------------------------------
1078 # CHECK: muls r3, r4, r3
1079 # CHECK: mul r3, r4, r3
1080 # CHECK: mul r3, r4, r6
1081 # CHECK: it eq
1082 # CHECK: muleq r3, r4, r5
1083
1084 0x63 0x43
1085 0x04 0xfb 0x03 0xf3
1086 0x04 0xfb 0x06 0xf3
1087 0x08 0xbf
1088 0x04 0xfb 0x05 0xf3
1089
1090
1091 #------------------------------------------------------------------------------
1092 # MVN(immediate)
1093 #------------------------------------------------------------------------------
1094 # CHECK: mvns r8, #21
1095 # CHECK: mvn r0, #66846720
1096 # CHECK: mvns r0, #66846720
1097 # CHECK: itte eq
1098 # CHECK: mvnseq r1, #12
1099 # CHECK: mvneq r1, #12
1100 # CHECK: mvnne r1, #12
1101
1102 0x7f 0xf0 0x15 0x08
1103 0x6f 0xf0 0x7f 0x70
1104 0x7f 0xf0 0x7f 0x70
1105 0x06 0xbf
1106 0x7f 0xf0 0x0c 0x01
1107 0x6f 0xf0 0x0c 0x01
1108 0x6f 0xf0 0x0c 0x01
1109
1110
1111 #------------------------------------------------------------------------------
1112 # MVN(register)
1113 #------------------------------------------------------------------------------
1114 # CHECK: mvn.w r2, r3
1115 # CHECK: mvns r2, r3
1116 # CHECK: mvn.w r5, r6, lsl #19
1117 # CHECK: mvn.w r5, r6, lsr #9
1118 # CHECK: mvn.w r5, r6, asr #4
1119 # CHECK: mvn.w r5, r6, ror #6
1120 # CHECK: mvn.w r5, r6, rrx
1121 # CHECK: it eq
1122 # CHECK: mvneq r2, r3
1123
1124 0x6f 0xea 0x03 0x02
1125 0xda 0x43
1126 0x6f 0xea 0xc6 0x45
1127 0x6f 0xea 0x56 0x25
1128 0x6f 0xea 0x26 0x15
1129 0x6f 0xea 0xb6 0x15
1130 0x6f 0xea 0x36 0x05
1131 0x08 0xbf
1132 0xda 0x43
1133
1134 #------------------------------------------------------------------------------
1135 # NOP
1136 #------------------------------------------------------------------------------
1137 # CHECK: nop.w
1138
1139 0xaf 0xf3 0x00 0x80
1140
1141
1142 #------------------------------------------------------------------------------
1143 # ORN
1144 #------------------------------------------------------------------------------
1145 # CHECK: orn r4, r5, #61440
1146 # CHECK: orn r4, r5, r6
1147 # CHECK: orns r4, r5, r6
1148 # CHECK: orn r4, r5, r6, lsl #5
1149 # CHECK: orns r4, r5, r6, lsr #5
1150 # CHECK: orn r4, r5, r6, lsr #5
1151 # CHECK: orns r4, r5, r6, asr #5
1152 # CHECK: orn r4, r5, r6, ror #5
1153
1154 0x65 0xf4 0x70 0x44
1155 0x65 0xea 0x06 0x04
1156 0x75 0xea 0x06 0x04
1157 0x65 0xea 0x46 0x14
1158 0x75 0xea 0x56 0x14
1159 0x65 0xea 0x56 0x14
1160 0x75 0xea 0x66 0x14
1161 0x65 0xea 0x76 0x14
1162
1163
1164 #------------------------------------------------------------------------------
1165 # ORR
1166 #------------------------------------------------------------------------------
1167 # CHECK: orr r4, r5, #61440
1168 # CHECK: orr.w r4, r5, r6
1169 # CHECK: orr.w r4, r5, r6, lsl #5
1170 # CHECK: orrs.w r4, r5, r6, lsr #5
1171 # CHECK: orr.w r4, r5, r6, lsr #5
1172 # CHECK: orrs.w r4, r5, r6, asr #5
1173 # CHECK: orr.w r4, r5, r6, ror #5
1174
1175 0x45 0xf4 0x70 0x44
1176 0x45 0xea 0x06 0x04
1177 0x45 0xea 0x46 0x14
1178 0x55 0xea 0x56 0x14
1179 0x45 0xea 0x56 0x14
1180 0x55 0xea 0x66 0x14
1181 0x45 0xea 0x76 0x14
1182
1183
1184 #------------------------------------------------------------------------------
1185 # PKH
1186 #------------------------------------------------------------------------------
1187 # CHECK: pkhbt r2, r2, r3
1188 # CHECK: pkhbt r2, r2, r3, lsl #31
1189 # CHECK: pkhbt r2, r2, r3, lsl #15
1190
1191 # CHECK: pkhtb r2, r2, r3, asr #31
1192 # CHECK: pkhtb r2, r2, r3, asr #15
1193
1194 0xc2 0xea 0x03 0x02
1195 0xc2 0xea 0xc3 0x72
1196 0xc2 0xea 0xc3 0x32
1197
1198 0xc2 0xea 0xe3 0x72
1199 0xc2 0xea 0xe3 0x32
1200
1201
1202 #------------------------------------------------------------------------------
1203 # PLD(immediate)
1204 #------------------------------------------------------------------------------
1205 # CHECK: pld [r5, #-4]
1206 # CHECK: pld [r6, #32]
1207 # CHECK: pld [r6, #33]
1208 # CHECK: pld [r6, #257]
1209 # CHECK: pld [r7, #257]
1210
1211 0x15 0xf8 0x04 0xfc
1212 0x96 0xf8 0x20 0xf0
1213 0x96 0xf8 0x21 0xf0
1214 0x96 0xf8 0x01 0xf1
1215 0x97 0xf8 0x01 0xf1
1216
1217 #------------------------------------------------------------------------------
1218 # PLD(register)
1219 #------------------------------------------------------------------------------
1220 # CHECK: pld [r8, r1]
1221 # CHECK: pld [r5, r2]
1222 # CHECK: pld [r0, r2, lsl #3]
1223 # CHECK: pld [r8, r2, lsl #2]
1224 # CHECK: pld [sp, r2, lsl #1]
1225 # CHECK: pld [sp, r2]
1226
1227 0x18 0xf8 0x01 0xf0
1228 0x15 0xf8 0x02 0xf0
1229 0x10 0xf8 0x32 0xf0
1230 0x18 0xf8 0x22 0xf0
1231 0x1d 0xf8 0x12 0xf0
1232 0x1d 0xf8 0x02 0xf0
1233
1234 #------------------------------------------------------------------------------
1235 # PLI(immediate)
1236 #------------------------------------------------------------------------------
1237 # CHECK: pli [r5, #-4]
1238 # CHECK: pli [r6, #32]
1239 # CHECK: pli [r6, #33]
1240 # CHECK: pli [r6, #257]
1241 # CHECK: pli [r7, #257]
1242
1243 0x15 0xf9 0x04 0xfc
1244 0x96 0xf9 0x20 0xf0
1245 0x96 0xf9 0x21 0xf0
1246 0x96 0xf9 0x01 0xf1
1247 0x97 0xf9 0x01 0xf1
1248
1249 #------------------------------------------------------------------------------
1250 # PLI(register)
1251 #------------------------------------------------------------------------------
1252 # CHECK: pli [r8, r1]
1253 # CHECK: pli [r5, r2]
1254 # CHECK: pli [r0, r2, lsl #3]
1255 # CHECK: pli [r8, r2, lsl #2]
1256 # CHECK: pli [sp, r2, lsl #1]
1257 # CHECK: pli [sp, r2]
1258
1259 0x18 0xf9 0x01 0xf0
1260 0x15 0xf9 0x02 0xf0
1261 0x10 0xf9 0x32 0xf0
1262 0x18 0xf9 0x22 0xf0
1263 0x1d 0xf9 0x12 0xf0
1264 0x1d 0xf9 0x02 0xf0
1265
1266
1267 #------------------------------------------------------------------------------
1268 # QADD/QADD16/QADD8
1269 #------------------------------------------------------------------------------
1270 # CHECK: qadd r1, r2, r3
1271 # CHECK: qadd16 r1, r2, r3
1272 # CHECK: qadd8 r1, r2, r3
1273 # CHECK: itte gt
1274 # CHECK: qaddgt r1, r2, r3
1275 # CHECK: qadd16gt r1, r2, r3
1276 # CHECK: qadd8le r1, r2, r3
1277
1278 0x83 0xfa 0x82 0xf1
1279 0x92 0xfa 0x13 0xf1
1280 0x82 0xfa 0x13 0xf1
1281 0xc6 0xbf
1282 0x83 0xfa 0x82 0xf1
1283 0x92 0xfa 0x13 0xf1
1284 0x82 0xfa 0x13 0xf1
1285
1286
1287 #------------------------------------------------------------------------------
1288 # QDADD/QDSUB
1289 #------------------------------------------------------------------------------
1290 # CHECK: qdadd r6, r7, r8
1291 # CHECK: qdsub r6, r7, r8
1292 # CHECK: itt hi
1293 # CHECK: qdaddhi r6, r7, r8
1294 # CHECK: qdsubhi r6, r7, r8
1295
1296 0x88 0xfa 0x97 0xf6
1297 0x88 0xfa 0xb7 0xf6
1298 0x84 0xbf
1299 0x88 0xfa 0x97 0xf6
1300 0x88 0xfa 0xb7 0xf6
1301
1302
1303 #------------------------------------------------------------------------------
1304 # QSAX
1305 #------------------------------------------------------------------------------
1306 # CHECK: qsax r9, r12, r0
1307 # CHECK: it eq
1308 # CHECK: qsaxeq r9, r12, r0
1309
1310 0xec 0xfa 0x10 0xf9
1311 0x08 0xbf
1312 0xec 0xfa 0x10 0xf9
1313
1314
1315 #------------------------------------------------------------------------------
1316 # QSUB/QSUB16/QSUB8
1317 #------------------------------------------------------------------------------
1318 # CHECK: qsub r1, r2, r3
1319 # CHECK: qsub16 r1, r2, r3
1320 # CHECK: qsub8 r1, r2, r3
1321 # CHECK: itet le
1322 # CHECK: qsuble r1, r2, r3
1323 # CHECK: qsub16gt r1, r2, r3
1324 # CHECK: qsub8le r1, r2, r3
1325
1326 0x83 0xfa 0xa2 0xf1
1327 0xd2 0xfa 0x13 0xf1
1328 0xc2 0xfa 0x13 0xf1
1329 0xd6 0xbf
1330 0x83 0xfa 0xa2 0xf1
1331 0xd2 0xfa 0x13 0xf1
1332 0xc2 0xfa 0x13 0xf1
1333
1334
1335 #------------------------------------------------------------------------------
1336 # RBIT
1337 #------------------------------------------------------------------------------
1338 # CHECK: rbit r1, r2
1339 # CHECK: it ne
1340 # CHECK: rbitne r1, r2
1341
1342 0x92 0xfa 0xa2 0xf1
1343 0x18 0xbf
1344 0x92 0xfa 0xa2 0xf1
1345
1346
1347 #------------------------------------------------------------------------------
1348 # REV
1349 #------------------------------------------------------------------------------
1350 # CHECK: rev.w r1, r2
1351 # CHECK: rev.w r2, r8
1352 # CHECK: itt ne
1353 # CHECK: revne r1, r2
1354 # CHECK: revne.w r1, r8
1355
1356 0x92 0xfa 0x82 0xf1
1357 0x98 0xfa 0x88 0xf2
1358 0x1c 0xbf
1359 0x11 0xba
1360 0x98 0xfa 0x88 0xf1
1361
1362
1363 #------------------------------------------------------------------------------
1364 # REV16
1365 #------------------------------------------------------------------------------
1366 # CHECK: rev16.w r1, r2
1367 # CHECK: rev16.w r2, r8
1368 # CHECK: itt ne
1369 # CHECK: rev16ne r1, r2
1370 # CHECK: rev16ne.w r1, r8
1371
1372 0x92 0xfa 0x92 0xf1
1373 0x98 0xfa 0x98 0xf2
1374 0x1c 0xbf
1375 0x51 0xba
1376 0x98 0xfa 0x98 0xf1
1377
1378
1379 #------------------------------------------------------------------------------
1380 # REVSH
1381 #------------------------------------------------------------------------------
1382 # CHECK: revsh.w r1, r2
1383 # CHECK: revsh.w r2, r8
1384 # CHECK: itt ne
1385 # CHECK: revshne r1, r2
1386 # CHECK: revshne.w r1, r8
1387
1388 0x92 0xfa 0xb2 0xf1
1389 0x98 0xfa 0xb8 0xf2
1390 0x1c 0xbf
1391 0xd1 0xba
1392 0x98 0xfa 0xb8 0xf1
1393
1394
1395 #------------------------------------------------------------------------------
1396 # ROR (immediate)
1397 #------------------------------------------------------------------------------
1398 # CHECK: ror.w r2, r3, #12
1399 # CHECK: rors.w r8, r3, #31
1400 # CHECK: rors.w r2, r3, #1
1401 # CHECK: ror.w r2, r3, #4
1402 # CHECK: rors.w r2, r12, #15
1403
1404 # CHECK: ror.w r3, r3, #19
1405 # CHECK: rors.w r8, r8, #2
1406 # CHECK: rors.w r7, r7, #5
1407 # CHECK: ror.w r12, r12, #21
1408
1409 0x4f 0xea 0x33 0x32
1410 0x5f 0xea 0xf3 0x78
1411 0x5f 0xea 0x73 0x02
1412 0x4f 0xea 0x33 0x12
1413 0x5f 0xea 0xfc 0x32
1414
1415 0x4f 0xea 0xf3 0x43
1416 0x5f 0xea 0xb8 0x08
1417 0x5f 0xea 0x77 0x17
1418 0x4f 0xea 0x7c 0x5c
1419
1420
1421 #------------------------------------------------------------------------------
1422 # ROR (register)
1423 #------------------------------------------------------------------------------
1424 # CHECK: ror.w r3, r4, r2
1425 # CHECK: ror.w r1, r1, r2
1426 # CHECK: rors.w r3, r4, r8
1427
1428 0x64 0xfa 0x02 0xf3
1429 0x61 0xfa 0x02 0xf1
1430 0x74 0xfa 0x08 0xf3
1431
1432
1433 #------------------------------------------------------------------------------
1434 # RRX
1435 #------------------------------------------------------------------------------
1436 # CHECK: rrx r1, r2
1437 # CHECK: rrxs r1, r2
1438 # CHECK: ite lt
1439 # CHECK: rrxlt r9, r12
1440 # CHECK: rrxsge r8, r3
1441
1442 0x4f 0xea 0x32 0x01
1443 0x5f 0xea 0x32 0x01
1444 0xb4 0xbf
1445 0x4f 0xea 0x3c 0x09
1446 0x5f 0xea 0x33 0x08
1447
1448 #------------------------------------------------------------------------------
1449 # RSB (immediate)
1450 #------------------------------------------------------------------------------
1451 # CHECK: rsb.w r2, r5, #1044480
1452 # CHECK: rsbs.w r3, r12, #15
1453 # CHECK: rsb.w r1, r1, #255
1454
1455 0xc5 0xf5 0x7f 0x22
1456 0xdc 0xf1 0x0f 0x03
1457 0xc1 0xf1 0xff 0x01
1458
1459
1460 #------------------------------------------------------------------------------
1461 # RSB (register)
1462 #------------------------------------------------------------------------------
1463 # CHECK: rsb r4, r4, r8
1464 # CHECK: rsb r4, r9, r8
1465 # CHECK: rsb r1, r4, r8, asr #3
1466 # CHECK: rsbs r2, r1, r7, lsl #1
1467
1468 0xc4 0xeb 0x08 0x04
1469 0xc9 0xeb 0x08 0x04
1470 0xc4 0xeb 0xe8 0x01
1471 0xd1 0xeb 0x47 0x02
1472
1473
1474 #------------------------------------------------------------------------------
1475 # SADD16
1476 #------------------------------------------------------------------------------
1477 # CHECK: sadd16 r3, r4, r8
1478 # CHECK: it ne
1479 # CHECK: sadd16ne r3, r4, r8
1480
1481 0x94 0xfa 0x08 0xf3
1482 0x18 0xbf
1483 0x94 0xfa 0x08 0xf3
1484
1485
1486 #------------------------------------------------------------------------------
1487 # SADD8
1488 #------------------------------------------------------------------------------
1489 # CHECK: sadd8 r3, r4, r8
1490 # CHECK: it ne
1491 # CHECK: sadd8ne r3, r4, r8
1492
1493 0x84 0xfa 0x08 0xf3
1494 0x18 0xbf
1495 0x84 0xfa 0x08 0xf3
1496
1497
1498 #------------------------------------------------------------------------------
1499 # SASX
1500 #------------------------------------------------------------------------------
1501 # CHECK: sasx r9, r2, r7
1502 # CHECK: it ne
1503 # CHECK: sasxne r2, r5, r6
1504
1505 0xa2 0xfa 0x07 0xf9
1506 0x18 0xbf
1507 0xa5 0xfa 0x06 0xf2
1508
1509
1510 #------------------------------------------------------------------------------
1511 # SBC (immediate)
1512 #------------------------------------------------------------------------------
1513 # CHECK: sbc r0, r1, #4
1514 # CHECK: sbcs r0, r1, #0
1515 # CHECK: sbc r1, r2, #255
1516 # CHECK: sbc r3, r7, #5570645
1517 # CHECK: sbc r8, r12, #2852170240
1518 # CHECK: sbc r9, r7, #2779096485
1519 # CHECK: sbc r5, r3, #2264924160
1520 # CHECK: sbc r4, r2, #2139095040
1521 # CHECK: sbc r4, r2, #1664
1522
1523 0x61 0xf1 0x04 0x00
1524 0x71 0xf1 0x00 0x00
1525 0x62 0xf1 0xff 0x01
1526 0x67 0xf1 0x55 0x13
1527 0x6c 0xf1 0xaa 0x28
1528 0x67 0xf1 0xa5 0x39
1529 0x63 0xf1 0x07 0x45
1530 0x62 0xf1 0xff 0x44
1531 0x62 0xf5 0xd0 0x64
1532
1533
1534 #------------------------------------------------------------------------------
1535 # SBC (register)
1536 #------------------------------------------------------------------------------
1537 # CHECK: sbc.w r4, r5, r6
1538 # CHECK: sbcs.w r4, r5, r6
1539 # CHECK: sbc.w r9, r1, r3
1540 # CHECK: sbcs.w r9, r1, r3
1541 # CHECK: sbc.w r0, r1, r3, ror #4
1542 # CHECK: sbcs.w r0, r1, r3, lsl #7
1543 # CHECK: sbc.w r0, r1, r3, lsr #31
1544 # CHECK: sbcs.w r0, r1, r3, asr #32
1545
1546 0x65 0xeb 0x06 0x04
1547 0x75 0xeb 0x06 0x04
1548 0x61 0xeb 0x03 0x09
1549 0x71 0xeb 0x03 0x09
1550 0x61 0xeb 0x33 0x10
1551 0x71 0xeb 0xc3 0x10
1552 0x61 0xeb 0xd3 0x70
1553 0x71 0xeb 0x23 0x00
1554
1555
1556 #------------------------------------------------------------------------------
1557 # SBFX
1558 #------------------------------------------------------------------------------
1559 # CHECK: sbfx r4, r5, #16, #1
1560 # CHECK: it gt
1561 # CHECK: sbfxgt r4, r5, #16, #16
1562
1563 0x45 0xf3 0x00 0x44
1564 0xc8 0xbf
1565 0x45 0xf3 0x0f 0x44
1566
1567
1568 #------------------------------------------------------------------------------
1569 # SEL
1570 #------------------------------------------------------------------------------
1571 # CHECK: sel r5, r9, r2
1572 # CHECK: it le
1573 # CHECK: selle r5, r9, r2
1574
1575 0xa9 0xfa 0x82 0xf5
1576 0xd8 0xbf
1577 0xa9 0xfa 0x82 0xf5
1578
1579
1580 #------------------------------------------------------------------------------
1581 # SEV
1582 #------------------------------------------------------------------------------
1583 # CHECK: sev.w
1584 # CHECK: it eq
1585 # CHECK: seveq.w
1586
1587 0xaf 0xf3 0x04 0x80
1588 0x08 0xbf
1589 0xaf 0xf3 0x04 0x80
1590
1591
1592 #------------------------------------------------------------------------------
1593 # SADD16/SADD8
1594 #------------------------------------------------------------------------------
1595 # CHECK: sadd16 r1, r2, r3
1596 # CHECK: sadd8 r1, r2, r3
1597 # CHECK: ite gt
1598 # CHECK: sadd16gt r1, r2, r3
1599 # CHECK: sadd8le r1, r2, r3
1600
1601 0x92 0xfa 0x03 0xf1
1602 0x82 0xfa 0x03 0xf1
1603 0xcc 0xbf
1604 0x92 0xfa 0x03 0xf1
1605 0x82 0xfa 0x03 0xf1
1606
1607
1608 #------------------------------------------------------------------------------
1609 # SHASX
1610 #------------------------------------------------------------------------------
1611 # CHECK: shasx r4, r8, r2
1612 # CHECK: it gt
1613 # CHECK: shasxgt r4, r8, r2
1614
1615 0xa8 0xfa 0x22 0xf4
1616 0xc8 0xbf
1617 0xa8 0xfa 0x22 0xf4
1618
1619
1620 #------------------------------------------------------------------------------
1621 # SHASX
1622 #------------------------------------------------------------------------------
1623 # CHECK: shsax r4, r8, r2
1624 # CHECK: it gt
1625 # CHECK: shsaxgt r4, r8, r2
1626
1627 0xe8 0xfa 0x22 0xf4
1628 0xc8 0xbf
1629 0xe8 0xfa 0x22 0xf4
1630
1631
1632 #------------------------------------------------------------------------------
1633 # SHSUB16/SHSUB8
1634 #------------------------------------------------------------------------------
1635 # CHECK: shsub16 r4, r8, r2
1636 # CHECK: shsub8 r4, r8, r2
1637 # CHECK: itt gt
1638 # CHECK: shsub16gt r4, r8, r2
1639 # CHECK: shsub8gt r4, r8, r2
1640
1641 0xd8 0xfa 0x22 0xf4
1642 0xc8 0xfa 0x22 0xf4
1643 0xc4 0xbf
1644 0xd8 0xfa 0x22 0xf4
1645 0xc8 0xfa 0x22 0xf4
1646
1647
1648 #------------------------------------------------------------------------------
1649 # SMLABB/SMLABT/SMLATB/SMLATT
1650 #------------------------------------------------------------------------------
1651 # CHECK: smlabb r3, r1, r9, r0
1652 # CHECK: smlabt r5, r6, r4, r1
1653 # CHECK: smlatb r4, r2, r3, r2
1654 # CHECK: smlatt r8, r3, r8, r4
1655 # CHECK: itete gt
1656 # CHECK: smlabbgt r3, r1, r9, r0
1657 # CHECK: smlabtle r5, r6, r4, r1
1658 # CHECK: smlatbgt r4, r2, r3, r2
1659 # CHECK: smlattle r8, r3, r8, r4
1660
1661 0x11 0xfb 0x09 0x03
1662 0x16 0xfb 0x14 0x15
1663 0x12 0xfb 0x23 0x24
1664 0x13 0xfb 0x38 0x48
1665 0xcb 0xbf
1666 0x11 0xfb 0x09 0x03
1667 0x16 0xfb 0x14 0x15
1668 0x12 0xfb 0x23 0x24
1669 0x13 0xfb 0x38 0x48
1670
1671
1672 #------------------------------------------------------------------------------
1673 # SMLAD/SMLADX
1674 #------------------------------------------------------------------------------
1675 # CHECK: smlad r2, r3, r5, r8
1676 # CHECK: smladx r2, r3, r5, r8
1677 # CHECK: itt hi
1678 # CHECK: smladhi r2, r3, r5, r8
1679 # CHECK: smladxhi r2, r3, r5, r8
1680
1681 0x23 0xfb 0x05 0x82
1682 0x23 0xfb 0x15 0x82
1683 0x84 0xbf
1684 0x23 0xfb 0x05 0x82
1685 0x23 0xfb 0x15 0x82
1686
1687
1688 #------------------------------------------------------------------------------
1689 # SMLAL
1690 #------------------------------------------------------------------------------
1691 # CHECK: smlal r2, r3, r5, r8
1692 # CHECK: it eq
1693 # CHECK: smlaleq r2, r3, r5, r8
1694
1695 0xc5 0xfb 0x08 0x23
1696 0x08 0xbf
1697 0xc5 0xfb 0x08 0x23
1698
1699
1700 #------------------------------------------------------------------------------
1701 # SMLALBB/SMLALBT/SMLALTB/SMLALTT
1702 #------------------------------------------------------------------------------
1703 # CHECK: smlalbb r3, r1, r9, r0
1704 # CHECK: smlalbt r5, r6, r4, r1
1705 # CHECK: smlaltb r4, r2, r3, r2
1706 # CHECK: smlaltt r8, r3, r8, r4
1707 # CHECK: iteet ge
1708 # CHECK: smlalbbge r3, r1, r9, r0
1709 # CHECK: smlalbtlt r5, r6, r4, r1
1710 # CHECK: smlaltblt r4, r2, r3, r2
1711 # CHECK: smlalttge r8, r3, r8, r4
1712
1713 0xc9 0xfb 0x80 0x31
1714 0xc4 0xfb 0x91 0x56
1715 0xc3 0xfb 0xa2 0x42
1716 0xc8 0xfb 0xb4 0x83
1717 0xad 0xbf
1718 0xc9 0xfb 0x80 0x31
1719 0xc4 0xfb 0x91 0x56
1720 0xc3 0xfb 0xa2 0x42
1721 0xc8 0xfb 0xb4 0x83
1722
1723 #------------------------------------------------------------------------------
1724 # SMLALD/SMLALDX
1725 #------------------------------------------------------------------------------
1726 # CHECK: smlald r2, r3, r5, r8
1727 # CHECK: smlaldx r2, r3, r5, r8
1728 # CHECK: ite eq
1729 # CHECK: smlaldeq r2, r3, r5, r8
1730 # CHECK: smlaldxne r2, r3, r5, r8
1731
1732 0xc5 0xfb 0xc8 0x23
1733 0xc5 0xfb 0xd8 0x23
1734 0x0c 0xbf
1735 0xc5 0xfb 0xc8 0x23
1736 0xc5 0xfb 0xd8 0x23
1737
1738
1739 #------------------------------------------------------------------------------
1740 # SMLAWB/SMLAWT
1741 #------------------------------------------------------------------------------
1742 # CHECK: smlawb r2, r3, r10, r8
1743 # CHECK: smlawt r8, r3, r5, r9
1744 # CHECK: ite eq
1745 # CHECK: smlawbeq r2, r7, r5, r8
1746 # CHECK: smlawtne r1, r3, r0, r8
1747
1748 0x33 0xfb 0x0a 0x82
1749 0x33 0xfb 0x15 0x98
1750 0x0c 0xbf
1751 0x37 0xfb 0x05 0x82
1752 0x33 0xfb 0x10 0x81
1753
1754
1755 #------------------------------------------------------------------------------
1756 # SMLSD/SMLSDX
1757 #------------------------------------------------------------------------------
1758 # CHECK: smlsd r2, r3, r5, r8
1759 # CHECK: smlsdx r2, r3, r5, r8
1760 # CHECK: ite le
1761 # CHECK: smlsdle r2, r3, r5, r8
1762 # CHECK: smlsdxgt r2, r3, r5, r8
1763
1764 0x43 0xfb 0x05 0x82
1765 0x43 0xfb 0x15 0x82
1766 0xd4 0xbf
1767 0x43 0xfb 0x05 0x82
1768 0x43 0xfb 0x15 0x82
1769
1770
1771 #------------------------------------------------------------------------------
1772 # SMLSLD/SMLSLDX
1773 #------------------------------------------------------------------------------
1774 # CHECK: smlsld r2, r9, r5, r1
1775 # CHECK: smlsldx r4, r11, r2, r8
1776 # CHECK: ite ge
1777 # CHECK: smlsldge r8, r2, r5, r6
1778 # CHECK: smlsldxlt r1, r0, r3, r8
1779
1780 0xd5 0xfb 0xc1 0x29
1781 0xd2 0xfb 0xd8 0x4b
1782 0xac 0xbf
1783 0xd5 0xfb 0xc6 0x82
1784 0xd3 0xfb 0xd8 0x10
1785
1786
1787 #------------------------------------------------------------------------------
1788 # SMMLA/SMMLAR
1789 #------------------------------------------------------------------------------
1790 # CHECK: smmla r1, r2, r3, r4
1791 # CHECK: smmlar r4, r3, r2, r1
1792 # CHECK: ite lo
1793 # CHECK: smmlalo r1, r2, r3, r4
1794 # CHECK: smmlarhs r4, r3, r2, r1
1795
1796 0x52 0xfb 0x03 0x41
1797 0x53 0xfb 0x12 0x14
1798 0x34 0xbf
1799 0x52 0xfb 0x03 0x41
1800 0x53 0xfb 0x12 0x14
1801
1802
1803 #------------------------------------------------------------------------------
1804 # SMMLS/SMMLSR
1805 #------------------------------------------------------------------------------
1806 # CHECK: smmls r1, r2, r3, r4
1807 # CHECK: smmlsr r4, r3, r2, r1
1808 # CHECK: ite lo
1809 # CHECK: smmlslo r1, r2, r3, r4
1810 # CHECK: smmlsrhs r4, r3, r2, r1
1811
1812 0x62 0xfb 0x03 0x41
1813 0x63 0xfb 0x12 0x14
1814 0x34 0xbf
1815 0x62 0xfb 0x03 0x41
1816 0x63 0xfb 0x12 0x14
1817
1818 #------------------------------------------------------------------------------
1819 # SSAT
1820 #------------------------------------------------------------------------------
1821 # CHECK: ssat r9, #30, r0, asr #2
1822
1823 0x20 0xf3 0x9d 0x09
1824
1825 #------------------------------------------------------------------------------
1826 # STR (immediate)
1827 #------------------------------------------------------------------------------
1828 # CHECK: str r10, [r11], #0
1829
1830 0x4b 0xf8 0x00 0xab
1831
1832 #------------------------------------------------------------------------------
1833 # STRD (immediate)
1834 #------------------------------------------------------------------------------
1835 # CHECK: strd r6, r3, [r5], #-8
1836 # CHECK: strd r8, r5, [r5], #-0
1837 # CHECK: strd r7, r4, [r5], #-4
1838 # CHECK: strd r0, r1, [r2, #-0]!
1839 # CHECK: strd r0, r1, [r2, #-0]
1840
1841 0x65 0xe8 0x02 0x63
1842 0x65 0xe8 0x00 0x85
1843 0x65 0xe8 0x01 0x74
1844 0x62 0xe9 0x00 0x01
1845 0x42 0xe9 0x00 0x01
1846
1847 #------------------------------------------------------------------------------
1848 # STREX/STREXB/STREXH/STREXD
1849 #------------------------------------------------------------------------------
1850 # CHECK: strex r1, r8, [r4]
1851 # CHECK: strex r8, r2, [r4]
1852 # CHECK: strex r2, r12, [sp, #128]
1853 # CHECK: strexb r5, r1, [r7]
1854 # CHECK: strexh r9, r7, [r12]
1855 # CHECK: strexd r9, r3, r6, [r4]
1856
1857 0x44 0xe8 0x00 0x81
1858 0x44 0xe8 0x00 0x28
1859 0x4d 0xe8 0x20 0xc2
1860 0xc7 0xe8 0x45 0x1f
1861 0xcc 0xe8 0x59 0x7f
1862 0xc4 0xe8 0x79 0x36
1863
1864
1865 #------------------------------------------------------------------------------
1866 # STRH(immediate)
1867 #------------------------------------------------------------------------------
1868 # CHECK: strh r5, [r5, #-4]
1869 # CHECK: strh r5, [r6, #32]
1870 # CHECK: strh.w r5, [r6, #33]
1871 # CHECK: strh.w r5, [r6, #257]
1872 # CHECK: strh.w lr, [r7, #257]
1873 # CHECK: strh r5, [r8, #255]!
1874 # CHECK: strh r2, [r5, #4]!
1875 # CHECK: strh r1, [r4, #-4]!
1876 # CHECK: strh lr, [r3], #255
1877 # CHECK: strh r9, [r2], #4
1878 # CHECK: strh r3, [sp], #-4
1879
1880 0x25 0xf8 0x04 0x5c
1881 0x35 0x84
1882 0xa6 0xf8 0x21 0x50
1883 0xa6 0xf8 0x01 0x51
1884 0xa7 0xf8 0x01 0xe1
1885 0x28 0xf8 0xff 0x5f
1886 0x25 0xf8 0x04 0x2f
1887 0x24 0xf8 0x04 0x1d
1888 0x23 0xf8 0xff 0xeb
1889 0x22 0xf8 0x04 0x9b
1890 0x2d 0xf8 0x04 0x39
1891
1892
1893 #------------------------------------------------------------------------------
1894 # STRH(register)
1895 #------------------------------------------------------------------------------
1896 # CHECK: strh.w r1, [r8, r1]
1897 # CHECK: strh.w r4, [r5, r2]
1898 # CHECK: strh.w r6, [r0, r2, lsl #3]
1899 # CHECK: strh.w r8, [r8, r2, lsl #2]
1900 # CHECK: strh.w r7, [sp, r2, lsl #1]
1901 # CHECK: strh.w r7, [sp, r2]
1902
1903 0x28 0xf8 0x01 0x10
1904 0x25 0xf8 0x02 0x40
1905 0x20 0xf8 0x32 0x60
1906 0x28 0xf8 0x22 0x80
1907 0x2d 0xf8 0x12 0x70
1908 0x2d 0xf8 0x02 0x70
1909
1910
1911 #------------------------------------------------------------------------------
1912 # STRHT
1913 #------------------------------------------------------------------------------
1914 # CHECK: strht r1, [r2]
1915 # CHECK: strht r1, [r8]
1916 # CHECK: strht r1, [r8, #3]
1917 # CHECK: strht r1, [r8, #255]
1918
1919 0x22 0xf8 0x00 0x1e
1920 0x28 0xf8 0x00 0x1e
1921 0x28 0xf8 0x03 0x1e
1922 0x28 0xf8 0xff 0x1e
1923
1924
1925 #------------------------------------------------------------------------------
1926 # STRT
1927 #------------------------------------------------------------------------------
1928 # CHECK: strt r1, [r2]
1929 # CHECK: strt r1, [r8]
1930 # CHECK: strt r1, [r8, #3]
1931 # CHECK: strt r1, [r8, #255]
1932
1933 0x42 0xf8 0x00 0x1e
1934 0x48 0xf8 0x00 0x1e
1935 0x48 0xf8 0x03 0x1e
1936 0x48 0xf8 0xff 0x1e
1937
1938
1939 #------------------------------------------------------------------------------
1940 # SUB (immediate)
1941 #------------------------------------------------------------------------------
1942 # CHECK: itet eq
1943 # CHECK: subeq r1, r2, #4
1944 # CHECK: subwne r5, r3, #1023
1945 # CHECK: subweq r4, r5, #293
1946 # CHECK: sub.w r2, sp, #1024
1947 # CHECK: sub.w r2, r8, #65280
1948 # CHECK: subw r2, r3, #257
1949 # CHECK: sub.w r12, r6, #256
1950 # CHECK: subw r12, r6, #256
1951 # CHECK: subs.w r1, r2, #496
1952
1953 0x0a 0xbf
1954 0x11 0x1f
1955 0xa3 0xf2 0xff 0x35
1956 0xa5 0xf2 0x25 0x14
1957 0xad 0xf5 0x80 0x62
1958 0xa8 0xf5 0x7f 0x42
1959 0xa3 0xf2 0x01 0x12
1960 0xa6 0xf5 0x80 0x7c
1961 0xa6 0xf2 0x00 0x1c
1962 0xb2 0xf5 0xf8 0x71
1963
1964
1965 #------------------------------------------------------------------------------
1966 # SUB (register)
1967 #------------------------------------------------------------------------------
1968 # CHECK: sub.w r4, r5, r6
1969 # CHECK: sub.w r4, r5, r6, lsl #5
1970 # CHECK: sub.w r4, r5, r6, lsr #5
1971 # CHECK: sub.w r4, r5, r6, lsr #5
1972 # CHECK: sub.w r4, r5, r6, asr #5
1973 # CHECK: sub.w r4, r5, r6, ror #5
1974 # CHECK: sub.w r5, r2, r12, rrx
1975
1976 0xa5 0xeb 0x06 0x04
1977 0xa5 0xeb 0x46 0x14
1978 0xa5 0xeb 0x56 0x14
1979 0xa5 0xeb 0x56 0x14
1980 0xa5 0xeb 0x66 0x14
1981 0xa5 0xeb 0x76 0x14
1982 0xa2 0xeb 0x3c 0x05
1983
1984
1985 #------------------------------------------------------------------------------
1986 # SVC
1987 #------------------------------------------------------------------------------
1988 # CHECK: svc #0
1989 # CHECK: ite eq
1990 # CHECK: svceq #255
1991 # CHECK: svcne #33
1992
1993 0x00 0xdf
1994 0x0c 0xbf
1995 0xff 0xdf
1996 0x21 0xdf
1997
1998 #------------------------------------------------------------------------------
1999 # SXTAB
2000 #------------------------------------------------------------------------------
2001 # CHECK:  sxtab r2, r3, r4
2002 # CHECK:  sxtab r4, r5, r6
2003 # CHECK:  it lt
2004 # CHECK:  sxtablt r6, r2, r9, ror #8
2005 # CHECK:  sxtab r5, r1, r4, ror #16
2006 # CHECK:  sxtab r7, r8, r3, ror #24
2007
2008 0x43 0xfa 0x84 0xf2
2009 0x45 0xfa 0x86 0xf4
2010 0xb8 0xbf
2011 0x42 0xfa 0x99 0xf6
2012 0x41 0xfa 0xa4 0xf5
2013 0x48 0xfa 0xb3 0xf7
2014
2015
2016 #------------------------------------------------------------------------------
2017 # SXTAB16
2018 #------------------------------------------------------------------------------
2019 # CHECK:  sxtab16 r6, r2, r7
2020 # CHECK:  sxtab16 r3, r5, r8, ror #8
2021 # CHECK:  sxtab16 r3, r2, r1, ror #16
2022 # CHECK:  ite ne
2023 # CHECK:  sxtab16ne r0, r1, r4
2024 # CHECK:  sxtab16eq r1, r2, r3, ror #24
2025
2026 0x22 0xfa 0x87 0xf6
2027 0x25 0xfa 0x98 0xf3
2028 0x22 0xfa 0xa1 0xf3
2029 0x14 0xbf
2030 0x21 0xfa 0x84 0xf0
2031 0x22 0xfa 0xb3 0xf1
2032
2033
2034 #------------------------------------------------------------------------------
2035 # SXTAH
2036 #------------------------------------------------------------------------------
2037 # CHECK:  sxtah r1, r3, r9
2038 # CHECK:  sxtah r3, r8, r3, ror #8
2039 # CHECK:  sxtah r9, r3, r3, ror #24
2040 # CHECK:  ite hi
2041 # CHECK:  sxtahhi r6, r1, r6
2042 # CHECK:  sxtahls r2, r2, r4, ror #16
2043
2044 0x03 0xfa 0x89 0xf1
2045 0x08 0xfa 0x93 0xf3
2046 0x03 0xfa 0xb3 0xf9
2047 0x8c 0xbf
2048 0x01 0xfa 0x86 0xf6
2049 0x02 0xfa 0xa4 0xf2
2050
2051
2052 #------------------------------------------------------------------------------
2053 # SXTB
2054 #------------------------------------------------------------------------------
2055 # CHECK:  sxtb r5, r6
2056 # CHECK:  sxtb.w r6, r9, ror #8
2057 # CHECK:  sxtb.w r8, r3, ror #24
2058 # CHECK:  ite ge
2059 # CHECK:  sxtbge r2, r4
2060 # CHECK:  sxtblt.w r5, r1, ror #16
2061
2062 0x75 0xb2
2063 0x4f 0xfa 0x99 0xf6
2064 0x4f 0xfa 0xb3 0xf8
2065 0xac 0xbf
2066 0x62 0xb2
2067 0x4f 0xfa 0xa1 0xf5
2068
2069
2070 #------------------------------------------------------------------------------
2071 # SXTB16
2072 #------------------------------------------------------------------------------
2073 # CHECK:  sxtb16 r1, r4
2074 # CHECK:  sxtb16 r6, r7
2075 # CHECK:  sxtb16 r3, r1, ror #16
2076 # CHECK:  ite hs
2077 # CHECK:  sxtb16hs r3, r5, ror #8
2078 # CHECK:  sxtb16lo r2, r3, ror #24
2079
2080 0x2f 0xfa 0x84 0xf1
2081 0x2f 0xfa 0x87 0xf6
2082 0x2f 0xfa 0xa1 0xf3
2083 0x2c 0xbf
2084 0x2f 0xfa 0x95 0xf3
2085 0x2f 0xfa 0xb3 0xf2
2086
2087
2088 #------------------------------------------------------------------------------
2089 # SXTH
2090 #------------------------------------------------------------------------------
2091 # CHECK:  sxth r1, r6
2092 # CHECK:  sxth.w r3, r8, ror #8
2093 # CHECK:  sxth.w r9, r3, ror #24
2094 # CHECK:  itt ne
2095 # CHECK:  sxthne.w r3, r9
2096 # CHECK:  sxthne.w r2, r2, ror #16
2097
2098 0x31 0xb2
2099 0x0f 0xfa 0x98 0xf3
2100 0x0f 0xfa 0xb3 0xf9
2101 0x1c 0xbf
2102 0x0f 0xfa 0x89 0xf3
2103 0x0f 0xfa 0xa2 0xf2
2104
2105
2106 #------------------------------------------------------------------------------
2107 # SXTB
2108 #------------------------------------------------------------------------------
2109 # CHECK:  sxtb r5, r6
2110 # CHECK:  sxtb.w r6, r9, ror #8
2111 # CHECK:  sxtb.w r8, r3, ror #24
2112 # CHECK:  ite ge
2113 # CHECK:  sxtbge r2, r4
2114 # CHECK:  sxtblt.w r5, r1, ror #16
2115
2116 0x75 0xb2
2117 0x4f 0xfa 0x99 0xf6
2118 0x4f 0xfa 0xb3 0xf8
2119 0xac 0xbf
2120 0x62 0xb2
2121 0x4f 0xfa 0xa1 0xf5
2122
2123
2124 #------------------------------------------------------------------------------
2125 # SXTB16
2126 #------------------------------------------------------------------------------
2127 # CHECK:  sxtb16 r1, r4
2128 # CHECK:  sxtb16 r6, r7
2129 # CHECK:  sxtb16 r3, r1, ror #16
2130 # CHECK:  ite hs
2131 # CHECK:  sxtb16hs r3, r5, ror #8
2132 # CHECK:  sxtb16lo r2, r3, ror #24
2133
2134 0x2f 0xfa 0x84 0xf1
2135 0x2f 0xfa 0x87 0xf6
2136 0x2f 0xfa 0xa1 0xf3
2137 0x2c 0xbf
2138 0x2f 0xfa 0x95 0xf3
2139 0x2f 0xfa 0xb3 0xf2
2140
2141
2142 #------------------------------------------------------------------------------
2143 # SXTH
2144 #------------------------------------------------------------------------------
2145 # CHECK:  sxth r1, r6
2146 # CHECK:  sxth.w r3, r8, ror #8
2147 # CHECK:  sxth.w r9, r3, ror #24
2148 # CHECK:  itt ne
2149 # CHECK:  sxthne.w r3, r9
2150 # CHECK:  sxthne.w r2, r2, ror #16
2151
2152 0x31 0xb2
2153 0x0f 0xfa 0x98 0xf3
2154 0x0f 0xfa 0xb3 0xf9
2155 0x1c 0xbf
2156 0x0f 0xfa 0x89 0xf3
2157 0x0f 0xfa 0xa2 0xf2
2158
2159
2160 #------------------------------------------------------------------------------
2161 # TBB/TBH
2162 #------------------------------------------------------------------------------
2163 # CHECK:  tbb [r3, r8]
2164 # CHECK:  tbh [r3, r8, lsl #1]
2165 # CHECK:  it eq
2166 # CHECK:  tbbeq [r3, r8]
2167 # CHECK:  it hs
2168 # CHECK:  tbhhs [r3, r8, lsl #1]
2169
2170 0xd3 0xe8 0x08 0xf0
2171 0xd3 0xe8 0x18 0xf0
2172 0x08 0xbf
2173 0xd3 0xe8 0x08 0xf0
2174 0x28 0xbf
2175 0xd3 0xe8 0x18 0xf0
2176
2177
2178 #------------------------------------------------------------------------------
2179 # TEQ
2180 #------------------------------------------------------------------------------
2181 # CHECK:  teq.w r5, #61440
2182 # CHECK:  teq.w r4, r5
2183 # CHECK:  teq.w r4, r5, lsl #5
2184 # CHECK:  teq.w r4, r5, lsr #5
2185 # CHECK:  teq.w r4, r5, lsr #5
2186 # CHECK:  teq.w r4, r5, asr #5
2187 # CHECK:  teq.w r4, r5, ror #5
2188
2189 0x95 0xf4 0x70 0x4f
2190 0x94 0xea 0x05 0x0f
2191 0x94 0xea 0x45 0x1f
2192 0x94 0xea 0x55 0x1f
2193 0x94 0xea 0x55 0x1f
2194 0x94 0xea 0x65 0x1f
2195 0x94 0xea 0x75 0x1f
2196
2197
2198 #------------------------------------------------------------------------------
2199 # TST
2200 #------------------------------------------------------------------------------
2201 # CHECK:  tst.w r5, #61440
2202 # CHECK:  tst r2, r5
2203 # CHECK:  tst.w r3, r12, lsl #5
2204 # CHECK:  tst.w r4, r11, lsr #4
2205 # CHECK:  tst.w r5, r10, lsr #12
2206 # CHECK:  tst.w r6, r9, asr #30
2207 # CHECK:  tst.w r7, r8, ror #2
2208
2209 0x15 0xf4 0x70 0x4f
2210 0x2a 0x42
2211 0x13 0xea 0x4c 0x1f
2212 0x14 0xea 0x1b 0x1f
2213 0x15 0xea 0x1a 0x3f
2214 0x16 0xea 0xa9 0x7f
2215 0x17 0xea 0xb8 0x0f
2216
2217
2218 #------------------------------------------------------------------------------
2219 # UADD16/UADD8
2220 #------------------------------------------------------------------------------
2221 # CHECK:  uadd16 r1, r2, r3
2222 # CHECK:  uadd8 r1, r2, r3
2223 # CHECK:  ite gt
2224 # CHECK:  uadd16gt r1, r2, r3
2225 # CHECK:  uadd8le r1, r2, r3
2226
2227 0x92 0xfa 0x43 0xf1
2228 0x82 0xfa 0x43 0xf1
2229 0xcc 0xbf
2230 0x92 0xfa 0x43 0xf1
2231 0x82 0xfa 0x43 0xf1
2232
2233
2234 #------------------------------------------------------------------------------
2235 # UASX
2236 #------------------------------------------------------------------------------
2237 # CHECK:  uasx r9, r12, r0
2238 # CHECK:  it eq
2239 # CHECK:  uasxeq r9, r12, r0
2240 # CHECK:  uasx r9, r12, r0
2241 # CHECK:  it eq
2242 # CHECK:  uasxeq r9, r12, r0
2243
2244 0xac 0xfa 0x40 0xf9
2245 0x08 0xbf
2246 0xac 0xfa 0x40 0xf9
2247 0xac 0xfa 0x40 0xf9
2248 0x08 0xbf
2249 0xac 0xfa 0x40 0xf9
2250
2251
2252 #------------------------------------------------------------------------------
2253 # UBFX
2254 #------------------------------------------------------------------------------
2255 # CHECK:  ubfx r4, r5, #16, #1
2256 # CHECK:  it gt
2257 # CHECK:  ubfxgt r4, r5, #16, #16
2258
2259 0xc5 0xf3 0x00 0x44
2260 0xc8 0xbf
2261 0xc5 0xf3 0x0f 0x44
2262
2263
2264 #------------------------------------------------------------------------------
2265 # UHADD16/UHADD8
2266 #------------------------------------------------------------------------------
2267 # CHECK:  uhadd16 r4, r8, r2
2268 # CHECK:  uhadd8 r4, r8, r2
2269 # CHECK:  itt gt
2270 # CHECK:  uhadd16gt r4, r8, r2
2271 # CHECK:  uhadd8gt r4, r8, r2
2272
2273 0x98 0xfa 0x62 0xf4
2274 0x88 0xfa 0x62 0xf4
2275 0xc4 0xbf
2276 0x98 0xfa 0x62 0xf4
2277 0x88 0xfa 0x62 0xf4
2278
2279
2280 #------------------------------------------------------------------------------
2281 # UHASX/UHSAX
2282 #------------------------------------------------------------------------------
2283 # CHECK:  uhasx r4, r1, r5
2284 # CHECK:  uhsax r5, r6, r6
2285 # CHECK:  itt gt
2286 # CHECK:  uhasxgt r6, r9, r8
2287 # CHECK:  uhsaxgt r7, r8, r12
2288
2289 0xa1 0xfa 0x65 0xf4
2290 0xe6 0xfa 0x66 0xf5
2291 0xc4 0xbf
2292 0xa9 0xfa 0x68 0xf6
2293 0xe8 0xfa 0x6c 0xf7
2294
2295 #------------------------------------------------------------------------------
2296 # UHSUB16/UHSUB8
2297 #------------------------------------------------------------------------------
2298 # CHECK:  uhsub16 r5, r8, r3
2299 # CHECK:  uhsub8 r1, r7, r6
2300 # CHECK:  itt lt
2301 # CHECK:  uhsub16lt r4, r9, r12
2302 # CHECK:  uhsub8lt r3, r1, r5
2303
2304 0xd8 0xfa 0x63 0xf5
2305 0xc7 0xfa 0x66 0xf1
2306 0xbc 0xbf
2307 0xd9 0xfa 0x6c 0xf4
2308 0xc1 0xfa 0x65 0xf3
2309
2310
2311 #------------------------------------------------------------------------------
2312 # UMAAL
2313 #------------------------------------------------------------------------------
2314 # CHECK:  umaal r3, r4, r5, r6
2315 # CHECK:  it lt
2316 # CHECK:  umaallt r3, r4, r5, r6
2317
2318 0xe5 0xfb 0x66 0x34
2319 0xb8 0xbf
2320 0xe5 0xfb 0x66 0x34
2321
2322
2323 #------------------------------------------------------------------------------
2324 # UMLAL
2325 #------------------------------------------------------------------------------
2326 # CHECK:  umlal r2, r4, r6, r8
2327 # CHECK:  it gt
2328 # CHECK:  umlalgt r6, r1, r2, r6
2329
2330 0xe6 0xfb 0x08 0x24
2331 0xc8 0xbf
2332 0xe2 0xfb 0x06 0x61
2333
2334
2335 #------------------------------------------------------------------------------
2336 # UMULL
2337 #------------------------------------------------------------------------------
2338 # CHECK:  umull r2, r4, r6, r8
2339 # CHECK:  it gt
2340 # CHECK:  umullgt r6, r1, r2, r6
2341
2342 0xa6 0xfb 0x08 0x24
2343 0xc8 0xbf
2344 0xa2 0xfb 0x06 0x61
2345
2346
2347 #------------------------------------------------------------------------------
2348 # UQADD16/UQADD8
2349 #------------------------------------------------------------------------------
2350 # CHECK:  uqadd16 r1, r2, r3
2351 # CHECK:  uqadd8 r3, r4, r8
2352 # CHECK:  ite gt
2353 # CHECK:  uqadd16gt r4, r7, r9
2354 # CHECK:  uqadd8le r8, r1, r2
2355
2356 0x92 0xfa 0x53 0xf1
2357 0x84 0xfa 0x58 0xf3
2358 0xcc 0xbf
2359 0x97 0xfa 0x59 0xf4
2360 0x81 0xfa 0x52 0xf8
2361
2362
2363 #------------------------------------------------------------------------------
2364 # UQASX/UQSAX
2365 #------------------------------------------------------------------------------
2366 # CHECK:  uqasx r1, r2, r3
2367 # CHECK:  uqsax r3, r4, r8
2368 # CHECK:  ite gt
2369 # CHECK:  uqasxgt r4, r7, r9
2370 # CHECK:  uqsaxle r8, r1, r2
2371
2372 0xa2 0xfa 0x53 0xf1
2373 0xe4 0xfa 0x58 0xf3
2374 0xcc 0xbf
2375 0xa7 0xfa 0x59 0xf4
2376 0xe1 0xfa 0x52 0xf8
2377
2378
2379 #------------------------------------------------------------------------------
2380 # UQSUB16/UQSUB8
2381 #------------------------------------------------------------------------------
2382 # CHECK:  uqsub8 r8, r2, r9
2383 # CHECK:  uqsub16 r1, r9, r7
2384 # CHECK:  ite gt
2385 # CHECK:  uqsub8gt r3, r1, r6
2386 # CHECK:  uqsub16le r4, r6, r4
2387
2388 0xc2 0xfa 0x59 0xf8
2389 0xd9 0xfa 0x57 0xf1
2390 0xcc 0xbf
2391 0xc1 0xfa 0x56 0xf3
2392 0xd6 0xfa 0x54 0xf4
2393
2394
2395 #------------------------------------------------------------------------------
2396 # UQSUB16/UQSUB8
2397 #------------------------------------------------------------------------------
2398 # CHECK:  usad8 r1, r9, r7
2399 # CHECK:  usada8 r8, r2, r9, r12
2400 # CHECK:  ite gt
2401 # CHECK:  usada8gt r3, r1, r6, r9
2402 # CHECK:  usad8le r4, r6, r4
2403
2404 0x79 0xfb 0x07 0xf1
2405 0x72 0xfb 0x09 0xc8
2406 0xcc 0xbf
2407 0x71 0xfb 0x06 0x93
2408 0x76 0xfb 0x04 0xf4
2409
2410
2411 #------------------------------------------------------------------------------
2412 # USAT
2413 #------------------------------------------------------------------------------
2414 # CHECK:  usat r8, #1, r10
2415 # CHECK:  usat r8, #4, r10
2416 # CHECK:  usat r8, #5, r10, lsl #31
2417 # CHECK:  usat r8, #16, r10, asr #1
2418
2419 0x8a 0xf3 0x01 0x08
2420 0x8a 0xf3 0x04 0x08
2421 0x8a 0xf3 0xc5 0x78
2422 0xaa 0xf3 0x50 0x08
2423
2424
2425 #------------------------------------------------------------------------------
2426 # USAT16
2427 #------------------------------------------------------------------------------
2428 # CHECK:  usat16        r2, #2, r7
2429 # CHECK:  usat16        r3, #15, r5
2430
2431 0xa7 0xf3 0x02 0x02
2432 0xa5 0xf3 0x0f 0x03
2433
2434
2435 #------------------------------------------------------------------------------
2436 # USAX
2437 #------------------------------------------------------------------------------
2438 # CHECK:  usax r2, r3, r4
2439 # CHECK:  it ne
2440 # CHECK:  usaxne r6, r1, r9
2441 # CHECK:  usax r2, r3, r4
2442 # CHECK:  it ne
2443 # CHECK:  usaxne r6, r1, r9
2444
2445 0xe3 0xfa 0x44 0xf2
2446 0x18 0xbf
2447 0xe1 0xfa 0x49 0xf6
2448 0xe3 0xfa 0x44 0xf2
2449 0x18 0xbf
2450 0xe1 0xfa 0x49 0xf6
2451
2452
2453 #------------------------------------------------------------------------------
2454 # USUB16/USUB8
2455 #------------------------------------------------------------------------------
2456 # CHECK:  usub16 r4, r2, r7
2457 # CHECK:  usub8 r1, r8, r5
2458 # CHECK:  ite hi
2459 # CHECK:  usub16hi r1, r1, r3
2460 # CHECK:  usub8ls r9, r2, r3
2461
2462 0xd2 0xfa 0x47 0xf4
2463 0xc8 0xfa 0x45 0xf1
2464 0x8c 0xbf
2465 0xd1 0xfa 0x43 0xf1
2466 0xc2 0xfa 0x43 0xf9
2467
2468
2469 #------------------------------------------------------------------------------
2470 # UXTAB
2471 #------------------------------------------------------------------------------
2472 # CHECK:  uxtab r2, r3, r4
2473 # CHECK:  uxtab r4, r5, r6
2474 # CHECK:  it lt
2475 # CHECK:  uxtablt r6, r2, r9, ror #8
2476 # CHECK:  uxtab r5, r1, r4, ror #16
2477 # CHECK:  uxtab r7, r8, r3, ror #24
2478
2479 0x53 0xfa 0x84 0xf2
2480 0x55 0xfa 0x86 0xf4
2481 0xb8 0xbf
2482 0x52 0xfa 0x99 0xf6
2483 0x51 0xfa 0xa4 0xf5
2484 0x58 0xfa 0xb3 0xf7
2485
2486
2487 #------------------------------------------------------------------------------
2488 # UXTAB16
2489 #------------------------------------------------------------------------------
2490 # CHECK:  it ge
2491 # CHECK:  uxtab16ge r0, r1, r4
2492 # CHECK:  uxtab16 r6, r2, r7
2493 # CHECK:  uxtab16 r3, r5, r8, ror #8
2494 # CHECK:  uxtab16 r3, r2, r1, ror #16
2495 # CHECK:  it eq
2496 # CHECK:  uxtab16eq r1, r2, r3, ror #24
2497
2498 0xa8 0xbf
2499 0x31 0xfa 0x84 0xf0
2500 0x32 0xfa 0x87 0xf6
2501 0x35 0xfa 0x98 0xf3
2502 0x32 0xfa 0xa1 0xf3
2503 0x08 0xbf
2504 0x32 0xfa 0xb3 0xf1
2505
2506
2507 #------------------------------------------------------------------------------
2508 # UXTAH
2509 #------------------------------------------------------------------------------
2510 # CHECK:  uxtah r1, r3, r9
2511 # CHECK:  it hi
2512 # CHECK:  uxtahhi r6, r1, r6
2513 # CHECK:  uxtah r3, r8, r3, ror #8
2514 # CHECK:  it lo
2515 # CHECK:  uxtahlo r2, r2, r4, ror #16
2516 # CHECK:  uxtah r9, r3, r3, ror #24
2517
2518 0x13 0xfa 0x89 0xf1
2519 0x88 0xbf
2520 0x11 0xfa 0x86 0xf6
2521 0x18 0xfa 0x93 0xf3
2522 0x38 0xbf
2523 0x12 0xfa 0xa4 0xf2
2524 0x13 0xfa 0xb3 0xf9
2525
2526
2527 #------------------------------------------------------------------------------
2528 # UXTB
2529 #------------------------------------------------------------------------------
2530 # CHECK:  it ge
2531 # CHECK:  uxtbge r2, r4
2532 # CHECK:  uxtb r5, r6
2533 # CHECK:  uxtb.w r6, r9, ror #8
2534 # CHECK:  it lo
2535 # CHECK:  uxtblo.w r5, r1, ror #16
2536 # CHECK:  uxtb.w r8, r3, ror #24
2537
2538 0xa8 0xbf
2539 0xe2 0xb2
2540 0xf5 0xb2
2541 0x5f 0xfa 0x99 0xf6
2542 0x38 0xbf
2543 0x5f 0xfa 0xa1 0xf5
2544 0x5f 0xfa 0xb3 0xf8
2545
2546
2547 #------------------------------------------------------------------------------
2548 # UXTB16
2549 #------------------------------------------------------------------------------
2550 # CHECK:  uxtb16 r1, r4
2551 # CHECK:  uxtb16 r6, r7
2552 # CHECK:  it hs
2553 # CHECK:  uxtb16hs r3, r5, ror #8
2554 # CHECK:  uxtb16 r3, r1, ror #16
2555 # CHECK:  it ge
2556 # CHECK:  uxtb16ge r2, r3, ror #24
2557
2558 0x3f 0xfa 0x84 0xf1
2559 0x3f 0xfa 0x87 0xf6
2560 0x28 0xbf
2561 0x3f 0xfa 0x95 0xf3
2562 0x3f 0xfa 0xa1 0xf3
2563 0xa8 0xbf
2564 0x3f 0xfa 0xb3 0xf2
2565
2566
2567 #------------------------------------------------------------------------------
2568 # UXTH
2569 #------------------------------------------------------------------------------
2570 # CHECK:  it ne
2571 # CHECK:  uxthne.w r3, r9
2572 # CHECK:  uxth r1, r6
2573 # CHECK:  uxth.w r3, r8, ror #8
2574 # CHECK:  it le
2575 # CHECK:  uxthle.w r2, r2, ror #16
2576 # CHECK:  uxth.w r9, r3, ror #24
2577
2578 0x18 0xbf
2579 0x1f 0xfa 0x89 0xf3
2580 0xb1 0xb2
2581 0x1f 0xfa 0x98 0xf3
2582 0xd8 0xbf
2583 0x1f 0xfa 0xa2 0xf2
2584 0x1f 0xfa 0xb3 0xf9
2585
2586
2587 #------------------------------------------------------------------------------
2588 # WFE/WFI/YIELD
2589 #------------------------------------------------------------------------------
2590 # CHECK:  wfe
2591 # CHECK:  wfi
2592 # CHECK:  yield
2593 # CHECK:  itet lt
2594 # CHECK:  wfelt
2595 # CHECK:  wfige
2596 # CHECK:  yieldlt
2597
2598 0x20 0xbf
2599 0x30 0xbf
2600 0x10 0xbf
2601 0xb6 0xbf
2602 0x20 0xbf
2603 0x30 0xbf
2604 0x10 0xbf
2605