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