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
160x41 0xf1 0x04 0x00
170x51 0xf1 0x00 0x00
180x42 0xf1 0xff 0x01
190x47 0xf1 0x55 0x13
200x4c 0xf1 0xaa 0x28
210x47 0xf1 0xa5 0x39
220x43 0xf1 0x07 0x45
230x42 0xf1 0xff 0x44
240x42 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
380x45 0xeb 0x06 0x04
390x55 0xeb 0x06 0x04
400x41 0xeb 0x03 0x09
410x51 0xeb 0x03 0x09
420x41 0xeb 0x33 0x10
430x51 0xeb 0xc3 0x10
440x41 0xeb 0xd3 0x70
450x51 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
620x0a 0xbf
630x11 0x1d
640x03 0xf2 0xff 0x35
650x05 0xf2 0x25 0x14
660x0d 0xf5 0x80 0x62
670x08 0xf5 0x7f 0x42
680x03 0xf2 0x01 0x12
690x06 0xf5 0x80 0x7c
700x06 0xf2 0x00 0x1c
710x12 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
830x02 0xeb 0x08 0x01
840x09 0xeb 0x22 0x05
850x13 0xeb 0xc1 0x77
860x13 0xeb 0x56 0x60
870x08 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
970xaf 0xf6 0xc6 0x4b
980xaf 0xf2 0x3a 0x3b
990xaf 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
1080x05 0xf4 0x7f 0x22
1090x1c 0xf0 0x0f 0x03
1100x01 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
1220x09 0xea 0x08 0x04
1230x04 0xea 0xe8 0x01
1240x11 0xea 0x47 0x02
1250x15 0xea 0x12 0x54
1260x0c 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
1420x4f 0xea 0x23 0x32
1430x5f 0xea 0x23 0x08
1440x5f 0xea 0x63 0x02
1450x4f 0xea 0x23 0x12
1460x5f 0xea 0xec 0x32
147
1480x4f 0xea 0xe3 0x43
1490x5f 0xea 0xa8 0x08
1500x5f 0xea 0x67 0x17
1510x4f 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
1610x44 0xfa 0x02 0xf3
1620x41 0xfa 0x02 0xf1
1630x54 0xfa 0x08 0xf3
164
165#------------------------------------------------------------------------------
166# B
167#------------------------------------------------------------------------------
168# CHECK: bmi.w   #-183396
169
1700x13 0xf5 0xce 0xa9
171
172# CHECK: b.w   #208962
173# CHECK: b.w   #-16777216
174
1750x33 0xf0 0x21 0xb8 # rdar://12585795
1760x00 0xf4 0x00 0x90
177
178#------------------------------------------------------------------------------
179# BFC
180#------------------------------------------------------------------------------
181# CHECK: bfc r5, #3, #17
182# CHECK: it lo
183# CHECK: bfclo r5, #3, #17
184
1850x6f 0xf3 0xd3 0x05
1860x38 0xbf
1870x6f 0xf3 0xd3 0x05
188
189
190#------------------------------------------------------------------------------
191# BFI
192#------------------------------------------------------------------------------
193# CHECK: bfi r5, r2, #3, #17
194# CHECK: it ne
195# CHECK: bfine r5, r2, #3, #17
196# CHECK: bfi r6, r0, #0, #32
197# CHECK: bfi r6, r0, #31, #1
198
1990x62 0xf3 0xd3 0x05
2000x18 0xbf
2010x62 0xf3 0xd3 0x05
2020x60 0xf3 0x1f 0x06
2030x60 0xf3 0xdf 0x76
204
205
206#------------------------------------------------------------------------------
207# BIC
208#------------------------------------------------------------------------------
209# CHECK: bic r10, r1, #15
210# CHECK: bic.w r12, r3, r6
211# CHECK: bic.w r11, r2, r6, lsl #12
212# CHECK: bic.w r8, r4, r1, lsr #11
213# CHECK: bic.w r7, r5, r7, lsr #15
214# CHECK: bic.w r6, r7, r9, asr #32
215# CHECK: bic.w r5, r6, r8, ror #1
216
217# CHECK: bic r1, r1, #15
218# CHECK: bic.w r1, r1, r1
219# CHECK: bic.w r4, r4, r2, lsl #31
220# CHECK: bic.w r6, r6, r3, lsr #12
221# CHECK: bic.w r7, r7, r4, lsr #7
222# CHECK: bic.w r8, r8, r5, asr #15
223# CHECK: bic.w r12, r12, r6, ror #29
224
2250x21 0xf0 0x0f 0x0a
2260x23 0xea 0x06 0x0c
2270x22 0xea 0x06 0x3b
2280x24 0xea 0xd1 0x28
2290x25 0xea 0xd7 0x37
2300x27 0xea 0x29 0x06
2310x26 0xea 0x78 0x05
232
2330x21 0xf0 0x0f 0x01
2340x21 0xea 0x01 0x01
2350x24 0xea 0xc2 0x74
2360x26 0xea 0x13 0x36
2370x27 0xea 0xd4 0x17
2380x28 0xea 0xe5 0x38
2390x2c 0xea 0x76 0x7c
240
241
242#------------------------------------------------------------------------------
243# BXJ
244#------------------------------------------------------------------------------
245# CHECK: bxj r5
246# CHECK: it ne
247# CHECK: bxjne r7
248
2490xc5 0xf3 0x00 0x8f
2500x18 0xbf
2510xc7 0xf3 0x00 0x8f
252
253
254#------------------------------------------------------------------------------
255# CBZ/CBNZ
256#------------------------------------------------------------------------------
257# CHECK: cbnz    r7, #6
258# CHECK: cbnz    r7, #12
259# CHECK: cbz     r4, #64
260
2610x1f 0xb9
2620x37 0xb9
2630x04 0xb3
264
265
266#------------------------------------------------------------------------------
267# CDP/CDP2
268#------------------------------------------------------------------------------
269# CHECK: cdp  p7, #1, c1, c1, c1, #4
270# CHECK: cdp2  p7, #1, c1, c1, c1, #4
271
2720x11 0xee 0x81 0x17
2730x11 0xfe 0x81 0x17
274
275
276#------------------------------------------------------------------------------
277# CLREX
278#------------------------------------------------------------------------------
279#CHECK: clrex
280#CHECK: it ne
281#CHECK: clrexne
282
2830xbf 0xf3 0x2f 0x8f
2840x18 0xbf
2850xbf 0xf3 0x2f 0x8f
286
287
288#------------------------------------------------------------------------------
289# CLZ
290#------------------------------------------------------------------------------
291#CHECK: clz r1, r2
292#CHECK: it eq
293#CHECK: clzeq r1, r2
294
2950xb2 0xfa 0x82 0xf1
2960x08 0xbf
2970xb2 0xfa 0x82 0xf1
298
299
300#------------------------------------------------------------------------------
301# CMN
302#------------------------------------------------------------------------------
303#CHECK: cmn.w r1, #15
304#CHECK: cmn.w r8, r6
305#CHECK: cmn.w r1, r6, lsl #10
306#CHECK: cmn.w r1, r6, lsr #10
307#CHECK: cmn.w sp, r6, lsr #10
308#CHECK: cmn.w r1, r6, asr #10
309#CHECK: cmn.w r1, r6, ror #10
310
3110x11 0xf1 0x0f 0x0f
3120x18 0xeb 0x06 0x0f
3130x11 0xeb 0x86 0x2f
3140x11 0xeb 0x96 0x2f
3150x1d 0xeb 0x96 0x2f
3160x11 0xeb 0xa6 0x2f
3170x11 0xeb 0xb6 0x2f
318
319
320#------------------------------------------------------------------------------
321# CMP
322#------------------------------------------------------------------------------
323#CHECK: cmp.w r5, #65280
324#CHECK: cmp.w r4, r12
325#CHECK: cmp.w r9, r6, lsl #12
326#CHECK: cmp.w r3, r7, lsr #31
327#CHECK: cmp.w sp, r6, lsr #1
328#CHECK: cmp.w r2, r5, asr #24
329#CHECK: cmp.w r1, r4, ror #15
330
3310xb5 0xf5 0x7f 0x4f
3320xb4 0xeb 0x0c 0x0f
3330xb9 0xeb 0x06 0x3f
3340xb3 0xeb 0xd7 0x7f
3350xbd 0xeb 0x56 0x0f
3360xb2 0xeb 0x25 0x6f
3370xb1 0xeb 0xf4 0x3f
338
339
340#------------------------------------------------------------------------------
341# DBG
342#------------------------------------------------------------------------------
343#CHECK: dbg #5
344#CHECK: dbg #0
345#CHECK: dbg #15
346
3470xaf 0xf3 0xf5 0x80
3480xaf 0xf3 0xf0 0x80
3490xaf 0xf3 0xff 0x80
350
351
352#------------------------------------------------------------------------------
353# DMB
354#------------------------------------------------------------------------------
355#CHECK: dmb sy
356#CHECK: dmb st
357#CHECK: dmb #0xd
358#CHECK: dmb #0xc
359#CHECK: dmb ish
360#CHECK: dmb ishst
361#CHECK: dmb #0x9
362#CHECK: dmb #0x8
363#CHECK: dmb nsh
364#CHECK: dmb nshst
365#CHECK: dmb #0x5
366#CHECK: dmb #0x4
367#CHECK: dmb osh
368#CHECK: dmb oshst
369#CHECK: dmb #0x1
370#CHECK: dmb #0x0
371
3720xbf 0xf3 0x5f 0x8f
3730xbf 0xf3 0x5e 0x8f
3740xbf 0xf3 0x5d 0x8f
3750xbf 0xf3 0x5c 0x8f
3760xbf 0xf3 0x5b 0x8f
3770xbf 0xf3 0x5a 0x8f
3780xbf 0xf3 0x59 0x8f
3790xbf 0xf3 0x58 0x8f
3800xbf 0xf3 0x57 0x8f
3810xbf 0xf3 0x56 0x8f
3820xbf 0xf3 0x55 0x8f
3830xbf 0xf3 0x54 0x8f
3840xbf 0xf3 0x53 0x8f
3850xbf 0xf3 0x52 0x8f
3860xbf 0xf3 0x51 0x8f
3870xbf 0xf3 0x50 0x8f
388
389
390#------------------------------------------------------------------------------
391# DSB
392#------------------------------------------------------------------------------
393#CHECK: dsb sy
394#CHECK: dsb st
395#CHECK: dsb #0xd
396#CHECK: dsb #0xc
397#CHECK: dsb ish
398#CHECK: dsb ishst
399#CHECK: dsb #0x9
400#CHECK: dsb #0x8
401#CHECK: dsb nsh
402#CHECK: dsb nshst
403#CHECK: dsb #0x5
404#CHECK: dsb #0x4
405#CHECK: dsb osh
406#CHECK: dsb oshst
407#CHECK: dsb #0x1
408#CHECK: dsb #0x0
409
4100xbf 0xf3 0x4f 0x8f
4110xbf 0xf3 0x4e 0x8f
4120xbf 0xf3 0x4d 0x8f
4130xbf 0xf3 0x4c 0x8f
4140xbf 0xf3 0x4b 0x8f
4150xbf 0xf3 0x4a 0x8f
4160xbf 0xf3 0x49 0x8f
4170xbf 0xf3 0x48 0x8f
4180xbf 0xf3 0x47 0x8f
4190xbf 0xf3 0x46 0x8f
4200xbf 0xf3 0x45 0x8f
4210xbf 0xf3 0x44 0x8f
4220xbf 0xf3 0x43 0x8f
4230xbf 0xf3 0x42 0x8f
4240xbf 0xf3 0x41 0x8f
4250xbf 0xf3 0x40 0x8f
426
427
428#------------------------------------------------------------------------------
429# EOR
430#------------------------------------------------------------------------------
431#CHECK: eor r4, r5, #61440
432#CHECK: eor.w r4, r5, r6
433#CHECK: eor.w r4, r5, r6, lsl #5
434#CHECK: eor.w r4, r5, r6, lsr #5
435#CHECK: eor.w r4, r5, r6, lsr #5
436#CHECK: eor.w r4, r5, r6, asr #5
437#CHECK: eor.w r4, r5, r6, ror #5
438
4390x85 0xf4 0x70 0x44
4400x85 0xea 0x06 0x04
4410x85 0xea 0x46 0x14
4420x85 0xea 0x56 0x14
4430x85 0xea 0x56 0x14
4440x85 0xea 0x66 0x14
4450x85 0xea 0x76 0x14
446
447
448#------------------------------------------------------------------------------
449# ISB
450#------------------------------------------------------------------------------
451#CHECK: isb sy
452#CHECK: isb #0xa
453
4540xbf 0xf3 0x6f 0x8f
4550xbf 0xf3 0x6a 0x8f
456
457#------------------------------------------------------------------------------
458# IT
459#------------------------------------------------------------------------------
460# Test encodings of a few full IT blocks, not just the IT instruction
461
462# CHECK: iteet eq
463# CHECK: addeq r0, r1, r2
464# CHECK: nopne
465# CHECK: subne r5, r6, r7
466# CHECK: addeq r1, r2, #4
467
4680x0d 0xbf
4690x88 0x18
4700x00 0xbf
4710xf5 0x1b
4720x11 0x1d
473
474# CHECK: ittee ls
475# CHECK: addls r0, r1, r2
476# CHECK: nopls
477# CHECK: subhi r5, r6, r7
478# CHECK: addhi r1, r2, #4
479
4800x99 0xbf
4810x88 0x18
4820x00 0xbf
4830xf5 0x1b
4840x11 0x1d
485
486
487#------------------------------------------------------------------------------
488# LDMIA
489#------------------------------------------------------------------------------
490# CHECK: ldm.w r4, {r4, r5, r8, r9}
491# CHECK: ldm.w r4, {r5, r6}
492# CHECK: ldm.w r5!, {r3, r8}
493# CHECK: ldm.w r4, {r4, r5, r8, r9}
494# CHECK: ldm.w r4, {r5, r6}
495# CHECK: ldm.w r5!, {r3, r8}
496# CHECK: ldm.w r5!, {r1, r2}
497# CHECK: ldm.w r2, {r1, r2}
498
499# CHECK: ldm.w r4, {r4, r5, r8, r9}
500# CHECK: ldm.w r4, {r5, r6}
501# CHECK: ldm.w r5!, {r3, r8}
502# CHECK: ldm.w r4, {r4, r5, r8, r9}
503# CHECK: ldm.w r4, {r5, r6}
504# CHECK: ldm.w r5!, {r3, r8}
505# CHECK: ldm.w r5!, {r3, r8}
506
5070x94 0xe8 0x30 0x03
5080x94 0xe8 0x60 0x00
5090xb5 0xe8 0x08 0x01
5100x94 0xe8 0x30 0x03
5110x94 0xe8 0x60 0x00
5120xb5 0xe8 0x08 0x01
5130xb5 0xe8 0x06 0x00
5140x92 0xe8 0x06 0x00
515
5160x94 0xe8 0x30 0x03
5170x94 0xe8 0x60 0x00
5180xb5 0xe8 0x08 0x01
5190x94 0xe8 0x30 0x03
5200x94 0xe8 0x60 0x00
5210xb5 0xe8 0x08 0x01
5220xb5 0xe8 0x08 0x01
523
524
525#------------------------------------------------------------------------------
526# LDMDB
527#------------------------------------------------------------------------------
528# CHECK: ldmdb r4, {r4, r5, r8, r9}
529# CHECK: ldmdb r4, {r5, r6}
530# CHECK: ldmdb r5!, {r3, r8}
531# CHECK: ldmdb r5!, {r3, r8}
532
5330x14 0xe9 0x30 0x03
5340x14 0xe9 0x60 0x00
5350x35 0xe9 0x08 0x01
5360x35 0xe9 0x08 0x01
537
538
539#------------------------------------------------------------------------------
540# LDR(immediate)
541#------------------------------------------------------------------------------
542# CHECK: ldr r5, [r5, #-4]
543# CHECK: ldr r5, [r6, #32]
544# CHECK: ldr.w r5, [r6, #33]
545# CHECK: ldr.w r5, [r6, #257]
546# CHECK: ldr.w pc, [r7, #257]
547
5480x55 0xf8 0x04 0x5c
5490x35 0x6a
5500xd6 0xf8 0x21 0x50
5510xd6 0xf8 0x01 0x51
5520xd7 0xf8 0x01 0xf1
553
554
555#------------------------------------------------------------------------------
556# LDR(literal)
557#------------------------------------------------------------------------------
558# CHECK: ldr.w r4, [pc, #-0]
559# CHECK: ldr.w r2, [pc, #-40]
560# CHECK: ldr.w r1, [pc, #1024]
5610x5f 0xf8 0x00 0x40
5620x5f 0xf8 0x28 0x20
5630xdf 0xf8 0x00 0x14
564
565
566#------------------------------------------------------------------------------
567# LDR(register)
568#------------------------------------------------------------------------------
569# CHECK: ldr.w r1, [r8, r1]
570# CHECK: ldr.w r4, [r5, r2]
571# CHECK: ldr.w r6, [r0, r2, lsl #3]
572# CHECK: ldr.w r8, [r8, r2, lsl #2]
573# CHECK: ldr.w r7, [sp, r2, lsl #1]
574# CHECK: ldr.w r7, [sp, r2]
575# CHECK: ldr pc, [sp], #12
576# CHECK: ldr r2, [r4, #255]!
577# CHECK: ldr r8, [sp, #4]!
578# CHECK: ldr lr, [sp, #-4]!
579# CHECK: ldr lr, [sp, #0]!
580# CHECK: ldr r2, [r4], #255
581# CHECK: ldr r8, [sp], #4
582# CHECK: ldr lr, [sp], #-4
583
5840x58 0xf8 0x01 0x10
5850x55 0xf8 0x02 0x40
5860x50 0xf8 0x32 0x60
5870x58 0xf8 0x22 0x80
5880x5d 0xf8 0x12 0x70
5890x5d 0xf8 0x02 0x70
5900x5d 0xf8 0x0c 0xfb
5910x54 0xf8 0xff 0x2f
5920x5d 0xf8 0x04 0x8f
5930x5d 0xf8 0x04 0xed
5940x5d 0xf8 0x00 0xef
5950x54 0xf8 0xff 0x2b
5960x5d 0xf8 0x04 0x8b
5970x5d 0xf8 0x04 0xe9
598
599
600#------------------------------------------------------------------------------
601# LDRB(immediate)
602#------------------------------------------------------------------------------
603# CHECK: ldrb r5, [r5, #-4]
604# CHECK: ldrb.w r5, [r6, #32]
605# CHECK: ldrb.w r5, [r6, #33]
606# CHECK: ldrb.w r5, [r6, #257]
607# CHECK: ldrb.w lr, [r7, #257]
608
6090x15 0xf8 0x04 0x5c
6100x96 0xf8 0x20 0x50
6110x96 0xf8 0x21 0x50
6120x96 0xf8 0x01 0x51
6130x97 0xf8 0x01 0xe1
614
615
616#------------------------------------------------------------------------------
617# LDRB(register)
618#------------------------------------------------------------------------------
619# CHECK: ldrb.w r1, [r8, r1]
620# CHECK: ldrb.w r4, [r5, r2]
621# CHECK: ldrb.w r6, [r0, r2, lsl #3]
622# CHECK: ldrb.w r8, [r8, r2, lsl #2]
623# CHECK: ldrb.w r7, [sp, r2, lsl #1]
624# CHECK: ldrb.w r7, [sp, r2]
625# CHECK: ldrb r5, [r8, #255]!
626# CHECK: ldrb r2, [r5, #4]!
627# CHECK: ldrb r1, [r4, #-4]!
628# CHECK: ldrb r1, [r4, #0]!
629# CHECK: ldrb lr, [r3], #255
630# CHECK: ldrb r9, [r2], #4
631# CHECK: ldrb r3, [sp], #-4
632
6330x18 0xf8 0x01 0x10
6340x15 0xf8 0x02 0x40
6350x10 0xf8 0x32 0x60
6360x18 0xf8 0x22 0x80
6370x1d 0xf8 0x12 0x70
6380x1d 0xf8 0x02 0x70
6390x18 0xf8 0xff 0x5f
6400x15 0xf8 0x04 0x2f
6410x14 0xf8 0x04 0x1d
6420x14 0xf8 0x00 0x1f
6430x13 0xf8 0xff 0xeb
6440x12 0xf8 0x04 0x9b
6450x1d 0xf8 0x04 0x39
646
647
648#------------------------------------------------------------------------------
649# LDRB(literal)
650#------------------------------------------------------------------------------
651# CHECK: ldrb.w r6, [pc, #-0]
652# CHECK: ldrb.w r10, [pc, #227]
653# CHECK: ldrb.w r5, [pc, #0]
6540x1f 0xf8 0x00 0x60
6550x9f 0xf8 0xe3 0xa0
6560x9f 0xf8 0x00 0x50
657
658
659#------------------------------------------------------------------------------
660# LDRBT
661#------------------------------------------------------------------------------
662# CHECK: ldrbt r1, [r2]
663# CHECK: ldrbt r1, [r8]
664# CHECK: ldrbt r1, [r8, #3]
665# CHECK: ldrbt r1, [r8, #255]
666
6670x12 0xf8 0x00 0x1e
6680x18 0xf8 0x00 0x1e
6690x18 0xf8 0x03 0x1e
6700x18 0xf8 0xff 0x1e
671
672
673#------------------------------------------------------------------------------
674# LDRD(immediate)
675#------------------------------------------------------------------------------
676# CHECK: ldrd r3, r5, [r6, #24]
677# CHECK: ldrd r3, r5, [r6, #24]!
678# CHECK: ldrd r3, r5, [r6], #4
679# CHECK: ldrd r3, r5, [r6], #-8
680# CHECK: ldrd r3, r5, [r6]
681# CHECK: ldrd r8, r1, [r3]
682# CHECK: ldrd r0, r1, [r2], #-0
683# CHECK: ldrd r0, r1, [r2, #-0]!
684# CHECK: ldrd r0, r1, [r2, #0]!
685# CHECK: ldrd r0, r1, [r2, #-0]
686# CHECK: ldrd r1, r1, [r0], #0
687
6880xd6 0xe9 0x06 0x35
6890xf6 0xe9 0x06 0x35
6900xf6 0xe8 0x01 0x35
6910x76 0xe8 0x02 0x35
6920xd6 0xe9 0x00 0x35
6930xd3 0xe9 0x00 0x81
6940x72 0xe8 0x00 0x01
6950x72 0xe9 0x00 0x01
6960xf2 0xe9 0x00 0x01
6970x52 0xe9 0x00 0x01
6980xf0 0xe8 0x00 0x11
699
700
701#------------------------------------------------------------------------------
702# FIXME: LDRD(literal)
703#------------------------------------------------------------------------------
704
705
706#------------------------------------------------------------------------------
707# LDREX/LDREXB/LDREXH/LDREXD
708#------------------------------------------------------------------------------
709# CHECK: ldrex r1, [r4]
710# CHECK: ldrex r8, [r4]
711# CHECK: ldrex r2, [sp, #128]
712# CHECK: ldrexb r5, [r7]
713# CHECK: ldrexh r9, [r12]
714# CHECK: ldrexd r9, r3, [r4]
715
7160x54 0xe8 0x00 0x1f
7170x54 0xe8 0x00 0x8f
7180x5d 0xe8 0x20 0x2f
7190xd7 0xe8 0x4f 0x5f
7200xdc 0xe8 0x5f 0x9f
7210xd4 0xe8 0x7f 0x93
722
723
724#------------------------------------------------------------------------------
725# LDRH(immediate)
726#------------------------------------------------------------------------------
727# CHECK: ldrh r5, [r5, #-4]
728# CHECK: ldrh r5, [r6, #32]
729# CHECK: ldrh.w r5, [r6, #33]
730# CHECK: ldrh.w r5, [r6, #257]
731# CHECK: ldrh.w lr, [r7, #257]
732
7330x35 0xf8 0x04 0x5c
7340x35 0x8c
7350xb6 0xf8 0x21 0x50
7360xb6 0xf8 0x01 0x51
7370xb7 0xf8 0x01 0xe1
738
739
740#------------------------------------------------------------------------------
741# LDRH(register)
742#------------------------------------------------------------------------------
743# CHECK: ldrh.w r1, [r8, r1]
744# CHECK: ldrh.w r4, [r5, r2]
745# CHECK: ldrh.w r6, [r0, r2, lsl #3]
746# CHECK: ldrh.w r8, [r8, r2, lsl #2]
747# CHECK: ldrh.w r7, [sp, r2, lsl #1]
748# CHECK: ldrh.w r7, [sp, r2]
749# CHECK: ldrh r5, [r8, #255]!
750# CHECK: ldrh r2, [r5, #4]!
751# CHECK: ldrh r1, [r4, #-4]!
752# CHECK: ldrh r1, [r4, #0]!
753# CHECK: ldrh lr, [r3], #255
754# CHECK: ldrh r9, [r2], #4
755# CHECK: ldrh r3, [sp], #-4
756
7570x38 0xf8 0x01 0x10
7580x35 0xf8 0x02 0x40
7590x30 0xf8 0x32 0x60
7600x38 0xf8 0x22 0x80
7610x3d 0xf8 0x12 0x70
7620x3d 0xf8 0x02 0x70
7630x38 0xf8 0xff 0x5f
7640x35 0xf8 0x04 0x2f
7650x34 0xf8 0x04 0x1d
7660x34 0xf8 0x00 0x1f
7670x33 0xf8 0xff 0xeb
7680x32 0xf8 0x04 0x9b
7690x3d 0xf8 0x04 0x39
770
771
772#------------------------------------------------------------------------------
773# LDRH(literal)
774#------------------------------------------------------------------------------
775# CHECK: ldrh.w r7, [pc, #-0]
776# CHECK: ldrh.w r5, [pc, #121]
777# CHECK: ldrh.w r4, [pc, #0]
7780x3f 0xf8 0x00 0x70
7790xbf 0xf8 0x79 0x50
7800xbf 0xf8 0x00 0x40
781
782
783#------------------------------------------------------------------------------
784# LDRSB(immediate)
785#------------------------------------------------------------------------------
786# CHECK: ldrsb r5, [r5, #-4]
787# CHECK: ldrsb.w r5, [r6, #32]
788# CHECK: ldrsb.w r5, [r6, #33]
789# CHECK: ldrsb.w r5, [r6, #257]
790# CHECK: ldrsb.w lr, [r7, #257]
791
7920x15 0xf9 0x04 0x5c
7930x96 0xf9 0x20 0x50
7940x96 0xf9 0x21 0x50
7950x96 0xf9 0x01 0x51
7960x97 0xf9 0x01 0xe1
797
798
799#------------------------------------------------------------------------------
800# LDRSB(register)
801#------------------------------------------------------------------------------
802# CHECK: ldrsb.w r1, [r8, r1]
803# CHECK: ldrsb.w r4, [r5, r2]
804# CHECK: ldrsb.w r6, [r0, r2, lsl #3]
805# CHECK: ldrsb.w r8, [r8, r2, lsl #2]
806# CHECK: ldrsb.w r7, [sp, r2, lsl #1]
807# CHECK: ldrsb.w r7, [sp, r2]
808# CHECK: ldrsb r5, [r8, #255]!
809# CHECK: ldrsb r2, [r5, #4]!
810# CHECK: ldrsb r1, [r4, #-4]!
811# CHECK: ldrsb r1, [r4, #0]!
812# CHECK: ldrsb lr, [r3], #255
813# CHECK: ldrsb r9, [r2], #4
814# CHECK: ldrsb r3, [sp], #-4
815
8160x18 0xf9 0x01 0x10
8170x15 0xf9 0x02 0x40
8180x10 0xf9 0x32 0x60
8190x18 0xf9 0x22 0x80
8200x1d 0xf9 0x12 0x70
8210x1d 0xf9 0x02 0x70
8220x18 0xf9 0xff 0x5f
8230x15 0xf9 0x04 0x2f
8240x14 0xf9 0x04 0x1d
8250x14 0xf9 0x00 0x1f
8260x13 0xf9 0xff 0xeb
8270x12 0xf9 0x04 0x9b
8280x1d 0xf9 0x04 0x39
829
830
831#------------------------------------------------------------------------------
832# LDRSB(literal)
833#------------------------------------------------------------------------------
834# CHECK: ldrsb.w r0, [pc, #-0]
835# CHECK: ldrsb.w r12, [pc, #80]
836# CHECK: ldrsb.w r3, [pc, #0]
8370x1f 0xf9 0x00 0x00
8380x9f 0xf9 0x50 0xc0
8390x9f 0xf9 0x00 0x30
840
841
842#------------------------------------------------------------------------------
843# LDRSBT
844#------------------------------------------------------------------------------
845# CHECK: ldrsbt r1, [r2]
846# CHECK: ldrsbt r1, [r8]
847# CHECK: ldrsbt r1, [r8, #3]
848# CHECK: ldrsbt r1, [r8, #255]
849
8500x12 0xf9 0x00 0x1e
8510x18 0xf9 0x00 0x1e
8520x18 0xf9 0x03 0x1e
8530x18 0xf9 0xff 0x1e
854
855
856#------------------------------------------------------------------------------
857# LDRSH(immediate)
858#------------------------------------------------------------------------------
859# CHECK: ldrsh r5, [r5, #-4]
860# CHECK: ldrsh.w r5, [r6, #32]
861# CHECK: ldrsh.w r5, [r6, #33]
862# CHECK: ldrsh.w r5, [r6, #257]
863# CHECK: ldrsh.w lr, [r7, #257]
864# CHECK: ldrsh r10, [r5, #-0]
865
8660x35 0xf9 0x04 0x5c
8670xb6 0xf9 0x20 0x50
8680xb6 0xf9 0x21 0x50
8690xb6 0xf9 0x01 0x51
8700xb7 0xf9 0x01 0xe1
8710x35 0xf9 0x00 0xac
872
873#------------------------------------------------------------------------------
874# LDRSH(register)
875#------------------------------------------------------------------------------
876# CHECK: ldrsh.w r1, [r8, r1]
877# CHECK: ldrsh.w r4, [r5, r2]
878# CHECK: ldrsh.w r6, [r0, r2, lsl #3]
879# CHECK: ldrsh.w r8, [r8, r2, lsl #2]
880# CHECK: ldrsh.w r7, [sp, r2, lsl #1]
881# CHECK: ldrsh.w r7, [sp, r2]
882# CHECK: ldrsh r5, [r8, #255]!
883# CHECK: ldrsh r2, [r5, #4]!
884# CHECK: ldrsh r1, [r4, #-4]!
885# CHECK: ldrsh r1, [r4, #0]!
886# CHECK: ldrsh lr, [r3], #255
887# CHECK: ldrsh r9, [r2], #4
888# CHECK: ldrsh r3, [sp], #-4
889
8900x38 0xf9 0x01 0x10
8910x35 0xf9 0x02 0x40
8920x30 0xf9 0x32 0x60
8930x38 0xf9 0x22 0x80
8940x3d 0xf9 0x12 0x70
8950x3d 0xf9 0x02 0x70
8960x38 0xf9 0xff 0x5f
8970x35 0xf9 0x04 0x2f
8980x34 0xf9 0x04 0x1d
8990x34 0xf9 0x00 0x1f
9000x33 0xf9 0xff 0xeb
9010x32 0xf9 0x04 0x9b
9020x3d 0xf9 0x04 0x39
903
904
905#------------------------------------------------------------------------------
906# LDRSH(literal)
907#------------------------------------------------------------------------------
908# CHECK: ldrsh.w r0, [pc, #-0]
909# CHECK: ldrsh.w r10, [pc, #-231]
910# CHECK: ldrsh.w r6, [pc, #0]
9110x3f 0xf9 0x00 0x00
9120x3f 0xf9 0xe7 0xa0
9130xbf 0xf9 0x00 0x60
914
915
916#------------------------------------------------------------------------------
917# LDRSHT
918#------------------------------------------------------------------------------
919# CHECK: ldrsht r1, [r2]
920# CHECK: ldrsht r1, [r8]
921# CHECK: ldrsht r1, [r8, #3]
922# CHECK: ldrsht r1, [r8, #255]
923
9240x32 0xf9 0x00 0x1e
9250x38 0xf9 0x00 0x1e
9260x38 0xf9 0x03 0x1e
9270x38 0xf9 0xff 0x1e
928
929
930#------------------------------------------------------------------------------
931# LDRT
932#------------------------------------------------------------------------------
933# CHECK: ldrt r1, [r2]
934# CHECK: ldrt r2, [r6]
935# CHECK: ldrt r3, [r7, #3]
936# CHECK: ldrt r4, [r9, #255]
937
9380x52 0xf8 0x00 0x1e
9390x56 0xf8 0x00 0x2e
9400x57 0xf8 0x03 0x3e
9410x59 0xf8 0xff 0x4e
942
943
944#------------------------------------------------------------------------------
945# LSL (immediate)
946#------------------------------------------------------------------------------
947# CHECK: lsl.w r2, r3, #12
948# CHECK: lsls.w r8, r3, #31
949# CHECK: lsls.w r2, r3, #1
950# CHECK: lsl.w r2, r3, #4
951# CHECK: lsls.w r2, r12, #15
952
953# CHECK: lsl.w r3, r3, #19
954# CHECK: lsls.w r8, r8, #2
955# CHECK: lsls.w r7, r7, #5
956# CHECK: lsl.w r12, r12, #21
957
9580x4f 0xea 0x03 0x32
9590x5f 0xea 0xc3 0x78
9600x5f 0xea 0x43 0x02
9610x4f 0xea 0x03 0x12
9620x5f 0xea 0xcc 0x32
963
9640x4f 0xea 0xc3 0x43
9650x5f 0xea 0x88 0x08
9660x5f 0xea 0x47 0x17
9670x4f 0xea 0x4c 0x5c
968
969
970#------------------------------------------------------------------------------
971# LSL (register)
972#------------------------------------------------------------------------------
973# CHECK: lsl.w r3, r4, r2
974# CHECK: lsl.w r1, r1, r2
975# CHECK: lsls.w r3, r4, r8
976
9770x04 0xfa 0x02 0xf3
9780x01 0xfa 0x02 0xf1
9790x14 0xfa 0x08 0xf3
980
981
982#------------------------------------------------------------------------------
983# LSR (immediate)
984#------------------------------------------------------------------------------
985# CHECK: lsr.w r2, r3, #12
986# CHECK: lsrs.w r8, r3, #32
987# CHECK: lsrs.w r2, r3, #1
988# CHECK: lsr.w r2, r3, #4
989# CHECK: lsrs.w r2, r12, #15
990
991# CHECK: lsr.w r3, r3, #19
992# CHECK: lsrs.w r8, r8, #2
993# CHECK: lsrs.w r7, r7, #5
994# CHECK: lsr.w r12, r12, #21
995
9960x4f 0xea 0x13 0x32
9970x5f 0xea 0x13 0x08
9980x5f 0xea 0x53 0x02
9990x4f 0xea 0x13 0x12
10000x5f 0xea 0xdc 0x32
1001
10020x4f 0xea 0xd3 0x43
10030x5f 0xea 0x98 0x08
10040x5f 0xea 0x57 0x17
10050x4f 0xea 0x5c 0x5c
1006
1007
1008#------------------------------------------------------------------------------
1009# LSR (register)
1010#------------------------------------------------------------------------------
1011# CHECK: lsr.w r3, r4, r2
1012# CHECK: lsr.w r1, r1, r2
1013# CHECK: lsrs.w r3, r4, r8
1014
10150x24 0xfa 0x02 0xf3
10160x21 0xfa 0x02 0xf1
10170x34 0xfa 0x08 0xf3
1018
1019#------------------------------------------------------------------------------
1020# MCR/MCR2
1021#------------------------------------------------------------------------------
1022# CHECK: mcr  p7, #1, r5, c1, c1, #4
1023# CHECK: mcr2  p7, #1, r5, c1, c1, #4
1024
10250x21 0xee 0x91 0x57
10260x21 0xfe 0x91 0x57
1027
1028
1029#------------------------------------------------------------------------------
1030# MCRR/MCRR2
1031#------------------------------------------------------------------------------
1032# CHECK: mcrr  p7, #15, r5, r4, c1
1033# CHECK: mcrr2  p7, #15, r5, r4, c1
1034
10350x44 0xec 0xf1 0x57
10360x44 0xfc 0xf1 0x57
1037
1038
1039#------------------------------------------------------------------------------
1040# MLA/MLS
1041#------------------------------------------------------------------------------
1042# CHECK: mla  r1, r2, r3, r4
1043# CHECK: mls  r1, r2, r3, r4
1044
10450x02 0xfb 0x03 0x41
10460x02 0xfb 0x13 0x41
1047
1048
1049#------------------------------------------------------------------------------
1050# MOV(immediate)
1051#------------------------------------------------------------------------------
1052# CHECK: movs r1, #21
1053# CHECK: movs.w r1, #21
1054# CHECK: movs.w r8, #21
1055# CHECK: movw r0, #65535
1056# CHECK: movw r1, #43777
1057# CHECK: movw r1, #43792
1058# CHECK: mov.w r0, #66846720
1059# CHECK: mov.w r0, #66846720
1060# CHECK: movs.w r0, #66846720
1061
10620x15 0x21
10630x5f 0xf0 0x15 0x01
10640x5f 0xf0 0x15 0x08
10650x4f 0xf6 0xff 0x70
10660x4a 0xf6 0x01 0x31
10670x4a 0xf6 0x10 0x31
10680x4f 0xf0 0x7f 0x70
10690x4f 0xf0 0x7f 0x70
10700x5f 0xf0 0x7f 0x70
1071
1072#------------------------------------------------------------------------------
1073# MOVT
1074#------------------------------------------------------------------------------
1075# CHECK: movt r3, #7
1076# CHECK: movt r6, #65535
1077# CHECK: it eq
1078# CHECK: movteq r4, #4080
1079
10800xc0 0xf2 0x07 0x03
10810xcf 0xf6 0xff 0x76
10820x08 0xbf
10830xc0 0xf6 0xf0 0x74
1084
1085#------------------------------------------------------------------------------
1086# MRC/MRC2
1087#------------------------------------------------------------------------------
1088# CHECK: mrc  p14, #0, r1, c1, c2, #4
1089# CHECK: mrc2  p14, #0, r1, c1, c2, #4
1090
10910x11 0xee 0x92 0x1e
10920x11 0xfe 0x92 0x1e
1093
1094
1095#------------------------------------------------------------------------------
1096# MRRC/MRRC2
1097#------------------------------------------------------------------------------
1098# CHECK: mrrc  p7, #1, r5, r4, c1
1099# CHECK: mrrc2  p7, #1, r5, r4, c1
1100
11010x54 0xec 0x11 0x57
11020x54 0xfc 0x11 0x57
1103
1104
1105#------------------------------------------------------------------------------
1106# MRS
1107#------------------------------------------------------------------------------
1108# CHECK: mrs  r8, apsr
1109# CHECK: mrs  r8, spsr
1110
11110xef 0xf3 0x00 0x88
11120xff 0xf3 0x00 0x88
1113
1114
1115#------------------------------------------------------------------------------
1116# MSR
1117#------------------------------------------------------------------------------
1118# CHECK: msr  APSR_nzcvq, r1
1119# CHECK: msr  APSR_g, r2
1120# CHECK: msr  APSR_nzcvq, r3
1121# CHECK: msr  APSR_nzcvq, r4
1122# CHECK: msr  APSR_nzcvqg, r5
1123# CHECK: msr  CPSR_fc, r6
1124# CHECK: msr  CPSR_c, r7
1125# CHECK: msr  CPSR_x, r8
1126# CHECK: msr  CPSR_fc, r9
1127# CHECK: msr  CPSR_fc, r11
1128# CHECK: msr  CPSR_fsx, r12
1129# CHECK: msr  SPSR_fc, r0
1130# CHECK: msr  SPSR_fsxc, r5
1131# CHECK: msr  CPSR_fsxc, r8
1132
11330x81 0xf3 0x00 0x88
11340x82 0xf3 0x00 0x84
11350x83 0xf3 0x00 0x88
11360x84 0xf3 0x00 0x88
11370x85 0xf3 0x00 0x8c
11380x86 0xf3 0x00 0x89
11390x87 0xf3 0x00 0x81
11400x88 0xf3 0x00 0x82
11410x89 0xf3 0x00 0x89
11420x8b 0xf3 0x00 0x89
11430x8c 0xf3 0x00 0x8e
11440x90 0xf3 0x00 0x89
11450x95 0xf3 0x00 0x8f
11460x88 0xf3 0x00 0x8f
1147
1148
1149#------------------------------------------------------------------------------
1150# MUL
1151#------------------------------------------------------------------------------
1152# CHECK: muls r3, r4, r3
1153# CHECK: mul r3, r4, r3
1154# CHECK: mul r3, r4, r6
1155# CHECK: it eq
1156# CHECK: muleq r3, r4, r5
1157
11580x63 0x43
11590x04 0xfb 0x03 0xf3
11600x04 0xfb 0x06 0xf3
11610x08 0xbf
11620x04 0xfb 0x05 0xf3
1163
1164
1165#------------------------------------------------------------------------------
1166# MVN(immediate)
1167#------------------------------------------------------------------------------
1168# CHECK: mvns r8, #21
1169# CHECK: mvn r0, #66846720
1170# CHECK: mvns r0, #66846720
1171# CHECK: itte eq
1172# CHECK: mvnseq r1, #12
1173# CHECK: mvneq r1, #12
1174# CHECK: mvnne r1, #12
1175
11760x7f 0xf0 0x15 0x08
11770x6f 0xf0 0x7f 0x70
11780x7f 0xf0 0x7f 0x70
11790x06 0xbf
11800x7f 0xf0 0x0c 0x01
11810x6f 0xf0 0x0c 0x01
11820x6f 0xf0 0x0c 0x01
1183
1184
1185#------------------------------------------------------------------------------
1186# MVN(register)
1187#------------------------------------------------------------------------------
1188# CHECK: mvn.w r2, r3
1189# CHECK: mvns r2, r3
1190# CHECK: mvn.w r5, r6, lsl #19
1191# CHECK: mvn.w r5, r6, lsr #9
1192# CHECK: mvn.w r5, r6, asr #4
1193# CHECK: mvn.w r5, r6, ror #6
1194# CHECK: mvn.w r5, r6, rrx
1195# CHECK: it eq
1196# CHECK: mvneq r2, r3
1197
11980x6f 0xea 0x03 0x02
11990xda 0x43
12000x6f 0xea 0xc6 0x45
12010x6f 0xea 0x56 0x25
12020x6f 0xea 0x26 0x15
12030x6f 0xea 0xb6 0x15
12040x6f 0xea 0x36 0x05
12050x08 0xbf
12060xda 0x43
1207
1208#------------------------------------------------------------------------------
1209# NOP
1210#------------------------------------------------------------------------------
1211# CHECK: nop.w
1212
12130xaf 0xf3 0x00 0x80
1214
1215
1216#------------------------------------------------------------------------------
1217# ORN
1218#------------------------------------------------------------------------------
1219# CHECK: orn r4, r5, #61440
1220# CHECK: orn r4, r5, r6
1221# CHECK: orns r4, r5, r6
1222# CHECK: orn r4, r5, r6, lsl #5
1223# CHECK: orns r4, r5, r6, lsr #5
1224# CHECK: orn r4, r5, r6, lsr #5
1225# CHECK: orns r4, r5, r6, asr #5
1226# CHECK: orn r4, r5, r6, ror #5
1227
12280x65 0xf4 0x70 0x44
12290x65 0xea 0x06 0x04
12300x75 0xea 0x06 0x04
12310x65 0xea 0x46 0x14
12320x75 0xea 0x56 0x14
12330x65 0xea 0x56 0x14
12340x75 0xea 0x66 0x14
12350x65 0xea 0x76 0x14
1236
1237
1238#------------------------------------------------------------------------------
1239# ORR
1240#------------------------------------------------------------------------------
1241# CHECK: orr r4, r5, #61440
1242# CHECK: orr.w r4, r5, r6
1243# CHECK: orr.w r4, r5, r6, lsl #5
1244# CHECK: orrs.w r4, r5, r6, lsr #5
1245# CHECK: orr.w r4, r5, r6, lsr #5
1246# CHECK: orrs.w r4, r5, r6, asr #5
1247# CHECK: orr.w r4, r5, r6, ror #5
1248
12490x45 0xf4 0x70 0x44
12500x45 0xea 0x06 0x04
12510x45 0xea 0x46 0x14
12520x55 0xea 0x56 0x14
12530x45 0xea 0x56 0x14
12540x55 0xea 0x66 0x14
12550x45 0xea 0x76 0x14
1256
1257
1258#------------------------------------------------------------------------------
1259# PKH
1260#------------------------------------------------------------------------------
1261# CHECK: pkhbt r2, r2, r3
1262# CHECK: pkhbt r2, r2, r3, lsl #31
1263# CHECK: pkhbt r2, r2, r3, lsl #15
1264
1265# CHECK: pkhtb r2, r2, r3, asr #31
1266# CHECK: pkhtb r2, r2, r3, asr #15
1267
12680xc2 0xea 0x03 0x02
12690xc2 0xea 0xc3 0x72
12700xc2 0xea 0xc3 0x32
1271
12720xc2 0xea 0xe3 0x72
12730xc2 0xea 0xe3 0x32
1274
1275
1276#------------------------------------------------------------------------------
1277# PLD(immediate)
1278#------------------------------------------------------------------------------
1279# CHECK: pld [r5, #-4]
1280# CHECK: pld [r6, #32]
1281# CHECK: pld [r6, #33]
1282# CHECK: pld [r6, #257]
1283# CHECK: pld [r7, #257]
1284
12850x15 0xf8 0x04 0xfc
12860x96 0xf8 0x20 0xf0
12870x96 0xf8 0x21 0xf0
12880x96 0xf8 0x01 0xf1
12890x97 0xf8 0x01 0xf1
1290
1291#------------------------------------------------------------------------------
1292# PLD(register)
1293#------------------------------------------------------------------------------
1294# CHECK: pld [r8, r1]
1295# CHECK: pld [r5, r2]
1296# CHECK: pld [r0, r2, lsl #3]
1297# CHECK: pld [r8, r2, lsl #2]
1298# CHECK: pld [sp, r2, lsl #1]
1299# CHECK: pld [sp, r2]
1300
13010x18 0xf8 0x01 0xf0
13020x15 0xf8 0x02 0xf0
13030x10 0xf8 0x32 0xf0
13040x18 0xf8 0x22 0xf0
13050x1d 0xf8 0x12 0xf0
13060x1d 0xf8 0x02 0xf0
1307
1308#------------------------------------------------------------------------------
1309# PLD(literal)
1310#------------------------------------------------------------------------------
1311# CHECK: pld [pc, #-0]
1312# CHECK: pld [pc, #455]
1313# CHECK: pld [pc, #0]
1314
13150x1f 0xf8 0x00 0xf0
13160x9f 0xf8 0xc7 0xf1
13170x9f 0xf8 0x00 0xf0
1318
1319#------------------------------------------------------------------------------
1320# PLI(immediate)
1321#------------------------------------------------------------------------------
1322# CHECK: pli [r5, #-4]
1323# CHECK: pli [r6, #32]
1324# CHECK: pli [r6, #33]
1325# CHECK: pli [r6, #257]
1326# CHECK: pli [r7, #257]
1327
13280x15 0xf9 0x04 0xfc
13290x96 0xf9 0x20 0xf0
13300x96 0xf9 0x21 0xf0
13310x96 0xf9 0x01 0xf1
13320x97 0xf9 0x01 0xf1
1333
1334#------------------------------------------------------------------------------
1335# PLI(register)
1336#------------------------------------------------------------------------------
1337# CHECK: pli [r8, r1]
1338# CHECK: pli [r5, r2]
1339# CHECK: pli [r0, r2, lsl #3]
1340# CHECK: pli [r8, r2, lsl #2]
1341# CHECK: pli [sp, r2, lsl #1]
1342# CHECK: pli [sp, r2]
1343
13440x18 0xf9 0x01 0xf0
13450x15 0xf9 0x02 0xf0
13460x10 0xf9 0x32 0xf0
13470x18 0xf9 0x22 0xf0
13480x1d 0xf9 0x12 0xf0
13490x1d 0xf9 0x02 0xf0
1350
1351#------------------------------------------------------------------------------
1352# PLI(literal)
1353#------------------------------------------------------------------------------
1354# CHECK: pli [pc, #-0]
1355# CHECK: pli [pc, #-328]
1356# CHECK: pli [pc, #0]
1357
13580x1f 0xf9 0x00 0xf0
13590x1f 0xf9 0x48 0xf1
13600x9f 0xf9 0x00 0xf0
1361
1362
1363#------------------------------------------------------------------------------
1364# QADD/QADD16/QADD8
1365#------------------------------------------------------------------------------
1366# CHECK: qadd r1, r2, r3
1367# CHECK: qadd16 r1, r2, r3
1368# CHECK: qadd8 r1, r2, r3
1369# CHECK: itte gt
1370# CHECK: qaddgt r1, r2, r3
1371# CHECK: qadd16gt r1, r2, r3
1372# CHECK: qadd8le r1, r2, r3
1373
13740x83 0xfa 0x82 0xf1
13750x92 0xfa 0x13 0xf1
13760x82 0xfa 0x13 0xf1
13770xc6 0xbf
13780x83 0xfa 0x82 0xf1
13790x92 0xfa 0x13 0xf1
13800x82 0xfa 0x13 0xf1
1381
1382
1383#------------------------------------------------------------------------------
1384# QDADD/QDSUB
1385#------------------------------------------------------------------------------
1386# CHECK: qdadd r6, r7, r8
1387# CHECK: qdsub r6, r7, r8
1388# CHECK: itt hi
1389# CHECK: qdaddhi r6, r7, r8
1390# CHECK: qdsubhi r6, r7, r8
1391
13920x88 0xfa 0x97 0xf6
13930x88 0xfa 0xb7 0xf6
13940x84 0xbf
13950x88 0xfa 0x97 0xf6
13960x88 0xfa 0xb7 0xf6
1397
1398
1399#------------------------------------------------------------------------------
1400# QSAX
1401#------------------------------------------------------------------------------
1402# CHECK: qsax r9, r12, r0
1403# CHECK: it eq
1404# CHECK: qsaxeq r9, r12, r0
1405
14060xec 0xfa 0x10 0xf9
14070x08 0xbf
14080xec 0xfa 0x10 0xf9
1409
1410
1411#------------------------------------------------------------------------------
1412# QSUB/QSUB16/QSUB8
1413#------------------------------------------------------------------------------
1414# CHECK: qsub r1, r2, r3
1415# CHECK: qsub16 r1, r2, r3
1416# CHECK: qsub8 r1, r2, r3
1417# CHECK: itet le
1418# CHECK: qsuble r1, r2, r3
1419# CHECK: qsub16gt r1, r2, r3
1420# CHECK: qsub8le r1, r2, r3
1421
14220x83 0xfa 0xa2 0xf1
14230xd2 0xfa 0x13 0xf1
14240xc2 0xfa 0x13 0xf1
14250xd6 0xbf
14260x83 0xfa 0xa2 0xf1
14270xd2 0xfa 0x13 0xf1
14280xc2 0xfa 0x13 0xf1
1429
1430
1431#------------------------------------------------------------------------------
1432# RBIT
1433#------------------------------------------------------------------------------
1434# CHECK: rbit r1, r2
1435# CHECK: it ne
1436# CHECK: rbitne r1, r2
1437
14380x92 0xfa 0xa2 0xf1
14390x18 0xbf
14400x92 0xfa 0xa2 0xf1
1441
1442
1443#------------------------------------------------------------------------------
1444# REV
1445#------------------------------------------------------------------------------
1446# CHECK: rev.w r1, r2
1447# CHECK: rev.w r2, r8
1448# CHECK: itt ne
1449# CHECK: revne r1, r2
1450# CHECK: revne.w r1, r8
1451
14520x92 0xfa 0x82 0xf1
14530x98 0xfa 0x88 0xf2
14540x1c 0xbf
14550x11 0xba
14560x98 0xfa 0x88 0xf1
1457
1458
1459#------------------------------------------------------------------------------
1460# REV16
1461#------------------------------------------------------------------------------
1462# CHECK: rev16.w r1, r2
1463# CHECK: rev16.w r2, r8
1464# CHECK: itt ne
1465# CHECK: rev16ne r1, r2
1466# CHECK: rev16ne.w r1, r8
1467
14680x92 0xfa 0x92 0xf1
14690x98 0xfa 0x98 0xf2
14700x1c 0xbf
14710x51 0xba
14720x98 0xfa 0x98 0xf1
1473
1474
1475#------------------------------------------------------------------------------
1476# REVSH
1477#------------------------------------------------------------------------------
1478# CHECK: revsh.w r1, r2
1479# CHECK: revsh.w r2, r8
1480# CHECK: itt ne
1481# CHECK: revshne r1, r2
1482# CHECK: revshne.w r1, r8
1483
14840x92 0xfa 0xb2 0xf1
14850x98 0xfa 0xb8 0xf2
14860x1c 0xbf
14870xd1 0xba
14880x98 0xfa 0xb8 0xf1
1489
1490
1491#------------------------------------------------------------------------------
1492# ROR (immediate)
1493#------------------------------------------------------------------------------
1494# CHECK: ror.w r2, r3, #12
1495# CHECK: rors.w r8, r3, #31
1496# CHECK: rors.w r2, r3, #1
1497# CHECK: ror.w r2, r3, #4
1498# CHECK: rors.w r2, r12, #15
1499
1500# CHECK: ror.w r3, r3, #19
1501# CHECK: rors.w r8, r8, #2
1502# CHECK: rors.w r7, r7, #5
1503# CHECK: ror.w r12, r12, #21
1504
15050x4f 0xea 0x33 0x32
15060x5f 0xea 0xf3 0x78
15070x5f 0xea 0x73 0x02
15080x4f 0xea 0x33 0x12
15090x5f 0xea 0xfc 0x32
1510
15110x4f 0xea 0xf3 0x43
15120x5f 0xea 0xb8 0x08
15130x5f 0xea 0x77 0x17
15140x4f 0xea 0x7c 0x5c
1515
1516
1517#------------------------------------------------------------------------------
1518# ROR (register)
1519#------------------------------------------------------------------------------
1520# CHECK: ror.w r3, r4, r2
1521# CHECK: ror.w r1, r1, r2
1522# CHECK: rors.w r3, r4, r8
1523
15240x64 0xfa 0x02 0xf3
15250x61 0xfa 0x02 0xf1
15260x74 0xfa 0x08 0xf3
1527
1528
1529#------------------------------------------------------------------------------
1530# RRX
1531#------------------------------------------------------------------------------
1532# CHECK: rrx r1, r2
1533# CHECK: rrxs r1, r2
1534# CHECK: ite lt
1535# CHECK: rrxlt r9, r12
1536# CHECK: rrxsge r8, r3
1537
15380x4f 0xea 0x32 0x01
15390x5f 0xea 0x32 0x01
15400xb4 0xbf
15410x4f 0xea 0x3c 0x09
15420x5f 0xea 0x33 0x08
1543
1544#------------------------------------------------------------------------------
1545# RSB (immediate)
1546#------------------------------------------------------------------------------
1547# CHECK: rsb.w r2, r5, #1044480
1548# CHECK: rsbs.w r3, r12, #15
1549# CHECK: rsb.w r1, r1, #255
1550
15510xc5 0xf5 0x7f 0x22
15520xdc 0xf1 0x0f 0x03
15530xc1 0xf1 0xff 0x01
1554
1555
1556#------------------------------------------------------------------------------
1557# RSB (register)
1558#------------------------------------------------------------------------------
1559# CHECK: rsb r4, r4, r8
1560# CHECK: rsb r4, r9, r8
1561# CHECK: rsb r1, r4, r8, asr #3
1562# CHECK: rsbs r2, r1, r7, lsl #1
1563
15640xc4 0xeb 0x08 0x04
15650xc9 0xeb 0x08 0x04
15660xc4 0xeb 0xe8 0x01
15670xd1 0xeb 0x47 0x02
1568
1569
1570#------------------------------------------------------------------------------
1571# SADD16
1572#------------------------------------------------------------------------------
1573# CHECK: sadd16 r3, r4, r8
1574# CHECK: it ne
1575# CHECK: sadd16ne r3, r4, r8
1576
15770x94 0xfa 0x08 0xf3
15780x18 0xbf
15790x94 0xfa 0x08 0xf3
1580
1581
1582#------------------------------------------------------------------------------
1583# SADD8
1584#------------------------------------------------------------------------------
1585# CHECK: sadd8 r3, r4, r8
1586# CHECK: it ne
1587# CHECK: sadd8ne r3, r4, r8
1588
15890x84 0xfa 0x08 0xf3
15900x18 0xbf
15910x84 0xfa 0x08 0xf3
1592
1593
1594#------------------------------------------------------------------------------
1595# SASX
1596#------------------------------------------------------------------------------
1597# CHECK: sasx r9, r2, r7
1598# CHECK: it ne
1599# CHECK: sasxne r2, r5, r6
1600
16010xa2 0xfa 0x07 0xf9
16020x18 0xbf
16030xa5 0xfa 0x06 0xf2
1604
1605
1606#------------------------------------------------------------------------------
1607# SBC (immediate)
1608#------------------------------------------------------------------------------
1609# CHECK: sbc r0, r1, #4
1610# CHECK: sbcs r0, r1, #0
1611# CHECK: sbc r1, r2, #255
1612# CHECK: sbc r3, r7, #5570645
1613# CHECK: sbc r8, r12, #2852170240
1614# CHECK: sbc r9, r7, #2779096485
1615# CHECK: sbc r5, r3, #2264924160
1616# CHECK: sbc r4, r2, #2139095040
1617# CHECK: sbc r4, r2, #1664
1618
16190x61 0xf1 0x04 0x00
16200x71 0xf1 0x00 0x00
16210x62 0xf1 0xff 0x01
16220x67 0xf1 0x55 0x13
16230x6c 0xf1 0xaa 0x28
16240x67 0xf1 0xa5 0x39
16250x63 0xf1 0x07 0x45
16260x62 0xf1 0xff 0x44
16270x62 0xf5 0xd0 0x64
1628
1629
1630#------------------------------------------------------------------------------
1631# SBC (register)
1632#------------------------------------------------------------------------------
1633# CHECK: sbc.w r4, r5, r6
1634# CHECK: sbcs.w r4, r5, r6
1635# CHECK: sbc.w r9, r1, r3
1636# CHECK: sbcs.w r9, r1, r3
1637# CHECK: sbc.w r0, r1, r3, ror #4
1638# CHECK: sbcs.w r0, r1, r3, lsl #7
1639# CHECK: sbc.w r0, r1, r3, lsr #31
1640# CHECK: sbcs.w r0, r1, r3, asr #32
1641
16420x65 0xeb 0x06 0x04
16430x75 0xeb 0x06 0x04
16440x61 0xeb 0x03 0x09
16450x71 0xeb 0x03 0x09
16460x61 0xeb 0x33 0x10
16470x71 0xeb 0xc3 0x10
16480x61 0xeb 0xd3 0x70
16490x71 0xeb 0x23 0x00
1650
1651
1652#------------------------------------------------------------------------------
1653# SBFX
1654#------------------------------------------------------------------------------
1655# CHECK: sbfx r4, r5, #16, #1
1656# CHECK: it gt
1657# CHECK: sbfxgt r4, r5, #16, #16
1658
16590x45 0xf3 0x00 0x44
16600xc8 0xbf
16610x45 0xf3 0x0f 0x44
1662
1663
1664#------------------------------------------------------------------------------
1665# SEL
1666#------------------------------------------------------------------------------
1667# CHECK: sel r5, r9, r2
1668# CHECK: it le
1669# CHECK: selle r5, r9, r2
1670
16710xa9 0xfa 0x82 0xf5
16720xd8 0xbf
16730xa9 0xfa 0x82 0xf5
1674
1675
1676#------------------------------------------------------------------------------
1677# SEV
1678#------------------------------------------------------------------------------
1679# CHECK: sev.w
1680# CHECK: it eq
1681# CHECK: seveq.w
1682
16830xaf 0xf3 0x04 0x80
16840x08 0xbf
16850xaf 0xf3 0x04 0x80
1686
1687
1688#------------------------------------------------------------------------------
1689# SADD16/SADD8
1690#------------------------------------------------------------------------------
1691# CHECK: sadd16 r1, r2, r3
1692# CHECK: sadd8 r1, r2, r3
1693# CHECK: ite gt
1694# CHECK: sadd16gt r1, r2, r3
1695# CHECK: sadd8le r1, r2, r3
1696
16970x92 0xfa 0x03 0xf1
16980x82 0xfa 0x03 0xf1
16990xcc 0xbf
17000x92 0xfa 0x03 0xf1
17010x82 0xfa 0x03 0xf1
1702
1703
1704#------------------------------------------------------------------------------
1705# SHASX
1706#------------------------------------------------------------------------------
1707# CHECK: shasx r4, r8, r2
1708# CHECK: it gt
1709# CHECK: shasxgt r4, r8, r2
1710
17110xa8 0xfa 0x22 0xf4
17120xc8 0xbf
17130xa8 0xfa 0x22 0xf4
1714
1715
1716#------------------------------------------------------------------------------
1717# SHASX
1718#------------------------------------------------------------------------------
1719# CHECK: shsax r4, r8, r2
1720# CHECK: it gt
1721# CHECK: shsaxgt r4, r8, r2
1722
17230xe8 0xfa 0x22 0xf4
17240xc8 0xbf
17250xe8 0xfa 0x22 0xf4
1726
1727
1728#------------------------------------------------------------------------------
1729# SHSUB16/SHSUB8
1730#------------------------------------------------------------------------------
1731# CHECK: shsub16 r4, r8, r2
1732# CHECK: shsub8 r4, r8, r2
1733# CHECK: itt gt
1734# CHECK: shsub16gt r4, r8, r2
1735# CHECK: shsub8gt r4, r8, r2
1736
17370xd8 0xfa 0x22 0xf4
17380xc8 0xfa 0x22 0xf4
17390xc4 0xbf
17400xd8 0xfa 0x22 0xf4
17410xc8 0xfa 0x22 0xf4
1742
1743
1744#------------------------------------------------------------------------------
1745# SMLABB/SMLABT/SMLATB/SMLATT
1746#------------------------------------------------------------------------------
1747# CHECK: smlabb r3, r1, r9, r0
1748# CHECK: smlabt r5, r6, r4, r1
1749# CHECK: smlatb r4, r2, r3, r2
1750# CHECK: smlatt r8, r3, r8, r4
1751# CHECK: itete gt
1752# CHECK: smlabbgt r3, r1, r9, r0
1753# CHECK: smlabtle r5, r6, r4, r1
1754# CHECK: smlatbgt r4, r2, r3, r2
1755# CHECK: smlattle r8, r3, r8, r4
1756
17570x11 0xfb 0x09 0x03
17580x16 0xfb 0x14 0x15
17590x12 0xfb 0x23 0x24
17600x13 0xfb 0x38 0x48
17610xcb 0xbf
17620x11 0xfb 0x09 0x03
17630x16 0xfb 0x14 0x15
17640x12 0xfb 0x23 0x24
17650x13 0xfb 0x38 0x48
1766
1767
1768#------------------------------------------------------------------------------
1769# SMLAD/SMLADX
1770#------------------------------------------------------------------------------
1771# CHECK: smlad r2, r3, r5, r8
1772# CHECK: smladx r2, r3, r5, r8
1773# CHECK: itt hi
1774# CHECK: smladhi r2, r3, r5, r8
1775# CHECK: smladxhi r2, r3, r5, r8
1776
17770x23 0xfb 0x05 0x82
17780x23 0xfb 0x15 0x82
17790x84 0xbf
17800x23 0xfb 0x05 0x82
17810x23 0xfb 0x15 0x82
1782
1783
1784#------------------------------------------------------------------------------
1785# SMLAL
1786#------------------------------------------------------------------------------
1787# CHECK: smlal r2, r3, r5, r8
1788# CHECK: it eq
1789# CHECK: smlaleq r2, r3, r5, r8
1790
17910xc5 0xfb 0x08 0x23
17920x08 0xbf
17930xc5 0xfb 0x08 0x23
1794
1795
1796#------------------------------------------------------------------------------
1797# SMLALBB/SMLALBT/SMLALTB/SMLALTT
1798#------------------------------------------------------------------------------
1799# CHECK: smlalbb r3, r1, r9, r0
1800# CHECK: smlalbt r5, r6, r4, r1
1801# CHECK: smlaltb r4, r2, r3, r2
1802# CHECK: smlaltt r8, r3, r8, r4
1803# CHECK: iteet ge
1804# CHECK: smlalbbge r3, r1, r9, r0
1805# CHECK: smlalbtlt r5, r6, r4, r1
1806# CHECK: smlaltblt r4, r2, r3, r2
1807# CHECK: smlalttge r8, r3, r8, r4
1808
18090xc9 0xfb 0x80 0x31
18100xc4 0xfb 0x91 0x56
18110xc3 0xfb 0xa2 0x42
18120xc8 0xfb 0xb4 0x83
18130xad 0xbf
18140xc9 0xfb 0x80 0x31
18150xc4 0xfb 0x91 0x56
18160xc3 0xfb 0xa2 0x42
18170xc8 0xfb 0xb4 0x83
1818
1819#------------------------------------------------------------------------------
1820# SMLALD/SMLALDX
1821#------------------------------------------------------------------------------
1822# CHECK: smlald r2, r3, r5, r8
1823# CHECK: smlaldx r2, r3, r5, r8
1824# CHECK: ite eq
1825# CHECK: smlaldeq r2, r3, r5, r8
1826# CHECK: smlaldxne r2, r3, r5, r8
1827
18280xc5 0xfb 0xc8 0x23
18290xc5 0xfb 0xd8 0x23
18300x0c 0xbf
18310xc5 0xfb 0xc8 0x23
18320xc5 0xfb 0xd8 0x23
1833
1834
1835#------------------------------------------------------------------------------
1836# SMLAWB/SMLAWT
1837#------------------------------------------------------------------------------
1838# CHECK: smlawb r2, r3, r10, r8
1839# CHECK: smlawt r8, r3, r5, r9
1840# CHECK: ite eq
1841# CHECK: smlawbeq r2, r7, r5, r8
1842# CHECK: smlawtne r1, r3, r0, r8
1843
18440x33 0xfb 0x0a 0x82
18450x33 0xfb 0x15 0x98
18460x0c 0xbf
18470x37 0xfb 0x05 0x82
18480x33 0xfb 0x10 0x81
1849
1850
1851#------------------------------------------------------------------------------
1852# SMLSD/SMLSDX
1853#------------------------------------------------------------------------------
1854# CHECK: smlsd r2, r3, r5, r8
1855# CHECK: smlsdx r2, r3, r5, r8
1856# CHECK: ite le
1857# CHECK: smlsdle r2, r3, r5, r8
1858# CHECK: smlsdxgt r2, r3, r5, r8
1859
18600x43 0xfb 0x05 0x82
18610x43 0xfb 0x15 0x82
18620xd4 0xbf
18630x43 0xfb 0x05 0x82
18640x43 0xfb 0x15 0x82
1865
1866
1867#------------------------------------------------------------------------------
1868# SMLSLD/SMLSLDX
1869#------------------------------------------------------------------------------
1870# CHECK: smlsld r2, r9, r5, r1
1871# CHECK: smlsldx r4, r11, r2, r8
1872# CHECK: ite ge
1873# CHECK: smlsldge r8, r2, r5, r6
1874# CHECK: smlsldxlt r1, r0, r3, r8
1875
18760xd5 0xfb 0xc1 0x29
18770xd2 0xfb 0xd8 0x4b
18780xac 0xbf
18790xd5 0xfb 0xc6 0x82
18800xd3 0xfb 0xd8 0x10
1881
1882
1883#------------------------------------------------------------------------------
1884# SMMLA/SMMLAR
1885#------------------------------------------------------------------------------
1886# CHECK: smmla r1, r2, r3, r4
1887# CHECK: smmlar r4, r3, r2, r1
1888# CHECK: ite lo
1889# CHECK: smmlalo r1, r2, r3, r4
1890# CHECK: smmlarhs r4, r3, r2, r1
1891
18920x52 0xfb 0x03 0x41
18930x53 0xfb 0x12 0x14
18940x34 0xbf
18950x52 0xfb 0x03 0x41
18960x53 0xfb 0x12 0x14
1897
1898
1899#------------------------------------------------------------------------------
1900# SMMLS/SMMLSR
1901#------------------------------------------------------------------------------
1902# CHECK: smmls r1, r2, r3, r4
1903# CHECK: smmlsr r4, r3, r2, r1
1904# CHECK: ite lo
1905# CHECK: smmlslo r1, r2, r3, r4
1906# CHECK: smmlsrhs r4, r3, r2, r1
1907
19080x62 0xfb 0x03 0x41
19090x63 0xfb 0x12 0x14
19100x34 0xbf
19110x62 0xfb 0x03 0x41
19120x63 0xfb 0x12 0x14
1913
1914#------------------------------------------------------------------------------
1915# SSAT
1916#------------------------------------------------------------------------------
1917# CHECK: ssat r9, #30, r0, asr #2
1918
19190x20 0xf3 0x9d 0x09
1920
1921#------------------------------------------------------------------------------
1922# STR (immediate)
1923#------------------------------------------------------------------------------
1924# CHECK: str r10, [r11], #0
1925
19260x4b 0xf8 0x00 0xab
1927
1928#------------------------------------------------------------------------------
1929# STRD (immediate)
1930#------------------------------------------------------------------------------
1931# CHECK: strd r1, r1, [r0], #0
1932# CHECK: strd r6, r3, [r5], #-8
1933# CHECK: strd r8, r5, [r5], #-0
1934# CHECK: strd r7, r4, [r5], #-4
1935# CHECK: strd r0, r1, [r2, #-0]!
1936# CHECK: strd r0, r1, [r2, #0]!
1937# CHECK: strd r0, r1, [r2, #-0]
1938
19390xe0 0xe8 0x00 0x11
19400x65 0xe8 0x02 0x63
19410x65 0xe8 0x00 0x85
19420x65 0xe8 0x01 0x74
19430x62 0xe9 0x00 0x01
19440xe2 0xe9 0x00 0x01
19450x42 0xe9 0x00 0x01
1946
1947#------------------------------------------------------------------------------
1948# STREX/STREXB/STREXH/STREXD
1949#------------------------------------------------------------------------------
1950# CHECK: strex r1, r8, [r4]
1951# CHECK: strex r8, r2, [r4]
1952# CHECK: strex r2, r12, [sp, #128]
1953# CHECK: strexb r5, r1, [r7]
1954# CHECK: strexh r9, r7, [r12]
1955# CHECK: strexd r9, r3, r6, [r4]
1956
19570x44 0xe8 0x00 0x81
19580x44 0xe8 0x00 0x28
19590x4d 0xe8 0x20 0xc2
19600xc7 0xe8 0x45 0x1f
19610xcc 0xe8 0x59 0x7f
19620xc4 0xe8 0x79 0x36
1963
1964
1965#------------------------------------------------------------------------------
1966# STRH(immediate)
1967#------------------------------------------------------------------------------
1968# CHECK: strh r5, [r5, #-4]
1969# CHECK: strh r5, [r6, #32]
1970# CHECK: strh.w r5, [r6, #33]
1971# CHECK: strh.w r5, [r6, #257]
1972# CHECK: strh.w lr, [r7, #257]
1973# CHECK: strh r5, [r8, #255]!
1974# CHECK: strh r2, [r5, #4]!
1975# CHECK: strh r1, [r4, #-4]!
1976# CHECK: strh r1, [r4, #0]!
1977# CHECK: strh lr, [r3], #255
1978# CHECK: strh r9, [r2], #4
1979# CHECK: strh r3, [sp], #-4
1980
19810x25 0xf8 0x04 0x5c
19820x35 0x84
19830xa6 0xf8 0x21 0x50
19840xa6 0xf8 0x01 0x51
19850xa7 0xf8 0x01 0xe1
19860x28 0xf8 0xff 0x5f
19870x25 0xf8 0x04 0x2f
19880x24 0xf8 0x04 0x1d
19890x24 0xf8 0x00 0x1f
19900x23 0xf8 0xff 0xeb
19910x22 0xf8 0x04 0x9b
19920x2d 0xf8 0x04 0x39
1993
1994
1995#------------------------------------------------------------------------------
1996# STRH(register)
1997#------------------------------------------------------------------------------
1998# CHECK: strh.w r1, [r8, r1]
1999# CHECK: strh.w r4, [r5, r2]
2000# CHECK: strh.w r6, [r0, r2, lsl #3]
2001# CHECK: strh.w r8, [r8, r2, lsl #2]
2002# CHECK: strh.w r7, [sp, r2, lsl #1]
2003# CHECK: strh.w r7, [sp, r2]
2004
20050x28 0xf8 0x01 0x10
20060x25 0xf8 0x02 0x40
20070x20 0xf8 0x32 0x60
20080x28 0xf8 0x22 0x80
20090x2d 0xf8 0x12 0x70
20100x2d 0xf8 0x02 0x70
2011
2012
2013#------------------------------------------------------------------------------
2014# STRHT
2015#------------------------------------------------------------------------------
2016# CHECK: strht r1, [r2]
2017# CHECK: strht r1, [r8]
2018# CHECK: strht r1, [r8, #3]
2019# CHECK: strht r1, [r8, #255]
2020
20210x22 0xf8 0x00 0x1e
20220x28 0xf8 0x00 0x1e
20230x28 0xf8 0x03 0x1e
20240x28 0xf8 0xff 0x1e
2025
2026
2027#------------------------------------------------------------------------------
2028# STRT
2029#------------------------------------------------------------------------------
2030# CHECK: strt r1, [r2]
2031# CHECK: strt r1, [r8]
2032# CHECK: strt r1, [r8, #3]
2033# CHECK: strt r1, [r8, #255]
2034
20350x42 0xf8 0x00 0x1e
20360x48 0xf8 0x00 0x1e
20370x48 0xf8 0x03 0x1e
20380x48 0xf8 0xff 0x1e
2039
2040
2041#------------------------------------------------------------------------------
2042# SUB (immediate)
2043#------------------------------------------------------------------------------
2044# CHECK: itet eq
2045# CHECK: subeq r1, r2, #4
2046# CHECK: subwne r5, r3, #1023
2047# CHECK: subweq r4, r5, #293
2048# CHECK: sub.w r2, sp, #1024
2049# CHECK: sub.w r2, r8, #65280
2050# CHECK: subw r2, r3, #257
2051# CHECK: sub.w r12, r6, #256
2052# CHECK: subw r12, r6, #256
2053# CHECK: subs.w r1, r2, #496
2054# CHECK: subs pc, lr, #4
2055
20560x0a 0xbf
20570x11 0x1f
20580xa3 0xf2 0xff 0x35
20590xa5 0xf2 0x25 0x14
20600xad 0xf5 0x80 0x62
20610xa8 0xf5 0x7f 0x42
20620xa3 0xf2 0x01 0x12
20630xa6 0xf5 0x80 0x7c
20640xa6 0xf2 0x00 0x1c
20650xb2 0xf5 0xf8 0x71
20660xde 0xf3 0x04 0x8f
2067
2068
2069#------------------------------------------------------------------------------
2070# SUB (register)
2071#------------------------------------------------------------------------------
2072# CHECK: sub.w r4, r5, r6
2073# CHECK: sub.w r4, r5, r6, lsl #5
2074# CHECK: sub.w r4, r5, r6, lsr #5
2075# CHECK: sub.w r4, r5, r6, lsr #5
2076# CHECK: sub.w r4, r5, r6, asr #5
2077# CHECK: sub.w r4, r5, r6, ror #5
2078# CHECK: sub.w r5, r2, r12, rrx
2079
20800xa5 0xeb 0x06 0x04
20810xa5 0xeb 0x46 0x14
20820xa5 0xeb 0x56 0x14
20830xa5 0xeb 0x56 0x14
20840xa5 0xeb 0x66 0x14
20850xa5 0xeb 0x76 0x14
20860xa2 0xeb 0x3c 0x05
2087
2088
2089#------------------------------------------------------------------------------
2090# SVC
2091#------------------------------------------------------------------------------
2092# CHECK: svc #0
2093# CHECK: ite eq
2094# CHECK: svceq #255
2095# CHECK: svcne #33
2096
20970x00 0xdf
20980x0c 0xbf
20990xff 0xdf
21000x21 0xdf
2101
2102#------------------------------------------------------------------------------
2103# SXTAB
2104#------------------------------------------------------------------------------
2105# CHECK:  sxtab r2, r3, r4
2106# CHECK:  sxtab r4, r5, r6
2107# CHECK:  it lt
2108# CHECK:  sxtablt r6, r2, r9, ror #8
2109# CHECK:  sxtab r5, r1, r4, ror #16
2110# CHECK:  sxtab r7, r8, r3, ror #24
2111
21120x43 0xfa 0x84 0xf2
21130x45 0xfa 0x86 0xf4
21140xb8 0xbf
21150x42 0xfa 0x99 0xf6
21160x41 0xfa 0xa4 0xf5
21170x48 0xfa 0xb3 0xf7
2118
2119
2120#------------------------------------------------------------------------------
2121# SXTAB16
2122#------------------------------------------------------------------------------
2123# CHECK:  sxtab16 r6, r2, r7
2124# CHECK:  sxtab16 r3, r5, r8, ror #8
2125# CHECK:  sxtab16 r3, r2, r1, ror #16
2126# CHECK:  ite ne
2127# CHECK:  sxtab16ne r0, r1, r4
2128# CHECK:  sxtab16eq r1, r2, r3, ror #24
2129
21300x22 0xfa 0x87 0xf6
21310x25 0xfa 0x98 0xf3
21320x22 0xfa 0xa1 0xf3
21330x14 0xbf
21340x21 0xfa 0x84 0xf0
21350x22 0xfa 0xb3 0xf1
2136
2137
2138#------------------------------------------------------------------------------
2139# SXTAH
2140#------------------------------------------------------------------------------
2141# CHECK:  sxtah r1, r3, r9
2142# CHECK:  sxtah r3, r8, r3, ror #8
2143# CHECK:  sxtah r9, r3, r3, ror #24
2144# CHECK:  ite hi
2145# CHECK:  sxtahhi r6, r1, r6
2146# CHECK:  sxtahls r2, r2, r4, ror #16
2147
21480x03 0xfa 0x89 0xf1
21490x08 0xfa 0x93 0xf3
21500x03 0xfa 0xb3 0xf9
21510x8c 0xbf
21520x01 0xfa 0x86 0xf6
21530x02 0xfa 0xa4 0xf2
2154
2155
2156#------------------------------------------------------------------------------
2157# SXTB
2158#------------------------------------------------------------------------------
2159# CHECK:  sxtb r5, r6
2160# CHECK:  sxtb.w r6, r9, ror #8
2161# CHECK:  sxtb.w r8, r3, ror #24
2162# CHECK:  ite ge
2163# CHECK:  sxtbge r2, r4
2164# CHECK:  sxtblt.w r5, r1, ror #16
2165
21660x75 0xb2
21670x4f 0xfa 0x99 0xf6
21680x4f 0xfa 0xb3 0xf8
21690xac 0xbf
21700x62 0xb2
21710x4f 0xfa 0xa1 0xf5
2172
2173
2174#------------------------------------------------------------------------------
2175# SXTB16
2176#------------------------------------------------------------------------------
2177# CHECK:  sxtb16 r1, r4
2178# CHECK:  sxtb16 r6, r7
2179# CHECK:  sxtb16 r3, r1, ror #16
2180# CHECK:  ite hs
2181# CHECK:  sxtb16hs r3, r5, ror #8
2182# CHECK:  sxtb16lo r2, r3, ror #24
2183
21840x2f 0xfa 0x84 0xf1
21850x2f 0xfa 0x87 0xf6
21860x2f 0xfa 0xa1 0xf3
21870x2c 0xbf
21880x2f 0xfa 0x95 0xf3
21890x2f 0xfa 0xb3 0xf2
2190
2191
2192#------------------------------------------------------------------------------
2193# SXTH
2194#------------------------------------------------------------------------------
2195# CHECK:  sxth r1, r6
2196# CHECK:  sxth.w r3, r8, ror #8
2197# CHECK:  sxth.w r9, r3, ror #24
2198# CHECK:  itt ne
2199# CHECK:  sxthne.w r3, r9
2200# CHECK:  sxthne.w r2, r2, ror #16
2201
22020x31 0xb2
22030x0f 0xfa 0x98 0xf3
22040x0f 0xfa 0xb3 0xf9
22050x1c 0xbf
22060x0f 0xfa 0x89 0xf3
22070x0f 0xfa 0xa2 0xf2
2208
2209
2210#------------------------------------------------------------------------------
2211# SXTB
2212#------------------------------------------------------------------------------
2213# CHECK:  sxtb r5, r6
2214# CHECK:  sxtb.w r6, r9, ror #8
2215# CHECK:  sxtb.w r8, r3, ror #24
2216# CHECK:  ite ge
2217# CHECK:  sxtbge r2, r4
2218# CHECK:  sxtblt.w r5, r1, ror #16
2219
22200x75 0xb2
22210x4f 0xfa 0x99 0xf6
22220x4f 0xfa 0xb3 0xf8
22230xac 0xbf
22240x62 0xb2
22250x4f 0xfa 0xa1 0xf5
2226
2227
2228#------------------------------------------------------------------------------
2229# SXTB16
2230#------------------------------------------------------------------------------
2231# CHECK:  sxtb16 r1, r4
2232# CHECK:  sxtb16 r6, r7
2233# CHECK:  sxtb16 r3, r1, ror #16
2234# CHECK:  ite hs
2235# CHECK:  sxtb16hs r3, r5, ror #8
2236# CHECK:  sxtb16lo r2, r3, ror #24
2237
22380x2f 0xfa 0x84 0xf1
22390x2f 0xfa 0x87 0xf6
22400x2f 0xfa 0xa1 0xf3
22410x2c 0xbf
22420x2f 0xfa 0x95 0xf3
22430x2f 0xfa 0xb3 0xf2
2244
2245
2246#------------------------------------------------------------------------------
2247# SXTH
2248#------------------------------------------------------------------------------
2249# CHECK:  sxth r1, r6
2250# CHECK:  sxth.w r3, r8, ror #8
2251# CHECK:  sxth.w r9, r3, ror #24
2252# CHECK:  itt ne
2253# CHECK:  sxthne.w r3, r9
2254# CHECK:  sxthne.w r2, r2, ror #16
2255
22560x31 0xb2
22570x0f 0xfa 0x98 0xf3
22580x0f 0xfa 0xb3 0xf9
22590x1c 0xbf
22600x0f 0xfa 0x89 0xf3
22610x0f 0xfa 0xa2 0xf2
2262
2263
2264#------------------------------------------------------------------------------
2265# TBB/TBH
2266#------------------------------------------------------------------------------
2267# CHECK:  tbb [r3, r8]
2268# CHECK:  tbh [r3, r8, lsl #1]
2269# CHECK:  it eq
2270# CHECK:  tbbeq [r3, r8]
2271# CHECK:  it hs
2272# CHECK:  tbhhs [r3, r8, lsl #1]
2273
22740xd3 0xe8 0x08 0xf0
22750xd3 0xe8 0x18 0xf0
22760x08 0xbf
22770xd3 0xe8 0x08 0xf0
22780x28 0xbf
22790xd3 0xe8 0x18 0xf0
2280
2281
2282#------------------------------------------------------------------------------
2283# TEQ
2284#------------------------------------------------------------------------------
2285# CHECK:  teq.w r5, #61440
2286# CHECK:  teq.w r4, r5
2287# CHECK:  teq.w r4, r5, lsl #5
2288# CHECK:  teq.w r4, r5, lsr #5
2289# CHECK:  teq.w r4, r5, lsr #5
2290# CHECK:  teq.w r4, r5, asr #5
2291# CHECK:  teq.w r4, r5, ror #5
2292
22930x95 0xf4 0x70 0x4f
22940x94 0xea 0x05 0x0f
22950x94 0xea 0x45 0x1f
22960x94 0xea 0x55 0x1f
22970x94 0xea 0x55 0x1f
22980x94 0xea 0x65 0x1f
22990x94 0xea 0x75 0x1f
2300
2301
2302#------------------------------------------------------------------------------
2303# TST
2304#------------------------------------------------------------------------------
2305# CHECK:  tst.w r5, #61440
2306# CHECK:  tst r2, r5
2307# CHECK:  tst.w r3, r12, lsl #5
2308# CHECK:  tst.w r4, r11, lsr #4
2309# CHECK:  tst.w r5, r10, lsr #12
2310# CHECK:  tst.w r6, r9, asr #30
2311# CHECK:  tst.w r7, r8, ror #2
2312
23130x15 0xf4 0x70 0x4f
23140x2a 0x42
23150x13 0xea 0x4c 0x1f
23160x14 0xea 0x1b 0x1f
23170x15 0xea 0x1a 0x3f
23180x16 0xea 0xa9 0x7f
23190x17 0xea 0xb8 0x0f
2320
2321
2322#------------------------------------------------------------------------------
2323# UADD16/UADD8
2324#------------------------------------------------------------------------------
2325# CHECK:  uadd16 r1, r2, r3
2326# CHECK:  uadd8 r1, r2, r3
2327# CHECK:  ite gt
2328# CHECK:  uadd16gt r1, r2, r3
2329# CHECK:  uadd8le r1, r2, r3
2330
23310x92 0xfa 0x43 0xf1
23320x82 0xfa 0x43 0xf1
23330xcc 0xbf
23340x92 0xfa 0x43 0xf1
23350x82 0xfa 0x43 0xf1
2336
2337
2338#------------------------------------------------------------------------------
2339# UASX
2340#------------------------------------------------------------------------------
2341# CHECK:  uasx r9, r12, r0
2342# CHECK:  it eq
2343# CHECK:  uasxeq r9, r12, r0
2344# CHECK:  uasx r9, r12, r0
2345# CHECK:  it eq
2346# CHECK:  uasxeq r9, r12, r0
2347
23480xac 0xfa 0x40 0xf9
23490x08 0xbf
23500xac 0xfa 0x40 0xf9
23510xac 0xfa 0x40 0xf9
23520x08 0xbf
23530xac 0xfa 0x40 0xf9
2354
2355
2356#------------------------------------------------------------------------------
2357# UBFX
2358#------------------------------------------------------------------------------
2359# CHECK:  ubfx r4, r5, #16, #1
2360# CHECK:  it gt
2361# CHECK:  ubfxgt r4, r5, #16, #16
2362
23630xc5 0xf3 0x00 0x44
23640xc8 0xbf
23650xc5 0xf3 0x0f 0x44
2366
2367
2368#------------------------------------------------------------------------------
2369# UHADD16/UHADD8
2370#------------------------------------------------------------------------------
2371# CHECK:  uhadd16 r4, r8, r2
2372# CHECK:  uhadd8 r4, r8, r2
2373# CHECK:  itt gt
2374# CHECK:  uhadd16gt r4, r8, r2
2375# CHECK:  uhadd8gt r4, r8, r2
2376
23770x98 0xfa 0x62 0xf4
23780x88 0xfa 0x62 0xf4
23790xc4 0xbf
23800x98 0xfa 0x62 0xf4
23810x88 0xfa 0x62 0xf4
2382
2383
2384#------------------------------------------------------------------------------
2385# UHASX/UHSAX
2386#------------------------------------------------------------------------------
2387# CHECK:  uhasx r4, r1, r5
2388# CHECK:  uhsax r5, r6, r6
2389# CHECK:  itt gt
2390# CHECK:  uhasxgt r6, r9, r8
2391# CHECK:  uhsaxgt r7, r8, r12
2392
23930xa1 0xfa 0x65 0xf4
23940xe6 0xfa 0x66 0xf5
23950xc4 0xbf
23960xa9 0xfa 0x68 0xf6
23970xe8 0xfa 0x6c 0xf7
2398
2399#------------------------------------------------------------------------------
2400# UHSUB16/UHSUB8
2401#------------------------------------------------------------------------------
2402# CHECK:  uhsub16 r5, r8, r3
2403# CHECK:  uhsub8 r1, r7, r6
2404# CHECK:  itt lt
2405# CHECK:  uhsub16lt r4, r9, r12
2406# CHECK:  uhsub8lt r3, r1, r5
2407
24080xd8 0xfa 0x63 0xf5
24090xc7 0xfa 0x66 0xf1
24100xbc 0xbf
24110xd9 0xfa 0x6c 0xf4
24120xc1 0xfa 0x65 0xf3
2413
2414
2415#------------------------------------------------------------------------------
2416# UMAAL
2417#------------------------------------------------------------------------------
2418# CHECK:  umaal r3, r4, r5, r6
2419# CHECK:  it lt
2420# CHECK:  umaallt r3, r4, r5, r6
2421
24220xe5 0xfb 0x66 0x34
24230xb8 0xbf
24240xe5 0xfb 0x66 0x34
2425
2426
2427#------------------------------------------------------------------------------
2428# UMLAL
2429#------------------------------------------------------------------------------
2430# CHECK:  umlal r2, r4, r6, r8
2431# CHECK:  it gt
2432# CHECK:  umlalgt r6, r1, r2, r6
2433
24340xe6 0xfb 0x08 0x24
24350xc8 0xbf
24360xe2 0xfb 0x06 0x61
2437
2438
2439#------------------------------------------------------------------------------
2440# UMULL
2441#------------------------------------------------------------------------------
2442# CHECK:  umull r2, r4, r6, r8
2443# CHECK:  it gt
2444# CHECK:  umullgt r6, r1, r2, r6
2445
24460xa6 0xfb 0x08 0x24
24470xc8 0xbf
24480xa2 0xfb 0x06 0x61
2449
2450
2451#------------------------------------------------------------------------------
2452# UQADD16/UQADD8
2453#------------------------------------------------------------------------------
2454# CHECK:  uqadd16 r1, r2, r3
2455# CHECK:  uqadd8 r3, r4, r8
2456# CHECK:  ite gt
2457# CHECK:  uqadd16gt r4, r7, r9
2458# CHECK:  uqadd8le r8, r1, r2
2459
24600x92 0xfa 0x53 0xf1
24610x84 0xfa 0x58 0xf3
24620xcc 0xbf
24630x97 0xfa 0x59 0xf4
24640x81 0xfa 0x52 0xf8
2465
2466
2467#------------------------------------------------------------------------------
2468# UQASX/UQSAX
2469#------------------------------------------------------------------------------
2470# CHECK:  uqasx r1, r2, r3
2471# CHECK:  uqsax r3, r4, r8
2472# CHECK:  ite gt
2473# CHECK:  uqasxgt r4, r7, r9
2474# CHECK:  uqsaxle r8, r1, r2
2475
24760xa2 0xfa 0x53 0xf1
24770xe4 0xfa 0x58 0xf3
24780xcc 0xbf
24790xa7 0xfa 0x59 0xf4
24800xe1 0xfa 0x52 0xf8
2481
2482
2483#------------------------------------------------------------------------------
2484# UQSUB16/UQSUB8
2485#------------------------------------------------------------------------------
2486# CHECK:  uqsub8 r8, r2, r9
2487# CHECK:  uqsub16 r1, r9, r7
2488# CHECK:  ite gt
2489# CHECK:  uqsub8gt r3, r1, r6
2490# CHECK:  uqsub16le r4, r6, r4
2491
24920xc2 0xfa 0x59 0xf8
24930xd9 0xfa 0x57 0xf1
24940xcc 0xbf
24950xc1 0xfa 0x56 0xf3
24960xd6 0xfa 0x54 0xf4
2497
2498
2499#------------------------------------------------------------------------------
2500# UQSUB16/UQSUB8
2501#------------------------------------------------------------------------------
2502# CHECK:  usad8 r1, r9, r7
2503# CHECK:  usada8 r8, r2, r9, r12
2504# CHECK:  ite gt
2505# CHECK:  usada8gt r3, r1, r6, r9
2506# CHECK:  usad8le r4, r6, r4
2507
25080x79 0xfb 0x07 0xf1
25090x72 0xfb 0x09 0xc8
25100xcc 0xbf
25110x71 0xfb 0x06 0x93
25120x76 0xfb 0x04 0xf4
2513
2514
2515#------------------------------------------------------------------------------
2516# USAT
2517#------------------------------------------------------------------------------
2518# CHECK:  usat r8, #1, r10
2519# CHECK:  usat r8, #4, r10
2520# CHECK:  usat r8, #5, r10, lsl #31
2521# CHECK:  usat r8, #16, r10, asr #1
2522
25230x8a 0xf3 0x01 0x08
25240x8a 0xf3 0x04 0x08
25250x8a 0xf3 0xc5 0x78
25260xaa 0xf3 0x50 0x08
2527
2528
2529#------------------------------------------------------------------------------
2530# USAT16
2531#------------------------------------------------------------------------------
2532# CHECK:  usat16	r2, #2, r7
2533# CHECK:  usat16	r3, #15, r5
2534
25350xa7 0xf3 0x02 0x02
25360xa5 0xf3 0x0f 0x03
2537
2538
2539#------------------------------------------------------------------------------
2540# USAX
2541#------------------------------------------------------------------------------
2542# CHECK:  usax r2, r3, r4
2543# CHECK:  it ne
2544# CHECK:  usaxne r6, r1, r9
2545# CHECK:  usax r2, r3, r4
2546# CHECK:  it ne
2547# CHECK:  usaxne r6, r1, r9
2548
25490xe3 0xfa 0x44 0xf2
25500x18 0xbf
25510xe1 0xfa 0x49 0xf6
25520xe3 0xfa 0x44 0xf2
25530x18 0xbf
25540xe1 0xfa 0x49 0xf6
2555
2556
2557#------------------------------------------------------------------------------
2558# USUB16/USUB8
2559#------------------------------------------------------------------------------
2560# CHECK:  usub16 r4, r2, r7
2561# CHECK:  usub8 r1, r8, r5
2562# CHECK:  ite hi
2563# CHECK:  usub16hi r1, r1, r3
2564# CHECK:  usub8ls r9, r2, r3
2565
25660xd2 0xfa 0x47 0xf4
25670xc8 0xfa 0x45 0xf1
25680x8c 0xbf
25690xd1 0xfa 0x43 0xf1
25700xc2 0xfa 0x43 0xf9
2571
2572
2573#------------------------------------------------------------------------------
2574# UXTAB
2575#------------------------------------------------------------------------------
2576# CHECK:  uxtab r2, r3, r4
2577# CHECK:  uxtab r4, r5, r6
2578# CHECK:  it lt
2579# CHECK:  uxtablt r6, r2, r9, ror #8
2580# CHECK:  uxtab r5, r1, r4, ror #16
2581# CHECK:  uxtab r7, r8, r3, ror #24
2582
25830x53 0xfa 0x84 0xf2
25840x55 0xfa 0x86 0xf4
25850xb8 0xbf
25860x52 0xfa 0x99 0xf6
25870x51 0xfa 0xa4 0xf5
25880x58 0xfa 0xb3 0xf7
2589
2590
2591#------------------------------------------------------------------------------
2592# UXTAB16
2593#------------------------------------------------------------------------------
2594# CHECK:  it ge
2595# CHECK:  uxtab16ge r0, r1, r4
2596# CHECK:  uxtab16 r6, r2, r7
2597# CHECK:  uxtab16 r3, r5, r8, ror #8
2598# CHECK:  uxtab16 r3, r2, r1, ror #16
2599# CHECK:  it eq
2600# CHECK:  uxtab16eq r1, r2, r3, ror #24
2601
26020xa8 0xbf
26030x31 0xfa 0x84 0xf0
26040x32 0xfa 0x87 0xf6
26050x35 0xfa 0x98 0xf3
26060x32 0xfa 0xa1 0xf3
26070x08 0xbf
26080x32 0xfa 0xb3 0xf1
2609
2610
2611#------------------------------------------------------------------------------
2612# UXTAH
2613#------------------------------------------------------------------------------
2614# CHECK:  uxtah r1, r3, r9
2615# CHECK:  it hi
2616# CHECK:  uxtahhi r6, r1, r6
2617# CHECK:  uxtah r3, r8, r3, ror #8
2618# CHECK:  it lo
2619# CHECK:  uxtahlo r2, r2, r4, ror #16
2620# CHECK:  uxtah r9, r3, r3, ror #24
2621
26220x13 0xfa 0x89 0xf1
26230x88 0xbf
26240x11 0xfa 0x86 0xf6
26250x18 0xfa 0x93 0xf3
26260x38 0xbf
26270x12 0xfa 0xa4 0xf2
26280x13 0xfa 0xb3 0xf9
2629
2630
2631#------------------------------------------------------------------------------
2632# UXTB
2633#------------------------------------------------------------------------------
2634# CHECK:  it ge
2635# CHECK:  uxtbge r2, r4
2636# CHECK:  uxtb r5, r6
2637# CHECK:  uxtb.w r6, r9, ror #8
2638# CHECK:  it lo
2639# CHECK:  uxtblo.w r5, r1, ror #16
2640# CHECK:  uxtb.w r8, r3, ror #24
2641
26420xa8 0xbf
26430xe2 0xb2
26440xf5 0xb2
26450x5f 0xfa 0x99 0xf6
26460x38 0xbf
26470x5f 0xfa 0xa1 0xf5
26480x5f 0xfa 0xb3 0xf8
2649
2650
2651#------------------------------------------------------------------------------
2652# UXTB16
2653#------------------------------------------------------------------------------
2654# CHECK:  uxtb16 r1, r4
2655# CHECK:  uxtb16 r6, r7
2656# CHECK:  it hs
2657# CHECK:  uxtb16hs r3, r5, ror #8
2658# CHECK:  uxtb16 r3, r1, ror #16
2659# CHECK:  it ge
2660# CHECK:  uxtb16ge r2, r3, ror #24
2661
26620x3f 0xfa 0x84 0xf1
26630x3f 0xfa 0x87 0xf6
26640x28 0xbf
26650x3f 0xfa 0x95 0xf3
26660x3f 0xfa 0xa1 0xf3
26670xa8 0xbf
26680x3f 0xfa 0xb3 0xf2
2669
2670
2671#------------------------------------------------------------------------------
2672# UXTH
2673#------------------------------------------------------------------------------
2674# CHECK:  it ne
2675# CHECK:  uxthne.w r3, r9
2676# CHECK:  uxth r1, r6
2677# CHECK:  uxth.w r3, r8, ror #8
2678# CHECK:  it le
2679# CHECK:  uxthle.w r2, r2, ror #16
2680# CHECK:  uxth.w r9, r3, ror #24
2681
26820x18 0xbf
26830x1f 0xfa 0x89 0xf3
26840xb1 0xb2
26850x1f 0xfa 0x98 0xf3
26860xd8 0xbf
26870x1f 0xfa 0xa2 0xf2
26880x1f 0xfa 0xb3 0xf9
2689
2690
2691#------------------------------------------------------------------------------
2692# WFE/WFI/YIELD
2693#------------------------------------------------------------------------------
2694# CHECK:  wfe
2695# CHECK:  wfi
2696# CHECK:  yield
2697# CHECK:  itet lt
2698# CHECK:  wfelt
2699# CHECK:  wfige
2700# CHECK:  yieldlt
2701
27020x20 0xbf
27030x30 0xbf
27040x10 0xbf
27050xb6 0xbf
27060x20 0xbf
27070x30 0xbf
27080x10 0xbf
2709
2710#------------------------------------------------------------------------------
2711# Unallocated hints (They execute as NOPs, but software must not use them.)
2712#------------------------------------------------------------------------------
2713# CHECK: hint #6
2714# CHECK: hint.w #6
2715# CHECK: hint.w #102
2716
27170x60 0xbf
27180xaf 0xf3 0x06 0x80
27190xaf 0xf3 0x66 0x80
2720
2721