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