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