1# RUN: llvm-mc -triple=armv7-apple-darwin -mcpu=cortex-a8 -disassemble < %s | FileCheck %s
2
3#------------------------------------------------------------------------------
4# ADC (immediate)
5#------------------------------------------------------------------------------
6# CHECK: adc r1, r2, #15
7# CHECK: adc r1, r2, #240
8# CHECK: adc r1, r2, #3840
9# CHECK: adc r1, r2, #61440
10# CHECK: adc r1, r2, #983040
11# CHECK: adc r1, r2, #15728640
12# CHECK: adc r1, r2, #251658240
13# CHECK: adc r1, r2, #-268435456
14# CHECK: adc r1, r2, #-268435441
15# CHECK: adc r7, r8, #-2147483638
16# CHECK: adc r7, r8, #40, #2
17# CHECK: adcs r1, r2, #3840
18# CHECK: adcs r7, r8, #40, #2
19# CHECK: adcseq r1, r2, #3840
20# CHECK: adceq r1, r2, #3840
21
220x0f 0x10 0xa2 0xe2
230xf0 0x10 0xa2 0xe2
240x0f 0x1c 0xa2 0xe2
250x0f 0x1a 0xa2 0xe2
260x0f 0x18 0xa2 0xe2
270x0f 0x16 0xa2 0xe2
280x0f 0x14 0xa2 0xe2
290x0f 0x12 0xa2 0xe2
300xff 0x12 0xa2 0xe2
310x2a 0x71 0xa8 0xe2
320x28 0x71 0xa8 0xe2
33
340x0f 0x1c 0xb2 0xe2
350x28 0x71 0xb8 0xe2
360x0f 0x1c 0xb2 0x02
370x0f 0x1c 0xa2 0x02
38
39#------------------------------------------------------------------------------
40# ADC (register)
41# ADC (shifted register)
42#------------------------------------------------------------------------------
43# CHECK: adc r4, r5, r6
44
45# CHECK: adc r4, r5, r6, lsl #1
46# CHECK: adc r4, r5, r6, lsl #31
47# CHECK: adc r4, r5, r6, lsr #1
48# CHECK: adc r4, r5, r6, lsr #31
49# CHECK: adc r4, r5, r6, lsr #32
50# CHECK: adc r4, r5, r6, asr #1
51# CHECK: adc r4, r5, r6, asr #31
52# CHECK: adc r4, r5, r6, asr #32
53# CHECK: adc r4, r5, r6, ror #1
54# CHECK: adc r4, r5, r6, ror #31
55
56# CHECK: adc r6, r7, r8, lsl r9
57# CHECK: adc r6, r7, r8, lsr r9
58# CHECK: adc r6, r7, r8, asr r9
59# CHECK: adc r6, r7, r8, ror r9
60# CHECK: adc r4, r5, r6, rrx
61
62# CHECK: adc r5, r5, r6
63# CHECK: adc r4, r4, r5, lsl #1
64# CHECK: adc r4, r4, r5, lsl #31
65# CHECK: adc r4, r4, r5, lsr #1
66# CHECK: adc r4, r4, r5, lsr #31
67# CHECK: adc r4, r4, r5, lsr #32
68# CHECK: adc r4, r4, r5, asr #1
69# CHECK: adc r4, r4, r5, asr #31
70# CHECK: adc r4, r4, r5, asr #32
71# CHECK: adc r4, r4, r5, ror #1
72# CHECK: adc r4, r4, r5, ror #31
73# CHECK: adc r4, r4, r5, rrx
74# CHECK: adc r6, r6, r7, lsl r9
75# CHECK: adc r6, r6, r7, lsr r9
76# CHECK: adc r6, r6, r7, asr r9
77# CHECK: adc r6, r6, r7, ror r9
78# CHECK: adc r4, r4, r5, rrx
79
800x06 0x40 0xa5 0xe0
81
820x86 0x40 0xa5 0xe0
830x86 0x4f 0xa5 0xe0
840xa6 0x40 0xa5 0xe0
850xa6 0x4f 0xa5 0xe0
860x26 0x40 0xa5 0xe0
870xc6 0x40 0xa5 0xe0
880xc6 0x4f 0xa5 0xe0
890x46 0x40 0xa5 0xe0
900xe6 0x40 0xa5 0xe0
910xe6 0x4f 0xa5 0xe0
92
930x18 0x69 0xa7 0xe0
940x38 0x69 0xa7 0xe0
950x58 0x69 0xa7 0xe0
960x78 0x69 0xa7 0xe0
970x66 0x40 0xa5 0xe0
98
990x06 0x50 0xa5 0xe0
1000x85 0x40 0xa4 0xe0
1010x85 0x4f 0xa4 0xe0
1020xa5 0x40 0xa4 0xe0
1030xa5 0x4f 0xa4 0xe0
1040x25 0x40 0xa4 0xe0
1050xc5 0x40 0xa4 0xe0
1060xc5 0x4f 0xa4 0xe0
1070x45 0x40 0xa4 0xe0
1080xe5 0x40 0xa4 0xe0
1090xe5 0x4f 0xa4 0xe0
1100x65 0x40 0xa4 0xe0
1110x17 0x69 0xa6 0xe0
1120x37 0x69 0xa6 0xe0
1130x57 0x69 0xa6 0xe0
1140x77 0x69 0xa6 0xe0
1150x65 0x40 0xa4 0xe0
116
117#------------------------------------------------------------------------------
118# ADD
119#------------------------------------------------------------------------------
120# CHECK: add r4, r5, #61440
121# CHECK: add r7, r8, #-2147483638
122# CHECK: add r7, r8, #40, #2
123# CHECK: add r4, r5, r6
124# CHECK: add r4, r5, r6, lsl #5
125# CHECK: add r4, r5, r6, lsr #5
126# CHECK: add r4, r5, r6, lsr #5
127# CHECK: add r4, r5, r6, asr #5
128# CHECK: add r4, r5, r6, ror #5
129# CHECK: add r6, r7, r8, lsl r9
130# CHECK: add r6, r7, r8, lsr r9
131# CHECK: add r6, r7, r8, asr r9
132# CHECK: add r6, r7, r8, ror r9
133# CHECK: add r4, r5, r6, rrx
134
135# CHECK: add r5, r5, #61440
136# CHECK: add r4, r4, r5
137# CHECK: add r4, r4, r5, lsl #5
138# CHECK: add r4, r4, r5, lsr #5
139# CHECK: add r4, r4, r5, lsr #5
140# CHECK: add r4, r4, r5, asr #5
141# CHECK: add r4, r4, r5, ror #5
142# CHECK: add r6, r6, r7, lsl r9
143# CHECK: add r6, r6, r7, lsr r9
144# CHECK: add r6, r6, r7, asr r9
145# CHECK: add r6, r6, r7, ror r9
146# CHECK: add r4, r4, r5, rrx
147
1480x0f 0x4a 0x85 0xe2
1490x2a 0x71 0x88 0xe2
1500x28 0x71 0x88 0xe2
1510x06 0x40 0x85 0xe0
1520x86 0x42 0x85 0xe0
1530xa6 0x42 0x85 0xe0
1540xa6 0x42 0x85 0xe0
1550xc6 0x42 0x85 0xe0
1560xe6 0x42 0x85 0xe0
1570x18 0x69 0x87 0xe0
1580x38 0x69 0x87 0xe0
1590x58 0x69 0x87 0xe0
1600x78 0x69 0x87 0xe0
1610x66 0x40 0x85 0xe0
162
163
1640x0f 0x5a 0x85 0xe2
1650x05 0x40 0x84 0xe0
1660x85 0x42 0x84 0xe0
1670xa5 0x42 0x84 0xe0
1680xa5 0x42 0x84 0xe0
1690xc5 0x42 0x84 0xe0
1700xe5 0x42 0x84 0xe0
1710x17 0x69 0x86 0xe0
1720x37 0x69 0x86 0xe0
1730x57 0x69 0x86 0xe0
1740x77 0x69 0x86 0xe0
1750x65 0x40 0x84 0xe0
176
177#------------------------------------------------------------------------------
178# ADDS
179#------------------------------------------------------------------------------
180# CHECK: adds   r7, r8, #-2147483638
181# CHECK: adds   r7, r8, #40, #2
182
1830x2a 0x71 0x98 0xe2
1840x28 0x71 0x98 0xe2
185
186#------------------------------------------------------------------------------
187# ADR
188#------------------------------------------------------------------------------
189# CHECK: add	r2, pc, #3
190# CHECK: sub	r2, pc, #3
191# CHECK: sub	r1, pc, #0
192# CHECK: sub	r1, pc, #301989888
193# CHECK: add	r1, pc, #301989888
194
1950x03 0x20 0x8f 0xe2
1960x03 0x20 0x4f 0xe2
1970x00 0x10 0x4f 0xe2
1980x12 0x14 0x4f 0xe2
1990x12 0x14 0x8f 0xe2
200
201#------------------------------------------------------------------------------
202# AND
203#------------------------------------------------------------------------------
204# CHECK: and r10, r1, #15
205# CHECK: and r7, r8, #-2147483638
206# CHECK: and r7, r8, #40, #2
207# CHECK: and r10, r1, r6
208# CHECK: and r10, r1, r6, lsl #10
209# CHECK: and r10, r1, r6, lsr #10
210# CHECK: and r10, r1, r6, lsr #10
211# CHECK: and r10, r1, r6, asr #10
212# CHECK: and r10, r1, r6, ror #10
213# CHECK: and r6, r7, r8, lsl r2
214# CHECK: and r6, r7, r8, lsr r2
215# CHECK: and r6, r7, r8, asr r2
216# CHECK: and r6, r7, r8, ror r2
217# CHECK: and r10, r1, r6, rrx
218
219# CHECK: and r1, r1, #15
220# CHECK: and r10, r10, r1
221# CHECK: and r10, r10, r1, lsl #10
222# CHECK: and r10, r10, r1, lsr #10
223# CHECK: and r10, r10, r1, lsr #10
224# CHECK: and r10, r10, r1, asr #10
225# CHECK: and r10, r10, r1, ror #10
226# CHECK: and r6, r6, r7, lsl r2
227# CHECK: and r6, r6, r7, lsr r2
228# CHECK: and r6, r6, r7, asr r2
229# CHECK: and r6, r6, r7, ror r2
230# CHECK: and r10, r10, r1, rrx
231
2320x0f 0xa0 0x01 0xe2
2330x2a 0x71 0x08 0xe2
2340x28 0x71 0x08 0xe2
2350x06 0xa0 0x01 0xe0
2360x06 0xa5 0x01 0xe0
2370x26 0xa5 0x01 0xe0
2380x26 0xa5 0x01 0xe0
2390x46 0xa5 0x01 0xe0
2400x66 0xa5 0x01 0xe0
2410x18 0x62 0x07 0xe0
2420x38 0x62 0x07 0xe0
2430x58 0x62 0x07 0xe0
2440x78 0x62 0x07 0xe0
2450x66 0xa0 0x01 0xe0
246
2470x0f 0x10 0x01 0xe2
2480x01 0xa0 0x0a 0xe0
2490x01 0xa5 0x0a 0xe0
2500x21 0xa5 0x0a 0xe0
2510x21 0xa5 0x0a 0xe0
2520x41 0xa5 0x0a 0xe0
2530x61 0xa5 0x0a 0xe0
2540x17 0x62 0x06 0xe0
2550x37 0x62 0x06 0xe0
2560x57 0x62 0x06 0xe0
2570x77 0x62 0x06 0xe0
2580x61 0xa0 0x0a 0xe0
259
260#------------------------------------------------------------------------------
261# FIXME: ASR
262#------------------------------------------------------------------------------
263
264#------------------------------------------------------------------------------
265# BFC
266#------------------------------------------------------------------------------
267# CHECK: bfc r5, #3, #17
268# CHECK: bfclo r5, #3, #17
269
2700x9f 0x51 0xd3 0xe7
2710x9f 0x51 0xd3 0x37
272
273
274#------------------------------------------------------------------------------
275# BFI
276#------------------------------------------------------------------------------
277# CHECK: bfi r5, r2, #3, #17
278# CHECK: bfine r5, r2, #3, #17
279
2800x92 0x51 0xd3 0xe7
2810x92 0x51 0xd3 0x17
282
283
284#------------------------------------------------------------------------------
285# BIC
286#------------------------------------------------------------------------------
287# CHECK: bic r10, r1, #15
288# CHECK: bic r7, r8, #-2147483638
289# CHECK: bic r7, r8, #40, #2
290# CHECK: bic r10, r1, r6
291# CHECK: bic r10, r1, r6, lsl #10
292# CHECK: bic r10, r1, r6, lsr #10
293# CHECK: bic r10, r1, r6, lsr #10
294# CHECK: bic r10, r1, r6, asr #10
295# CHECK: bic r10, r1, r6, ror #10
296# CHECK: bic r6, r7, r8, lsl r2
297# CHECK: bic r6, r7, r8, lsr r2
298# CHECK: bic r6, r7, r8, asr r2
299# CHECK: bic r6, r7, r8, ror r2
300# CHECK: bic r10, r1, r6, rrx
301
302# CHECK: bic r1, r1, #15
303# CHECK: bic r10, r10, r1
304# CHECK: bic r10, r10, r1, lsl #10
305# CHECK: bic r10, r10, r1, lsr #10
306# CHECK: bic r10, r10, r1, lsr #10
307# CHECK: bic r10, r10, r1, asr #10
308# CHECK: bic r10, r10, r1, ror #10
309# CHECK: bic r6, r6, r7, lsl r2
310# CHECK: bic r6, r6, r7, lsr r2
311# CHECK: bic r6, r6, r7, asr r2
312# CHECK: bic r6, r6, r7, ror r2
313# CHECK: bic r10, r10, r1, rrx
314
3150x0f 0xa0 0xc1 0xe3
3160x2a 0x71 0xc8 0xe3
3170x28 0x71 0xc8 0xe3
3180x06 0xa0 0xc1 0xe1
3190x06 0xa5 0xc1 0xe1
3200x26 0xa5 0xc1 0xe1
3210x26 0xa5 0xc1 0xe1
3220x46 0xa5 0xc1 0xe1
3230x66 0xa5 0xc1 0xe1
3240x18 0x62 0xc7 0xe1
3250x38 0x62 0xc7 0xe1
3260x58 0x62 0xc7 0xe1
3270x78 0x62 0xc7 0xe1
3280x66 0xa0 0xc1 0xe1
329
330
3310x0f 0x10 0xc1 0xe3
3320x01 0xa0 0xca 0xe1
3330x01 0xa5 0xca 0xe1
3340x21 0xa5 0xca 0xe1
3350x21 0xa5 0xca 0xe1
3360x41 0xa5 0xca 0xe1
3370x61 0xa5 0xca 0xe1
3380x17 0x62 0xc6 0xe1
3390x37 0x62 0xc6 0xe1
3400x57 0x62 0xc6 0xe1
3410x77 0x62 0xc6 0xe1
3420x61 0xa0 0xca 0xe1
343
344#------------------------------------------------------------------------------
345# BKPT
346#------------------------------------------------------------------------------
347# CHECK: bkpt #10
348# CHECK: bkpt #65535
349
3500x7a 0x00 0x20 0xe1
3510x7f 0xff 0x2f 0xe1
352
353#------------------------------------------------------------------------------
354# BLX (register)
355#------------------------------------------------------------------------------
356# CHECK: blx r2
357# CHECK: blxne r2
358
3590x32 0xff 0x2f 0xe1
3600x32 0xff 0x2f 0x11
361
362#------------------------------------------------------------------------------
363# BLX (immediate)
364#------------------------------------------------------------------------------
365# CHECK: blx	#32424576
366# CHECK: blx	#16212288
367
3680xa0 0xb0 0x7b 0xfa
3690x50 0xd8 0x3d 0xfa
370
371#------------------------------------------------------------------------------
372# BX
373#------------------------------------------------------------------------------
374
375# CHECK: bx r2
376# CHECK: bxne r2
377
3780x12 0xff 0x2f 0xe1
3790x12 0xff 0x2f 0x11
380
381#------------------------------------------------------------------------------
382# BXJ
383#------------------------------------------------------------------------------
384
385# CHECK: bxj r2
386# CHECK: bxjne r2
387
3880x22 0xff 0x2f 0xe1
3890x22 0xff 0x2f 0x11
390
391
392#------------------------------------------------------------------------------
393# CDP/CDP2
394#------------------------------------------------------------------------------
395# CHECK: cdp  p7, #1, c1, c1, c1, #4
396# CHECK: cdp2  p7, #1, c1, c1, c1, #4
397
3980x81 0x17 0x11 0xee
3990x81 0x17 0x11 0xfe
400
401
402#------------------------------------------------------------------------------
403# CLREX
404#------------------------------------------------------------------------------
405# CHECK: clrex
406
4070x1f 0xf0 0x7f 0xf5
408
409
410#------------------------------------------------------------------------------
411# CLZ
412#------------------------------------------------------------------------------
413# CHECK: clz r1, r2
414# CHECK: clzeq r1, r2
415
4160x12 0x1f 0x6f 0xe1
4170x12 0x1f 0x6f 0x01
418
419#------------------------------------------------------------------------------
420# CMN
421#------------------------------------------------------------------------------
422# CHECK: cmn r1, #15
423# CHECK: cmn r7, #40, #2
424# CHECK: cmn r7, #-2147483638
425# CHECK: cmn r1, r6
426# CHECK: cmn r1, r6, lsl #10
427# CHECK: cmn r1, r6, lsr #10
428# CHECK: cmn sp, r6, lsr #10
429# CHECK: cmn r1, r6, asr #10
430# CHECK: cmn r1, r6, ror #10
431# CHECK: cmn r7, r8, lsl r2
432# CHECK: cmn sp, r8, lsr r2
433# CHECK: cmn r7, r8, asr r2
434# CHECK: cmn r7, r8, ror r2
435# CHECK: cmn r1, r6, rrx
436
4370x0f 0x00 0x71 0xe3
4380x28 0x01 0x77 0xe3
4390x2a 0x01 0x77 0xe3
4400x06 0x00 0x71 0xe1
4410x06 0x05 0x71 0xe1
4420x26 0x05 0x71 0xe1
4430x26 0x05 0x7d 0xe1
4440x46 0x05 0x71 0xe1
4450x66 0x05 0x71 0xe1
4460x18 0x02 0x77 0xe1
4470x38 0x02 0x7d 0xe1
4480x58 0x02 0x77 0xe1
4490x78 0x02 0x77 0xe1
4500x66 0x00 0x71 0xe1
451
452#------------------------------------------------------------------------------
453# CMP
454#------------------------------------------------------------------------------
455# CHECK: cmp r1, #15
456# CHECK: cmp r7, #40, #2
457# CHECK: cmp r7, #-2147483638
458# CHECK: cmp r1, r6
459# CHECK: cmp r1, r6, lsl #10
460# CHECK: cmp r1, r6, lsr #10
461# CHECK: cmp sp, r6, lsr #10
462# CHECK: cmp r1, r6, asr #10
463# CHECK: cmp r1, r6, ror #10
464# CHECK: cmp r7, r8, lsl r2
465# CHECK: cmp sp, r8, lsr r2
466# CHECK: cmp r7, r8, asr r2
467# CHECK: cmp r7, r8, ror r2
468# CHECK: cmp r1, r6, rrx
469
4700x0f 0x00 0x51 0xe3
4710x28 0x01 0x57 0xe3
4720x2a 0x01 0x57 0xe3
4730x06 0x00 0x51 0xe1
4740x06 0x05 0x51 0xe1
4750x26 0x05 0x51 0xe1
4760x26 0x05 0x5d 0xe1
4770x46 0x05 0x51 0xe1
4780x66 0x05 0x51 0xe1
4790x18 0x02 0x57 0xe1
4800x38 0x02 0x5d 0xe1
4810x58 0x02 0x57 0xe1
4820x78 0x02 0x57 0xe1
4830x66 0x00 0x51 0xe1
484
485
486#------------------------------------------------------------------------------
487# CPS
488#------------------------------------------------------------------------------
489# CHECK: cpsie  aif
490# CHECK: cps  #15
491# CHECK: cpsid  if, #10
492# CHECK: cpsid  af, #17
493# CHECK: cpsie  f, #26
494
4950xc0 0x01 0x08 0xf1
4960x0f 0x00 0x02 0xf1
4970xca 0x00 0x0e 0xf1
4980x51 0x01 0x0e 0xf1
4990x5a 0x00 0x0a 0xf1
500
501
502#------------------------------------------------------------------------------
503# DBG
504#------------------------------------------------------------------------------
505# CHECK: dbg #0
506# CHECK: dbg #5
507# CHECK: dbg #15
508
5090xf0 0xf0 0x20 0xe3
5100xf5 0xf0 0x20 0xe3
5110xff 0xf0 0x20 0xe3
512
513
514#------------------------------------------------------------------------------
515# DMB
516#------------------------------------------------------------------------------
517
518# CHECK: dmb #0x0
519# CHECK: dmb #0x1
520# CHECK: dmb oshst
521# CHECK: dmb osh
522# CHECK: dmb #0x4
523# CHECK: dmb #0x5
524# CHECK: dmb nshst
525# CHECK: dmb nsh
526# CHECK: dmb #0x8
527# CHECK: dmb #0x9
528# CHECK: dmb ishst
529# CHECK: dmb ish
530# CHECK: dmb #0xc
531# CHECK: dmb #0xd
532# CHECK: dmb st
533# CHECK: dmb sy
534
5350x50 0xf0 0x7f 0xf5
5360x51 0xf0 0x7f 0xf5
5370x52 0xf0 0x7f 0xf5
5380x53 0xf0 0x7f 0xf5
5390x54 0xf0 0x7f 0xf5
5400x55 0xf0 0x7f 0xf5
5410x56 0xf0 0x7f 0xf5
5420x57 0xf0 0x7f 0xf5
5430x58 0xf0 0x7f 0xf5
5440x59 0xf0 0x7f 0xf5
5450x5a 0xf0 0x7f 0xf5
5460x5b 0xf0 0x7f 0xf5
5470x5c 0xf0 0x7f 0xf5
5480x5d 0xf0 0x7f 0xf5
5490x5e 0xf0 0x7f 0xf5
5500x5f 0xf0 0x7f 0xf5
551
552#------------------------------------------------------------------------------
553# DSB
554#------------------------------------------------------------------------------
555
556# CHECK: dsb	#0x0
557# CHECK: dsb	#0x1
558# CHECK: dsb	oshst
559# CHECK: dsb	osh
560# CHECK: dsb	#0x4
561# CHECK: dsb	#0x5
562# CHECK: dsb	nshst
563# CHECK: dsb	nsh
564# CHECK: dsb	#0x8
565# CHECK: dsb	#0x9
566# CHECK: dsb	ishst
567# CHECK: dsb	ish
568# CHECK: dsb	#0xc
569# CHECK: dsb	#0xd
570# CHECK: dsb	st
571# CHECK: dsb	sy
572
5730x40 0xf0 0x7f 0xf5
5740x41 0xf0 0x7f 0xf5
5750x42 0xf0 0x7f 0xf5
5760x43 0xf0 0x7f 0xf5
5770x44 0xf0 0x7f 0xf5
5780x45 0xf0 0x7f 0xf5
5790x46 0xf0 0x7f 0xf5
5800x47 0xf0 0x7f 0xf5
5810x48 0xf0 0x7f 0xf5
5820x49 0xf0 0x7f 0xf5
5830x4a 0xf0 0x7f 0xf5
5840x4b 0xf0 0x7f 0xf5
5850x4c 0xf0 0x7f 0xf5
5860x4d 0xf0 0x7f 0xf5
5870x4e 0xf0 0x7f 0xf5
5880x4f 0xf0 0x7f 0xf5
589
590#------------------------------------------------------------------------------
591# EOR
592#------------------------------------------------------------------------------
593# CHECK: eor r4, r5, #61440
594# CHECK: eor r7, r8, #-2147483638
595# CHECK: eor r7, r8, #40, #2
596# CHECK: eor r4, r5, r6
597# CHECK: eor r4, r5, r6, lsl #5
598# CHECK: eor r4, r5, r6, lsr #5
599# CHECK: eor r4, r5, r6, lsr #5
600# CHECK: eor r4, r5, r6, asr #5
601# CHECK: eor r4, r5, r6, ror #5
602# CHECK: eor r6, r7, r8, lsl r9
603# CHECK: eor r6, r7, r8, lsr r9
604# CHECK: eor r6, r7, r8, asr r9
605# CHECK: eor r6, r7, r8, ror r9
606# CHECK: eor r4, r5, r6, rrx
607
608# CHECK: eor r5, r5, #61440
609# CHECK: eor r4, r4, r5
610# CHECK: eor r4, r4, r5, lsl #5
611# CHECK: eor r4, r4, r5, lsr #5
612# CHECK: eor r4, r4, r5, lsr #5
613# CHECK: eor r4, r4, r5, asr #5
614# CHECK: eor r4, r4, r5, ror #5
615# CHECK: eor r6, r6, r7, lsl r9
616# CHECK: eor r6, r6, r7, lsr r9
617# CHECK: eor r6, r6, r7, asr r9
618# CHECK: eor r6, r6, r7, ror r9
619# CHECK: eor r4, r4, r5, rrx
620
6210x0f 0x4a 0x25 0xe2
6220x2a 0x71 0x28 0xe2
6230x28 0x71 0x28 0xe2
6240x06 0x40 0x25 0xe0
6250x86 0x42 0x25 0xe0
6260xa6 0x42 0x25 0xe0
6270xa6 0x42 0x25 0xe0
6280xc6 0x42 0x25 0xe0
6290xe6 0x42 0x25 0xe0
6300x18 0x69 0x27 0xe0
6310x38 0x69 0x27 0xe0
6320x58 0x69 0x27 0xe0
6330x78 0x69 0x27 0xe0
6340x66 0x40 0x25 0xe0
635
636
6370x0f 0x5a 0x25 0xe2
6380x05 0x40 0x24 0xe0
6390x85 0x42 0x24 0xe0
6400xa5 0x42 0x24 0xe0
6410xa5 0x42 0x24 0xe0
6420xc5 0x42 0x24 0xe0
6430xe5 0x42 0x24 0xe0
6440x17 0x69 0x26 0xe0
6450x37 0x69 0x26 0xe0
6460x57 0x69 0x26 0xe0
6470x77 0x69 0x26 0xe0
6480x65 0x40 0x24 0xe0
649
650
651#------------------------------------------------------------------------------
652# ISB
653#------------------------------------------------------------------------------
654# CHECK: isb sy
655# CHECK: isb #0xa
656
6570x6f 0xf0 0x7f 0xf5
6580x6a 0xf0 0x7f 0xf5
659
660
661
662#------------------------------------------------------------------------------
663# LDM*
664#------------------------------------------------------------------------------
665# CHECK: ldm       r2, {r1, r3, r4, r5, r6, sp}
666# CHECK: ldmib     r2, {r1, r3, r4, r5, r6, sp}
667# CHECK: ldmda     r2, {r1, r3, r4, r5, r6, sp}
668# CHECK: ldmdb     r2, {r1, r3, r4, r5, r6, sp}
669
670
671# CHECK: ldm       r2!, {r1, r3, r4, r5, r6, sp}
672# CHECK: ldmib     r2!, {r1, r3, r4, r5, r6, sp}
673# CHECK: ldmda     r2!, {r1, r3, r4, r5, r6, sp}
674# CHECK: ldmdb     r2!, {r1, r3, r4, r5, r6, sp}
675
6760x7a 0x20 0x92 0xe8
6770x7a 0x20 0x92 0xe9
6780x7a 0x20 0x12 0xe8
6790x7a 0x20 0x12 0xe9
680
6810x7a 0x20 0xb2 0xe8
6820x7a 0x20 0xb2 0xe9
6830x7a 0x20 0x32 0xe8
6840x7a 0x20 0x32 0xe9
685
686
687#------------------------------------------------------------------------------
688# LDREX/LDREXB/LDREXH/LDREXD
689#------------------------------------------------------------------------------
690# CHECK: ldrexb  r3, [r4]
691# CHECK: ldrexh  r2, [r5]
692# CHECK: ldrex  r1, [r7]
693# CHECK: ldrexd  r6, r7, [r8]
694
6950x9f 0x3f 0xd4 0xe1
6960x9f 0x2f 0xf5 0xe1
6970x9f 0x1f 0x97 0xe1
6980x9f 0x6f 0xb8 0xe1
699
700
701#------------------------------------------------------------------------------
702# FIXME: LSL
703#------------------------------------------------------------------------------
704#------------------------------------------------------------------------------
705# FIXME: LSR
706#------------------------------------------------------------------------------
707
708#------------------------------------------------------------------------------
709# MCR/MCR2
710#------------------------------------------------------------------------------
711# CHECK: mcr  p7, #1, r5, c1, c1, #4
712# CHECK: mcr2  p7, #1, r5, c1, c1, #4
713
7140x91 0x57 0x21 0xee
7150x91 0x57 0x21 0xfe
716
717#------------------------------------------------------------------------------
718# MCRR/MCRR2
719#------------------------------------------------------------------------------
720# CHECK: mcrr  p7, #15, r5, r4, c1
721# CHECK: mcrr2  p7, #15, r5, r4, c1
722
7230xf1 0x57 0x44 0xec
7240xf1 0x57 0x44 0xfc
725
726
727#------------------------------------------------------------------------------
728# MLA
729#------------------------------------------------------------------------------
730# CHECK: mla  r1, r2, r3, r4
731# CHECK: mlas r1, r2, r3, r4
732# CHECK: mlane  r1, r2, r3, r4
733# CHECK: mlasne r1, r2, r3, r4
734
7350x92 0x43 0x21 0xe0
7360x92 0x43 0x31 0xe0
7370x92 0x43 0x21 0x10
7380x92 0x43 0x31 0x10
739
740#------------------------------------------------------------------------------
741# MLS
742#------------------------------------------------------------------------------
743# CHECK: mls  r2, r5, r6, r3
744# CHECK: mlsne  r2, r5, r6, r3
745
7460x95 0x36 0x62 0xe0
7470x95 0x36 0x62 0x10
748
749#------------------------------------------------------------------------------
750# MOV (immediate)
751#------------------------------------------------------------------------------
752# CHECK: mov r3, #7
753# CHECK: mov r4, #4080
754# CHECK: mov r5, #16711680
755# CHECK: mov sp, #35
756# CHECK: mov r9, #240, #30
757# CHECK: mov r7, #-2147483638
758# CHECK: mov pc, #2147483658
759# CHECK: movw r6, #65535
760# CHECK: movw r9, #65535
761# CHECK: movw sp, #1193
762# CHECK: movs r3, #7
763# CHECK: movs r11, #99
764# CHECK: movs r11, #240, #30
765# CHECK: moveq r4, #4080
766# CHECK: movseq r5, #16711680
767
7680x07 0x30 0xa0 0xe3
7690xff 0x4e 0xa0 0xe3
7700xff 0x58 0xa0 0xe3
7710x23 0xd0 0xa0 0xe3
7720xf0 0x9f 0xa0 0xe3
7730x2a 0x71 0xa0 0xe3
7740x2a 0xf1 0xa0 0xe3
7750xff 0x6f 0x0f 0xe3
7760xff 0x9f 0x0f 0xe3
7770xa9 0xd4 0x00 0xe3
7780x07 0x30 0xb0 0xe3
7790x63 0xb0 0xb0 0xe3
7800xf0 0xbf 0xb0 0xe3
7810xff 0x4e 0xa0 0x03
7820xff 0x58 0xb0 0x03
783
784#------------------------------------------------------------------------------
785# MOV (register)
786#------------------------------------------------------------------------------
787# CHECK: mov r2, r3
788# CHECK: movs r2, r3
789# CHECK: moveq r2, r3
790# CHECK: movseq r2, r3
791
7920x03 0x20 0xa0 0xe1
7930x03 0x20 0xb0 0xe1
7940x03 0x20 0xa0 0x01
7950x03 0x20 0xb0 0x01
796
797#------------------------------------------------------------------------------
798# MOVT
799#------------------------------------------------------------------------------
800# CHECK: movt r3, #7
801# CHECK: movt r6, #65535
802# CHECK: movt sp, #3397
803# CHECK: movteq r4, #4080
804
8050x07 0x30 0x40 0xe3
8060xff 0x6f 0x4f 0xe3
8070x45 0xdd 0x40 0xe3
8080xf0 0x4f 0x40 0x03
809
810
811#------------------------------------------------------------------------------
812# MRC/MRC2
813#------------------------------------------------------------------------------
814# CHECK: mrc  p14, #0, r1, c1, c2, #4
815# CHECK: mrc  p15, #7, apsr_nzcv, c15, c6, #6
816# CHECK: mrc2  p14, #0, r1, c1, c2, #4
817# CHECK: mrc2  p9, #7, apsr_nzcv, c15, c0, #1
818
8190x92 0x1e 0x11 0xee
8200xd6 0xff 0xff 0xee
8210x92 0x1e 0x11 0xfe
8220x30 0xf9 0xff 0xfe
823
824#------------------------------------------------------------------------------
825# MRRC/MRRC2
826#------------------------------------------------------------------------------
827# CHECK: mrrc  p7, #1, r5, r4, c1
828# CHECK: mrrc2  p7, #1, r5, r4, c1
829
8300x11 0x57 0x54 0xec
8310x11 0x57 0x54 0xfc
832
833
834#------------------------------------------------------------------------------
835# MRS
836#------------------------------------------------------------------------------
837# CHECK: mrs  r8, apsr
838# CHECK: mrs  r8, spsr
8390x00 0x80 0x0f 0xe1
8400x00 0x80 0x4f 0xe1
841
842
843
844#------------------------------------------------------------------------------
845# MSR
846#------------------------------------------------------------------------------
847
848# CHECK: msr  CPSR_fc, #5
849# CHECK: msr  APSR_g, #5
850# CHECK: msr  APSR_nzcvq, #5
851# CHECK: msr  APSR_nzcvq, #5
852# CHECK: msr  APSR_nzcvqg, #5
853# CHECK: msr  CPSR_fc, #5
854# CHECK: msr  CPSR_c, #5
855# CHECK: msr  CPSR_x, #5
856# CHECK: msr  CPSR_fc, #5
857# CHECK: msr  CPSR_fc, #5
858# CHECK: msr  CPSR_fsx, #5
859# CHECK: msr  SPSR_fc, #5
860# CHECK: msr  SPSR_fsxc, #5
861# CHECK: msr  CPSR_fsxc, #5
862# CHECK: msr  APSR_nzcvq, #2147483658
863# CHECK: msr  SPSR_fsxc, #40, #2
864
8650x05 0xf0 0x29 0xe3
8660x05 0xf0 0x24 0xe3
8670x05 0xf0 0x28 0xe3
8680x05 0xf0 0x28 0xe3
8690x05 0xf0 0x2c 0xe3
8700x05 0xf0 0x29 0xe3
8710x05 0xf0 0x21 0xe3
8720x05 0xf0 0x22 0xe3
8730x05 0xf0 0x29 0xe3
8740x05 0xf0 0x29 0xe3
8750x05 0xf0 0x2e 0xe3
8760x05 0xf0 0x69 0xe3
8770x05 0xf0 0x6f 0xe3
8780x05 0xf0 0x2f 0xe3
8790x2a 0xf1 0x28 0xe3
8800x28 0xf1 0x6f 0xe3
881
882# CHECK: msr  CPSR_fc, r0
883# CHECK: msr  APSR_g, r0
884# CHECK: msr  APSR_nzcvq, r0
885# CHECK: msr  APSR_nzcvq, r0
886# CHECK: msr  APSR_nzcvqg, r0
887# CHECK: msr  CPSR_fc, r0
888# CHECK: msr  CPSR_c, r0
889# CHECK: msr  CPSR_x, r0
890# CHECK: msr  CPSR_fc, r0
891# CHECK: msr  CPSR_fc, r0
892# CHECK: msr  CPSR_fsx, r0
893# CHECK: msr  SPSR_fc, r0
894# CHECK: msr  SPSR_fsxc, r0
895# CHECK: msr  CPSR_fsxc, r0
896
8970x00 0xf0 0x29 0xe1
8980x00 0xf0 0x24 0xe1
8990x00 0xf0 0x28 0xe1
9000x00 0xf0 0x28 0xe1
9010x00 0xf0 0x2c 0xe1
9020x00 0xf0 0x29 0xe1
9030x00 0xf0 0x21 0xe1
9040x00 0xf0 0x22 0xe1
9050x00 0xf0 0x29 0xe1
9060x00 0xf0 0x29 0xe1
9070x00 0xf0 0x2e 0xe1
9080x00 0xf0 0x69 0xe1
9090x00 0xf0 0x6f 0xe1
9100x00 0xf0 0x2f 0xe1
911
912#------------------------------------------------------------------------------
913# MUL
914#------------------------------------------------------------------------------
915
916# CHECK: mul r5, r6, r7
917# CHECK: muls r5, r6, r7
918# CHECK: mulgt r5, r6, r7
919# CHECK: mulsle r5, r6, r7
920
9210x96 0x07 0x05 0xe0
9220x96 0x07 0x15 0xe0
9230x96 0x07 0x05 0xc0
9240x96 0x07 0x15 0xd0
925
926
927#------------------------------------------------------------------------------
928# MVN (immediate)
929#------------------------------------------------------------------------------
930# CHECK: mvn r3, #7
931# CHECK: mvn r4, #4080
932# CHECK: mvn r5, #16711680
933# CHECK: mvn r7, #40, #2
934# CHECK: mvn r7, #-2147483638
935# CHECK: mvns r3, #7
936# CHECK: mvns r11, #240, #30
937# CHECK: mvns r11, #-2147483638
938# CHECK: mvneq r4, #4080
939# CHECK: mvnseq r5, #16711680
940
9410x07 0x30 0xe0 0xe3
9420xff 0x4e 0xe0 0xe3
9430xff 0x58 0xe0 0xe3
9440x28 0x71 0xe0 0xe3
9450x2a 0x71 0xe0 0xe3
9460x07 0x30 0xf0 0xe3
9470xf0 0xbf 0xf0 0xe3
9480x2a 0xb1 0xf0 0xe3
9490xff 0x4e 0xe0 0x03
9500xff 0x58 0xf0 0x03
951
952
953#------------------------------------------------------------------------------
954# MVN (register)
955#------------------------------------------------------------------------------
956# CHECK: mvn r2, r3
957# CHECK: mvns r2, r3
958# CHECK: mvn r5, r6, lsl #19
959# CHECK: mvn r5, r6, lsr #9
960# CHECK: mvn r5, r6, asr #4
961# CHECK: mvn r5, r6, ror #6
962# CHECK: mvn r5, r6, rrx
963# CHECK: mvneq r2, r3
964# CHECK: mvnseq r2, r3, lsl #10
965
9660x03 0x20 0xe0 0xe1
9670x03 0x20 0xf0 0xe1
9680x86 0x59 0xe0 0xe1
9690xa6 0x54 0xe0 0xe1
9700x46 0x52 0xe0 0xe1
9710x66 0x53 0xe0 0xe1
9720x66 0x50 0xe0 0xe1
9730x03 0x20 0xe0 0x01
9740x03 0x25 0xf0 0x01
975
976
977#------------------------------------------------------------------------------
978# MVN (shifted register)
979#------------------------------------------------------------------------------
980# CHECK: mvn r5, r6, lsl r7
981# CHECK: mvns r5, r6, lsr r7
982# CHECK: mvngt r5, r6, asr r7
983# CHECK: mvnslt r5, r6, ror r7
984
9850x16 0x57 0xe0 0xe1
9860x36 0x57 0xf0 0xe1
9870x56 0x57 0xe0 0xc1
9880x76 0x57 0xf0 0xb1
989
990#------------------------------------------------------------------------------
991# NOP
992#------------------------------------------------------------------------------
993# CHECK: nop
994# CHECK: nopgt
995
9960x00 0xf0 0x20 0xe3
9970x00 0xf0 0x20 0xc3
998
999
1000#------------------------------------------------------------------------------
1001# ORR
1002#------------------------------------------------------------------------------
1003# CHECK: orr r4, r5, #61440
1004# CHECK: orr r7, r8, #-2147483638
1005# CHECK: orr r7, r8, #40, #2
1006# CHECK: orr r4, r5, r6
1007# CHECK: orr r4, r5, r6, lsl #5
1008# CHECK: orr r4, r5, r6, lsr #5
1009# CHECK: orr r4, r5, r6, lsr #5
1010# CHECK: orr r4, r5, r6, asr #5
1011# CHECK: orr r4, r5, r6, ror #5
1012# CHECK: orr r6, r7, r8, lsl r9
1013# CHECK: orr r6, r7, r8, lsr r9
1014# CHECK: orr r6, r7, r8, asr r9
1015# CHECK: orr r6, r7, r8, ror r9
1016# CHECK: orr r4, r5, r6, rrx
1017
1018# CHECK: orr r5, r5, #61440
1019# CHECK: orr r4, r4, r5
1020# CHECK: orr r4, r4, r5, lsl #5
1021# CHECK: orr r4, r4, r5, lsr #5
1022# CHECK: orr r4, r4, r5, lsr #5
1023# CHECK: orr r4, r4, r5, asr #5
1024# CHECK: orr r4, r4, r5, ror #5
1025# CHECK: orr r6, r6, r7, lsl r9
1026# CHECK: orr r6, r6, r7, lsr r9
1027# CHECK: orr r6, r6, r7, asr r9
1028# CHECK: orr r6, r6, r7, ror r9
1029# CHECK: orr r4, r4, r5, rrx
1030
10310x0f 0x4a 0x85 0xe3
10320x2a 0x71 0x88 0xe3
10330x28 0x71 0x88 0xe3
10340x06 0x40 0x85 0xe1
10350x86 0x42 0x85 0xe1
10360xa6 0x42 0x85 0xe1
10370xa6 0x42 0x85 0xe1
10380xc6 0x42 0x85 0xe1
10390xe6 0x42 0x85 0xe1
10400x18 0x69 0x87 0xe1
10410x38 0x69 0x87 0xe1
10420x58 0x69 0x87 0xe1
10430x78 0x69 0x87 0xe1
10440x66 0x40 0x85 0xe1
1045
10460x0f 0x5a 0x85 0xe3
10470x05 0x40 0x84 0xe1
10480x85 0x42 0x84 0xe1
10490xa5 0x42 0x84 0xe1
10500xa5 0x42 0x84 0xe1
10510xc5 0x42 0x84 0xe1
10520xe5 0x42 0x84 0xe1
10530x17 0x69 0x86 0xe1
10540x37 0x69 0x86 0xe1
10550x57 0x69 0x86 0xe1
10560x77 0x69 0x86 0xe1
10570x65 0x40 0x84 0xe1
1058
1059# CHECK: orrseq r4, r5, #61440
1060# CHECK: orrne r4, r5, r6
1061# CHECK: orrseq r4, r5, r6, lsl #5
1062# CHECK: orrlo r6, r7, r8, ror r9
1063# CHECK: orrshi r4, r5, r6, rrx
1064# CHECK: orrhs r5, r5, #61440
1065# CHECK: orrseq r4, r4, r5
1066# CHECK: orrne r6, r6, r7, asr r9
1067# CHECK: orrslt r6, r6, r7, ror r9
1068# CHECK: orrsgt r4, r4, r5, rrx
1069
10700x0f 0x4a 0x95 0x03
10710x06 0x40 0x85 0x11
10720x86 0x42 0x95 0x01
10730x78 0x69 0x87 0x31
10740x66 0x40 0x95 0x81
10750x0f 0x5a 0x85 0x23
10760x05 0x40 0x94 0x01
10770x57 0x69 0x86 0x11
10780x77 0x69 0x96 0xb1
10790x65 0x40 0x94 0xc1
1080
1081#------------------------------------------------------------------------------
1082# PKH
1083#------------------------------------------------------------------------------
1084# CHECK: pkhbt r2, r2, r3
1085# CHECK: pkhbt r2, r2, r3, lsl #31
1086# CHECK: pkhbt r2, r2, r3
1087# CHECK: pkhbt r2, r2, r3, lsl #15
1088
1089# CHECK: pkhbt r2, r2, r3
1090# CHECK: pkhtb r2, r2, r3, asr #31
1091# CHECK: pkhtb r2, r2, r3, asr #15
1092
10930x13 0x20 0x82 0xe6
10940x93 0x2f 0x82 0xe6
10950x13 0x20 0x82 0xe6
10960x93 0x27 0x82 0xe6
1097
10980x13 0x20 0x82 0xe6
10990xd3 0x2f 0x82 0xe6
11000xd3 0x27 0x82 0xe6
1101
1102#------------------------------------------------------------------------------
1103# FIXME: PLD
1104#------------------------------------------------------------------------------
1105#------------------------------------------------------------------------------
1106# FIXME: PLI
1107#------------------------------------------------------------------------------
1108
1109
1110#------------------------------------------------------------------------------
1111# POP
1112#------------------------------------------------------------------------------
1113# CHECK: ldr r7, [sp], #4
1114# CHECK: pop {r7, r8, r9, r10}
1115
11160x04 0x70 0x9d 0xe4
11170x80 0x07 0xbd 0xe8
1118
1119
1120#------------------------------------------------------------------------------
1121# PUSH
1122#------------------------------------------------------------------------------
1123# CHECK: str r7, [sp, #-4]!
1124# CHECK: push {r7, r8, r9, r10}
1125
11260x04 0x70 0x2d 0xe5
11270x80 0x07 0x2d 0xe9
1128
1129
1130#------------------------------------------------------------------------------
1131# QADD/QADD16/QADD8
1132#------------------------------------------------------------------------------
1133# CHECK: qadd r1, r2, r3
1134# CHECK: qaddne r1, r2, r3
1135# CHECK: qadd16 r1, r2, r3
1136# CHECK: qadd16gt r1, r2, r3
1137# CHECK: qadd8 r1, r2, r3
1138# CHECK: qadd8le r1, r2, r3
1139
11400x52 0x10 0x03 0xe1
11410x52 0x10 0x03 0x11
11420x13 0x1f 0x22 0xe6
11430x13 0x1f 0x22 0xc6
11440x93 0x1f 0x22 0xe6
11450x93 0x1f 0x22 0xd6
1146
1147
1148#------------------------------------------------------------------------------
1149# QDADD/QDSUB
1150#------------------------------------------------------------------------------
1151# CHECK: qdadd r6, r7, r8
1152# CHECK: qdaddhi r6, r7, r8
1153# CHECK: qdsub r6, r7, r8
1154# CHECK: qdsubhi r6, r7, r8
1155
11560x57 0x60 0x48 0xe1
11570x57 0x60 0x48 0x81
11580x57 0x60 0x68 0xe1
11590x57 0x60 0x68 0x81
1160
1161
1162#------------------------------------------------------------------------------
1163# QSAX
1164#------------------------------------------------------------------------------
1165# CHECK: qsax r9, r12, r0
1166# CHECK: qsaxeq r9, r12, r0
1167
11680x50 0x9f 0x2c 0xe6
11690x50 0x9f 0x2c 0x06
1170
1171
1172#------------------------------------------------------------------------------
1173# QSUB/QSUB16/QSUB8
1174#------------------------------------------------------------------------------
1175# CHECK: qsub r1, r2, r3
1176# CHECK: qsubne r1, r2, r3
1177# CHECK: qsub16 r1, r2, r3
1178# CHECK: qsub16gt r1, r2, r3
1179# CHECK: qsub8 r1, r2, r3
1180# CHECK: qsub8le r1, r2, r3
1181
11820x52 0x10 0x23 0xe1
11830x52 0x10 0x23 0x11
11840x73 0x1f 0x22 0xe6
11850x73 0x1f 0x22 0xc6
11860xf3 0x1f 0x22 0xe6
11870xf3 0x1f 0x22 0xd6
1188
1189
1190#------------------------------------------------------------------------------
1191# RBIT
1192#------------------------------------------------------------------------------
1193# CHECK: rbit r1, r2
1194# CHECK: rbitne r1, r2
1195
11960x32 0x1f 0xff 0xe6
11970x32 0x1f 0xff 0x16
1198
1199
1200#------------------------------------------------------------------------------
1201# REV/REV16/REVSH
1202#------------------------------------------------------------------------------
1203# CHECK: rev r1, r9
1204# CHECK: revne r1, r5
1205# CHECK: rev16 r8, r3
1206# CHECK: rev16ne r12, r4
1207# CHECK: revsh r4, r9
1208# CHECK: revshne r9, r1
1209
12100x39 0x1f 0xbf 0xe6
12110x35 0x1f 0xbf 0x16
12120xb3 0x8f 0xbf 0xe6
12130xb4 0xcf 0xbf 0x16
12140xb9 0x4f 0xff 0xe6
12150xb1 0x9f 0xff 0x16
1216
1217
1218#------------------------------------------------------------------------------
1219# RFE
1220#------------------------------------------------------------------------------
1221# CHECK: rfeda r2
1222# CHECK: rfedb r3
1223# CHECK: rfeia r5
1224# CHECK: rfeib r6
1225
1226# CHECK: rfeda r4!
1227# CHECK: rfedb r7!
1228# CHECK: rfeia r9!
1229# CHECK: rfeib r8!
1230
1231# CHECK: rfeda r2
1232# CHECK: rfedb r3
1233# CHECK: rfeia r5
1234# CHECK: rfeib r6
1235
1236# CHECK: rfeda r4!
1237# CHECK: rfedb r7!
1238# CHECK: rfeia r9!
1239# CHECK: rfeib r8!
1240
1241# CHECK: rfeia r1
1242# CHECK: rfeia r1!
1243
12440x00 0x0a 0x12 0xf8
12450x00 0x0a 0x13 0xf9
12460x00 0x0a 0x95 0xf8
12470x00 0x0a 0x96 0xf9
1248
12490x00 0x0a 0x34 0xf8
12500x00 0x0a 0x37 0xf9
12510x00 0x0a 0xb9 0xf8
12520x00 0x0a 0xb8 0xf9
1253
12540x00 0x0a 0x12 0xf8
12550x00 0x0a 0x13 0xf9
12560x00 0x0a 0x95 0xf8
12570x00 0x0a 0x96 0xf9
1258
12590x00 0x0a 0x34 0xf8
12600x00 0x0a 0x37 0xf9
12610x00 0x0a 0xb9 0xf8
12620x00 0x0a 0xb8 0xf9
1263
12640x00 0x0a 0x91 0xf8
12650x00 0x0a 0xb1 0xf8
1266
1267
1268#------------------------------------------------------------------------------
1269# RSB
1270#------------------------------------------------------------------------------
1271# CHECK: rsb r4, r5, #61440
1272# CHECK: rsb r7, r8, #-2147483638
1273# CHECK: rsb r7, r8, #40, #2
1274# CHECK: rsb r4, r5, r6
1275# CHECK: rsb r4, r5, r6, lsl #5
1276# CHECK: rsblo r4, r5, r6, lsr #5
1277# CHECK: rsb r4, r5, r6, lsr #5
1278# CHECK: rsb r4, r5, r6, asr #5
1279# CHECK: rsb r4, r5, r6, ror #5
1280# CHECK: rsb r6, r7, r8, lsl r9
1281# CHECK: rsb r6, r7, r8, lsr r9
1282# CHECK: rsb r6, r7, r8, asr r9
1283# CHECK: rsble r6, r7, r8, ror r9
1284# CHECK: rsb r4, r5, r6, rrx
1285
1286# CHECK: rsb r5, r5, #61440
1287# CHECK: rsb r4, r4, r5
1288# CHECK: rsb r4, r4, r5, lsl #5
1289# CHECK: rsb r4, r4, r5, lsr #5
1290# CHECK: rsbne r4, r4, r5, lsr #5
1291# CHECK: rsb r4, r4, r5, asr #5
1292# CHECK: rsb r4, r4, r5, ror #5
1293# CHECK: rsbgt r6, r6, r7, lsl r9
1294# CHECK: rsb r6, r6, r7, lsr r9
1295# CHECK: rsb r6, r6, r7, asr r9
1296# CHECK: rsb r6, r6, r7, ror r9
1297# CHECK: rsb r4, r4, r5, rrx
1298
12990x0f 0x4a 0x65 0xe2
13000x2a 0x71 0x68 0xe2
13010x28 0x71 0x68 0xe2
13020x06 0x40 0x65 0xe0
13030x86 0x42 0x65 0xe0
13040xa6 0x42 0x65 0x30
13050xa6 0x42 0x65 0xe0
13060xc6 0x42 0x65 0xe0
13070xe6 0x42 0x65 0xe0
13080x18 0x69 0x67 0xe0
13090x38 0x69 0x67 0xe0
13100x58 0x69 0x67 0xe0
13110x78 0x69 0x67 0xd0
13120x66 0x40 0x65 0xe0
1313
13140x0f 0x5a 0x65 0xe2
13150x05 0x40 0x64 0xe0
13160x85 0x42 0x64 0xe0
13170xa5 0x42 0x64 0xe0
13180xa5 0x42 0x64 0x10
13190xc5 0x42 0x64 0xe0
13200xe5 0x42 0x64 0xe0
13210x17 0x69 0x66 0xc0
13220x37 0x69 0x66 0xe0
13230x57 0x69 0x66 0xe0
13240x77 0x69 0x66 0xe0
13250x65 0x40 0x64 0xe0
1326
1327#------------------------------------------------------------------------------
1328# RSBS
1329#------------------------------------------------------------------------------
1330# CHECK: rsbs   r7, r8, #-2147483638
1331# CHECK: rsbs   r7, r8, #40, #2
1332
13330x2a 0x71 0x78 0xe2
13340x28 0x71 0x78 0xe2
1335
1336#------------------------------------------------------------------------------
1337# RSC
1338#------------------------------------------------------------------------------
1339# CHECK: rsc r4, r5, #61440
1340# CHECK: rsc r7, r8, #-2147483638
1341# CHECK: rsc r7, r8, #40, #2
1342# CHECK: rsc r4, r5, r6
1343# CHECK: rsc r4, r5, r6, lsl #5
1344# CHECK: rsclo r4, r5, r6, lsr #5
1345# CHECK: rsc r4, r5, r6, lsr #5
1346# CHECK: rsc r4, r5, r6, asr #5
1347# CHECK: rsc r4, r5, r6, ror #5
1348# CHECK: rsc r6, r7, r8, lsl r9
1349# CHECK: rsc r6, r7, r8, lsr r9
1350# CHECK: rsc r6, r7, r8, asr r9
1351# CHECK: rscle r6, r7, r8, ror r9
1352
1353# CHECK: rsc r5, r5, #61440
1354# CHECK: rsc r4, r4, r5
1355# CHECK: rsc r4, r4, r5, lsl #5
1356# CHECK: rsc r4, r4, r5, lsr #5
1357# CHECK: rscne r4, r4, r5, lsr #5
1358# CHECK: rsc r4, r4, r5, asr #5
1359# CHECK: rsc r4, r4, r5, ror #5
1360# CHECK: rscgt r6, r6, r7, lsl r9
1361# CHECK: rsc r6, r6, r7, lsr r9
1362# CHECK: rsc r6, r6, r7, asr r9
1363# CHECK: rsc r6, r6, r7, ror r9
1364
13650x0f 0x4a 0xe5 0xe2
13660x2a 0x71 0xe8 0xe2
13670x28 0x71 0xe8 0xe2
13680x06 0x40 0xe5 0xe0
13690x86 0x42 0xe5 0xe0
13700xa6 0x42 0xe5 0x30
13710xa6 0x42 0xe5 0xe0
13720xc6 0x42 0xe5 0xe0
13730xe6 0x42 0xe5 0xe0
13740x18 0x69 0xe7 0xe0
13750x38 0x69 0xe7 0xe0
13760x58 0x69 0xe7 0xe0
13770x78 0x69 0xe7 0xd0
1378
13790x0f 0x5a 0xe5 0xe2
13800x05 0x40 0xe4 0xe0
13810x85 0x42 0xe4 0xe0
13820xa5 0x42 0xe4 0xe0
13830xa5 0x42 0xe4 0x10
13840xc5 0x42 0xe4 0xe0
13850xe5 0x42 0xe4 0xe0
13860x17 0x69 0xe6 0xc0
13870x37 0x69 0xe6 0xe0
13880x57 0x69 0xe6 0xe0
13890x77 0x69 0xe6 0xe0
1390
1391#------------------------------------------------------------------------------
1392# RRX/RRXS
1393#------------------------------------------------------------------------------
1394# CHECK: rrx	r0, r1
1395# CHECK: rrx	sp, pc
1396# CHECK: rrx	pc, lr
1397# CHECK: rrx	lr, sp
1398
13990x61 0x00 0xa0 0xe1
14000x6f 0xd0 0xa0 0xe1
14010x6e 0xf0 0xa0 0xe1
14020x6d 0xe0 0xa0 0xe1
1403
1404# CHECK: rrxs	r0, r1
1405# CHECK: rrxs	sp, pc
1406# CHECK: rrxs	pc, lr
1407# CHECK: rrxs	lr, sp
1408
14090x61 0x00 0xb0 0xe1
14100x6f 0xd0 0xb0 0xe1
14110x6e 0xf0 0xb0 0xe1
14120x6d 0xe0 0xb0 0xe1
1413
1414#------------------------------------------------------------------------------
1415# SADD16/SADD8
1416#------------------------------------------------------------------------------
1417# CHECK: sadd16 r1, r2, r3
1418# CHECK: sadd16gt r1, r2, r3
1419# CHECK: sadd8 r1, r2, r3
1420# CHECK: sadd8le r1, r2, r3
1421
14220x13 0x1f 0x12 0xe6
14230x13 0x1f 0x12 0xc6
14240x93 0x1f 0x12 0xe6
14250x93 0x1f 0x12 0xd6
1426
1427
1428#------------------------------------------------------------------------------
1429# SASX
1430#------------------------------------------------------------------------------
1431# CHECK: sasx r9, r12, r0
1432# CHECK: sasxeq r9, r12, r0
1433
14340x30 0x9f 0x1c 0xe6
14350x30 0x9f 0x1c 0x06
1436
1437
1438#------------------------------------------------------------------------------
1439# SBC
1440#------------------------------------------------------------------------------
1441# CHECK: sbc r4, r5, #61440
1442# CHECK: sbc r7, r8, #-2147483638
1443# CHECK: sbc r7, r8, #40, #2
1444# CHECK: sbc r4, r5, r6
1445# CHECK: sbc r4, r5, r6, lsl #5
1446# CHECK: sbc r4, r5, r6, lsr #5
1447# CHECK: sbc r4, r5, r6, lsr #5
1448# CHECK: sbc r4, r5, r6, asr #5
1449# CHECK: sbc r4, r5, r6, ror #5
1450# CHECK: sbc r6, r7, r8, lsl r9
1451# CHECK: sbc r6, r7, r8, lsr r9
1452# CHECK: sbc r6, r7, r8, asr r9
1453# CHECK: sbc r6, r7, r8, ror r9
1454
1455# CHECK: sbc r5, r5, #61440
1456# CHECK: sbc r4, r4, r5
1457# CHECK: sbc r4, r4, r5, lsl #5
1458# CHECK: sbc r4, r4, r5, lsr #5
1459# CHECK: sbc r4, r4, r5, lsr #5
1460# CHECK: sbc r4, r4, r5, asr #5
1461# CHECK: sbc r4, r4, r5, ror #5
1462# CHECK: sbc r6, r6, r7, lsl r9
1463# CHECK: sbc r6, r6, r7, lsr r9
1464# CHECK: sbc r6, r6, r7, asr r9
1465# CHECK: sbc r6, r6, r7, ror r9
1466
14670x0f 0x4a 0xc5 0xe2
14680x2a 0x71 0xc8 0xe2
14690x28 0x71 0xc8 0xe2
14700x06 0x40 0xc5 0xe0
14710x86 0x42 0xc5 0xe0
14720xa6 0x42 0xc5 0xe0
14730xa6 0x42 0xc5 0xe0
14740xc6 0x42 0xc5 0xe0
14750xe6 0x42 0xc5 0xe0
14760x18 0x69 0xc7 0xe0
14770x38 0x69 0xc7 0xe0
14780x58 0x69 0xc7 0xe0
14790x78 0x69 0xc7 0xe0
1480
14810x0f 0x5a 0xc5 0xe2
14820x05 0x40 0xc4 0xe0
14830x85 0x42 0xc4 0xe0
14840xa5 0x42 0xc4 0xe0
14850xa5 0x42 0xc4 0xe0
14860xc5 0x42 0xc4 0xe0
14870xe5 0x42 0xc4 0xe0
14880x17 0x69 0xc6 0xe0
14890x37 0x69 0xc6 0xe0
14900x57 0x69 0xc6 0xe0
14910x77 0x69 0xc6 0xe0
1492
1493
1494#------------------------------------------------------------------------------
1495# SBFX
1496#------------------------------------------------------------------------------
1497# CHECK: sbfx r4, r5, #16, #1
1498# CHECK: sbfxgt r4, r5, #16, #16
1499
15000x55 0x48 0xa0 0xe7
15010x55 0x48 0xaf 0xc7
1502
1503
1504#------------------------------------------------------------------------------
1505# SEL
1506#------------------------------------------------------------------------------
1507# CHECK: sel r9, r2, r1
1508# CHECK: selne r9, r2, r1
1509
15100xb1 0x9f 0x82 0xe6
15110xb1 0x9f 0x82 0x16
1512
1513
1514#------------------------------------------------------------------------------
1515# SETEND
1516#------------------------------------------------------------------------------
1517# CHECK: setend be
1518# CHECK: setend le
1519
15200x00 0x02 0x01 0xf1
15210x00 0x00 0x01 0xf1
1522
1523#------------------------------------------------------------------------------
1524# SEV
1525#------------------------------------------------------------------------------
1526# CHECK: sev
1527# CHECK: seveq
1528
15290x04 0xf0 0x20 0xe3
15300x04 0xf0 0x20 0x03
1531
1532#------------------------------------------------------------------------------
1533# SHADD16/SHADD8
1534#------------------------------------------------------------------------------
1535# CHECK: shadd16 r4, r8, r2
1536# CHECK: shadd16gt r4, r8, r2
1537# CHECK: shadd8 r4, r8, r2
1538# CHECK: shadd8gt r4, r8, r2
1539
15400x12 0x4f 0x38 0xe6
15410x12 0x4f 0x38 0xc6
15420x92 0x4f 0x38 0xe6
15430x92 0x4f 0x38 0xc6
1544
1545
1546#------------------------------------------------------------------------------
1547# SHASX
1548#------------------------------------------------------------------------------
1549# CHECK: shasx r4, r8, r2
1550# CHECK: shasxgt r4, r8, r2
1551
15520x32 0x4f 0x38 0xe6
15530x32 0x4f 0x38 0xc6
1554
1555
1556#------------------------------------------------------------------------------
1557# SHSUB16/SHSUB8
1558#------------------------------------------------------------------------------
1559# CHECK: shsub16 r4, r8, r2
1560# CHECK: shsub16gt r4, r8, r2
1561# CHECK: shsub8 r4, r8, r2
1562# CHECK: shsub8gt r4, r8, r2
1563
15640x72 0x4f 0x38 0xe6
15650x72 0x4f 0x38 0xc6
15660xf2 0x4f 0x38 0xe6
15670xf2 0x4f 0x38 0xc6
1568
1569#------------------------------------------------------------------------------
1570# SMLABB/SMLABT/SMLATB/SMLATT
1571#------------------------------------------------------------------------------
1572# CHECK: smlabb r3, r1, r9, r0
1573# CHECK: smlabt r5, r6, r4, r1
1574# CHECK: smlatb r4, r2, r3, r2
1575# CHECK: smlatt r8, r3, r8, r4
1576# CHECK: smlabbge r3, r1, r9, r0
1577# CHECK: smlabtle r5, r6, r4, r1
1578# CHECK: smlatbne r4, r2, r3, r2
1579# CHECK: smlatteq r8, r3, r8, r4
1580
15810x81 0x09 0x03 0xe1
15820xc6 0x14 0x05 0xe1
15830xa2 0x23 0x04 0xe1
15840xe3 0x48 0x08 0xe1
15850x81 0x09 0x03 0xa1
15860xc6 0x14 0x05 0xd1
15870xa2 0x23 0x04 0x11
15880xe3 0x48 0x08 0x01
1589
1590#------------------------------------------------------------------------------
1591# SMLAD/SMLADX
1592#------------------------------------------------------------------------------
1593# CHECK: smlad r2, r3, r5, r8
1594# CHECK: smladx r2, r3, r5, r8
1595# CHECK: smladeq r2, r3, r5, r8
1596# CHECK: smladxhi r2, r3, r5, r8
1597
15980x13 0x85 0x02 0xe7
15990x33 0x85 0x02 0xe7
16000x13 0x85 0x02 0x07
16010x33 0x85 0x02 0x87
1602
1603
1604#------------------------------------------------------------------------------
1605# SMLAL
1606#------------------------------------------------------------------------------
1607# CHECK: smlal r2, r3, r5, r8
1608# CHECK: smlals r2, r3, r5, r8
1609# CHECK: smlaleq r2, r3, r5, r8
1610# CHECK: smlalshi r2, r3, r5, r8
1611
16120x95 0x28 0xe3 0xe0
16130x95 0x28 0xf3 0xe0
16140x95 0x28 0xe3 0x00
16150x95 0x28 0xf3 0x80
1616
1617
1618#------------------------------------------------------------------------------
1619# SMLALBB/SMLALBT/SMLALTB/SMLALTT
1620#------------------------------------------------------------------------------
1621# CHECK: smlalbb r3, r1, r9, r0
1622# CHECK: smlalbt r5, r6, r4, r1
1623# CHECK: smlaltb r4, r2, r3, r2
1624# CHECK: smlaltt r8, r3, r8, r4
1625# CHECK: smlalbbge r3, r1, r9, r0
1626# CHECK: smlalbtle r5, r6, r4, r1
1627# CHECK: smlaltbne r4, r2, r3, r2
1628# CHECK: smlaltteq r8, r3, r8, r4
1629
16300x89 0x30 0x41 0xe1
16310xc4 0x51 0x46 0xe1
16320xa3 0x42 0x42 0xe1
16330xe8 0x84 0x43 0xe1
16340x89 0x30 0x41 0xa1
16350xc4 0x51 0x46 0xd1
16360xa3 0x42 0x42 0x11
16370xe8 0x84 0x43 0x01
1638
1639
1640#------------------------------------------------------------------------------
1641# SMLALD/SMLALDX
1642#------------------------------------------------------------------------------
1643# CHECK: smlald r2, r3, r5, r8
1644# CHECK: smlaldx r2, r3, r5, r8
1645# CHECK: smlaldeq r2, r3, r5, r8
1646# CHECK: smlaldxhi r2, r3, r5, r8
1647
16480x15 0x28 0x43 0xe7
16490x35 0x28 0x43 0xe7
16500x15 0x28 0x43 0x07
16510x35 0x28 0x43 0x87
1652
1653
1654#------------------------------------------------------------------------------
1655# SMLAWB/SMLAWT
1656#------------------------------------------------------------------------------
1657# CHECK: smlawb r2, r3, r10, r8
1658# CHECK: smlawt r8, r3, r5, r9
1659# CHECK: smlawbeq r2, r7, r5, r8
1660# CHECK: smlawthi r1, r3, r0, r8
1661
16620x83 0x8a 0x22 0xe1
16630xc3 0x95 0x28 0xe1
16640x87 0x85 0x22 0x01
16650xc3 0x80 0x21 0x81
1666
1667
1668#------------------------------------------------------------------------------
1669# SMLSD/SMLSDX
1670#------------------------------------------------------------------------------
1671# CHECK: smlsd r2, r3, r5, r8
1672# CHECK: smlsdx r2, r3, r5, r8
1673# CHECK: smlsdeq r2, r3, r5, r8
1674# CHECK: smlsdxhi r2, r3, r5, r8
1675
16760x53 0x85 0x02 0xe7
16770x73 0x85 0x02 0xe7
16780x53 0x85 0x02 0x07
16790x73 0x85 0x02 0x87
1680
1681
1682#------------------------------------------------------------------------------
1683# SMLSLD/SMLSLDX
1684#------------------------------------------------------------------------------
1685# CHECK: smlsld r2, r9, r5, r1
1686# CHECK: smlsldx r4, r11, r2, r8
1687# CHECK: smlsldeq r8, r2, r5, r6
1688# CHECK: smlsldxhi r1, r0, r3, r8
1689
16900x55 0x21 0x49 0xe7
16910x72 0x48 0x4b 0xe7
16920x55 0x86 0x42 0x07
16930x73 0x18 0x40 0x87
1694
1695
1696#------------------------------------------------------------------------------
1697# SMMLA/SMMLAR
1698#------------------------------------------------------------------------------
1699# CHECK: smmla r1, r2, r3, r4
1700# CHECK: smmlar r4, r3, r2, r1
1701# CHECK: smmlalo r1, r2, r3, r4
1702# CHECK: smmlarhs r4, r3, r2, r1
1703
17040x12 0x43 0x51 0xe7
17050x33 0x12 0x54 0xe7
17060x12 0x43 0x51 0x37
17070x33 0x12 0x54 0x27
1708
1709
1710#------------------------------------------------------------------------------
1711# SMMLS/SMMLSR
1712#------------------------------------------------------------------------------
1713# CHECK: smmls r1, r2, r3, r4
1714# CHECK: smmlsr r4, r3, r2, r1
1715# CHECK: smmlslo r1, r2, r3, r4
1716# CHECK: smmlsrhs r4, r3, r2, r1
1717
17180xd2 0x43 0x51 0xe7
17190xf3 0x12 0x54 0xe7
17200xd2 0x43 0x51 0x37
17210xf3 0x12 0x54 0x27
1722
1723
1724#------------------------------------------------------------------------------
1725# SMMUL/SMMULR
1726#------------------------------------------------------------------------------
1727# CHECK: smmul r2, r3, r4
1728# CHECK: smmulr r3, r2, r1
1729# CHECK: smmullo r2, r3, r4
1730# CHECK: smmulrhs r3, r2, r1
1731
17320x13 0xf4 0x52 0xe7
17330x32 0xf1 0x53 0xe7
17340x13 0xf4 0x52 0x37
17350x32 0xf1 0x53 0x27
1736
1737
1738#------------------------------------------------------------------------------
1739# SMUAD/SMUADX
1740#------------------------------------------------------------------------------
1741# CHECK: smuad r2, r3, r4
1742# CHECK: smuadx r3, r2, r1
1743# CHECK: smuadlt r2, r3, r4
1744# CHECK: smuadxge r3, r2, r1
1745
17460x13 0xf4 0x02 0xe7
17470x32 0xf1 0x03 0xe7
17480x13 0xf4 0x02 0xb7
17490x32 0xf1 0x03 0xa7
1750
1751
1752#------------------------------------------------------------------------------
1753# SMULBB/SMLALBT/SMLALTB/SMLALTT
1754#------------------------------------------------------------------------------
1755# CHECK: smulbb r3, r9, r0
1756# CHECK: smulbt r5, r4, r1
1757# CHECK: smultb r4, r2, r2
1758# CHECK: smultt r8, r3, r4
1759# CHECK: smulbbge r1, r9, r0
1760# CHECK: smulbtle r5, r6, r4
1761# CHECK: smultbne r2, r3, r2
1762# CHECK: smultteq r8, r3, r4
1763
17640x89 0x00 0x63 0xe1
17650xc4 0x01 0x65 0xe1
17660xa2 0x02 0x64 0xe1
17670xe3 0x04 0x68 0xe1
17680x89 0x00 0x61 0xa1
17690xc6 0x04 0x65 0xd1
17700xa3 0x02 0x62 0x11
17710xe3 0x04 0x68 0x01
1772
1773
1774#------------------------------------------------------------------------------
1775# SMULL
1776#------------------------------------------------------------------------------
1777# CHECK: smull r3, r9, r0, r1
1778# CHECK: smulls r3, r9, r0, r2
1779# CHECK: smulleq r8, r3, r4, r5
1780# CHECK: smullseq r8, r3, r4, r3
1781
17820x90 0x31 0xc9 0xe0
17830x90 0x32 0xd9 0xe0
17840x94 0x85 0xc3 0x00
17850x94 0x83 0xd3 0x00
1786
1787
1788#------------------------------------------------------------------------------
1789# SMULWB/SMULWT
1790#------------------------------------------------------------------------------
1791# CHECK: smulwb r3, r9, r0
1792# CHECK: smulwt r3, r9, r2
1793
17940xa9 0x00 0x23 0xe1
17950xe9 0x02 0x23 0xe1
1796
1797
1798#------------------------------------------------------------------------------
1799# SMUSD/SMUSDX
1800#------------------------------------------------------------------------------
1801# CHECK: smusd r3, r0, r1
1802# CHECK: smusdx r3, r9, r2
1803# CHECK: smusdeq r8, r3, r2
1804# CHECK: smusdxne r7, r4, r3
1805
18060x50 0xf1 0x03 0xe7
18070x79 0xf2 0x03 0xe7
18080x53 0xf2 0x08 0x07
18090x74 0xf3 0x07 0x17
1810
1811
1812#------------------------------------------------------------------------------
1813# SRS
1814#------------------------------------------------------------------------------
1815# CHECK: srsda sp, #5
1816# CHECK: srsdb sp, #1
1817# CHECK: srsia sp, #0
1818# CHECK: srsib sp, #15
1819
1820# CHECK: srsda sp!, #31
1821# CHECK: srsdb sp!, #19
1822# CHECK: srsia sp!, #2
1823# CHECK: srsib sp!, #14
1824
1825# CHECK: srsda sp, #11
1826# CHECK: srsdb sp, #10
1827# CHECK: srsia sp, #9
1828# CHECK: srsib sp, #5
1829
1830# CHECK: srsda sp!, #5
1831# CHECK: srsdb sp!, #5
1832# CHECK: srsia sp!, #5
1833# CHECK: srsib sp!, #5
1834
1835# CHECK: srsia sp, #5
1836# CHECK: srsia sp!, #5
1837
18380x05 0x05 0x4d 0xf8
18390x01 0x05 0x4d 0xf9
18400x00 0x05 0xcd 0xf8
18410x0f 0x05 0xcd 0xf9
1842
18430x1f 0x05 0x6d 0xf8
18440x13 0x05 0x6d 0xf9
18450x02 0x05 0xed 0xf8
18460x0e 0x05 0xed 0xf9
1847
18480x0b 0x05 0x4d 0xf8
18490x0a 0x05 0x4d 0xf9
18500x09 0x05 0xcd 0xf8
18510x05 0x05 0xcd 0xf9
1852
18530x05 0x05 0x6d 0xf8
18540x05 0x05 0x6d 0xf9
18550x05 0x05 0xed 0xf8
18560x05 0x05 0xed 0xf9
1857
18580x05 0x05 0xcd 0xf8
18590x05 0x05 0xed 0xf8
1860
1861
1862#------------------------------------------------------------------------------
1863# SSAT
1864#------------------------------------------------------------------------------
1865# CHECK: ssat	r8, #1, r10
1866# CHECK: ssat	r8, #1, r10, lsl #31
1867# CHECK: ssat	r8, #1, r10, asr #32
1868# CHECK: ssat	r8, #1, r10, asr #1
1869
18700x1a 0x80 0xa0 0xe6
18710x9a 0x8f 0xa0 0xe6
18720x5a 0x80 0xa0 0xe6
18730xda 0x80 0xa0 0xe6
1874
1875
1876#------------------------------------------------------------------------------
1877# SSAT16
1878#------------------------------------------------------------------------------
1879# CHECK: ssat16	r2, #1, r7
1880# CHECK: ssat16	r3, #16, r5
1881
18820x37 0x2f 0xa0 0xe6
18830x35 0x3f 0xaf 0xe6
1884
1885
1886#------------------------------------------------------------------------------
1887# SSAX
1888#------------------------------------------------------------------------------
1889# CHECK: ssax r2, r3, r4
1890# CHECK: ssaxlt r2, r3, r4
1891
18920x54 0x2f 0x13 0xe6
18930x54 0x2f 0x13 0xb6
1894
1895#------------------------------------------------------------------------------
1896# SSUB16/SSUB8
1897#------------------------------------------------------------------------------
1898# CHECK: ssub16 r1, r0, r6
1899# CHECK: ssub16ne r5, r3, r2
1900# CHECK: ssub8 r9, r2, r4
1901# CHECK: ssub8eq r5, r1, r2
1902
19030x76 0x1f 0x10 0xe6
19040x72 0x5f 0x13 0x16
19050xf4 0x9f 0x12 0xe6
19060xf2 0x5f 0x11 0x06
1907
1908
1909#------------------------------------------------------------------------------
1910# STM*
1911#------------------------------------------------------------------------------
1912# CHECK: stm r2, {r1, r3, r4, r5, r6, sp}
1913# CHECK: stm r3, {r1, r3, r4, r5, r6, lr}
1914# CHECK: stmib     r4, {r1, r3, r4, r5, r6, sp}
1915# CHECK: stmda     r5, {r1, r3, r4, r5, r6, sp}
1916# CHECK: stmdb     r6, {r1, r3, r4, r5, r6, r8}
1917# CHECK: stmdb     sp, {r1, r3, r4, r5, r6, sp}
1918
1919
1920# CHECK: stm       r8!, {r1, r3, r4, r5, r6, sp}
1921# CHECK: stmib     r9!, {r1, r3, r4, r5, r6, sp}
1922# CHECK: stmda     sp!, {r1, r3, r4, r5, r6}
1923# CHECK: stmdb     r0!, {r1, r5, r7, sp}
1924
19250x7a 0x20 0x82 0xe8
19260x7a 0x40 0x83 0xe8
19270x7a 0x20 0x84 0xe9
19280x7a 0x20 0x05 0xe8
19290x7a 0x01 0x06 0xe9
19300x7a 0x20 0x0d 0xe9
1931
19320x7a 0x20 0xa8 0xe8
19330x7a 0x20 0xa9 0xe9
19340x7a 0x00 0x2d 0xe8
19350xa2 0x20 0x20 0xe9
1936
1937
1938#------------------------------------------------------------------------------
1939# STREX/STREXB/STREXH/STREXD
1940#------------------------------------------------------------------------------
1941# CHECK: strexb  r1, r3, [r4
1942# CHECK: strexh  r4, r2, [r5
1943# CHECK: strex  r2, r1, [r7
1944# CHECK: strexd  r6, r2, r3, [r8
1945# CHECK: strexd  sp, r0, r1, [r0]
1946
19470x93 0x1f 0xc4 0xe1
19480x92 0x4f 0xe5 0xe1
19490x91 0x2f 0x87 0xe1
19500x92 0x6f 0xa8 0xe1
19510x90 0xdf 0xa0 0xe1
1952
1953#------------------------------------------------------------------------------
1954# SUB
1955#------------------------------------------------------------------------------
1956# CHECK: sub r4, r5, #61440
1957# CHECK: sub r7, r8, #-2147483638
1958# CHECK: sub r7, r8, #40, #2
1959# CHECK: sub r4, r5, r6
1960# CHECK: sub r4, r5, r6, lsl #5
1961# CHECK: sub r4, r5, r6, lsr #5
1962# CHECK: sub r4, r5, r6, lsr #5
1963# CHECK: sub r4, r5, r6, asr #5
1964# CHECK: sub r4, r5, r6, ror #5
1965# CHECK: sub r6, r7, r8, lsl r9
1966# CHECK: sub r6, r7, r8, lsr r9
1967# CHECK: sub r6, r7, r8, asr r9
1968# CHECK: sub r6, r7, r8, ror r9
1969
1970# CHECK: sub r5, r5, #61440
1971# CHECK: sub r4, r4, r5
1972# CHECK: sub r4, r4, r5, lsl #5
1973# CHECK: sub r4, r4, r5, lsr #5
1974# CHECK: sub r4, r4, r5, lsr #5
1975# CHECK: sub r4, r4, r5, asr #5
1976# CHECK: sub r4, r4, r5, ror #5
1977# CHECK: sub r6, r6, r7, lsl r9
1978# CHECK: sub r6, r6, r7, lsr r9
1979# CHECK: sub r6, r6, r7, asr r9
1980# CHECK: sub r6, r6, r7, ror r9
1981
19820x0f 0x4a 0x45 0xe2
19830x2a 0x71 0x48 0xe2
19840x28 0x71 0x48 0xe2
19850x06 0x40 0x45 0xe0
19860x86 0x42 0x45 0xe0
19870xa6 0x42 0x45 0xe0
19880xa6 0x42 0x45 0xe0
19890xc6 0x42 0x45 0xe0
19900xe6 0x42 0x45 0xe0
19910x18 0x69 0x47 0xe0
19920x38 0x69 0x47 0xe0
19930x58 0x69 0x47 0xe0
19940x78 0x69 0x47 0xe0
1995
1996
19970x0f 0x5a 0x45 0xe2
19980x05 0x40 0x44 0xe0
19990x85 0x42 0x44 0xe0
20000xa5 0x42 0x44 0xe0
20010xa5 0x42 0x44 0xe0
20020xc5 0x42 0x44 0xe0
20030xe5 0x42 0x44 0xe0
20040x17 0x69 0x46 0xe0
20050x37 0x69 0x46 0xe0
20060x57 0x69 0x46 0xe0
20070x77 0x69 0x46 0xe0
2008
2009#------------------------------------------------------------------------------
2010# SUBS
2011#------------------------------------------------------------------------------
2012# CHECK: subs   r7, r8, #-2147483638
2013# CHECK: subs   r7, r8, #40, #2
2014
20150x2a 0x71 0x58 0xe2
20160x28 0x71 0x58 0xe2
2017
2018#------------------------------------------------------------------------------
2019# SVC
2020#------------------------------------------------------------------------------
2021# CHECK: svc #16
2022# CHECK: svc #0
2023# CHECK: svc #16777215
2024
20250x10 0x00 0x00 0xef
20260x00 0x00 0x00 0xef
20270xff 0xff 0xff 0xef
2028
2029
2030#------------------------------------------------------------------------------
2031# SWP/SWPB
2032#------------------------------------------------------------------------------
2033# CHECK: swp r1, r2, [r3
2034# CHECK: swp r4, r4, [r6
2035# CHECK: swpb r5, r1, [r9
2036
20370x92 0x10 0x03 0xe1
20380x94 0x40 0x06 0xe1
20390x91 0x50 0x49 0xe1
2040
2041
2042#------------------------------------------------------------------------------
2043# SXTAB
2044#------------------------------------------------------------------------------
2045# CHECK: sxtab r2, r3, r4
2046# CHECK: sxtab r4, r5, r6
2047# CHECK: sxtablt r6, r2, r9, ror #8
2048# CHECK: sxtab r5, r1, r4, ror #16
2049# CHECK: sxtab r7, r8, r3, ror #24
2050
20510x74 0x20 0xa3 0xe6
20520x76 0x40 0xa5 0xe6
20530x79 0x64 0xa2 0xb6
20540x74 0x58 0xa1 0xe6
20550x73 0x7c 0xa8 0xe6
2056
2057
2058#------------------------------------------------------------------------------
2059# SXTAB16
2060#------------------------------------------------------------------------------
2061# CHECK: sxtab16ge r0, r1, r4
2062# CHECK: sxtab16 r6, r2, r7
2063# CHECK: sxtab16 r3, r5, r8, ror #8
2064# CHECK: sxtab16 r3, r2, r1, ror #16
2065# CHECK: sxtab16eq r1, r2, r3, ror #24
2066
20670x74 0x00 0x81 0xa6
20680x77 0x60 0x82 0xe6
20690x78 0x34 0x85 0xe6
20700x71 0x38 0x82 0xe6
20710x73 0x1c 0x82 0x06
2072
2073#------------------------------------------------------------------------------
2074# SXTAH
2075#------------------------------------------------------------------------------
2076# CHECK: sxtah r1, r3, r9
2077# CHECK: sxtahhi r6, r1, r6
2078# CHECK: sxtah r3, r8, r3, ror #8
2079# CHECK: sxtahlo r2, r2, r4, ror #16
2080# CHECK: sxtah r9, r3, r3, ror #24
2081
20820x79 0x10 0xb3 0xe6
20830x76 0x60 0xb1 0x86
20840x73 0x34 0xb8 0xe6
20850x74 0x28 0xb2 0x36
20860x73 0x9c 0xb3 0xe6
2087
2088#------------------------------------------------------------------------------
2089# SXTB
2090#------------------------------------------------------------------------------
2091# CHECK: sxtbge r2, r4
2092# CHECK: sxtb r5, r6
2093# CHECK: sxtb r6, r9, ror #8
2094# CHECK: sxtblo r5, r1, ror #16
2095# CHECK: sxtb r8, r3, ror #24
2096
20970x74 0x20 0xaf 0xa6
20980x76 0x50 0xaf 0xe6
20990x79 0x64 0xaf 0xe6
21000x71 0x58 0xaf 0x36
21010x73 0x8c 0xaf 0xe6
2102
2103
2104#------------------------------------------------------------------------------
2105# SXTB16
2106#------------------------------------------------------------------------------
2107# CHECK: sxtb16 r1, r4
2108# CHECK: sxtb16 r6, r7
2109# CHECK: sxtb16hs r3, r5, ror #8
2110# CHECK: sxtb16 r3, r1, ror #16
2111# CHECK: sxtb16ge r2, r3, ror #24
2112
21130x74 0x10 0x8f 0xe6
21140x77 0x60 0x8f 0xe6
21150x75 0x34 0x8f 0x26
21160x71 0x38 0x8f 0xe6
21170x73 0x2c 0x8f 0xa6
2118
2119
2120#------------------------------------------------------------------------------
2121# SXTH
2122#------------------------------------------------------------------------------
2123# CHECK: sxthne r3, r9
2124# CHECK: sxth r1, r6
2125# CHECK: sxth r3, r8, ror #8
2126# CHECK: sxthle r2, r2, ror #16
2127# CHECK: sxth r9, r3, ror #24
2128
21290x79 0x30 0xbf 0x16
21300x76 0x10 0xbf 0xe6
21310x78 0x34 0xbf 0xe6
21320x72 0x28 0xbf 0xd6
21330x73 0x9c 0xbf 0xe6
2134
2135
2136#------------------------------------------------------------------------------
2137# FIXME: TBB/TBH
2138#------------------------------------------------------------------------------
2139
2140
2141#------------------------------------------------------------------------------
2142# TEQ
2143#------------------------------------------------------------------------------
2144# CHECK: teq r5, #61440
2145# CHECK: teq r7, #-2147483638
2146# CHECK: teq r7, #40, #2
2147# CHECK: teq r4, r5
2148# CHECK: teq r4, r5, lsl #5
2149# CHECK: teq r4, r5, lsr #5
2150# CHECK: teq r4, r5, lsr #5
2151# CHECK: teq r4, r5, asr #5
2152# CHECK: teq r4, r5, ror #5
2153# CHECK: teq r6, r7, lsl r9
2154# CHECK: teq r6, r7, lsr r9
2155# CHECK: teq r6, r7, asr r9
2156# CHECK: teq r6, r7, ror r9
2157
21580x0f 0x0a 0x35 0xe3
21590x2a 0x01 0x37 0xe3
21600x28 0x01 0x37 0xe3
21610x05 0x00 0x34 0xe1
21620x85 0x02 0x34 0xe1
21630xa5 0x02 0x34 0xe1
21640xa5 0x02 0x34 0xe1
21650xc5 0x02 0x34 0xe1
21660xe5 0x02 0x34 0xe1
21670x17 0x09 0x36 0xe1
21680x37 0x09 0x36 0xe1
21690x57 0x09 0x36 0xe1
21700x77 0x09 0x36 0xe1
2171
2172
2173#------------------------------------------------------------------------------
2174# TST
2175#------------------------------------------------------------------------------
2176# CHECK: tst r5, #61440
2177# CHECK: tst r7, #-2147483638
2178# CHECK: tst r7, #40, #2
2179# CHECK: tst r4, r5
2180# CHECK: tst r4, r5, lsl #5
2181# CHECK: tst r4, r5, lsr #5
2182# CHECK: tst r4, r5, lsr #5
2183# CHECK: tst r4, r5, asr #5
2184# CHECK: tst r4, r5, ror #5
2185# CHECK: tst r6, r7, lsl r9
2186# CHECK: tst r6, r7, lsr r9
2187# CHECK: tst r6, r7, asr r9
2188# CHECK: tst r6, r7, ror r9
2189
21900x0f 0x0a 0x15 0xe3
21910x2a 0x01 0x17 0xe3
21920x28 0x01 0x17 0xe3
21930x05 0x00 0x14 0xe1
21940x85 0x02 0x14 0xe1
21950xa5 0x02 0x14 0xe1
21960xa5 0x02 0x14 0xe1
21970xc5 0x02 0x14 0xe1
21980xe5 0x02 0x14 0xe1
21990x17 0x09 0x16 0xe1
22000x37 0x09 0x16 0xe1
22010x57 0x09 0x16 0xe1
22020x77 0x09 0x16 0xe1
2203
2204
2205#------------------------------------------------------------------------------
2206# UADD16/UADD8
2207#------------------------------------------------------------------------------
2208# CHECK: uadd16 r1, r2, r3
2209# CHECK: uadd16gt r1, r2, r3
2210# CHECK: uadd8 r1, r2, r3
2211# CHECK: uadd8le r1, r2, r3
2212
22130x13 0x1f 0x52 0xe6
22140x13 0x1f 0x52 0xc6
22150x93 0x1f 0x52 0xe6
22160x93 0x1f 0x52 0xd6
2217
2218
2219#------------------------------------------------------------------------------
2220# UASX
2221#------------------------------------------------------------------------------
2222# CHECK: uasx r9, r12, r0
2223# CHECK: uasxeq r9, r12, r0
2224
22250x30 0x9f 0x5c 0xe6
22260x30 0x9f 0x5c 0x06
2227
2228
2229#------------------------------------------------------------------------------
2230# UBFX
2231#------------------------------------------------------------------------------
2232# CHECK: ubfx r4, r5, #16, #1
2233# CHECK: ubfxgt r4, r5, #16, #16
2234
22350x55 0x48 0xe0 0xe7
22360x55 0x48 0xef 0xc7
2237
2238
2239#------------------------------------------------------------------------------
2240# UHADD16/UHADD8
2241#------------------------------------------------------------------------------
2242# CHECK: uhadd16 r4, r8, r2
2243# CHECK: uhadd16gt r4, r8, r2
2244# CHECK: uhadd8 r4, r8, r2
2245# CHECK: uhadd8gt r4, r8, r2
2246
22470x12 0x4f 0x78 0xe6
22480x12 0x4f 0x78 0xc6
22490x92 0x4f 0x78 0xe6
22500x92 0x4f 0x78 0xc6
2251
2252
2253#------------------------------------------------------------------------------
2254# UHASX
2255#------------------------------------------------------------------------------
2256# CHECK: uhasx r4, r8, r2
2257# CHECK: uhasxgt r4, r8, r2
2258
22590x32 0x4f 0x78 0xe6
22600x32 0x4f 0x78 0xc6
2261
2262
2263#------------------------------------------------------------------------------
2264# UHSUB16/UHSUB8
2265#------------------------------------------------------------------------------
2266# CHECK: uhsub16 r4, r8, r2
2267# CHECK: uhsub16gt r4, r8, r2
2268# CHECK: uhsub8 r4, r8, r2
2269# CHECK: uhsub8gt r4, r8, r2
2270
22710x72 0x4f 0x78 0xe6
22720x72 0x4f 0x78 0xc6
22730xf2 0x4f 0x78 0xe6
22740xf2 0x4f 0x78 0xc6
2275
2276
2277#------------------------------------------------------------------------------
2278# UMAAL
2279#------------------------------------------------------------------------------
2280# CHECK: umaal r3, r4, r5, r6
2281# CHECK: umaallt r3, r4, r5, r6
2282
22830x95 0x36 0x44 0xe0
22840x95 0x36 0x44 0xb0
2285
2286
2287#------------------------------------------------------------------------------
2288# UMLAL
2289#------------------------------------------------------------------------------
2290# CHECK: umlal r2, r4, r6, r8
2291# CHECK: umlalgt r6, r1, r2, r6
2292# CHECK: umlals r2, r9, r2, r3
2293# CHECK: umlalseq r3, r5, r1, r2
2294
22950x96 0x28 0xa4 0xe0
22960x92 0x66 0xa1 0xc0
22970x92 0x23 0xb9 0xe0
22980x91 0x32 0xb5 0x00
2299
2300
2301#------------------------------------------------------------------------------
2302# UMULL
2303#------------------------------------------------------------------------------
2304# CHECK: umull r2, r4, r6, r8
2305# CHECK: umullgt r6, r1, r2, r6
2306# CHECK: umulls r2, r9, r2, r3
2307# CHECK: umullseq r3, r5, r1, r2
2308
23090x96 0x28 0x84 0xe0
23100x92 0x66 0x81 0xc0
23110x92 0x23 0x99 0xe0
23120x91 0x32 0x95 0x00
2313
2314
2315#------------------------------------------------------------------------------
2316# UQADD16/UQADD8
2317#------------------------------------------------------------------------------
2318# CHECK: uqadd16 r1, r2, r3
2319# CHECK: uqadd16gt r4, r7, r9
2320# CHECK: uqadd8 r3, r4, r8
2321# CHECK: uqadd8le r8, r1, r2
2322
2323
23240x13 0x1f 0x62 0xe6
23250x19 0x4f 0x67 0xc6
23260x98 0x3f 0x64 0xe6
23270x92 0x8f 0x61 0xd6
2328
2329
2330#------------------------------------------------------------------------------
2331# UQASX
2332#------------------------------------------------------------------------------
2333# CHECK: uqasx r2, r4, r1
2334# CHECK: uqasxhi r5, r2, r9
2335
23360x31 0x2f 0x64 0xe6
23370x39 0x5f 0x62 0x86
2338
2339
2340#------------------------------------------------------------------------------
2341# UQSAX
2342#------------------------------------------------------------------------------
2343# CHECK: uqsax r1, r3, r7
2344# CHECK: uqsax r3, r6, r2
2345
23460x57 0x1f 0x63 0xe6
23470x52 0x3f 0x66 0xe6
2348
2349
2350#------------------------------------------------------------------------------
2351# UQSUB16/UQSUB8
2352#------------------------------------------------------------------------------
2353# CHECK: uqsub16 r1, r5, r3
2354# CHECK: uqsub16gt r3, r2, r5
2355# CHECK: uqsub8 r2, r1, r4
2356# CHECK: uqsub8le r4, r6, r9
2357
23580x73 0x1f 0x65 0xe6
23590x75 0x3f 0x62 0xc6
23600xf4 0x2f 0x61 0xe6
23610xf9 0x4f 0x66 0xd6
2362
2363
2364#------------------------------------------------------------------------------
2365# USADA8/USAD8
2366#------------------------------------------------------------------------------
2367# CHECK: usad8 r2, r1, r4
2368# CHECK: usad8le r4, r6, r9
2369# CHECK: usada8 r1, r5, r3, r7
2370# CHECK: usada8gt r3, r2, r5, r1
2371
23720x11 0xf4 0x82 0xe7
23730x16 0xf9 0x84 0xd7
23740x15 0x73 0x81 0xe7
23750x12 0x15 0x83 0xc7
2376
2377
2378#------------------------------------------------------------------------------
2379# USAT
2380#------------------------------------------------------------------------------
2381
2382# CHECK: usat	r8, #1, r10
2383# CHECK: usat	r8, #4, r10
2384# CHECK: usat	r8, #5, r10, lsl #31
2385# CHECK: usat	r8, #31, r10, asr #32
2386# CHECK: usat	r8, #16, r10, asr #1
2387
23880x1a 0x80 0xe1 0xe6
23890x1a 0x80 0xe4 0xe6
23900x9a 0x8f 0xe5 0xe6
23910x5a 0x80 0xff 0xe6
23920xda 0x80 0xf0 0xe6
2393
2394#------------------------------------------------------------------------------
2395# USAT16
2396#------------------------------------------------------------------------------
2397# CHECK: usat16	r2, #2, r7
2398# CHECK: usat16	r3, #15, r5
2399
24000x37 0x2f 0xe2 0xe6
24010x35 0x3f 0xef 0xe6
2402
2403
2404#------------------------------------------------------------------------------
2405# USAX
2406#------------------------------------------------------------------------------
2407# CHECK: usax r2, r3, r4
2408# CHECK: usaxne r2, r3, r4
2409
24100x54 0x2f 0x53 0xe6
24110x54 0x2f 0x53 0x16
2412
2413#------------------------------------------------------------------------------
2414# USUB16/USUB8
2415#------------------------------------------------------------------------------
2416# CHECK: usub16 r4, r2, r7
2417# CHECK: usub16hi r1, r1, r3
2418# CHECK: usub8 r1, r8, r5
2419# CHECK: usub8le r9, r2, r3
2420
24210x77 0x4f 0x52 0xe6
24220x73 0x1f 0x51 0x86
24230xf5 0x1f 0x58 0xe6
24240xf3 0x9f 0x52 0xd6
2425
2426
2427#------------------------------------------------------------------------------
2428# UXTAB
2429#------------------------------------------------------------------------------
2430# CHECK: uxtab r2, r3, r4
2431# CHECK: uxtab r4, r5, r6
2432# CHECK: uxtablt r6, r2, r9, ror #8
2433# CHECK: uxtab r5, r1, r4, ror #16
2434# CHECK: uxtab r7, r8, r3, ror #24
2435
24360x74 0x20 0xe3 0xe6
24370x76 0x40 0xe5 0xe6
24380x79 0x64 0xe2 0xb6
24390x74 0x58 0xe1 0xe6
24400x73 0x7c 0xe8 0xe6
2441
2442
2443#------------------------------------------------------------------------------
2444# UXTAB16
2445#------------------------------------------------------------------------------
2446# CHECK: uxtab16ge r0, r1, r4
2447# CHECK: uxtab16 r6, r2, r7
2448# CHECK: uxtab16 r3, r5, r8, ror #8
2449# CHECK: uxtab16 r3, r2, r1, ror #16
2450# CHECK: uxtab16eq r1, r2, r3, ror #24
2451
24520x74 0x00 0xc1 0xa6
24530x77 0x60 0xc2 0xe6
24540x78 0x34 0xc5 0xe6
24550x71 0x38 0xc2 0xe6
24560x73 0x1c 0xc2 0x06
2457
2458#------------------------------------------------------------------------------
2459# UXTAH
2460#------------------------------------------------------------------------------
2461# CHECK: uxtah r1, r3, r9
2462# CHECK: uxtahhi r6, r1, r6
2463# CHECK: uxtah r3, r8, r3, ror #8
2464# CHECK: uxtahlo r2, r2, r4, ror #16
2465# CHECK: uxtah r9, r3, r3, ror #24
2466
24670x79 0x10 0xf3 0xe6
24680x76 0x60 0xf1 0x86
24690x73 0x34 0xf8 0xe6
24700x74 0x28 0xf2 0x36
24710x73 0x9c 0xf3 0xe6
2472
2473#------------------------------------------------------------------------------
2474# UXTB
2475#------------------------------------------------------------------------------
2476# CHECK: uxtbge r2, r4
2477# CHECK: uxtb r5, r6
2478# CHECK: uxtb r6, r9, ror #8
2479# CHECK: uxtblo r5, r1, ror #16
2480# CHECK: uxtb r8, r3, ror #24
2481
24820x74 0x20 0xef 0xa6
24830x76 0x50 0xef 0xe6
24840x79 0x64 0xef 0xe6
24850x71 0x58 0xef 0x36
24860x73 0x8c 0xef 0xe6
2487
2488
2489#------------------------------------------------------------------------------
2490# UXTB16
2491#------------------------------------------------------------------------------
2492# CHECK: uxtb16 r1, r4
2493# CHECK: uxtb16 r6, r7
2494# CHECK: uxtb16hs r3, r5, ror #8
2495# CHECK: uxtb16 r3, r1, ror #16
2496# CHECK: uxtb16ge r2, r3, ror #24
2497
24980x74 0x10 0xcf 0xe6
24990x77 0x60 0xcf 0xe6
25000x75 0x34 0xcf 0x26
25010x71 0x38 0xcf 0xe6
25020x73 0x2c 0xcf 0xa6
2503
2504
2505#------------------------------------------------------------------------------
2506# UXTH
2507#------------------------------------------------------------------------------
2508# CHECK: uxthne r3, r9
2509# CHECK: uxth r1, r6
2510# CHECK: uxth r3, r8, ror #8
2511# CHECK: uxthle r2, r2, ror #16
2512# CHECK: uxth r9, r3, ror #24
2513
25140x79 0x30 0xff 0x16
25150x76 0x10 0xff 0xe6
25160x78 0x34 0xff 0xe6
25170x72 0x28 0xff 0xd6
25180x73 0x9c 0xff 0xe6
2519
2520#------------------------------------------------------------------------------
2521# WFE/WFI/YIELD
2522#------------------------------------------------------------------------------
2523# CHECK: wfe
2524# CHECK: wfehi
2525# CHECK: wfi
2526# CHECK: wfilt
2527# CHECK: yield
2528# CHECK: yieldne
2529# CHECK: hint #5
2530
25310x02 0xf0 0x20 0xe3
25320x02 0xf0 0x20 0x83
25330x03 0xf0 0x20 0xe3
25340x03 0xf0 0x20 0xb3
25350x01 0xf0 0x20 0xe3
25360x01 0xf0 0x20 0x13
25370x05 0xf0 0x20 0xe3
2538