basic-arm-instructions.s revision 3b14a5c5469176effb921d91d4494f0aa2919fd0
13f00e317064560ad11168d22030416d853829f6eJim Grosbach@ RUN: llvm-mc -triple=armv7-apple-darwin -show-encoding < %s | FileCheck %s
23f00e317064560ad11168d22030416d853829f6eJim Grosbach  .syntax unified
33f00e317064560ad11168d22030416d853829f6eJim Grosbach  .globl _func
4e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach
5e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ Check that the assembler can handle the documented syntax from the ARM ARM.
6e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ For complex constructs like shifter operands, check more thoroughly for them
7e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ once then spot check that following instructions accept the form generally.
8e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ This gives us good coverage while keeping the overall size of the test
9e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ more reasonable.
10e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach
113f00e317064560ad11168d22030416d853829f6eJim Grosbach_func:
123f00e317064560ad11168d22030416d853829f6eJim Grosbach@ CHECK: _func
133f00e317064560ad11168d22030416d853829f6eJim Grosbach
14da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@------------------------------------------------------------------------------
153f00e317064560ad11168d22030416d853829f6eJim Grosbach@ ADC (immediate)
16da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@------------------------------------------------------------------------------
173f00e317064560ad11168d22030416d853829f6eJim Grosbach  adc r1, r2, #0xf
183f00e317064560ad11168d22030416d853829f6eJim Grosbach  adc r1, r2, #0xf0
193f00e317064560ad11168d22030416d853829f6eJim Grosbach  adc r1, r2, #0xf00
203f00e317064560ad11168d22030416d853829f6eJim Grosbach  adc r1, r2, #0xf000
213f00e317064560ad11168d22030416d853829f6eJim Grosbach  adc r1, r2, #0xf0000
223f00e317064560ad11168d22030416d853829f6eJim Grosbach  adc r1, r2, #0xf00000
233f00e317064560ad11168d22030416d853829f6eJim Grosbach  adc r1, r2, #0xf000000
243f00e317064560ad11168d22030416d853829f6eJim Grosbach  adc r1, r2, #0xf0000000
253f00e317064560ad11168d22030416d853829f6eJim Grosbach  adc r1, r2, #0xf000000f
263f00e317064560ad11168d22030416d853829f6eJim Grosbach  adcs r1, r2, #0xf00
273f00e317064560ad11168d22030416d853829f6eJim Grosbach  adcseq r1, r2, #0xf00
28dc89561fecf100d6c32d73c7b009fd73e51be688Jim Grosbach  adceq r1, r2, #0xf00
293f00e317064560ad11168d22030416d853829f6eJim Grosbach
303f00e317064560ad11168d22030416d853829f6eJim Grosbach@ CHECK: adc	r1, r2, #15             @ encoding: [0x0f,0x10,0xa2,0xe2]
313f00e317064560ad11168d22030416d853829f6eJim Grosbach@ CHECK: adc	r1, r2, #240            @ encoding: [0xf0,0x10,0xa2,0xe2]
323f00e317064560ad11168d22030416d853829f6eJim Grosbach@ CHECK: adc	r1, r2, #3840           @ encoding: [0x0f,0x1c,0xa2,0xe2]
333f00e317064560ad11168d22030416d853829f6eJim Grosbach@ CHECK: adc	r1, r2, #61440          @ encoding: [0x0f,0x1a,0xa2,0xe2]
343f00e317064560ad11168d22030416d853829f6eJim Grosbach@ CHECK: adc	r1, r2, #983040         @ encoding: [0x0f,0x18,0xa2,0xe2]
353f00e317064560ad11168d22030416d853829f6eJim Grosbach@ CHECK: adc	r1, r2, #15728640       @ encoding: [0x0f,0x16,0xa2,0xe2]
363f00e317064560ad11168d22030416d853829f6eJim Grosbach@ CHECK: adc	r1, r2, #251658240      @ encoding: [0x0f,0x14,0xa2,0xe2]
373f00e317064560ad11168d22030416d853829f6eJim Grosbach@ CHECK: adc	r1, r2, #4026531840     @ encoding: [0x0f,0x12,0xa2,0xe2]
383f00e317064560ad11168d22030416d853829f6eJim Grosbach@ CHECK: adc	r1, r2, #4026531855     @ encoding: [0xff,0x12,0xa2,0xe2]
393f00e317064560ad11168d22030416d853829f6eJim Grosbach
403f00e317064560ad11168d22030416d853829f6eJim Grosbach@ CHECK: adcs	r1, r2, #3840           @ encoding: [0x0f,0x1c,0xb2,0xe2]
413f00e317064560ad11168d22030416d853829f6eJim Grosbach@ CHECK: adcseq	r1, r2, #3840           @ encoding: [0x0f,0x1c,0xb2,0x02]
42dc89561fecf100d6c32d73c7b009fd73e51be688Jim Grosbach@ CHECK: adceq	r1, r2, #3840           @ encoding: [0x0f,0x1c,0xa2,0x02]
43e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach
44da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@------------------------------------------------------------------------------
45e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ ADC (register)
46da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ ADC (shifted register)
47da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@------------------------------------------------------------------------------
48e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r4, r5, r6
49e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  @ Constant shifts
50e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r4, r5, r6, lsl #1
51e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r4, r5, r6, lsl #31
52e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r4, r5, r6, lsr #1
53e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r4, r5, r6, lsr #31
54e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r4, r5, r6, lsr #32
55e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r4, r5, r6, asr #1
56e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r4, r5, r6, asr #31
57e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r4, r5, r6, asr #32
58e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r4, r5, r6, ror #1
59e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r4, r5, r6, ror #31
60e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach
61e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  @ Register shifts
62e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r6, r7, r8, lsl r9
63e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r6, r7, r8, lsr r9
64e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r6, r7, r8, asr r9
65e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r6, r7, r8, ror r9
66e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach  adc r4, r5, r6, rrx
67e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach
6837ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  @ Destination register is optional
6937ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r5, r6
7037ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r4, r5, lsl #1
7137ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r4, r5, lsl #31
7237ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r4, r5, lsr #1
7337ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r4, r5, lsr #31
7437ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r4, r5, lsr #32
7537ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r4, r5, asr #1
7637ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r4, r5, asr #31
7737ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r4, r5, asr #32
7837ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r4, r5, ror #1
7937ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r4, r5, ror #31
8037ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r4, r5, rrx
8137ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r6, r7, lsl r9
8237ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r6, r7, lsr r9
8337ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r6, r7, asr r9
8437ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r6, r7, ror r9
8537ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach  adc r4, r5, rrx
8637ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach
87e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r4, r5, r6              @ encoding: [0x06,0x40,0xa5,0xe0]
88e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach
89e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r4, r5, r6, lsl #1      @ encoding: [0x86,0x40,0xa5,0xe0]
90e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r4, r5, r6, lsl #31     @ encoding: [0x86,0x4f,0xa5,0xe0]
91e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r4, r5, r6, lsr #1      @ encoding: [0xa6,0x40,0xa5,0xe0]
92e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r4, r5, r6, lsr #31     @ encoding: [0xa6,0x4f,0xa5,0xe0]
93e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r4, r5, r6, lsr #32     @ encoding: [0x26,0x40,0xa5,0xe0]
94e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r4, r5, r6, asr #1      @ encoding: [0xc6,0x40,0xa5,0xe0]
95e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r4, r5, r6, asr #31     @ encoding: [0xc6,0x4f,0xa5,0xe0]
96e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r4, r5, r6, asr #32     @ encoding: [0x46,0x40,0xa5,0xe0]
97e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r4, r5, r6, ror #1      @ encoding: [0xe6,0x40,0xa5,0xe0]
98e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r4, r5, r6, ror #31     @ encoding: [0xe6,0x4f,0xa5,0xe0]
99e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach
100e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r6, r7, r8, lsl r9      @ encoding: [0x18,0x69,0xa7,0xe0]
101e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r6, r7, r8, lsr r9      @ encoding: [0x38,0x69,0xa7,0xe0]
102e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r6, r7, r8, asr r9      @ encoding: [0x58,0x69,0xa7,0xe0]
103e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r6, r7, r8, ror r9      @ encoding: [0x78,0x69,0xa7,0xe0]
104e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach@ CHECK: adc	r4, r5, r6, rrx         @ encoding: [0x66,0x40,0xa5,0xe0]
105e8606dc7c878d4562da5e3e5609b9d7d734d498cJim Grosbach
10637ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r5, r5, r6              @ encoding: [0x06,0x50,0xa5,0xe0]
10737ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r4, r4, r5, lsl #1      @ encoding: [0x85,0x40,0xa4,0xe0]
10837ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r4, r4, r5, lsl #31     @ encoding: [0x85,0x4f,0xa4,0xe0]
10937ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r4, r4, r5, lsr #1      @ encoding: [0xa5,0x40,0xa4,0xe0]
11037ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r4, r4, r5, lsr #31     @ encoding: [0xa5,0x4f,0xa4,0xe0]
11137ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r4, r4, r5, lsr #32     @ encoding: [0x25,0x40,0xa4,0xe0]
11237ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r4, r4, r5, asr #1      @ encoding: [0xc5,0x40,0xa4,0xe0]
11337ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r4, r4, r5, asr #31     @ encoding: [0xc5,0x4f,0xa4,0xe0]
11437ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r4, r4, r5, asr #32     @ encoding: [0x45,0x40,0xa4,0xe0]
11537ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r4, r4, r5, ror #1      @ encoding: [0xe5,0x40,0xa4,0xe0]
11637ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r4, r4, r5, ror #31     @ encoding: [0xe5,0x4f,0xa4,0xe0]
11737ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r4, r4, r5, rrx         @ encoding: [0x65,0x40,0xa4,0xe0]
11837ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r6, r6, r7, lsl r9      @ encoding: [0x17,0x69,0xa6,0xe0]
11937ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r6, r6, r7, lsr r9      @ encoding: [0x37,0x69,0xa6,0xe0]
12037ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r6, r6, r7, asr r9      @ encoding: [0x57,0x69,0xa6,0xe0]
12137ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r6, r6, r7, ror r9      @ encoding: [0x77,0x69,0xa6,0xe0]
12237ee464ea98544d3ed84cec6dde5f769ce003d5fJim Grosbach@ CHECK: adc	r4, r4, r5, rrx         @ encoding: [0x65,0x40,0xa4,0xe0]
123da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach
124da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach
125da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@------------------------------------------------------------------------------
1267ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@ FIXME: ADR
1277ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@------------------------------------------------------------------------------
1287ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach
1297ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@------------------------------------------------------------------------------
130da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ ADD
131da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@------------------------------------------------------------------------------
132da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, #0xf000
133da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, r6
134da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, r6, lsl #5
135da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, r6, lsr #5
136da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, r6, lsr #5
137da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, r6, asr #5
138da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, r6, ror #5
139da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r6, r7, r8, lsl r9
140da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r6, r7, r8, lsr r9
141da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r6, r7, r8, asr r9
142da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r6, r7, r8, ror r9
143da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, r6, rrx
144da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach
145da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  @ destination register is optional
146da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r5, #0xf000
147da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5
148da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, lsl #5
149da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, lsr #5
150da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, lsr #5
151da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, asr #5
152da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, ror #5
153da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r6, r7, lsl r9
154da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r6, r7, lsr r9
155da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r6, r7, asr r9
156da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r6, r7, ror r9
157da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach  add r4, r5, rrx
158da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach
159da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r5, #61440          @ encoding: [0x0f,0x4a,0x85,0xe2]
160da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r5, r6              @ encoding: [0x06,0x40,0x85,0xe0]
161da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r5, r6, lsl #5      @ encoding: [0x86,0x42,0x85,0xe0]
162da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x85,0xe0]
163da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x85,0xe0]
164da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r5, r6, asr #5      @ encoding: [0xc6,0x42,0x85,0xe0]
165da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r5, r6, ror #5      @ encoding: [0xe6,0x42,0x85,0xe0]
166da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r6, r7, r8, lsl r9      @ encoding: [0x18,0x69,0x87,0xe0]
167da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r6, r7, r8, lsr r9      @ encoding: [0x38,0x69,0x87,0xe0]
168da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r6, r7, r8, asr r9      @ encoding: [0x58,0x69,0x87,0xe0]
169da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r6, r7, r8, ror r9      @ encoding: [0x78,0x69,0x87,0xe0]
170da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r5, r6, rrx         @ encoding: [0x66,0x40,0x85,0xe0]
171da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach
172da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach
173da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r5, r5, #61440          @ encoding: [0x0f,0x5a,0x85,0xe2]
174da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r4, r5              @ encoding: [0x05,0x40,0x84,0xe0]
175da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r4, r5, lsl #5      @ encoding: [0x85,0x42,0x84,0xe0]
176da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x84,0xe0]
177da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x84,0xe0]
178da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r4, r5, asr #5      @ encoding: [0xc5,0x42,0x84,0xe0]
179da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r4, r5, ror #5      @ encoding: [0xe5,0x42,0x84,0xe0]
180da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r6, r6, r7, lsl r9      @ encoding: [0x17,0x69,0x86,0xe0]
181da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r6, r6, r7, lsr r9      @ encoding: [0x37,0x69,0x86,0xe0]
182da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r6, r6, r7, asr r9      @ encoding: [0x57,0x69,0x86,0xe0]
183da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r6, r6, r7, ror r9      @ encoding: [0x77,0x69,0x86,0xe0]
184da9f278c741e8ced7c1652720270918eb04ed348Jim Grosbach@ CHECK: add	r4, r4, r5, rrx         @ encoding: [0x65,0x40,0x84,0xe0]
18559642c260064a0c9140e048d702a21830020487fJim Grosbach
18659642c260064a0c9140e048d702a21830020487fJim Grosbach
18759642c260064a0c9140e048d702a21830020487fJim Grosbach@------------------------------------------------------------------------------
18859642c260064a0c9140e048d702a21830020487fJim Grosbach@ AND
18959642c260064a0c9140e048d702a21830020487fJim Grosbach@------------------------------------------------------------------------------
19059642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, #0xf
19159642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, r6
19259642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, r6, lsl #10
19359642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, r6, lsr #10
19459642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, r6, lsr #10
19559642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, r6, asr #10
19659642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, r6, ror #10
19759642c260064a0c9140e048d702a21830020487fJim Grosbach  and r6, r7, r8, lsl r2
19859642c260064a0c9140e048d702a21830020487fJim Grosbach  and r6, r7, r8, lsr r2
19959642c260064a0c9140e048d702a21830020487fJim Grosbach  and r6, r7, r8, asr r2
20059642c260064a0c9140e048d702a21830020487fJim Grosbach  and r6, r7, r8, ror r2
20159642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, r6, rrx
20259642c260064a0c9140e048d702a21830020487fJim Grosbach
20359642c260064a0c9140e048d702a21830020487fJim Grosbach  @ destination register is optional
20459642c260064a0c9140e048d702a21830020487fJim Grosbach  and r1, #0xf
20559642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1
20659642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, lsl #10
20759642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, lsr #10
20859642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, lsr #10
20959642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, asr #10
21059642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, ror #10
21159642c260064a0c9140e048d702a21830020487fJim Grosbach  and r6, r7, lsl r2
21259642c260064a0c9140e048d702a21830020487fJim Grosbach  and r6, r7, lsr r2
21359642c260064a0c9140e048d702a21830020487fJim Grosbach  and r6, r7, asr r2
21459642c260064a0c9140e048d702a21830020487fJim Grosbach  and r6, r7, ror r2
21559642c260064a0c9140e048d702a21830020487fJim Grosbach  and r10, r1, rrx
21659642c260064a0c9140e048d702a21830020487fJim Grosbach
21759642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r1, #15            @ encoding: [0x0f,0xa0,0x01,0xe2]
21859642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r1, r6             @ encoding: [0x06,0xa0,0x01,0xe0]
21959642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r1, r6, lsl #10    @ encoding: [0x06,0xa5,0x01,0xe0]
22059642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r1, r6, lsr #10    @ encoding: [0x26,0xa5,0x01,0xe0]
22159642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r1, r6, lsr #10    @ encoding: [0x26,0xa5,0x01,0xe0]
22259642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r1, r6, asr #10    @ encoding: [0x46,0xa5,0x01,0xe0]
22359642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r1, r6, ror #10    @ encoding: [0x66,0xa5,0x01,0xe0]
22459642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r6, r7, r8, lsl r2      @ encoding: [0x18,0x62,0x07,0xe0]
22559642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r6, r7, r8, lsr r2      @ encoding: [0x38,0x62,0x07,0xe0]
22659642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r6, r7, r8, asr r2      @ encoding: [0x58,0x62,0x07,0xe0]
22759642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r6, r7, r8, ror r2      @ encoding: [0x78,0x62,0x07,0xe0]
22859642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r1, r6, rrx        @ encoding: [0x66,0xa0,0x01,0xe0]
22959642c260064a0c9140e048d702a21830020487fJim Grosbach
23059642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r1, r1, #15             @ encoding: [0x0f,0x10,0x01,0xe2]
23159642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r10, r1            @ encoding: [0x01,0xa0,0x0a,0xe0]
23259642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r10, r1, lsl #10   @ encoding: [0x01,0xa5,0x0a,0xe0]
23359642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r10, r1, lsr #10   @ encoding: [0x21,0xa5,0x0a,0xe0]
23459642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r10, r1, lsr #10   @ encoding: [0x21,0xa5,0x0a,0xe0]
23559642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r10, r1, asr #10   @ encoding: [0x41,0xa5,0x0a,0xe0]
23659642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r10, r1, ror #10   @ encoding: [0x61,0xa5,0x0a,0xe0]
23759642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r6, r6, r7, lsl r2      @ encoding: [0x17,0x62,0x06,0xe0]
23859642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r6, r6, r7, lsr r2      @ encoding: [0x37,0x62,0x06,0xe0]
23959642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r6, r6, r7, asr r2      @ encoding: [0x57,0x62,0x06,0xe0]
24059642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r6, r6, r7, ror r2      @ encoding: [0x77,0x62,0x06,0xe0]
24159642c260064a0c9140e048d702a21830020487fJim Grosbach@ CHECK: and	r10, r10, r1, rrx       @ encoding: [0x61,0xa0,0x0a,0xe0]
24259642c260064a0c9140e048d702a21830020487fJim Grosbach
2437ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@------------------------------------------------------------------------------
2447ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@ FIXME: ASR
2457ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@------------------------------------------------------------------------------
2467ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@------------------------------------------------------------------------------
2477ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@ FIXME: B
2487ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@------------------------------------------------------------------------------
2497ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@------------------------------------------------------------------------------
2507ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@ FIXME: BFC
2517ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@------------------------------------------------------------------------------
2527ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@------------------------------------------------------------------------------
2537ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@ FIXME: BFI
2547ed6d22e9637c52b3511ac6907830251d1124e60Jim Grosbach@------------------------------------------------------------------------------
255e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach
256e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@------------------------------------------------------------------------------
25776cbe02cdd57a297d9c6f1e5106e4718abd7ff9fJim Grosbach@ BIC
258e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@------------------------------------------------------------------------------
259e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, #0xf
260e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, r6
261e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, r6, lsl #10
262e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, r6, lsr #10
263e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, r6, lsr #10
264e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, r6, asr #10
265e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, r6, ror #10
266e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r6, r7, r8, lsl r2
267e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r6, r7, r8, lsr r2
268e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r6, r7, r8, asr r2
269e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r6, r7, r8, ror r2
270e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, r6, rrx
271e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach
272e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  @ destination register is optional
273e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r1, #0xf
274e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1
275e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, lsl #10
276e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, lsr #10
277e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, lsr #10
278e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, asr #10
279e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, ror #10
280e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r6, r7, lsl r2
281e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r6, r7, lsr r2
282e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r6, r7, asr r2
283e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r6, r7, ror r2
284e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach  bic r10, r1, rrx
285e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach
286e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r1, #15            @ encoding: [0x0f,0xa0,0xc1,0xe3]
287e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r1, r6             @ encoding: [0x06,0xa0,0xc1,0xe1]
288e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r1, r6, lsl #10    @ encoding: [0x06,0xa5,0xc1,0xe1]
289e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r1, r6, lsr #10    @ encoding: [0x26,0xa5,0xc1,0xe1]
290e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r1, r6, lsr #10    @ encoding: [0x26,0xa5,0xc1,0xe1]
291e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r1, r6, asr #10    @ encoding: [0x46,0xa5,0xc1,0xe1]
292e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r1, r6, ror #10    @ encoding: [0x66,0xa5,0xc1,0xe1]
293e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r6, r7, r8, lsl r2      @ encoding: [0x18,0x62,0xc7,0xe1]
294e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r6, r7, r8, lsr r2      @ encoding: [0x38,0x62,0xc7,0xe1]
295e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r6, r7, r8, asr r2      @ encoding: [0x58,0x62,0xc7,0xe1]
296e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r6, r7, r8, ror r2      @ encoding: [0x78,0x62,0xc7,0xe1]
297e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r1, r6, rrx        @ encoding: [0x66,0xa0,0xc1,0xe1]
298e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach
299e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach
300e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r1, r1, #15             @ encoding: [0x0f,0x10,0xc1,0xe3]
301e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r10, r1            @ encoding: [0x01,0xa0,0xca,0xe1]
302e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r10, r1, lsl #10   @ encoding: [0x01,0xa5,0xca,0xe1]
303e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r10, r1, lsr #10   @ encoding: [0x21,0xa5,0xca,0xe1]
304e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r10, r1, lsr #10   @ encoding: [0x21,0xa5,0xca,0xe1]
305e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r10, r1, asr #10   @ encoding: [0x41,0xa5,0xca,0xe1]
306e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r10, r1, ror #10   @ encoding: [0x61,0xa5,0xca,0xe1]
307e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r6, r6, r7, lsl r2      @ encoding: [0x17,0x62,0xc6,0xe1]
308e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r6, r6, r7, lsr r2      @ encoding: [0x37,0x62,0xc6,0xe1]
309e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r6, r6, r7, asr r2      @ encoding: [0x57,0x62,0xc6,0xe1]
310e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r6, r6, r7, ror r2      @ encoding: [0x77,0x62,0xc6,0xe1]
311e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach@ CHECK: bic	r10, r10, r1, rrx       @ encoding: [0x61,0xa0,0xca,0xe1]
312e52240c3705f3133eb8c4ebb4220054c68de2651Jim Grosbach
31321101d60ce94f51651f71eeb61ceb8264eccac83Jim Grosbach@------------------------------------------------------------------------------
31421101d60ce94f51651f71eeb61ceb8264eccac83Jim Grosbach@ BKPT
31521101d60ce94f51651f71eeb61ceb8264eccac83Jim Grosbach@------------------------------------------------------------------------------
31621101d60ce94f51651f71eeb61ceb8264eccac83Jim Grosbach  bkpt #10
31721101d60ce94f51651f71eeb61ceb8264eccac83Jim Grosbach  bkpt #65535
31821101d60ce94f51651f71eeb61ceb8264eccac83Jim Grosbach
319fff76ee7ef007b2bb74804f165fee475e30ead0dJim Grosbach@ CHECK: bkpt  #10                      @ encoding: [0x7a,0x00,0x20,0xe1]
320fff76ee7ef007b2bb74804f165fee475e30ead0dJim Grosbach@ CHECK: bkpt  #65535                   @ encoding: [0x7f,0xff,0x2f,0xe1]
32137023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach
32237023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach@------------------------------------------------------------------------------
32337023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach@ BL/BLX (immediate)
32437023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach@------------------------------------------------------------------------------
32537023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach
32637023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach  bl _bar
32737023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach  @ FIXME: blx _bar
32837023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach
329f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@ CHECK: bl  _bar @ encoding: [A,A,A,0xeb]
330f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@ CHECK:   @   fixup A - offset: 0, value: _bar, kind: fixup_arm_uncondbranch
331f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach
332f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@------------------------------------------------------------------------------
333f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@ BLX (register)
334f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@------------------------------------------------------------------------------
33537023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach  blx r2
33637023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach  blxne r2
33737023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach
33837023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach@ CHECK: blx r2                         @ encoding: [0x32,0xff,0x2f,0xe1]
33937023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach@ CHECK: blxne r2                       @ encoding: [0x32,0xff,0x2f,0x11]
34037023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach
341f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@------------------------------------------------------------------------------
342f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@ BX
343f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@------------------------------------------------------------------------------
344f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach
345f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach  bx r2
346f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach  bxne r2
347f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach
348f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@ CHECK: bx	r2                      @ encoding: [0x12,0xff,0x2f,0xe1]
349f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@ CHECK: bxne	r2                      @ encoding: [0x12,0xff,0x2f,0x11]
350f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach
351f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@------------------------------------------------------------------------------
352f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@ BXJ
353f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@------------------------------------------------------------------------------
354f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach
355f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach  bxj r2
356f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach  bxjne r2
35737023b05c84000373fcfc0871edad3c2b995be33Jim Grosbach
358f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@ CHECK: bxj	r2                      @ encoding: [0x22,0xff,0x2f,0xe1]
359f333d471d2cdd47d830dfe3a3e40efbb106c100dJim Grosbach@ CHECK: bxjne	r2                      @ encoding: [0x22,0xff,0x2f,0x11]
36083ab070fc1fbb02ca77b0a37e6ae0eacf58001e1Jim Grosbach
36183ab070fc1fbb02ca77b0a37e6ae0eacf58001e1Jim Grosbach@------------------------------------------------------------------------------
36283ab070fc1fbb02ca77b0a37e6ae0eacf58001e1Jim Grosbach@ FIXME: CBNZ/CBZ
36383ab070fc1fbb02ca77b0a37e6ae0eacf58001e1Jim Grosbach@------------------------------------------------------------------------------
36483ab070fc1fbb02ca77b0a37e6ae0eacf58001e1Jim Grosbach
36583ab070fc1fbb02ca77b0a37e6ae0eacf58001e1Jim Grosbach
36683ab070fc1fbb02ca77b0a37e6ae0eacf58001e1Jim Grosbach@------------------------------------------------------------------------------
36783ab070fc1fbb02ca77b0a37e6ae0eacf58001e1Jim Grosbach@ CDP/CDP2
36883ab070fc1fbb02ca77b0a37e6ae0eacf58001e1Jim Grosbach@------------------------------------------------------------------------------
369d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach  cdp  p7, #1, c1, c1, c1, #4
370d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach  cdp2  p7, #1, c1, c1, c1, #4
37183ab070fc1fbb02ca77b0a37e6ae0eacf58001e1Jim Grosbach
372d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach@ CHECK: cdp  p7, #1, c1, c1, c1, #4     @ encoding: [0x81,0x17,0x11,0xee]
373d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach@ CHECK: cdp2  p7, #1, c1, c1, c1, #4    @ encoding: [0x81,0x17,0x11,0xfe]
374d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach
375d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach
376d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach@------------------------------------------------------------------------------
377d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach@ CLREX
378d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach@------------------------------------------------------------------------------
379d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach  clrex
380d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach
381d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach@ CHECK: clrex                           @ encoding: [0x1f,0xf0,0x7f,0xf5]
382d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach
383d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach
384d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach@------------------------------------------------------------------------------
385d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach@ CLZ
386d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach@------------------------------------------------------------------------------
387d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach  clz r1, r2
388d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach  clzeq r1, r2
389d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach
390d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach@ CHECK: clz r1, r2                      @ encoding: [0x12,0x1f,0x6f,0xe1]
391d986bc66bc56251c2b7d5b9a89df14c4760568fcJim Grosbach@ CHECK: clzeq r1, r2                    @ encoding: [0x12,0x1f,0x6f,0x01]
39214ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach
39314ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@------------------------------------------------------------------------------
39414ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CMN
39514ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@------------------------------------------------------------------------------
39614ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmn r1, #0xf
39714ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmn r1, r6
39814ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmn r1, r6, lsl #10
39914ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmn r1, r6, lsr #10
40014ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmn sp, r6, lsr #10
40114ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmn r1, r6, asr #10
40214ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmn r1, r6, ror #10
40314ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmn r7, r8, lsl r2
40414ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmn sp, r8, lsr r2
40514ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmn r7, r8, asr r2
40614ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmn r7, r8, ror r2
40714ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmn r1, r6, rrx
40814ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach
40914ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmn	r1, #15                 @ encoding: [0x0f,0x00,0x71,0xe3]
41014ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmn	r1, r6                  @ encoding: [0x06,0x00,0x71,0xe1]
41114ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmn	r1, r6, lsl #10         @ encoding: [0x06,0x05,0x71,0xe1]
41214ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmn	r1, r6, lsr #10         @ encoding: [0x26,0x05,0x71,0xe1]
41314ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmn	sp, r6, lsr #10         @ encoding: [0x26,0x05,0x7d,0xe1]
41414ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmn	r1, r6, asr #10         @ encoding: [0x46,0x05,0x71,0xe1]
41514ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmn	r1, r6, ror #10         @ encoding: [0x66,0x05,0x71,0xe1]
41614ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmn	r7, r8, lsl r2          @ encoding: [0x18,0x02,0x77,0xe1]
41714ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmn	sp, r8, lsr r2          @ encoding: [0x38,0x02,0x7d,0xe1]
41814ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmn	r7, r8, asr r2          @ encoding: [0x58,0x02,0x77,0xe1]
41914ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmn	r7, r8, ror r2          @ encoding: [0x78,0x02,0x77,0xe1]
42014ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmn	r1, r6, rrx             @ encoding: [0x66,0x00,0x71,0xe1]
42114ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach
42214ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@------------------------------------------------------------------------------
42314ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CMP
42414ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@------------------------------------------------------------------------------
42514ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmp r1, #0xf
42614ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmp r1, r6
42714ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmp r1, r6, lsl #10
42814ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmp r1, r6, lsr #10
42914ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmp sp, r6, lsr #10
43014ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmp r1, r6, asr #10
43114ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmp r1, r6, ror #10
43214ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmp r7, r8, lsl r2
43314ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmp sp, r8, lsr r2
43414ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmp r7, r8, asr r2
43514ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmp r7, r8, ror r2
43614ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach  cmp r1, r6, rrx
43714ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach
43814ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmp	r1, #15                 @ encoding: [0x0f,0x00,0x51,0xe3]
43914ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmp	r1, r6                  @ encoding: [0x06,0x00,0x51,0xe1]
44014ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmp	r1, r6, lsl #10         @ encoding: [0x06,0x05,0x51,0xe1]
44114ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmp	r1, r6, lsr #10         @ encoding: [0x26,0x05,0x51,0xe1]
44214ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmp	sp, r6, lsr #10         @ encoding: [0x26,0x05,0x5d,0xe1]
44314ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmp	r1, r6, asr #10         @ encoding: [0x46,0x05,0x51,0xe1]
44414ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmp	r1, r6, ror #10         @ encoding: [0x66,0x05,0x51,0xe1]
44514ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmp	r7, r8, lsl r2          @ encoding: [0x18,0x02,0x57,0xe1]
44614ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmp	sp, r8, lsr r2          @ encoding: [0x38,0x02,0x5d,0xe1]
44714ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmp	r7, r8, asr r2          @ encoding: [0x58,0x02,0x57,0xe1]
44814ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmp	r7, r8, ror r2          @ encoding: [0x78,0x02,0x57,0xe1]
44914ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach@ CHECK: cmp	r1, r6, rrx             @ encoding: [0x66,0x00,0x51,0xe1]
45014ab1c3387a240a914cf8b1907bb3609bae72269Jim Grosbach
4516f9f8845028d4d3b96c33417398034a71137d867Jim Grosbach@------------------------------------------------------------------------------
4526f9f8845028d4d3b96c33417398034a71137d867Jim Grosbach@ DBG
4536f9f8845028d4d3b96c33417398034a71137d867Jim Grosbach@------------------------------------------------------------------------------
4546f9f8845028d4d3b96c33417398034a71137d867Jim Grosbach  dbg #0
4556f9f8845028d4d3b96c33417398034a71137d867Jim Grosbach  dbg #5
4566f9f8845028d4d3b96c33417398034a71137d867Jim Grosbach  dbg #15
4576f9f8845028d4d3b96c33417398034a71137d867Jim Grosbach
4586f9f8845028d4d3b96c33417398034a71137d867Jim Grosbach@ CHECK: dbg #0                         @ encoding: [0xf0,0xf0,0x20,0xe3]
4596f9f8845028d4d3b96c33417398034a71137d867Jim Grosbach@ CHECK: dbg #5                         @ encoding: [0xf5,0xf0,0x20,0xe3]
4606f9f8845028d4d3b96c33417398034a71137d867Jim Grosbach@ CHECK: dbg #15                        @ encoding: [0xff,0xf0,0x20,0xe3]
461032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach
462032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach
463032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@------------------------------------------------------------------------------
464032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ DMB
465032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@------------------------------------------------------------------------------
466032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb sy
467032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb st
468032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb sh
469032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb ish
470032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb shst
471032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb ishst
472032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb un
473032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb nsh
474032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb unst
475032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb nshst
476032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb osh
477032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb oshst
478032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach  dmb
479032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach
480032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	sy                      @ encoding: [0x5f,0xf0,0x7f,0xf5]
481032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	st                      @ encoding: [0x5e,0xf0,0x7f,0xf5]
482032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	ish                     @ encoding: [0x5b,0xf0,0x7f,0xf5]
483032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	ish                     @ encoding: [0x5b,0xf0,0x7f,0xf5]
484032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	ishst                   @ encoding: [0x5a,0xf0,0x7f,0xf5]
485032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	ishst                   @ encoding: [0x5a,0xf0,0x7f,0xf5]
486032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	nsh                     @ encoding: [0x57,0xf0,0x7f,0xf5]
487032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	nsh                     @ encoding: [0x57,0xf0,0x7f,0xf5]
488032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	nshst                   @ encoding: [0x56,0xf0,0x7f,0xf5]
489032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	nshst                   @ encoding: [0x56,0xf0,0x7f,0xf5]
490032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	osh                     @ encoding: [0x53,0xf0,0x7f,0xf5]
491032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	oshst                   @ encoding: [0x52,0xf0,0x7f,0xf5]
492032434d622b6cd030a60bb9045a520c93b0d7d68Jim Grosbach@ CHECK: dmb	sy                      @ encoding: [0x5f,0xf0,0x7f,0xf5]
493e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach
494e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@------------------------------------------------------------------------------
495e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ DSB
496e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@------------------------------------------------------------------------------
497e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb sy
498e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb st
499e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb sh
500e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb ish
501e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb shst
502e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb ishst
503e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb un
504e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb nsh
505e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb unst
506e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb nshst
507e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb osh
508e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb oshst
509e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach  dsb
510e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach
511e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	sy                      @ encoding: [0x4f,0xf0,0x7f,0xf5]
512e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	st                      @ encoding: [0x4e,0xf0,0x7f,0xf5]
513e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	ish                     @ encoding: [0x4b,0xf0,0x7f,0xf5]
514e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	ish                     @ encoding: [0x4b,0xf0,0x7f,0xf5]
515e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	ishst                   @ encoding: [0x4a,0xf0,0x7f,0xf5]
516e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	ishst                   @ encoding: [0x4a,0xf0,0x7f,0xf5]
517e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	nsh                     @ encoding: [0x47,0xf0,0x7f,0xf5]
518e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	nsh                     @ encoding: [0x47,0xf0,0x7f,0xf5]
519e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	nshst                   @ encoding: [0x46,0xf0,0x7f,0xf5]
520e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	nshst                   @ encoding: [0x46,0xf0,0x7f,0xf5]
521e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	osh                     @ encoding: [0x43,0xf0,0x7f,0xf5]
522e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	oshst                   @ encoding: [0x42,0xf0,0x7f,0xf5]
523e77494e3e3da59afaa51d1bbcf732fa2851d865dJim Grosbach@ CHECK: dsb	sy                      @ encoding: [0x4f,0xf0,0x7f,0xf5]
52400a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach
52500a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@------------------------------------------------------------------------------
52600a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ EOR
52700a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@------------------------------------------------------------------------------
52800a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, #0xf000
52900a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, r6
53000a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, r6, lsl #5
53100a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, r6, lsr #5
53200a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, r6, lsr #5
53300a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, r6, asr #5
53400a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, r6, ror #5
53500a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r6, r7, r8, lsl r9
53600a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r6, r7, r8, lsr r9
53700a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r6, r7, r8, asr r9
53800a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r6, r7, r8, ror r9
53900a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, r6, rrx
54000a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach
54100a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  @ destination register is optional
54200a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r5, #0xf000
54300a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5
54400a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, lsl #5
54500a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, lsr #5
54600a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, lsr #5
54700a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, asr #5
54800a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, ror #5
54900a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r6, r7, lsl r9
55000a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r6, r7, lsr r9
55100a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r6, r7, asr r9
55200a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r6, r7, ror r9
55300a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach  eor r4, r5, rrx
55400a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach
55500a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r5, #61440          @ encoding: [0x0f,0x4a,0x25,0xe2]
55600a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r5, r6              @ encoding: [0x06,0x40,0x25,0xe0]
55700a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r5, r6, lsl #5      @ encoding: [0x86,0x42,0x25,0xe0]
55800a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x25,0xe0]
55900a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x25,0xe0]
56000a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r5, r6, asr #5      @ encoding: [0xc6,0x42,0x25,0xe0]
56100a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r5, r6, ror #5      @ encoding: [0xe6,0x42,0x25,0xe0]
56200a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r6, r7, r8, lsl r9      @ encoding: [0x18,0x69,0x27,0xe0]
56300a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r6, r7, r8, lsr r9      @ encoding: [0x38,0x69,0x27,0xe0]
56400a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r6, r7, r8, asr r9      @ encoding: [0x58,0x69,0x27,0xe0]
56500a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r6, r7, r8, ror r9      @ encoding: [0x78,0x69,0x27,0xe0]
56600a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r5, r6, rrx         @ encoding: [0x66,0x40,0x25,0xe0]
56700a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach
56800a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach
56900a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r5, r5, #61440          @ encoding: [0x0f,0x5a,0x25,0xe2]
57000a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r4, r5              @ encoding: [0x05,0x40,0x24,0xe0]
57100a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r4, r5, lsl #5      @ encoding: [0x85,0x42,0x24,0xe0]
57200a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x24,0xe0]
57300a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x24,0xe0]
57400a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r4, r5, asr #5      @ encoding: [0xc5,0x42,0x24,0xe0]
57500a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r4, r5, ror #5      @ encoding: [0xe5,0x42,0x24,0xe0]
57600a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r6, r6, r7, lsl r9      @ encoding: [0x17,0x69,0x26,0xe0]
57700a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r6, r6, r7, lsr r9      @ encoding: [0x37,0x69,0x26,0xe0]
57800a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r6, r6, r7, asr r9      @ encoding: [0x57,0x69,0x26,0xe0]
57900a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r6, r6, r7, ror r9      @ encoding: [0x77,0x69,0x26,0xe0]
58000a66653cbe56dfbdb831172b54097bf8256a191Jim Grosbach@ CHECK: eor	r4, r4, r5, rrx         @ encoding: [0x65,0x40,0x24,0xe0]
581791feea10071223886e2fe2bfa0e1f4cb2c0ce74Jim Grosbach
582791feea10071223886e2fe2bfa0e1f4cb2c0ce74Jim Grosbach
583791feea10071223886e2fe2bfa0e1f4cb2c0ce74Jim Grosbach@------------------------------------------------------------------------------
584791feea10071223886e2fe2bfa0e1f4cb2c0ce74Jim Grosbach@ ISB
585791feea10071223886e2fe2bfa0e1f4cb2c0ce74Jim Grosbach@------------------------------------------------------------------------------
586791feea10071223886e2fe2bfa0e1f4cb2c0ce74Jim Grosbach        isb sy
587791feea10071223886e2fe2bfa0e1f4cb2c0ce74Jim Grosbach        isb
588791feea10071223886e2fe2bfa0e1f4cb2c0ce74Jim Grosbach
589791feea10071223886e2fe2bfa0e1f4cb2c0ce74Jim Grosbach@ CHECK: isb sy                         @ encoding: [0x6f,0xf0,0x7f,0xf5]
590791feea10071223886e2fe2bfa0e1f4cb2c0ce74Jim Grosbach@ CHECK: isb sy                         @ encoding: [0x6f,0xf0,0x7f,0xf5]
5913b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach
5923b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach
5933b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach
5943b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@------------------------------------------------------------------------------
5953b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ LDM*
5963b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@------------------------------------------------------------------------------
5973b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        ldm       r2, {r1,r3-r6,sp}
5983b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        ldmia     r2, {r1,r3-r6,sp}
5993b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        ldmib     r2, {r1,r3-r6,sp}
6003b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        ldmda     r2, {r1,r3-r6,sp}
6013b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        ldmdb     r2, {r1,r3-r6,sp}
6023b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        ldmfd     r2, {r1,r3-r6,sp}
6033b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach
6043b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        @ with update
6053b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        ldm       r2!, {r1,r3-r6,sp}
6063b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        ldmib     r2!, {r1,r3-r6,sp}
6073b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        ldmda     r2!, {r1,r3-r6,sp}
6083b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        ldmdb     r2!, {r1,r3-r6,sp}
6093b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach
6103b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: ldm   r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8]
6113b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: ldm   r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8]
6123b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: ldmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe9]
6133b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: ldmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe8]
6143b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: ldmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe9]
6153b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: ldm   r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8]
6163b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach
6173b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: ldm   r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe8]
6183b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: ldmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe9]
6193b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: ldmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe8]
6203b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: ldmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe9]
6213b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach
6223b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach
6233b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@------------------------------------------------------------------------------
6243b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ STM*
6253b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@------------------------------------------------------------------------------
6263b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        stm       r2, {r1,r3-r6,sp}
6273b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        stmia     r2, {r1,r3-r6,sp}
6283b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        stmib     r2, {r1,r3-r6,sp}
6293b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        stmda     r2, {r1,r3-r6,sp}
6303b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        stmdb     r2, {r1,r3-r6,sp}
6313b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        stmfd     r2, {r1,r3-r6,sp}
6323b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach
6333b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        @ with update
6343b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        stmia     r2!, {r1,r3-r6,sp}
6353b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        stmib     r2!, {r1,r3-r6,sp}
6363b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        stmda     r2!, {r1,r3-r6,sp}
6373b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach        stmdb     r2!, {r1,r3-r6,sp}
6383b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: stm   r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe8]
6393b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: stm   r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe8]
6403b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: stmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe9]
6413b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: stmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe8]
6423b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: stmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe9]
6433b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: stmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x02,0xe9]
6443b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach
6453b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: stm   r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa2,0xe8]
6463b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: stmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa2,0xe9]
6473b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: stmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x22,0xe8]
6483b14a5c5469176effb921d91d4494f0aa2919fd0Jim Grosbach@ CHECK: stmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x22,0xe9]
649