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