• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
173#------------------------------------------------------------------------------
174# BFC
175#------------------------------------------------------------------------------
176# CHECK: bfc r5, #3, #17
177# CHECK: it lo
178# CHECK: bfclo r5, #3, #17
179
1800x6f 0xf3 0xd3 0x05
1810x38 0xbf
1820x6f 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
1940x62 0xf3 0xd3 0x05
1950x18 0xbf
1960x62 0xf3 0xd3 0x05
1970x60 0xf3 0x1f 0x06
1980x60 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
2200x21 0xf0 0x0f 0x0a
2210x23 0xea 0x06 0x0c
2220x22 0xea 0x06 0x3b
2230x24 0xea 0xd1 0x28
2240x25 0xea 0xd7 0x37
2250x27 0xea 0x29 0x06
2260x26 0xea 0x78 0x05
227
2280x21 0xf0 0x0f 0x01
2290x21 0xea 0x01 0x01
2300x24 0xea 0xc2 0x74
2310x26 0xea 0x13 0x36
2320x27 0xea 0xd4 0x17
2330x28 0xea 0xe5 0x38
2340x2c 0xea 0x76 0x7c
235
236
237#------------------------------------------------------------------------------
238# BXJ
239#------------------------------------------------------------------------------
240# CHECK: bxj r5
241# CHECK: it ne
242# CHECK: bxjne r7
243
2440xc5 0xf3 0x00 0x8f
2450x18 0xbf
2460xc7 0xf3 0x00 0x8f
247
248
249#------------------------------------------------------------------------------
250# CBZ/CBNZ
251#------------------------------------------------------------------------------
252# CHECK: cbnz    r7, #6
253# CHECK: cbnz    r7, #12
254
2550x1f 0xb9
2560x37 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
2640x11 0xee 0x81 0x17
2650x11 0xfe 0x81 0x17
266
267
268#------------------------------------------------------------------------------
269# CLREX
270#------------------------------------------------------------------------------
271#CHECK: clrex
272#CHECK: it ne
273#CHECK: clrexne
274
2750xbf 0xf3 0x2f 0x8f
2760x18 0xbf
2770xbf 0xf3 0x2f 0x8f
278
279
280#------------------------------------------------------------------------------
281# CLZ
282#------------------------------------------------------------------------------
283#CHECK: clz r1, r2
284#CHECK: it eq
285#CHECK: clzeq r1, r2
286
2870xb2 0xfa 0x82 0xf1
2880x08 0xbf
2890xb2 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
3030x11 0xf1 0x0f 0x0f
3040x18 0xeb 0x06 0x0f
3050x11 0xeb 0x86 0x2f
3060x11 0xeb 0x96 0x2f
3070x1d 0xeb 0x96 0x2f
3080x11 0xeb 0xa6 0x2f
3090x11 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
3230xb5 0xf5 0x7f 0x4f
3240xb4 0xeb 0x0c 0x0f
3250xb9 0xeb 0x06 0x3f
3260xb3 0xeb 0xd7 0x7f
3270xbd 0xeb 0x56 0x0f
3280xb2 0xeb 0x25 0x6f
3290xb1 0xeb 0xf4 0x3f
330
331
332#------------------------------------------------------------------------------
333# DBG
334#------------------------------------------------------------------------------
335#CHECK: dbg #5
336#CHECK: dbg #0
337#CHECK: dbg #15
338
3390xaf 0xf3 0xf5 0x80
3400xaf 0xf3 0xf0 0x80
3410xaf 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
3640xbf 0xf3 0x5f 0x8f
3650xbf 0xf3 0x5e 0x8f
3660xbf 0xf3 0x5d 0x8f
3670xbf 0xf3 0x5c 0x8f
3680xbf 0xf3 0x5b 0x8f
3690xbf 0xf3 0x5a 0x8f
3700xbf 0xf3 0x59 0x8f
3710xbf 0xf3 0x58 0x8f
3720xbf 0xf3 0x57 0x8f
3730xbf 0xf3 0x56 0x8f
3740xbf 0xf3 0x55 0x8f
3750xbf 0xf3 0x54 0x8f
3760xbf 0xf3 0x53 0x8f
3770xbf 0xf3 0x52 0x8f
3780xbf 0xf3 0x51 0x8f
3790xbf 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
4020xbf 0xf3 0x4f 0x8f
4030xbf 0xf3 0x4e 0x8f
4040xbf 0xf3 0x4d 0x8f
4050xbf 0xf3 0x4c 0x8f
4060xbf 0xf3 0x4b 0x8f
4070xbf 0xf3 0x4a 0x8f
4080xbf 0xf3 0x49 0x8f
4090xbf 0xf3 0x48 0x8f
4100xbf 0xf3 0x47 0x8f
4110xbf 0xf3 0x46 0x8f
4120xbf 0xf3 0x45 0x8f
4130xbf 0xf3 0x44 0x8f
4140xbf 0xf3 0x43 0x8f
4150xbf 0xf3 0x42 0x8f
4160xbf 0xf3 0x41 0x8f
4170xbf 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
4310x85 0xf4 0x70 0x44
4320x85 0xea 0x06 0x04
4330x85 0xea 0x46 0x14
4340x85 0xea 0x56 0x14
4350x85 0xea 0x56 0x14
4360x85 0xea 0x66 0x14
4370x85 0xea 0x76 0x14
438
439
440#------------------------------------------------------------------------------
441# ISB
442#------------------------------------------------------------------------------
443#CHECK: isb sy
444
4450xbf 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
4580x0d 0xbf
4590x88 0x18
4600x00 0xbf
4610xf5 0x1b
4620x11 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
4700x99 0xbf
4710x88 0x18
4720x00 0xbf
4730xf5 0x1b
4740x11 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
4970x94 0xe8 0x30 0x03
4980x94 0xe8 0x60 0x00
4990xb5 0xe8 0x08 0x01
5000x94 0xe8 0x30 0x03
5010x94 0xe8 0x60 0x00
5020xb5 0xe8 0x08 0x01
5030xb5 0xe8 0x06 0x00
5040x92 0xe8 0x06 0x00
505
5060x94 0xe8 0x30 0x03
5070x94 0xe8 0x60 0x00
5080xb5 0xe8 0x08 0x01
5090x94 0xe8 0x30 0x03
5100x94 0xe8 0x60 0x00
5110xb5 0xe8 0x08 0x01
5120xb5 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
5230x14 0xe9 0x30 0x03
5240x14 0xe9 0x60 0x00
5250x35 0xe9 0x08 0x01
5260x35 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
5380x55 0xf8 0x04 0x5c
5390x35 0x6a
5400xd6 0xf8 0x21 0x50
5410xd6 0xf8 0x01 0x51
5420xd7 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
5610x58 0xf8 0x01 0x10
5620x55 0xf8 0x02 0x40
5630x50 0xf8 0x32 0x60
5640x58 0xf8 0x22 0x80
5650x5d 0xf8 0x12 0x70
5660x5d 0xf8 0x02 0x70
5670x54 0xf8 0xff 0x2f
5680x5d 0xf8 0x04 0x8f
5690x5d 0xf8 0x04 0xed
5700x54 0xf8 0xff 0x2b
5710x5d 0xf8 0x04 0x8b
5720x5d 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
5840x15 0xf8 0x04 0x5c
5850x96 0xf8 0x20 0x50
5860x96 0xf8 0x21 0x50
5870x96 0xf8 0x01 0x51
5880x97 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
6070x18 0xf8 0x01 0x10
6080x15 0xf8 0x02 0x40
6090x10 0xf8 0x32 0x60
6100x18 0xf8 0x22 0x80
6110x1d 0xf8 0x12 0x70
6120x1d 0xf8 0x02 0x70
6130x18 0xf8 0xff 0x5f
6140x15 0xf8 0x04 0x2f
6150x14 0xf8 0x04 0x1d
6160x13 0xf8 0xff 0xeb
6170x12 0xf8 0x04 0x9b
6180x1d 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
6290x12 0xf8 0x00 0x1e
6300x18 0xf8 0x00 0x1e
6310x18 0xf8 0x03 0x1e
6320x18 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
6480xd6 0xe9 0x06 0x35
6490xf6 0xe9 0x06 0x35
6500xf6 0xe8 0x01 0x35
6510x76 0xe8 0x02 0x35
6520xd6 0xe9 0x00 0x35
6530xd3 0xe9 0x00 0x81
6540x72 0xe8 0x00 0x01
6550x72 0xe9 0x00 0x01
6560x52 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
6740x54 0xe8 0x00 0x1f
6750x54 0xe8 0x00 0x8f
6760x5d 0xe8 0x20 0x2f
6770xd7 0xe8 0x4f 0x5f
6780xdc 0xe8 0x5f 0x9f
6790xd4 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
6920x35 0xf8 0x04 0x5c
6930x35 0x8c
6940xb6 0xf8 0x21 0x50
6950xb6 0xf8 0x01 0x51
6960xb7 0xf8 0x01 0xe1
6970x3f 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
7160x38 0xf8 0x01 0x10
7170x35 0xf8 0x02 0x40
7180x30 0xf8 0x32 0x60
7190x38 0xf8 0x22 0x80
7200x3d 0xf8 0x12 0x70
7210x3d 0xf8 0x02 0x70
7220x38 0xf8 0xff 0x5f
7230x35 0xf8 0x04 0x2f
7240x34 0xf8 0x04 0x1d
7250x33 0xf8 0xff 0xeb
7260x32 0xf8 0x04 0x9b
7270x3d 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
7390x15 0xf9 0x04 0x5c
7400x96 0xf9 0x20 0x50
7410x96 0xf9 0x21 0x50
7420x96 0xf9 0x01 0x51
7430x97 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
7620x18 0xf9 0x01 0x10
7630x15 0xf9 0x02 0x40
7640x10 0xf9 0x32 0x60
7650x18 0xf9 0x22 0x80
7660x1d 0xf9 0x12 0x70
7670x1d 0xf9 0x02 0x70
7680x18 0xf9 0xff 0x5f
7690x15 0xf9 0x04 0x2f
7700x14 0xf9 0x04 0x1d
7710x13 0xf9 0xff 0xeb
7720x12 0xf9 0x04 0x9b
7730x1d 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
7840x12 0xf9 0x00 0x1e
7850x18 0xf9 0x00 0x1e
7860x18 0xf9 0x03 0x1e
7870x18 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
8000x35 0xf9 0x04 0x5c
8010xb6 0xf9 0x20 0x50
8020xb6 0xf9 0x21 0x50
8030xb6 0xf9 0x01 0x51
8040xb7 0xf9 0x01 0xe1
8050x35 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
8230x38 0xf9 0x01 0x10
8240x35 0xf9 0x02 0x40
8250x30 0xf9 0x32 0x60
8260x38 0xf9 0x22 0x80
8270x3d 0xf9 0x12 0x70
8280x3d 0xf9 0x02 0x70
8290x38 0xf9 0xff 0x5f
8300x35 0xf9 0x04 0x2f
8310x34 0xf9 0x04 0x1d
8320x33 0xf9 0xff 0xeb
8330x32 0xf9 0x04 0x9b
8340x3d 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
8450x32 0xf9 0x00 0x1e
8460x38 0xf9 0x00 0x1e
8470x38 0xf9 0x03 0x1e
8480x38 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
8590x52 0xf8 0x00 0x1e
8600x56 0xf8 0x00 0x2e
8610x57 0xf8 0x03 0x3e
8620x59 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
8790x4f 0xea 0x03 0x32
8800x5f 0xea 0xc3 0x78
8810x5f 0xea 0x43 0x02
8820x4f 0xea 0x03 0x12
8830x5f 0xea 0xcc 0x32
884
8850x4f 0xea 0xc3 0x43
8860x5f 0xea 0x88 0x08
8870x5f 0xea 0x47 0x17
8880x4f 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
8980x04 0xfa 0x02 0xf3
8990x01 0xfa 0x02 0xf1
9000x14 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
9170x4f 0xea 0x13 0x32
9180x5f 0xea 0x13 0x08
9190x5f 0xea 0x53 0x02
9200x4f 0xea 0x13 0x12
9210x5f 0xea 0xdc 0x32
922
9230x4f 0xea 0xd3 0x43
9240x5f 0xea 0x98 0x08
9250x5f 0xea 0x57 0x17
9260x4f 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
9360x24 0xfa 0x02 0xf3
9370x21 0xfa 0x02 0xf1
9380x34 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
9460x21 0xee 0x91 0x57
9470x21 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
9560x44 0xec 0xf1 0x57
9570x44 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
9660x02 0xfb 0x03 0x41
9670x02 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
9830x15 0x21
9840x5f 0xf0 0x15 0x01
9850x5f 0xf0 0x15 0x08
9860x4f 0xf6 0xff 0x70
9870x4a 0xf6 0x01 0x31
9880x4a 0xf6 0x10 0x31
9890x4f 0xf0 0x7f 0x70
9900x4f 0xf0 0x7f 0x70
9910x5f 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
10010xc0 0xf2 0x07 0x03
10020xcf 0xf6 0xff 0x76
10030x08 0xbf
10040xc0 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
10120x11 0xee 0x92 0x1e
10130x11 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
10220x54 0xec 0x11 0x57
10230x54 0xfc 0x11 0x57
1024
1025
1026#------------------------------------------------------------------------------
1027# MRS
1028#------------------------------------------------------------------------------
1029# CHECK: mrs  r8, apsr
1030# CHECK: mrs  r8, spsr
1031
10320xef 0xf3 0x00 0x88
10330xff 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
10540x81 0xf3 0x00 0x88
10550x82 0xf3 0x00 0x84
10560x83 0xf3 0x00 0x88
10570x84 0xf3 0x00 0x88
10580x85 0xf3 0x00 0x8c
10590x86 0xf3 0x00 0x89
10600x87 0xf3 0x00 0x81
10610x88 0xf3 0x00 0x82
10620x89 0xf3 0x00 0x89
10630x8b 0xf3 0x00 0x89
10640x8c 0xf3 0x00 0x8e
10650x90 0xf3 0x00 0x89
10660x95 0xf3 0x00 0x8f
10670x88 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
10790x63 0x43
10800x04 0xfb 0x03 0xf3
10810x04 0xfb 0x06 0xf3
10820x08 0xbf
10830x04 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
10970x7f 0xf0 0x15 0x08
10980x6f 0xf0 0x7f 0x70
10990x7f 0xf0 0x7f 0x70
11000x06 0xbf
11010x7f 0xf0 0x0c 0x01
11020x6f 0xf0 0x0c 0x01
11030x6f 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
11190x6f 0xea 0x03 0x02
11200xda 0x43
11210x6f 0xea 0xc6 0x45
11220x6f 0xea 0x56 0x25
11230x6f 0xea 0x26 0x15
11240x6f 0xea 0xb6 0x15
11250x6f 0xea 0x36 0x05
11260x08 0xbf
11270xda 0x43
1128
1129#------------------------------------------------------------------------------
1130# NOP
1131#------------------------------------------------------------------------------
1132# CHECK: nop.w
1133
11340xaf 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
11490x65 0xf4 0x70 0x44
11500x65 0xea 0x06 0x04
11510x75 0xea 0x06 0x04
11520x65 0xea 0x46 0x14
11530x75 0xea 0x56 0x14
11540x65 0xea 0x56 0x14
11550x75 0xea 0x66 0x14
11560x65 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
11700x45 0xf4 0x70 0x44
11710x45 0xea 0x06 0x04
11720x45 0xea 0x46 0x14
11730x55 0xea 0x56 0x14
11740x45 0xea 0x56 0x14
11750x55 0xea 0x66 0x14
11760x45 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
11890xc2 0xea 0x03 0x02
11900xc2 0xea 0xc3 0x72
11910xc2 0xea 0xc3 0x32
1192
11930xc2 0xea 0xe3 0x72
11940xc2 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
12060x15 0xf8 0x04 0xfc
12070x96 0xf8 0x20 0xf0
12080x96 0xf8 0x21 0xf0
12090x96 0xf8 0x01 0xf1
12100x97 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
12220x18 0xf8 0x01 0xf0
12230x15 0xf8 0x02 0xf0
12240x10 0xf8 0x32 0xf0
12250x18 0xf8 0x22 0xf0
12260x1d 0xf8 0x12 0xf0
12270x1d 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
12380x15 0xf9 0x04 0xfc
12390x96 0xf9 0x20 0xf0
12400x96 0xf9 0x21 0xf0
12410x96 0xf9 0x01 0xf1
12420x97 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
12540x18 0xf9 0x01 0xf0
12550x15 0xf9 0x02 0xf0
12560x10 0xf9 0x32 0xf0
12570x18 0xf9 0x22 0xf0
12580x1d 0xf9 0x12 0xf0
12590x1d 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
12730x83 0xfa 0x82 0xf1
12740x92 0xfa 0x13 0xf1
12750x82 0xfa 0x13 0xf1
12760xc6 0xbf
12770x83 0xfa 0x82 0xf1
12780x92 0xfa 0x13 0xf1
12790x82 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
12910x88 0xfa 0x97 0xf6
12920x88 0xfa 0xb7 0xf6
12930x84 0xbf
12940x88 0xfa 0x97 0xf6
12950x88 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
13050xec 0xfa 0x10 0xf9
13060x08 0xbf
13070xec 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
13210x83 0xfa 0xa2 0xf1
13220xd2 0xfa 0x13 0xf1
13230xc2 0xfa 0x13 0xf1
13240xd6 0xbf
13250x83 0xfa 0xa2 0xf1
13260xd2 0xfa 0x13 0xf1
13270xc2 0xfa 0x13 0xf1
1328
1329
1330#------------------------------------------------------------------------------
1331# RBIT
1332#------------------------------------------------------------------------------
1333# CHECK: rbit r1, r2
1334# CHECK: it ne
1335# CHECK: rbitne r1, r2
1336
13370x92 0xfa 0xa2 0xf1
13380x18 0xbf
13390x92 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
13510x92 0xfa 0x82 0xf1
13520x98 0xfa 0x88 0xf2
13530x1c 0xbf
13540x11 0xba
13550x98 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
13670x92 0xfa 0x92 0xf1
13680x98 0xfa 0x98 0xf2
13690x1c 0xbf
13700x51 0xba
13710x98 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
13830x92 0xfa 0xb2 0xf1
13840x98 0xfa 0xb8 0xf2
13850x1c 0xbf
13860xd1 0xba
13870x98 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
14040x4f 0xea 0x33 0x32
14050x5f 0xea 0xf3 0x78
14060x5f 0xea 0x73 0x02
14070x4f 0xea 0x33 0x12
14080x5f 0xea 0xfc 0x32
1409
14100x4f 0xea 0xf3 0x43
14110x5f 0xea 0xb8 0x08
14120x5f 0xea 0x77 0x17
14130x4f 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
14230x64 0xfa 0x02 0xf3
14240x61 0xfa 0x02 0xf1
14250x74 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
14370x4f 0xea 0x32 0x01
14380x5f 0xea 0x32 0x01
14390xb4 0xbf
14400x4f 0xea 0x3c 0x09
14410x5f 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
14500xc5 0xf5 0x7f 0x22
14510xdc 0xf1 0x0f 0x03
14520xc1 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
14630xc4 0xeb 0x08 0x04
14640xc9 0xeb 0x08 0x04
14650xc4 0xeb 0xe8 0x01
14660xd1 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
14760x94 0xfa 0x08 0xf3
14770x18 0xbf
14780x94 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
14880x84 0xfa 0x08 0xf3
14890x18 0xbf
14900x84 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
15000xa2 0xfa 0x07 0xf9
15010x18 0xbf
15020xa5 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
15180x61 0xf1 0x04 0x00
15190x71 0xf1 0x00 0x00
15200x62 0xf1 0xff 0x01
15210x67 0xf1 0x55 0x13
15220x6c 0xf1 0xaa 0x28
15230x67 0xf1 0xa5 0x39
15240x63 0xf1 0x07 0x45
15250x62 0xf1 0xff 0x44
15260x62 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
15410x65 0xeb 0x06 0x04
15420x75 0xeb 0x06 0x04
15430x61 0xeb 0x03 0x09
15440x71 0xeb 0x03 0x09
15450x61 0xeb 0x33 0x10
15460x71 0xeb 0xc3 0x10
15470x61 0xeb 0xd3 0x70
15480x71 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
15580x45 0xf3 0x00 0x44
15590xc8 0xbf
15600x45 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
15700xa9 0xfa 0x82 0xf5
15710xd8 0xbf
15720xa9 0xfa 0x82 0xf5
1573
1574
1575#------------------------------------------------------------------------------
1576# SEV
1577#------------------------------------------------------------------------------
1578# CHECK: sev.w
1579# CHECK: it eq
1580# CHECK: seveq.w
1581
15820xaf 0xf3 0x04 0x80
15830x08 0xbf
15840xaf 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
15960x92 0xfa 0x03 0xf1
15970x82 0xfa 0x03 0xf1
15980xcc 0xbf
15990x92 0xfa 0x03 0xf1
16000x82 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
16100xa8 0xfa 0x22 0xf4
16110xc8 0xbf
16120xa8 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
16220xe8 0xfa 0x22 0xf4
16230xc8 0xbf
16240xe8 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
16360xd8 0xfa 0x22 0xf4
16370xc8 0xfa 0x22 0xf4
16380xc4 0xbf
16390xd8 0xfa 0x22 0xf4
16400xc8 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
16560x11 0xfb 0x09 0x03
16570x16 0xfb 0x14 0x15
16580x12 0xfb 0x23 0x24
16590x13 0xfb 0x38 0x48
16600xcb 0xbf
16610x11 0xfb 0x09 0x03
16620x16 0xfb 0x14 0x15
16630x12 0xfb 0x23 0x24
16640x13 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
16760x23 0xfb 0x05 0x82
16770x23 0xfb 0x15 0x82
16780x84 0xbf
16790x23 0xfb 0x05 0x82
16800x23 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
16900xc5 0xfb 0x08 0x23
16910x08 0xbf
16920xc5 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
17080xc9 0xfb 0x80 0x31
17090xc4 0xfb 0x91 0x56
17100xc3 0xfb 0xa2 0x42
17110xc8 0xfb 0xb4 0x83
17120xad 0xbf
17130xc9 0xfb 0x80 0x31
17140xc4 0xfb 0x91 0x56
17150xc3 0xfb 0xa2 0x42
17160xc8 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
17270xc5 0xfb 0xc8 0x23
17280xc5 0xfb 0xd8 0x23
17290x0c 0xbf
17300xc5 0xfb 0xc8 0x23
17310xc5 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
17430x33 0xfb 0x0a 0x82
17440x33 0xfb 0x15 0x98
17450x0c 0xbf
17460x37 0xfb 0x05 0x82
17470x33 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
17590x43 0xfb 0x05 0x82
17600x43 0xfb 0x15 0x82
17610xd4 0xbf
17620x43 0xfb 0x05 0x82
17630x43 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
17750xd5 0xfb 0xc1 0x29
17760xd2 0xfb 0xd8 0x4b
17770xac 0xbf
17780xd5 0xfb 0xc6 0x82
17790xd3 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
17910x52 0xfb 0x03 0x41
17920x53 0xfb 0x12 0x14
17930x34 0xbf
17940x52 0xfb 0x03 0x41
17950x53 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
18070x62 0xfb 0x03 0x41
18080x63 0xfb 0x12 0x14
18090x34 0xbf
18100x62 0xfb 0x03 0x41
18110x63 0xfb 0x12 0x14
1812
1813#------------------------------------------------------------------------------
1814# SSAT
1815#------------------------------------------------------------------------------
1816# CHECK: ssat r9, #30, r0, asr #2
1817
18180x20 0xf3 0x9d 0x09
1819
1820#------------------------------------------------------------------------------
1821# STR (immediate)
1822#------------------------------------------------------------------------------
1823# CHECK: str r10, [r11], #0
1824
18250x4b 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
18360x65 0xe8 0x02 0x63
18370x65 0xe8 0x00 0x85
18380x65 0xe8 0x01 0x74
18390x62 0xe9 0x00 0x01
18400x42 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
18520x44 0xe8 0x00 0x81
18530x44 0xe8 0x00 0x28
18540x4d 0xe8 0x20 0xc2
18550xc7 0xe8 0x45 0x1f
18560xcc 0xe8 0x59 0x7f
18570xc4 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
18750x25 0xf8 0x04 0x5c
18760x35 0x84
18770xa6 0xf8 0x21 0x50
18780xa6 0xf8 0x01 0x51
18790xa7 0xf8 0x01 0xe1
18800x28 0xf8 0xff 0x5f
18810x25 0xf8 0x04 0x2f
18820x24 0xf8 0x04 0x1d
18830x23 0xf8 0xff 0xeb
18840x22 0xf8 0x04 0x9b
18850x2d 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
18980x28 0xf8 0x01 0x10
18990x25 0xf8 0x02 0x40
19000x20 0xf8 0x32 0x60
19010x28 0xf8 0x22 0x80
19020x2d 0xf8 0x12 0x70
19030x2d 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
19140x22 0xf8 0x00 0x1e
19150x28 0xf8 0x00 0x1e
19160x28 0xf8 0x03 0x1e
19170x28 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
19280x42 0xf8 0x00 0x1e
19290x48 0xf8 0x00 0x1e
19300x48 0xf8 0x03 0x1e
19310x48 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
19480x0a 0xbf
19490x11 0x1f
19500xa3 0xf2 0xff 0x35
19510xa5 0xf2 0x25 0x14
19520xad 0xf5 0x80 0x62
19530xa8 0xf5 0x7f 0x42
19540xa3 0xf2 0x01 0x12
19550xa6 0xf5 0x80 0x7c
19560xa6 0xf2 0x00 0x1c
19570xb2 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
19710xa5 0xeb 0x06 0x04
19720xa5 0xeb 0x46 0x14
19730xa5 0xeb 0x56 0x14
19740xa5 0xeb 0x56 0x14
19750xa5 0xeb 0x66 0x14
19760xa5 0xeb 0x76 0x14
19770xa2 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
19880x00 0xdf
19890x0c 0xbf
19900xff 0xdf
19910x21 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
20030x43 0xfa 0x84 0xf2
20040x45 0xfa 0x86 0xf4
20050xb8 0xbf
20060x42 0xfa 0x99 0xf6
20070x41 0xfa 0xa4 0xf5
20080x48 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
20210x22 0xfa 0x87 0xf6
20220x25 0xfa 0x98 0xf3
20230x22 0xfa 0xa1 0xf3
20240x14 0xbf
20250x21 0xfa 0x84 0xf0
20260x22 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
20390x03 0xfa 0x89 0xf1
20400x08 0xfa 0x93 0xf3
20410x03 0xfa 0xb3 0xf9
20420x8c 0xbf
20430x01 0xfa 0x86 0xf6
20440x02 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
20570x75 0xb2
20580x4f 0xfa 0x99 0xf6
20590x4f 0xfa 0xb3 0xf8
20600xac 0xbf
20610x62 0xb2
20620x4f 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
20750x2f 0xfa 0x84 0xf1
20760x2f 0xfa 0x87 0xf6
20770x2f 0xfa 0xa1 0xf3
20780x2c 0xbf
20790x2f 0xfa 0x95 0xf3
20800x2f 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
20930x31 0xb2
20940x0f 0xfa 0x98 0xf3
20950x0f 0xfa 0xb3 0xf9
20960x1c 0xbf
20970x0f 0xfa 0x89 0xf3
20980x0f 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
21110x75 0xb2
21120x4f 0xfa 0x99 0xf6
21130x4f 0xfa 0xb3 0xf8
21140xac 0xbf
21150x62 0xb2
21160x4f 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
21290x2f 0xfa 0x84 0xf1
21300x2f 0xfa 0x87 0xf6
21310x2f 0xfa 0xa1 0xf3
21320x2c 0xbf
21330x2f 0xfa 0x95 0xf3
21340x2f 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
21470x31 0xb2
21480x0f 0xfa 0x98 0xf3
21490x0f 0xfa 0xb3 0xf9
21500x1c 0xbf
21510x0f 0xfa 0x89 0xf3
21520x0f 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
21650xd3 0xe8 0x08 0xf0
21660xd3 0xe8 0x18 0xf0
21670x08 0xbf
21680xd3 0xe8 0x08 0xf0
21690x28 0xbf
21700xd3 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
21840x95 0xf4 0x70 0x4f
21850x94 0xea 0x05 0x0f
21860x94 0xea 0x45 0x1f
21870x94 0xea 0x55 0x1f
21880x94 0xea 0x55 0x1f
21890x94 0xea 0x65 0x1f
21900x94 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
22040x15 0xf4 0x70 0x4f
22050x2a 0x42
22060x13 0xea 0x4c 0x1f
22070x14 0xea 0x1b 0x1f
22080x15 0xea 0x1a 0x3f
22090x16 0xea 0xa9 0x7f
22100x17 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
22220x92 0xfa 0x43 0xf1
22230x82 0xfa 0x43 0xf1
22240xcc 0xbf
22250x92 0xfa 0x43 0xf1
22260x82 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
22390xac 0xfa 0x40 0xf9
22400x08 0xbf
22410xac 0xfa 0x40 0xf9
22420xac 0xfa 0x40 0xf9
22430x08 0xbf
22440xac 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
22540xc5 0xf3 0x00 0x44
22550xc8 0xbf
22560xc5 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
22680x98 0xfa 0x62 0xf4
22690x88 0xfa 0x62 0xf4
22700xc4 0xbf
22710x98 0xfa 0x62 0xf4
22720x88 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
22840xa1 0xfa 0x65 0xf4
22850xe6 0xfa 0x66 0xf5
22860xc4 0xbf
22870xa9 0xfa 0x68 0xf6
22880xe8 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
22990xd8 0xfa 0x63 0xf5
23000xc7 0xfa 0x66 0xf1
23010xbc 0xbf
23020xd9 0xfa 0x6c 0xf4
23030xc1 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
23130xe5 0xfb 0x66 0x34
23140xb8 0xbf
23150xe5 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
23250xe6 0xfb 0x08 0x24
23260xc8 0xbf
23270xe2 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
23370xa6 0xfb 0x08 0x24
23380xc8 0xbf
23390xa2 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
23510x92 0xfa 0x53 0xf1
23520x84 0xfa 0x58 0xf3
23530xcc 0xbf
23540x97 0xfa 0x59 0xf4
23550x81 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
23670xa2 0xfa 0x53 0xf1
23680xe4 0xfa 0x58 0xf3
23690xcc 0xbf
23700xa7 0xfa 0x59 0xf4
23710xe1 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
23830xc2 0xfa 0x59 0xf8
23840xd9 0xfa 0x57 0xf1
23850xcc 0xbf
23860xc1 0xfa 0x56 0xf3
23870xd6 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
23990x79 0xfb 0x07 0xf1
24000x72 0xfb 0x09 0xc8
24010xcc 0xbf
24020x71 0xfb 0x06 0x93
24030x76 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
24140x8a 0xf3 0x01 0x08
24150x8a 0xf3 0x04 0x08
24160x8a 0xf3 0xc5 0x78
24170xaa 0xf3 0x50 0x08
2418
2419
2420#------------------------------------------------------------------------------
2421# USAT16
2422#------------------------------------------------------------------------------
2423# CHECK:  usat16	r2, #2, r7
2424# CHECK:  usat16	r3, #15, r5
2425
24260xa7 0xf3 0x02 0x02
24270xa5 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
24400xe3 0xfa 0x44 0xf2
24410x18 0xbf
24420xe1 0xfa 0x49 0xf6
24430xe3 0xfa 0x44 0xf2
24440x18 0xbf
24450xe1 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
24570xd2 0xfa 0x47 0xf4
24580xc8 0xfa 0x45 0xf1
24590x8c 0xbf
24600xd1 0xfa 0x43 0xf1
24610xc2 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
24740x53 0xfa 0x84 0xf2
24750x55 0xfa 0x86 0xf4
24760xb8 0xbf
24770x52 0xfa 0x99 0xf6
24780x51 0xfa 0xa4 0xf5
24790x58 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
24930xa8 0xbf
24940x31 0xfa 0x84 0xf0
24950x32 0xfa 0x87 0xf6
24960x35 0xfa 0x98 0xf3
24970x32 0xfa 0xa1 0xf3
24980x08 0xbf
24990x32 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
25130x13 0xfa 0x89 0xf1
25140x88 0xbf
25150x11 0xfa 0x86 0xf6
25160x18 0xfa 0x93 0xf3
25170x38 0xbf
25180x12 0xfa 0xa4 0xf2
25190x13 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
25330xa8 0xbf
25340xe2 0xb2
25350xf5 0xb2
25360x5f 0xfa 0x99 0xf6
25370x38 0xbf
25380x5f 0xfa 0xa1 0xf5
25390x5f 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
25530x3f 0xfa 0x84 0xf1
25540x3f 0xfa 0x87 0xf6
25550x28 0xbf
25560x3f 0xfa 0x95 0xf3
25570x3f 0xfa 0xa1 0xf3
25580xa8 0xbf
25590x3f 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
25730x18 0xbf
25740x1f 0xfa 0x89 0xf3
25750xb1 0xb2
25760x1f 0xfa 0x98 0xf3
25770xd8 0xbf
25780x1f 0xfa 0xa2 0xf2
25790x1f 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
25930x20 0xbf
25940x30 0xbf
25950x10 0xbf
25960xb6 0xbf
25970x20 0xbf
25980x30 0xbf
25990x10 0xbf
2600
2601