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