basic-arm-instructions.s revision ed398468b51c6eb5b2c9a5bccc8669854cf589a8
1b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ RUN: llvm-mc -triple=armv7-apple-darwin -show-encoding < %s | FileCheck %s
2b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  .syntax unified
3b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  .globl _func
4b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
5b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ Check that the assembler can handle the documented syntax from the ARM ARM.
6b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ For complex constructs like shifter operands, check more thoroughly for them
7b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ once then spot check that following instructions accept the form generally.
8b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ This gives us good coverage while keeping the overall size of the test
9b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ more reasonable.
10b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
11b1928704201034c785a26296a49f69355eb56a05Nick Lewycky_func:
12b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: _func
13b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
14b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
15b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ ADC (immediate)
16b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
17b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r1, r2, #0xf
18b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r1, r2, #0xf0
19b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r1, r2, #0xf00
20b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r1, r2, #0xf000
210bcbd1df7a204e1e512f1a27066d725309de1b13Bill Wendling  adc r1, r2, #0xf0000
2206cb8ed00696eb14d1b831921452e50ec0568ea2Chandler Carruth  adc r1, r2, #0xf00000
2306cb8ed00696eb14d1b831921452e50ec0568ea2Chandler Carruth  adc r1, r2, #0xf000000
24b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r1, r2, #0xf0000000
25b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r1, r2, #0xf000000f
26b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adcs r1, r2, #0xf00
27b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adcseq r1, r2, #0xf00
2806cb8ed00696eb14d1b831921452e50ec0568ea2Chandler Carruth  adceq r1, r2, #0xf00
29b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
30b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r1, r2, #15             @ encoding: [0x0f,0x10,0xa2,0xe2]
31b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r1, r2, #240            @ encoding: [0xf0,0x10,0xa2,0xe2]
3206cb8ed00696eb14d1b831921452e50ec0568ea2Chandler Carruth@ CHECK: adc	r1, r2, #3840           @ encoding: [0x0f,0x1c,0xa2,0xe2]
3306cb8ed00696eb14d1b831921452e50ec0568ea2Chandler Carruth@ CHECK: adc	r1, r2, #61440          @ encoding: [0x0f,0x1a,0xa2,0xe2]
3406cb8ed00696eb14d1b831921452e50ec0568ea2Chandler Carruth@ CHECK: adc	r1, r2, #983040         @ encoding: [0x0f,0x18,0xa2,0xe2]
3506cb8ed00696eb14d1b831921452e50ec0568ea2Chandler Carruth@ CHECK: adc	r1, r2, #15728640       @ encoding: [0x0f,0x16,0xa2,0xe2]
3606cb8ed00696eb14d1b831921452e50ec0568ea2Chandler Carruth@ CHECK: adc	r1, r2, #251658240      @ encoding: [0x0f,0x14,0xa2,0xe2]
3706cb8ed00696eb14d1b831921452e50ec0568ea2Chandler Carruth@ CHECK: adc	r1, r2, #4026531840     @ encoding: [0x0f,0x12,0xa2,0xe2]
38b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r1, r2, #4026531855     @ encoding: [0xff,0x12,0xa2,0xe2]
39b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
40b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adcs	r1, r2, #3840           @ encoding: [0x0f,0x1c,0xb2,0xe2]
41b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adcseq	r1, r2, #3840           @ encoding: [0x0f,0x1c,0xb2,0x02]
42b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adceq	r1, r2, #3840           @ encoding: [0x0f,0x1c,0xa2,0x02]
43b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
44b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
45b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ ADC (register)
46a61e52c9b7cf874b46cef687c1c4627a35952542Nick Lewycky@ ADC (shifted register)
47bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@------------------------------------------------------------------------------
48bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  adc r4, r5, r6
49a61e52c9b7cf874b46cef687c1c4627a35952542Nick Lewycky  @ Constant shifts
50a61e52c9b7cf874b46cef687c1c4627a35952542Nick Lewycky  adc r4, r5, r6, lsl #1
51bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  adc r4, r5, r6, lsl #31
52bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  adc r4, r5, r6, lsr #1
53f5c95b889f270f170ff4f6a24b082be5bb68296eBill Wendling  adc r4, r5, r6, lsr #31
54bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  adc r4, r5, r6, lsr #32
55a61e52c9b7cf874b46cef687c1c4627a35952542Nick Lewycky  adc r4, r5, r6, asr #1
56b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r4, r5, r6, asr #31
57b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r4, r5, r6, asr #32
58b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r4, r5, r6, ror #1
59b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r4, r5, r6, ror #31
60b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
61b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  @ Register shifts
62269687fa350c1aa044bc063c64362a04ecabaa33Nick Lewycky  adc r6, r7, r8, lsl r9
63269687fa350c1aa044bc063c64362a04ecabaa33Nick Lewycky  adc r6, r7, r8, lsr r9
64b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r6, r7, r8, asr r9
65f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  adc r6, r7, r8, ror r9
66b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r4, r5, r6, rrx
670c4de8a4eb5fd6437b571611794ef84427fc4755Nick Lewycky
680c4de8a4eb5fd6437b571611794ef84427fc4755Nick Lewycky  @ Destination register is optional
69f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  adc r5, r6
700c4de8a4eb5fd6437b571611794ef84427fc4755Nick Lewycky  adc r4, r5, lsl #1
71b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r4, r5, lsl #31
72b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r4, r5, lsr #1
7377b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling  adc r4, r5, lsr #31
74b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r4, r5, lsr #32
75b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r4, r5, asr #1
76b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r4, r5, asr #31
77b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  adc r4, r5, asr #32
781790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  adc r4, r5, ror #1
791790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  adc r4, r5, ror #31
801790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  adc r4, r5, rrx
811790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  adc r6, r7, lsl r9
821790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  adc r6, r7, lsr r9
831790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  adc r6, r7, asr r9
841790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  adc r6, r7, ror r9
851790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  adc r4, r5, rrx
861790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
871790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: adc	r4, r5, r6              @ encoding: [0x06,0x40,0xa5,0xe0]
881790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
89b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r4, r5, r6, lsl #1      @ encoding: [0x86,0x40,0xa5,0xe0]
90b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r4, r5, r6, lsl #31     @ encoding: [0x86,0x4f,0xa5,0xe0]
9121b742ffce7bec3d71e09c7c6d901a756d55feb3Bill Wendling@ CHECK: adc	r4, r5, r6, lsr #1      @ encoding: [0xa6,0x40,0xa5,0xe0]
9277b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: adc	r4, r5, r6, lsr #31     @ encoding: [0xa6,0x4f,0xa5,0xe0]
93253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: adc	r4, r5, r6, lsr #32     @ encoding: [0x26,0x40,0xa5,0xe0]
94b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r4, r5, r6, asr #1      @ encoding: [0xc6,0x40,0xa5,0xe0]
9573996f44070df026e4d969b1b68461a70ebb3993Bill Wendling@ CHECK: adc	r4, r5, r6, asr #31     @ encoding: [0xc6,0x4f,0xa5,0xe0]
96269687fa350c1aa044bc063c64362a04ecabaa33Nick Lewycky@ CHECK: adc	r4, r5, r6, asr #32     @ encoding: [0x46,0x40,0xa5,0xe0]
97a61e52c9b7cf874b46cef687c1c4627a35952542Nick Lewycky@ CHECK: adc	r4, r5, r6, ror #1      @ encoding: [0xe6,0x40,0xa5,0xe0]
98a61e52c9b7cf874b46cef687c1c4627a35952542Nick Lewycky@ CHECK: adc	r4, r5, r6, ror #31     @ encoding: [0xe6,0x4f,0xa5,0xe0]
99f5c95b889f270f170ff4f6a24b082be5bb68296eBill Wendling
100bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: adc	r6, r7, r8, lsl r9      @ encoding: [0x18,0x69,0xa7,0xe0]
101a61e52c9b7cf874b46cef687c1c4627a35952542Nick Lewycky@ CHECK: adc	r6, r7, r8, lsr r9      @ encoding: [0x38,0x69,0xa7,0xe0]
1021790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: adc	r6, r7, r8, asr r9      @ encoding: [0x58,0x69,0xa7,0xe0]
103b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r6, r7, r8, ror r9      @ encoding: [0x78,0x69,0xa7,0xe0]
104b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r4, r5, r6, rrx         @ encoding: [0x66,0x40,0xa5,0xe0]
105b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
106b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r5, r5, r6              @ encoding: [0x06,0x50,0xa5,0xe0]
107b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r4, r4, r5, lsl #1      @ encoding: [0x85,0x40,0xa4,0xe0]
108b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r4, r4, r5, lsl #31     @ encoding: [0x85,0x4f,0xa4,0xe0]
109b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r4, r4, r5, lsr #1      @ encoding: [0xa5,0x40,0xa4,0xe0]
110b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r4, r4, r5, lsr #31     @ encoding: [0xa5,0x4f,0xa4,0xe0]
111f5c95b889f270f170ff4f6a24b082be5bb68296eBill Wendling@ CHECK: adc	r4, r4, r5, lsr #32     @ encoding: [0x25,0x40,0xa4,0xe0]
1127c0674100443b4115d2fd6472e59cd8dcb9cc6d4Nick Lewycky@ CHECK: adc	r4, r4, r5, asr #1      @ encoding: [0xc5,0x40,0xa4,0xe0]
1137c0674100443b4115d2fd6472e59cd8dcb9cc6d4Nick Lewycky@ CHECK: adc	r4, r4, r5, asr #31     @ encoding: [0xc5,0x4f,0xa4,0xe0]
1147c0674100443b4115d2fd6472e59cd8dcb9cc6d4Nick Lewycky@ CHECK: adc	r4, r4, r5, asr #32     @ encoding: [0x45,0x40,0xa4,0xe0]
115a61e52c9b7cf874b46cef687c1c4627a35952542Nick Lewycky@ CHECK: adc	r4, r4, r5, ror #1      @ encoding: [0xe5,0x40,0xa4,0xe0]
116b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r4, r4, r5, ror #31     @ encoding: [0xe5,0x4f,0xa4,0xe0]
117b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r4, r4, r5, rrx         @ encoding: [0x65,0x40,0xa4,0xe0]
118b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r6, r6, r7, lsl r9      @ encoding: [0x17,0x69,0xa6,0xe0]
119b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: adc	r6, r6, r7, lsr r9      @ encoding: [0x37,0x69,0xa6,0xe0]
1201790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: adc	r6, r6, r7, asr r9      @ encoding: [0x57,0x69,0xa6,0xe0]
1211790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: adc	r6, r6, r7, ror r9      @ encoding: [0x77,0x69,0xa6,0xe0]
1221790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: adc	r4, r4, r5, rrx         @ encoding: [0x65,0x40,0xa4,0xe0]
1231790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
124b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
125b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
126b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ FIXME: ADR
1271790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@------------------------------------------------------------------------------
1281790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
129b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
130b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ ADD
1311790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@------------------------------------------------------------------------------
1321790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  add r4, r5, #0xf000
133b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r4, r5, r6
134b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r4, r5, r6, lsl #5
135b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r4, r5, r6, lsr #5
136b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r4, r5, r6, lsr #5
1371790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  add r4, r5, r6, asr #5
138b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r4, r5, r6, ror #5
13917df2c3240837b4382898ead8c3ead407a338520Nick Lewycky  add r6, r7, r8, lsl r9
14017df2c3240837b4382898ead8c3ead407a338520Nick Lewycky  add r6, r7, r8, lsr r9
141d363ff334d796c7f3df834d928a10d88ed758454Nick Lewycky  add r6, r7, r8, asr r9
142b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r6, r7, r8, ror r9
143b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r4, r5, r6, rrx
1441790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
1451790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  @ destination register is optional
1461790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  add r5, #0xf000
1471790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  add r4, r5
148b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r4, r5, lsl #5
149b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r4, r5, lsr #5
1507a2ba2fbe4b0ccaacc2cedbc1bfd2a3764170efeNick Lewycky  add r4, r5, lsr #5
1517a2ba2fbe4b0ccaacc2cedbc1bfd2a3764170efeNick Lewycky  add r4, r5, asr #5
1527a2ba2fbe4b0ccaacc2cedbc1bfd2a3764170efeNick Lewycky  add r4, r5, ror #5
153b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r6, r7, lsl r9
154b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r6, r7, lsr r9
155b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r6, r7, asr r9
156b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  add r6, r7, ror r9
1571790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  add r4, r5, rrx
1581790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
1591790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: add	r4, r5, #61440          @ encoding: [0x0f,0x4a,0x85,0xe2]
1601790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: add	r4, r5, r6              @ encoding: [0x06,0x40,0x85,0xe0]
161b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: add	r4, r5, r6, lsl #5      @ encoding: [0x86,0x42,0x85,0xe0]
162b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: add	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x85,0xe0]
163b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: add	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x85,0xe0]
164b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: add	r4, r5, r6, asr #5      @ encoding: [0xc6,0x42,0x85,0xe0]
165b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: add	r4, r5, r6, ror #5      @ encoding: [0xe6,0x42,0x85,0xe0]
16616c19a155c65fd41865562fe4e678ef32728510bDevang Patel@ CHECK: add	r6, r7, r8, lsl r9      @ encoding: [0x18,0x69,0x87,0xe0]
16716c19a155c65fd41865562fe4e678ef32728510bDevang Patel@ CHECK: add	r6, r7, r8, lsr r9      @ encoding: [0x38,0x69,0x87,0xe0]
168b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: add	r6, r7, r8, asr r9      @ encoding: [0x58,0x69,0x87,0xe0]
169b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: add	r6, r7, r8, ror r9      @ encoding: [0x78,0x69,0x87,0xe0]
1701790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: add	r4, r5, r6, rrx         @ encoding: [0x66,0x40,0x85,0xe0]
1711790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
172b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
173b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: add	r5, r5, #61440          @ encoding: [0x0f,0x5a,0x85,0xe2]
1741790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: add	r4, r4, r5              @ encoding: [0x05,0x40,0x84,0xe0]
175bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: add	r4, r4, r5, lsl #5      @ encoding: [0x85,0x42,0x84,0xe0]
17616c19a155c65fd41865562fe4e678ef32728510bDevang Patel@ CHECK: add	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x84,0xe0]
177b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: add	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x84,0xe0]
178b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: add	r4, r4, r5, asr #5      @ encoding: [0xc5,0x42,0x84,0xe0]
17916c19a155c65fd41865562fe4e678ef32728510bDevang Patel@ CHECK: add	r4, r4, r5, ror #5      @ encoding: [0xe5,0x42,0x84,0xe0]
18016c19a155c65fd41865562fe4e678ef32728510bDevang Patel@ CHECK: add	r6, r6, r7, lsl r9      @ encoding: [0x17,0x69,0x86,0xe0]
18116c19a155c65fd41865562fe4e678ef32728510bDevang Patel@ CHECK: add	r6, r6, r7, lsr r9      @ encoding: [0x37,0x69,0x86,0xe0]
18216c19a155c65fd41865562fe4e678ef32728510bDevang Patel@ CHECK: add	r6, r6, r7, asr r9      @ encoding: [0x57,0x69,0x86,0xe0]
18316c19a155c65fd41865562fe4e678ef32728510bDevang Patel@ CHECK: add	r6, r6, r7, ror r9      @ encoding: [0x77,0x69,0x86,0xe0]
18416c19a155c65fd41865562fe4e678ef32728510bDevang Patel@ CHECK: add	r4, r4, r5, rrx         @ encoding: [0x65,0x40,0x84,0xe0]
185b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
18616c19a155c65fd41865562fe4e678ef32728510bDevang Patel
18716c19a155c65fd41865562fe4e678ef32728510bDevang Patel@------------------------------------------------------------------------------
188b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ AND
189b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
190b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r10, r1, #0xf
191680018ff8965610b3f1c976b0be1dfd45116b218Devang Patel  and r10, r1, r6
19216c19a155c65fd41865562fe4e678ef32728510bDevang Patel  and r10, r1, r6, lsl #10
1931790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  and r10, r1, r6, lsr #10
194b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r10, r1, r6, lsr #10
195b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r10, r1, r6, asr #10
196b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r10, r1, r6, ror #10
197b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r6, r7, r8, lsl r2
198b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r6, r7, r8, lsr r2
199b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r6, r7, r8, asr r2
200b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r6, r7, r8, ror r2
20168155d31cd0175be89e26ee68387cb411fca537bDevang Patel  and r10, r1, r6, rrx
2021790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
2031790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  @ destination register is optional
20416c19a155c65fd41865562fe4e678ef32728510bDevang Patel  and r1, #0xf
205b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r10, r1
2061790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  and r10, r1, lsl #10
207b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r10, r1, lsr #10
208b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r10, r1, lsr #10
2091790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  and r10, r1, asr #10
2101790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  and r10, r1, ror #10
211b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r6, r7, lsl r2
212b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  and r6, r7, lsr r2
2131790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  and r6, r7, asr r2
2141790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  and r6, r7, ror r2
2151790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  and r10, r1, rrx
2161790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
21716c19a155c65fd41865562fe4e678ef32728510bDevang Patel@ CHECK: and	r10, r1, #15            @ encoding: [0x0f,0xa0,0x01,0xe2]
218b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: and	r10, r1, r6             @ encoding: [0x06,0xa0,0x01,0xe0]
219b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: and	r10, r1, r6, lsl #10    @ encoding: [0x06,0xa5,0x01,0xe0]
2201790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: and	r10, r1, r6, lsr #10    @ encoding: [0x26,0xa5,0x01,0xe0]
2211790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: and	r10, r1, r6, lsr #10    @ encoding: [0x26,0xa5,0x01,0xe0]
2221790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: and	r10, r1, r6, asr #10    @ encoding: [0x46,0xa5,0x01,0xe0]
2231790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: and	r10, r1, r6, ror #10    @ encoding: [0x66,0xa5,0x01,0xe0]
22416c19a155c65fd41865562fe4e678ef32728510bDevang Patel@ CHECK: and	r6, r7, r8, lsl r2      @ encoding: [0x18,0x62,0x07,0xe0]
22516c19a155c65fd41865562fe4e678ef32728510bDevang Patel@ CHECK: and	r6, r7, r8, lsr r2      @ encoding: [0x38,0x62,0x07,0xe0]
2261790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: and	r6, r7, r8, asr r2      @ encoding: [0x58,0x62,0x07,0xe0]
2271790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: and	r6, r7, r8, ror r2      @ encoding: [0x78,0x62,0x07,0xe0]
228b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: and	r10, r1, r6, rrx        @ encoding: [0x66,0xa0,0x01,0xe0]
229b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
230b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: and	r1, r1, #15             @ encoding: [0x0f,0x10,0x01,0xe2]
2311790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: and	r10, r10, r1            @ encoding: [0x01,0xa0,0x0a,0xe0]
232b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: and	r10, r10, r1, lsl #10   @ encoding: [0x01,0xa5,0x0a,0xe0]
233b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: and	r10, r10, r1, lsr #10   @ encoding: [0x21,0xa5,0x0a,0xe0]
234b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: and	r10, r10, r1, lsr #10   @ encoding: [0x21,0xa5,0x0a,0xe0]
235b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: and	r10, r10, r1, asr #10   @ encoding: [0x41,0xa5,0x0a,0xe0]
236b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: and	r10, r10, r1, ror #10   @ encoding: [0x61,0xa5,0x0a,0xe0]
2371790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: and	r6, r6, r7, lsl r2      @ encoding: [0x17,0x62,0x06,0xe0]
2381790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: and	r6, r6, r7, lsr r2      @ encoding: [0x37,0x62,0x06,0xe0]
239b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: and	r6, r6, r7, asr r2      @ encoding: [0x57,0x62,0x06,0xe0]
240b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: and	r6, r6, r7, ror r2      @ encoding: [0x77,0x62,0x06,0xe0]
241b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: and	r10, r10, r1, rrx       @ encoding: [0x61,0xa0,0x0a,0xe0]
2421790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
2431790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@------------------------------------------------------------------------------
2441790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ FIXME: ASR
245b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
246b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
247b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ FIXME: B
248b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
249b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
250b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ FIXME: BFC
251b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
252bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@------------------------------------------------------------------------------
253bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ FIXME: BFI
254b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
255b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
256b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
257bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ BIC
258b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
259b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  bic r10, r1, #0xf
2601790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  bic r10, r1, r6
261b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  bic r10, r1, r6, lsl #10
2621790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  bic r10, r1, r6, lsr #10
2631790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  bic r10, r1, r6, lsr #10
2641790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  bic r10, r1, r6, asr #10
265f5c95b889f270f170ff4f6a24b082be5bb68296eBill Wendling  bic r10, r1, r6, ror #10
2661790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  bic r6, r7, r8, lsl r2
267bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  bic r6, r7, r8, lsr r2
268bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  bic r6, r7, r8, asr r2
2691790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  bic r6, r7, r8, ror r2
2701790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  bic r10, r1, r6, rrx
2711790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
272bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  @ destination register is optional
273bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  bic r1, #0xf
274bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  bic r10, r1
2751790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  bic r10, r1, lsl #10
2761790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  bic r10, r1, lsr #10
2771790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  bic r10, r1, lsr #10
278b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  bic r10, r1, asr #10
279b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  bic r10, r1, ror #10
280b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  bic r6, r7, lsl r2
2811790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  bic r6, r7, lsr r2
2821790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  bic r6, r7, asr r2
283b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  bic r6, r7, ror r2
284b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  bic r10, r1, rrx
2851790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
2861790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r10, r1, #15            @ encoding: [0x0f,0xa0,0xc1,0xe3]
287b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: bic	r10, r1, r6             @ encoding: [0x06,0xa0,0xc1,0xe1]
288b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: bic	r10, r1, r6, lsl #10    @ encoding: [0x06,0xa5,0xc1,0xe1]
2891790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r10, r1, r6, lsr #10    @ encoding: [0x26,0xa5,0xc1,0xe1]
2901790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r10, r1, r6, lsr #10    @ encoding: [0x26,0xa5,0xc1,0xe1]
291a4c4c0e1298f4dd9791eff2bae857e7be6d0ab56Nick Lewycky@ CHECK: bic	r10, r1, r6, asr #10    @ encoding: [0x46,0xa5,0xc1,0xe1]
292a4c4c0e1298f4dd9791eff2bae857e7be6d0ab56Nick Lewycky@ CHECK: bic	r10, r1, r6, ror #10    @ encoding: [0x66,0xa5,0xc1,0xe1]
2931790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r6, r7, r8, lsl r2      @ encoding: [0x18,0x62,0xc7,0xe1]
294b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: bic	r6, r7, r8, lsr r2      @ encoding: [0x38,0x62,0xc7,0xe1]
2951790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r6, r7, r8, asr r2      @ encoding: [0x58,0x62,0xc7,0xe1]
2961790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r6, r7, r8, ror r2      @ encoding: [0x78,0x62,0xc7,0xe1]
2971790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r10, r1, r6, rrx        @ encoding: [0x66,0xa0,0xc1,0xe1]
2981790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
299b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
300bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: bic	r1, r1, #15             @ encoding: [0x0f,0x10,0xc1,0xe3]
301b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: bic	r10, r10, r1            @ encoding: [0x01,0xa0,0xca,0xe1]
302b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: bic	r10, r10, r1, lsl #10   @ encoding: [0x01,0xa5,0xca,0xe1]
3031790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r10, r10, r1, lsr #10   @ encoding: [0x21,0xa5,0xca,0xe1]
3041790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r10, r10, r1, lsr #10   @ encoding: [0x21,0xa5,0xca,0xe1]
3051790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r10, r10, r1, asr #10   @ encoding: [0x41,0xa5,0xca,0xe1]
3061790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r10, r10, r1, ror #10   @ encoding: [0x61,0xa5,0xca,0xe1]
3071790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r6, r6, r7, lsl r2      @ encoding: [0x17,0x62,0xc6,0xe1]
3081790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r6, r6, r7, lsr r2      @ encoding: [0x37,0x62,0xc6,0xe1]
3091790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r6, r6, r7, asr r2      @ encoding: [0x57,0x62,0xc6,0xe1]
3101790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r6, r6, r7, ror r2      @ encoding: [0x77,0x62,0xc6,0xe1]
3111790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bic	r10, r10, r1, rrx       @ encoding: [0x61,0xa0,0xca,0xe1]
312bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky
313bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@------------------------------------------------------------------------------
3141790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ BKPT
3151790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@------------------------------------------------------------------------------
316b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  bkpt #10
317b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  bkpt #65535
318b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
319b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: bkpt  #10                      @ encoding: [0x7a,0x00,0x20,0xe1]
3201790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: bkpt  #65535                   @ encoding: [0x7f,0xff,0x2f,0xe1]
3211790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
3221790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@------------------------------------------------------------------------------
323b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ BL/BLX (immediate)
324b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
325b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
326b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  bl _bar
3271790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  @ FIXME: blx _bar
3281790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
329b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: bl  _bar @ encoding: [A,A,A,0xeb]
330b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK:   @   fixup A - offset: 0, value: _bar, kind: fixup_arm_uncondbranch
331b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
33273996f44070df026e4d969b1b68461a70ebb3993Bill Wendling@------------------------------------------------------------------------------
333269687fa350c1aa044bc063c64362a04ecabaa33Nick Lewycky@ BLX (register)
334269687fa350c1aa044bc063c64362a04ecabaa33Nick Lewycky@------------------------------------------------------------------------------
335269687fa350c1aa044bc063c64362a04ecabaa33Nick Lewycky  blx r2
336269687fa350c1aa044bc063c64362a04ecabaa33Nick Lewycky  blxne r2
337fcf74ed5a2bc10570dec2084a2db1f6580b1210dNick Lewycky
338269687fa350c1aa044bc063c64362a04ecabaa33Nick Lewycky@ CHECK: blx r2                         @ encoding: [0x32,0xff,0x2f,0xe1]
339fcf74ed5a2bc10570dec2084a2db1f6580b1210dNick Lewycky@ CHECK: blxne r2                       @ encoding: [0x32,0xff,0x2f,0x11]
340fcf74ed5a2bc10570dec2084a2db1f6580b1210dNick Lewycky
3416e5190c193f6267893daf6943af88e95039e739cBill Wendling@------------------------------------------------------------------------------
3426e5190c193f6267893daf6943af88e95039e739cBill Wendling@ BX
3436e5190c193f6267893daf6943af88e95039e739cBill Wendling@------------------------------------------------------------------------------
344fcf74ed5a2bc10570dec2084a2db1f6580b1210dNick Lewycky
345269687fa350c1aa044bc063c64362a04ecabaa33Nick Lewycky  bx r2
346269687fa350c1aa044bc063c64362a04ecabaa33Nick Lewycky  bxne r2
347fcf74ed5a2bc10570dec2084a2db1f6580b1210dNick Lewycky
3486e5190c193f6267893daf6943af88e95039e739cBill Wendling@ CHECK: bx	r2                      @ encoding: [0x12,0xff,0x2f,0xe1]
349fcf74ed5a2bc10570dec2084a2db1f6580b1210dNick Lewycky@ CHECK: bxne	r2                      @ encoding: [0x12,0xff,0x2f,0x11]
3506e5190c193f6267893daf6943af88e95039e739cBill Wendling
351269687fa350c1aa044bc063c64362a04ecabaa33Nick Lewycky@------------------------------------------------------------------------------
352269687fa350c1aa044bc063c64362a04ecabaa33Nick Lewycky@ BXJ
3530c4de8a4eb5fd6437b571611794ef84427fc4755Nick Lewycky@------------------------------------------------------------------------------
3541790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
3550c4de8a4eb5fd6437b571611794ef84427fc4755Nick Lewycky  bxj r2
3560c4de8a4eb5fd6437b571611794ef84427fc4755Nick Lewycky  bxjne r2
357f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
358f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: bxj	r2                      @ encoding: [0x22,0xff,0x2f,0xe1]
359a61e52c9b7cf874b46cef687c1c4627a35952542Nick Lewycky@ CHECK: bxjne	r2                      @ encoding: [0x22,0xff,0x2f,0x11]
3600c4de8a4eb5fd6437b571611794ef84427fc4755Nick Lewycky
3610c4de8a4eb5fd6437b571611794ef84427fc4755Nick Lewycky@------------------------------------------------------------------------------
362f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ FIXME: CBNZ/CBZ
363f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@------------------------------------------------------------------------------
364bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky
365bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky
366bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@------------------------------------------------------------------------------
367bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CDP/CDP2
368bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@------------------------------------------------------------------------------
369bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cdp  p7, #1, c1, c1, c1, #4
370bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cdp2  p7, #1, c1, c1, c1, #4
371bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky
372bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: cdp  p7, #1, c1, c1, c1, #4     @ encoding: [0x81,0x17,0x11,0xee]
373bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: cdp2  p7, #1, c1, c1, c1, #4    @ encoding: [0x81,0x17,0x11,0xfe]
374bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky
375bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky
376bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@------------------------------------------------------------------------------
377bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CLREX
378bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@------------------------------------------------------------------------------
379bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  clrex
380bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky
381bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: clrex                           @ encoding: [0x1f,0xf0,0x7f,0xf5]
382bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky
383bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky
384bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@------------------------------------------------------------------------------
385bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CLZ
386bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@------------------------------------------------------------------------------
387bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  clz r1, r2
388bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  clzeq r1, r2
389bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky
390bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: clz r1, r2                      @ encoding: [0x12,0x1f,0x6f,0xe1]
391bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: clzeq r1, r2                    @ encoding: [0x12,0x1f,0x6f,0x01]
392bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky
393bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@------------------------------------------------------------------------------
394bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CMN
395f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@------------------------------------------------------------------------------
396bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cmn r1, #0xf
397bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cmn r1, r6
398bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cmn r1, r6, lsl #10
399bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cmn r1, r6, lsr #10
400bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cmn sp, r6, lsr #10
401bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cmn r1, r6, asr #10
402bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cmn r1, r6, ror #10
403bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cmn r7, r8, lsl r2
404bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cmn sp, r8, lsr r2
405bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cmn r7, r8, asr r2
406bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cmn r7, r8, ror r2
407bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky  cmn r1, r6, rrx
408bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky
409bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: cmn	r1, #15                 @ encoding: [0x0f,0x00,0x71,0xe3]
410bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: cmn	r1, r6                  @ encoding: [0x06,0x00,0x71,0xe1]
411b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: cmn	r1, r6, lsl #10         @ encoding: [0x06,0x05,0x71,0xe1]
412b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: cmn	r1, r6, lsr #10         @ encoding: [0x26,0x05,0x71,0xe1]
413bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: cmn	sp, r6, lsr #10         @ encoding: [0x26,0x05,0x7d,0xe1]
414b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: cmn	r1, r6, asr #10         @ encoding: [0x46,0x05,0x71,0xe1]
415bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: cmn	r1, r6, ror #10         @ encoding: [0x66,0x05,0x71,0xe1]
416bba40db07234cef7867b45c67f50632e684cbb15Nick Lewycky@ CHECK: cmn	r7, r8, lsl r2          @ encoding: [0x18,0x02,0x77,0xe1]
417b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: cmn	sp, r8, lsr r2          @ encoding: [0x38,0x02,0x7d,0xe1]
418b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: cmn	r7, r8, asr r2          @ encoding: [0x58,0x02,0x77,0xe1]
419b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: cmn	r7, r8, ror r2          @ encoding: [0x78,0x02,0x77,0xe1]
420f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: cmn	r1, r6, rrx             @ encoding: [0x66,0x00,0x71,0xe1]
421f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
422f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@------------------------------------------------------------------------------
423f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CMP
424f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@------------------------------------------------------------------------------
42577b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling  cmp r1, #0xf
426f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  cmp r1, r6
427f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  cmp r1, r6, lsl #10
428f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  cmp r1, r6, lsr #10
429f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  cmp sp, r6, lsr #10
430f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  cmp r1, r6, asr #10
431f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  cmp r1, r6, ror #10
432f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  cmp r7, r8, lsl r2
433f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  cmp sp, r8, lsr r2
434f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  cmp r7, r8, asr r2
435f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  cmp r7, r8, ror r2
436f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  cmp r1, r6, rrx
437f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
438f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: cmp	r1, #15                 @ encoding: [0x0f,0x00,0x51,0xe3]
439f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: cmp	r1, r6                  @ encoding: [0x06,0x00,0x51,0xe1]
440f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: cmp	r1, r6, lsl #10         @ encoding: [0x06,0x05,0x51,0xe1]
441f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: cmp	r1, r6, lsr #10         @ encoding: [0x26,0x05,0x51,0xe1]
442f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: cmp	sp, r6, lsr #10         @ encoding: [0x26,0x05,0x5d,0xe1]
443f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: cmp	r1, r6, asr #10         @ encoding: [0x46,0x05,0x51,0xe1]
444f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: cmp	r1, r6, ror #10         @ encoding: [0x66,0x05,0x51,0xe1]
445f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: cmp	r7, r8, lsl r2          @ encoding: [0x18,0x02,0x57,0xe1]
4461790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: cmp	sp, r8, lsr r2          @ encoding: [0x38,0x02,0x5d,0xe1]
447f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: cmp	r7, r8, asr r2          @ encoding: [0x58,0x02,0x57,0xe1]
4481790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: cmp	r7, r8, ror r2          @ encoding: [0x78,0x02,0x57,0xe1]
449b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: cmp	r1, r6, rrx             @ encoding: [0x66,0x00,0x51,0xe1]
4501790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
451ce718ff9f42c7da092eaa01dd0242e8d5ba84713Hans Wennborg@------------------------------------------------------------------------------
452f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ DBG
453f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@------------------------------------------------------------------------------
454f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dbg #0
455f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dbg #5
456f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dbg #15
457f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
458f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dbg #0                         @ encoding: [0xf0,0xf0,0x20,0xe3]
459f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dbg #5                         @ encoding: [0xf5,0xf0,0x20,0xe3]
460f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dbg #15                        @ encoding: [0xff,0xf0,0x20,0xe3]
461f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
462f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
463f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@------------------------------------------------------------------------------
464f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ DMB
465f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@------------------------------------------------------------------------------
466f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dmb sy
467f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dmb st
468f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dmb sh
469f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dmb ish
470f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dmb shst
471f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dmb ishst
472f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dmb un
473b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  dmb nsh
4741790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  dmb unst
4751790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  dmb nshst
476f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dmb osh
477f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dmb oshst
478f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dmb
479f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
480f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dmb	sy                      @ encoding: [0x5f,0xf0,0x7f,0xf5]
481f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dmb	st                      @ encoding: [0x5e,0xf0,0x7f,0xf5]
482f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dmb	ish                     @ encoding: [0x5b,0xf0,0x7f,0xf5]
483f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dmb	ish                     @ encoding: [0x5b,0xf0,0x7f,0xf5]
484f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dmb	ishst                   @ encoding: [0x5a,0xf0,0x7f,0xf5]
485f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dmb	ishst                   @ encoding: [0x5a,0xf0,0x7f,0xf5]
486f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dmb	nsh                     @ encoding: [0x57,0xf0,0x7f,0xf5]
487f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dmb	nsh                     @ encoding: [0x57,0xf0,0x7f,0xf5]
488f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dmb	nshst                   @ encoding: [0x56,0xf0,0x7f,0xf5]
489f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dmb	nshst                   @ encoding: [0x56,0xf0,0x7f,0xf5]
490b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: dmb	osh                     @ encoding: [0x53,0xf0,0x7f,0xf5]
491b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: dmb	oshst                   @ encoding: [0x52,0xf0,0x7f,0xf5]
492f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dmb	sy                      @ encoding: [0x5f,0xf0,0x7f,0xf5]
493f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
494f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@------------------------------------------------------------------------------
4951790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ DSB
4961790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@------------------------------------------------------------------------------
497f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dsb sy
498f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dsb st
499f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dsb sh
500f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dsb ish
501f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dsb shst
502f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dsb ishst
503f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dsb un
504f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dsb nsh
505f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dsb unst
50677b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling  dsb nshst
50777b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling  dsb osh
508f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dsb oshst
509f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  dsb
5101790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
5111790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: dsb	sy                      @ encoding: [0x4f,0xf0,0x7f,0xf5]
512c7a884040e4ec7795515978a94803894ad08c4caBill Wendling@ CHECK: dsb	st                      @ encoding: [0x4e,0xf0,0x7f,0xf5]
513c7a884040e4ec7795515978a94803894ad08c4caBill Wendling@ CHECK: dsb	ish                     @ encoding: [0x4b,0xf0,0x7f,0xf5]
51477b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: dsb	ish                     @ encoding: [0x4b,0xf0,0x7f,0xf5]
51577b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: dsb	ishst                   @ encoding: [0x4a,0xf0,0x7f,0xf5]
51677b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: dsb	ishst                   @ encoding: [0x4a,0xf0,0x7f,0xf5]
517f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dsb	nsh                     @ encoding: [0x47,0xf0,0x7f,0xf5]
518b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: dsb	nsh                     @ encoding: [0x47,0xf0,0x7f,0xf5]
519b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: dsb	nshst                   @ encoding: [0x46,0xf0,0x7f,0xf5]
5204a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling@ CHECK: dsb	nshst                   @ encoding: [0x46,0xf0,0x7f,0xf5]
521f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: dsb	osh                     @ encoding: [0x43,0xf0,0x7f,0xf5]
522253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: dsb	oshst                   @ encoding: [0x42,0xf0,0x7f,0xf5]
523b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: dsb	sy                      @ encoding: [0x4f,0xf0,0x7f,0xf5]
52477b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
52577b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@------------------------------------------------------------------------------
52677b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ EOR
52777b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@------------------------------------------------------------------------------
528f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel  eor r4, r5, #0xf000
529b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  eor r4, r5, r6
530b1928704201034c785a26296a49f69355eb56a05Nick Lewycky  eor r4, r5, r6, lsl #5
5311790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r4, r5, r6, lsr #5
5321790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r4, r5, r6, lsr #5
5331790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r4, r5, r6, asr #5
5341790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r4, r5, r6, ror #5
5351790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r6, r7, r8, lsl r9
5361790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r6, r7, r8, lsr r9
5371790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r6, r7, r8, asr r9
5381790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r6, r7, r8, ror r9
5391790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r4, r5, r6, rrx
5401790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
5411790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  @ destination register is optional
5421790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r5, #0xf000
543db125cfaf57cc83e7dd7453de2d509bc8efd0e5eChris Lattner  eor r4, r5
544db125cfaf57cc83e7dd7453de2d509bc8efd0e5eChris Lattner  eor r4, r5, lsl #5
5451790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r4, r5, lsr #5
5461790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r4, r5, lsr #5
5471790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r4, r5, asr #5
5481790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r4, r5, ror #5
5491790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r6, r7, lsl r9
5501790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r6, r7, lsr r9
5511790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r6, r7, asr r9
5521790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r6, r7, ror r9
5531790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky  eor r4, r5, rrx
5541790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
5551790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r4, r5, #61440          @ encoding: [0x0f,0x4a,0x25,0xe2]
5567a2ba2fbe4b0ccaacc2cedbc1bfd2a3764170efeNick Lewycky@ CHECK: eor	r4, r5, r6              @ encoding: [0x06,0x40,0x25,0xe0]
5571790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r4, r5, r6, lsl #5      @ encoding: [0x86,0x42,0x25,0xe0]
5581790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x25,0xe0]
5591790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x25,0xe0]
5601790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r4, r5, r6, asr #5      @ encoding: [0xc6,0x42,0x25,0xe0]
5611790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r4, r5, r6, ror #5      @ encoding: [0xe6,0x42,0x25,0xe0]
5621790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r6, r7, r8, lsl r9      @ encoding: [0x18,0x69,0x27,0xe0]
5631790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r6, r7, r8, lsr r9      @ encoding: [0x38,0x69,0x27,0xe0]
5641790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r6, r7, r8, asr r9      @ encoding: [0x58,0x69,0x27,0xe0]
5651790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r6, r7, r8, ror r9      @ encoding: [0x78,0x69,0x27,0xe0]
5661790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r4, r5, r6, rrx         @ encoding: [0x66,0x40,0x25,0xe0]
5671790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
5681790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
569267010864e139781ef5949939e081c41f954de0aJay Foad@ CHECK: eor	r5, r5, #61440          @ encoding: [0x0f,0x5a,0x25,0xe2]
5701790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r4, r4, r5              @ encoding: [0x05,0x40,0x24,0xe0]
5711790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r4, r4, r5, lsl #5      @ encoding: [0x85,0x42,0x24,0xe0]
5721790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x24,0xe0]
573267010864e139781ef5949939e081c41f954de0aJay Foad@ CHECK: eor	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x24,0xe0]
5741790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r4, r4, r5, asr #5      @ encoding: [0xc5,0x42,0x24,0xe0]
5751790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r4, r4, r5, ror #5      @ encoding: [0xe5,0x42,0x24,0xe0]
5761790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r6, r6, r7, lsl r9      @ encoding: [0x17,0x69,0x26,0xe0]
5771790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r6, r6, r7, lsr r9      @ encoding: [0x37,0x69,0x26,0xe0]
5781790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: eor	r6, r6, r7, asr r9      @ encoding: [0x57,0x69,0x26,0xe0]
579b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: eor	r6, r6, r7, ror r9      @ encoding: [0x77,0x69,0x26,0xe0]
580db125cfaf57cc83e7dd7453de2d509bc8efd0e5eChris Lattner@ CHECK: eor	r4, r4, r5, rrx         @ encoding: [0x65,0x40,0x24,0xe0]
5815fdd6c8793462549e3593890ec61573da06e3346Jay Foad
5821790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
5831790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@------------------------------------------------------------------------------
5841790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ ISB
58577b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@------------------------------------------------------------------------------
58677b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling        isb sy
587c7a884040e4ec7795515978a94803894ad08c4caBill Wendling        isb
58877b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
58977b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: isb sy                         @ encoding: [0x6f,0xf0,0x7f,0xf5]
59077b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: isb sy                         @ encoding: [0x6f,0xf0,0x7f,0xf5]
59177b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
59277b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
59377b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
594b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
595b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ LDM*
596b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
5975fdd6c8793462549e3593890ec61573da06e3346Jay Foad        ldm       r2, {r1,r3-r6,sp}
5985409a188328d9de3755febc23558d4fc1797d04eNick Lewycky        ldmia     r2, {r1,r3-r6,sp}
5995409a188328d9de3755febc23558d4fc1797d04eNick Lewycky        ldmib     r2, {r1,r3-r6,sp}
6005409a188328d9de3755febc23558d4fc1797d04eNick Lewycky        ldmda     r2, {r1,r3-r6,sp}
601c7a884040e4ec7795515978a94803894ad08c4caBill Wendling        ldmdb     r2, {r1,r3-r6,sp}
6021790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky        ldmfd     r2, {r1,r3-r6,sp}
603b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
604b1928704201034c785a26296a49f69355eb56a05Nick Lewycky        @ with update
605b1928704201034c785a26296a49f69355eb56a05Nick Lewycky        ldm       r2!, {r1,r3-r6,sp}
6065fdd6c8793462549e3593890ec61573da06e3346Jay Foad        ldmib     r2!, {r1,r3-r6,sp}
607b1928704201034c785a26296a49f69355eb56a05Nick Lewycky        ldmda     r2!, {r1,r3-r6,sp}
608b1928704201034c785a26296a49f69355eb56a05Nick Lewycky        ldmdb     r2!, {r1,r3-r6,sp}
609b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
610db125cfaf57cc83e7dd7453de2d509bc8efd0e5eChris Lattner@ CHECK: ldm   r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8]
611b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: ldm   r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8]
6121790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: ldmib r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe9]
613b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: ldmda r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe8]
614b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: ldmdb r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x12,0xe9]
615b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: ldm   r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x92,0xe8]
616db125cfaf57cc83e7dd7453de2d509bc8efd0e5eChris Lattner
6171790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: ldm   r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe8]
618b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: ldmib r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xb2,0xe9]
619b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: ldmda r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe8]
6201790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: ldmdb r2!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x32,0xe9]
6211790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
6221790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@------------------------------------------------------------------------------
6231790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ FIXME: LDR*
6241790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@------------------------------------------------------------------------------
6251790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
6261790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@------------------------------------------------------------------------------
6271790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ LDREX/LDREXB/LDREXH/LDREXD
6281790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@------------------------------------------------------------------------------
6291790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky        ldrexb  r3, [r4]
6301790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky        ldrexh  r2, [r5]
6311790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky        ldrex  r1, [r7]
632b1928704201034c785a26296a49f69355eb56a05Nick Lewycky        ldrexd  r6, r7, [r8]
6331790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky
63421b742ffce7bec3d71e09c7c6d901a756d55feb3Bill Wendling@ CHECK: ldrexb	r3, [r4]                @ encoding: [0x9f,0x3f,0xd4,0xe1]
635253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: ldrexh	r2, [r5]                @ encoding: [0x9f,0x2f,0xf5,0xe1]
636253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: ldrex	r1, [r7]                @ encoding: [0x9f,0x1f,0x97,0xe1]
637253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: ldrexd	r6, r7, [r8]            @ encoding: [0x9f,0x6f,0xb8,0xe1]
638253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling
639253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling
640b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
641253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ FIXME: LSL
642253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@------------------------------------------------------------------------------
6431790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@------------------------------------------------------------------------------
644b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ FIXME: LSR
645b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
646b1928704201034c785a26296a49f69355eb56a05Nick Lewycky
647b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
648b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ MCR/MCR2
649b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
650f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel        mcr  p7, #1, r5, c1, c1, #4
651f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel        mcr2  p7, #1, r5, c1, c1, #4
652f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
653032dbee2a9d401ee05beb648465f21168e279bdaBill Wendling@ CHECK: mcr  p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0xee]
654032dbee2a9d401ee05beb648465f21168e279bdaBill Wendling@ CHECK: mcr2  p7, #1, r5, c1, c1, #4 @ encoding: [0x91,0x57,0x21,0xfe]
655f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
656f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@------------------------------------------------------------------------------
65721b742ffce7bec3d71e09c7c6d901a756d55feb3Bill Wendling@ MCRR/MCRR2
6585409a188328d9de3755febc23558d4fc1797d04eNick Lewycky@------------------------------------------------------------------------------
659f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel        mcrr  p7, #15, r5, r4, c1
660f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel        mcrr2  p7, #15, r5, r4, c1
661f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
662f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: mcrr  p7, #15, r5, r4, c1 @ encoding: [0xf1,0x57,0x44,0xec]
663f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ CHECK: mcrr2  p7, #15, r5, r4, c1 @ encoding: [0xf1,0x57,0x44,0xfc]
664f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
665f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
666f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@------------------------------------------------------------------------------
667f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel@ MLA
668b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@------------------------------------------------------------------------------
669f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel        mla  r1,r2,r3,r4
670f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel        mlas r1,r2,r3,r4
671f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel        mlane  r1,r2,r3,r4
672f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel        mlasne r1,r2,r3,r4
673f6d3a4c7c4d14ad7a4e07e9f80f94f73651960d8Devang Patel
674b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: mla 	r1, r2, r3, r4 @ encoding: [0x92,0x43,0x21,0xe0]
675b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: mlas	r1, r2, r3, r4 @ encoding: [0x92,0x43,0x31,0xe0]
6761790c9cbb6714e81eab1412909a2320acaecc43bNick Lewycky@ CHECK: mlane 	r1, r2, r3, r4 @ encoding: [0x92,0x43,0x21,0x10]
677b1928704201034c785a26296a49f69355eb56a05Nick Lewycky@ CHECK: mlasne	r1, r2, r3, r4 @ encoding: [0x92,0x43,0x31,0x10]
6784a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling
6794a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling@------------------------------------------------------------------------------
6804a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling@ MLS
6814a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling@------------------------------------------------------------------------------
6824a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling        mls  r2,r5,r6,r3
6834a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling        mlsne  r2,r5,r6,r3
6844a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling
6854a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling@ CHECK: mls	r2, r5, r6, r3          @ encoding: [0x95,0x36,0x62,0xe0]
6864a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling@ CHECK: mlsne	r2, r5, r6, r3          @ encoding: [0x95,0x36,0x62,0x10]
6874a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling
6884a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling@------------------------------------------------------------------------------
6894a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling@ MOV (immediate)
6904a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling@------------------------------------------------------------------------------
6914a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling    mov r3, #7
692c1b6ea7b6ce3a738accbacddf52480bf94354d2fBill Wendling    mov r4, #0xff0
6934a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling    mov r5, #0xff0000
6944a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling    mov r6, #0xffff
6954a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling    movw r9, #0xffff
6964a8fefaf8303f30514bc2a40d840a1709dae65cfBill Wendling    movs r3, #7
697b1928704201034c785a26296a49f69355eb56a05Nick Lewycky    moveq r4, #0xff0
69877b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling    movseq r5, #0xff0000
69977b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
70077b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: mov	r3, #7                  @ encoding: [0x07,0x30,0xa0,0xe3]
70177b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: mov	r4, #4080               @ encoding: [0xff,0x4e,0xa0,0xe3]
70277b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: mov	r5, #16711680           @ encoding: [0xff,0x58,0xa0,0xe3]
70377b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: movw	r6, #65535              @ encoding: [0xff,0x6f,0x0f,0xe3]
70477b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: movw	r9, #65535              @ encoding: [0xff,0x9f,0x0f,0xe3]
70577b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: movs	r3, #7                  @ encoding: [0x07,0x30,0xb0,0xe3]
70677b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: moveq	r4, #4080               @ encoding: [0xff,0x4e,0xa0,0x03]
70777b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: movseq	r5, #16711680           @ encoding: [0xff,0x58,0xb0,0x03]
70877b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
70977b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@------------------------------------------------------------------------------
71077b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ MOV (register)
71177b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@------------------------------------------------------------------------------
71277b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling        mov r2, r3
71377b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling        movs r2, r3
71477b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling        moveq r2, r3
71577b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling        movseq r2, r3
71677b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
71777b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: mov	r2, r3                  @ encoding: [0x03,0x20,0xa0,0xe1]
71877b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: movs	r2, r3                  @ encoding: [0x03,0x20,0xb0,0xe1]
71977b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: moveq	r2, r3                  @ encoding: [0x03,0x20,0xa0,0x01]
72077b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: movseq	r2, r3                  @ encoding: [0x03,0x20,0xb0,0x01]
72177b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
72277b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@------------------------------------------------------------------------------
72377b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ MOVT
72477b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@------------------------------------------------------------------------------
72577b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling    movt r3, #7
72677b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling    movt r6, #0xffff
72777b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling    movteq r4, #0xff0
72877b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
72977b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: movt	r3, #7                  @ encoding: [0x07,0x30,0x40,0xe3]
73077b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: movt	r6, #65535              @ encoding: [0xff,0x6f,0x4f,0xe3]
73177b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: movteq	r4, #4080               @ encoding: [0xf0,0x4f,0x40,0x03]
73277b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
73377b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
73477b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@------------------------------------------------------------------------------
73577b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ MRC/MRC2
73677b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@------------------------------------------------------------------------------
73777b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling        mrc  p14, #0, r1, c1, c2, #4
73877b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling        mrc2  p14, #0, r1, c1, c2, #4
73977b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
74077b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: mrc  p14, #0, r1, c1, c2, #4   @ encoding: [0x92,0x1e,0x11,0xee]
74177b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: mrc2  p14, #0, r1, c1, c2, #4  @ encoding: [0x92,0x1e,0x11,0xfe]
74277b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
74377b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@------------------------------------------------------------------------------
74477b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ MRRC/MRRC2
74577b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@------------------------------------------------------------------------------
74677b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling        mrrc  p7, #1, r5, r4, c1
74777b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling        mrrc2  p7, #1, r5, r4, c1
74877b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling
74977b19134104c3e96424dc010f2b69c3faf580e68Bill Wendling@ CHECK: mrrc  p7, #1, r5, r4, c1       @ encoding: [0x11,0x57,0x54,0xec]
750253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: mrrc2  p7, #1, r5, r4, c1      @ encoding: [0x11,0x57,0x54,0xfc]
751253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling
752253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling
753253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@------------------------------------------------------------------------------
754253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ MRS
755253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@------------------------------------------------------------------------------
756253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling        mrs  r8, apsr
757253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling        mrs  r8, cpsr
758253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling        mrs  r8, spsr
759253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: mrs  r8, apsr @ encoding: [0x00,0x80,0x0f,0xe1]
760253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: mrs  r8, apsr @ encoding: [0x00,0x80,0x0f,0xe1]
761253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: mrs  r8, spsr @ encoding: [0x00,0x80,0x4f,0xe1]
762253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling
763253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling
764253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling
765253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@------------------------------------------------------------------------------
766253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ MSR
767253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@------------------------------------------------------------------------------
768253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling
769253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling        msr  apsr, #5
770253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling        msr  apsr_g, #5
771032dbee2a9d401ee05beb648465f21168e279bdaBill Wendling        msr  apsr_nzcvq, #5
772032dbee2a9d401ee05beb648465f21168e279bdaBill Wendling        msr  APSR_nzcvq, #5
773032dbee2a9d401ee05beb648465f21168e279bdaBill Wendling        msr  apsr_nzcvqg, #5
774032dbee2a9d401ee05beb648465f21168e279bdaBill Wendling        msr  cpsr_fc, #5
775032dbee2a9d401ee05beb648465f21168e279bdaBill Wendling        msr  cpsr_c, #5
776032dbee2a9d401ee05beb648465f21168e279bdaBill Wendling        msr  cpsr_x, #5
777ec3fc2eac0e9203dd1094b9ce458e8c1b42b832fBill Wendling        msr  cpsr_fc, #5
778032dbee2a9d401ee05beb648465f21168e279bdaBill Wendling        msr  cpsr_all, #5
779253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling        msr  cpsr_fsx, #5
780253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling        msr  spsr_fc, #5
781253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling        msr  SPSR_fsxc, #5
782253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling        msr  cpsr_fsxc, #5
783253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling
784253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: msr	CPSR_fc, #5             @ encoding: [0x05,0xf0,0x29,0xe3]
785253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: msr	APSR_g, #5              @ encoding: [0x05,0xf0,0x24,0xe3]
786253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: msr	APSR_nzcvq, #5          @ encoding: [0x05,0xf0,0x28,0xe3]
787253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: msr	APSR_nzcvq, #5          @ encoding: [0x05,0xf0,0x28,0xe3]
788253353c9cf1ff16d9c30a89c2fb96160ac5a9d65Bill Wendling@ CHECK: msr	APSR_nzcvqg, #5         @ encoding: [0x05,0xf0,0x2c,0xe3]
789@ CHECK: msr	CPSR_fc, #5             @ encoding: [0x05,0xf0,0x29,0xe3]
790@ CHECK: msr	CPSR_c, #5              @ encoding: [0x05,0xf0,0x21,0xe3]
791@ CHECK: msr	CPSR_x, #5              @ encoding: [0x05,0xf0,0x22,0xe3]
792@ CHECK: msr	CPSR_fc, #5             @ encoding: [0x05,0xf0,0x29,0xe3]
793@ CHECK: msr	CPSR_fc, #5             @ encoding: [0x05,0xf0,0x29,0xe3]
794@ CHECK: msr	CPSR_fsx, #5            @ encoding: [0x05,0xf0,0x2e,0xe3]
795@ CHECK: msr	SPSR_fc, #5             @ encoding: [0x05,0xf0,0x69,0xe3]
796@ CHECK: msr	SPSR_fsxc, #5           @ encoding: [0x05,0xf0,0x6f,0xe3]
797@ CHECK: msr	CPSR_fsxc, #5           @ encoding: [0x05,0xf0,0x2f,0xe3]
798
799        msr  apsr, r0
800        msr  apsr_g, r0
801        msr  apsr_nzcvq, r0
802        msr  APSR_nzcvq, r0
803        msr  apsr_nzcvqg, r0
804        msr  cpsr_fc, r0
805        msr  cpsr_c, r0
806        msr  cpsr_x, r0
807        msr  cpsr_fc, r0
808        msr  cpsr_all, r0
809        msr  cpsr_fsx, r0
810        msr  spsr_fc, r0
811        msr  SPSR_fsxc, r0
812        msr  cpsr_fsxc, r0
813
814@ CHECK: msr  CPSR_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1]
815@ CHECK: msr  APSR_g, r0 @ encoding: [0x00,0xf0,0x24,0xe1]
816@ CHECK: msr  APSR_nzcvq, r0 @ encoding: [0x00,0xf0,0x28,0xe1]
817@ CHECK: msr  APSR_nzcvq, r0 @ encoding: [0x00,0xf0,0x28,0xe1]
818@ CHECK: msr  APSR_nzcvqg, r0 @ encoding: [0x00,0xf0,0x2c,0xe1]
819@ CHECK: msr  CPSR_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1]
820@ CHECK: msr  CPSR_c, r0 @ encoding: [0x00,0xf0,0x21,0xe1]
821@ CHECK: msr  CPSR_x, r0 @ encoding: [0x00,0xf0,0x22,0xe1]
822@ CHECK: msr  CPSR_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1]
823@ CHECK: msr  CPSR_fc, r0 @ encoding: [0x00,0xf0,0x29,0xe1]
824@ CHECK: msr  CPSR_fsx, r0 @ encoding: [0x00,0xf0,0x2e,0xe1]
825@ CHECK: msr  SPSR_fc, r0 @ encoding: [0x00,0xf0,0x69,0xe1]
826@ CHECK: msr  SPSR_fsxc, r0 @ encoding: [0x00,0xf0,0x6f,0xe1]
827@ CHECK: msr  CPSR_fsxc, r0 @ encoding: [0x00,0xf0,0x2f,0xe1]
828
829@------------------------------------------------------------------------------
830@ MUL
831@------------------------------------------------------------------------------
832
833  mul r5, r6, r7
834  muls r5, r6, r7
835  mulgt r5, r6, r7
836  mulsle r5, r6, r7
837
838@ CHECK: mul	r5, r6, r7              @ encoding: [0x96,0x07,0x05,0xe0]
839@ CHECK: muls	r5, r6, r7              @ encoding: [0x96,0x07,0x15,0xe0]
840@ CHECK: mulgt	r5, r6, r7              @ encoding: [0x96,0x07,0x05,0xc0]
841@ CHECK: mulsle	r5, r6, r7              @ encoding: [0x96,0x07,0x15,0xd0]
842
843
844@------------------------------------------------------------------------------
845@ MVN (immediate)
846@------------------------------------------------------------------------------
847    mvn r3, #7
848    mvn r4, #0xff0
849    mvn r5, #0xff0000
850    mvns r3, #7
851    mvneq r4, #0xff0
852    mvnseq r5, #0xff0000
853
854@ CHECK: mvn	r3, #7                  @ encoding: [0x07,0x30,0xe0,0xe3]
855@ CHECK: mvn	r4, #4080               @ encoding: [0xff,0x4e,0xe0,0xe3]
856@ CHECK: mvn	r5, #16711680           @ encoding: [0xff,0x58,0xe0,0xe3]
857@ CHECK: mvns	r3, #7                  @ encoding: [0x07,0x30,0xf0,0xe3]
858@ CHECK: mvneq	r4, #4080               @ encoding: [0xff,0x4e,0xe0,0x03]
859@ CHECK: mvnseq	r5, #16711680           @ encoding: [0xff,0x58,0xf0,0x03]
860
861
862@------------------------------------------------------------------------------
863@ MVN (register)
864@------------------------------------------------------------------------------
865        mvn r2, r3
866        mvns r2, r3
867        mvn r5, r6, lsl #19
868        mvn r5, r6, lsr #9
869        mvn r5, r6, asr #4
870        mvn r5, r6, ror #6
871        mvn r5, r6, rrx
872        mvneq r2, r3
873        mvnseq r2, r3, lsl #10
874
875@ CHECK: mvn	r2, r3                  @ encoding: [0x03,0x20,0xe0,0xe1]
876@ CHECK: mvns	r2, r3                  @ encoding: [0x03,0x20,0xf0,0xe1]
877@ CHECK: mvn	r5, r6, lsl #19         @ encoding: [0x86,0x59,0xe0,0xe1]
878@ CHECK: mvn	r5, r6, lsr #9          @ encoding: [0xa6,0x54,0xe0,0xe1]
879@ CHECK: mvn	r5, r6, asr #4          @ encoding: [0x46,0x52,0xe0,0xe1]
880@ CHECK: mvn	r5, r6, ror #6          @ encoding: [0x66,0x53,0xe0,0xe1]
881@ CHECK: mvn	r5, r6, rrx             @ encoding: [0x66,0x50,0xe0,0xe1]
882@ CHECK: mvneq	r2, r3                  @ encoding: [0x03,0x20,0xe0,0x01]
883@ CHECK: mvnseq	r2, r3, lsl #10         @ encoding: [0x03,0x25,0xf0,0x01]
884
885
886@------------------------------------------------------------------------------
887@ MVN (shifted register)
888@------------------------------------------------------------------------------
889        mvn r5, r6, lsl r7
890        mvns r5, r6, lsr r7
891        mvngt r5, r6, asr r7
892        mvnslt r5, r6, ror r7
893
894@ CHECK: mvn	r5, r6, lsl r7          @ encoding: [0x16,0x57,0xe0,0xe1]
895@ CHECK: mvns	r5, r6, lsr r7          @ encoding: [0x36,0x57,0xf0,0xe1]
896@ CHECK: mvngt	r5, r6, asr r7          @ encoding: [0x56,0x57,0xe0,0xc1]
897@ CHECK: mvnslt	r5, r6, ror r7          @ encoding: [0x76,0x57,0xf0,0xb1]
898
899@------------------------------------------------------------------------------
900@ NOP
901@------------------------------------------------------------------------------
902        nop
903        nopgt
904
905@ CHECK: nop @ encoding: [0x00,0xf0,0x20,0xe3]
906@ CHECK: nopgt @ encoding: [0x00,0xf0,0x20,0xc3]
907
908
909@------------------------------------------------------------------------------
910@ ORR
911@------------------------------------------------------------------------------
912        orr r4, r5, #0xf000
913        orr r4, r5, r6
914        orr r4, r5, r6, lsl #5
915        orr r4, r5, r6, lsr #5
916        orr r4, r5, r6, lsr #5
917        orr r4, r5, r6, asr #5
918        orr r4, r5, r6, ror #5
919        orr r6, r7, r8, lsl r9
920        orr r6, r7, r8, lsr r9
921        orr r6, r7, r8, asr r9
922        orr r6, r7, r8, ror r9
923        orr r4, r5, r6, rrx
924
925        @ destination register is optional
926        orr r5, #0xf000
927        orr r4, r5
928        orr r4, r5, lsl #5
929        orr r4, r5, lsr #5
930        orr r4, r5, lsr #5
931        orr r4, r5, asr #5
932        orr r4, r5, ror #5
933        orr r6, r7, lsl r9
934        orr r6, r7, lsr r9
935        orr r6, r7, asr r9
936        orr r6, r7, ror r9
937        orr r4, r5, rrx
938
939@ CHECK: orr	r4, r5, #61440          @ encoding: [0x0f,0x4a,0x85,0xe3]
940@ CHECK: orr	r4, r5, r6              @ encoding: [0x06,0x40,0x85,0xe1]
941@ CHECK: orr	r4, r5, r6, lsl #5      @ encoding: [0x86,0x42,0x85,0xe1]
942@ CHECK: orr	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x85,0xe1]
943@ CHECK: orr	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x85,0xe1]
944@ CHECK: orr	r4, r5, r6, asr #5      @ encoding: [0xc6,0x42,0x85,0xe1]
945@ CHECK: orr	r4, r5, r6, ror #5      @ encoding: [0xe6,0x42,0x85,0xe1]
946@ CHECK: orr	r6, r7, r8, lsl r9      @ encoding: [0x18,0x69,0x87,0xe1]
947@ CHECK: orr	r6, r7, r8, lsr r9      @ encoding: [0x38,0x69,0x87,0xe1]
948@ CHECK: orr	r6, r7, r8, asr r9      @ encoding: [0x58,0x69,0x87,0xe1]
949@ CHECK: orr	r6, r7, r8, ror r9      @ encoding: [0x78,0x69,0x87,0xe1]
950@ CHECK: orr	r4, r5, r6, rrx         @ encoding: [0x66,0x40,0x85,0xe1]
951
952@ CHECK: orr	r5, r5, #61440          @ encoding: [0x0f,0x5a,0x85,0xe3]
953@ CHECK: orr	r4, r4, r5              @ encoding: [0x05,0x40,0x84,0xe1]
954@ CHECK: orr	r4, r4, r5, lsl #5      @ encoding: [0x85,0x42,0x84,0xe1]
955@ CHECK: orr	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x84,0xe1]
956@ CHECK: orr	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x84,0xe1]
957@ CHECK: orr	r4, r4, r5, asr #5      @ encoding: [0xc5,0x42,0x84,0xe1]
958@ CHECK: orr	r4, r4, r5, ror #5      @ encoding: [0xe5,0x42,0x84,0xe1]
959@ CHECK: orr	r6, r6, r7, lsl r9      @ encoding: [0x17,0x69,0x86,0xe1]
960@ CHECK: orr	r6, r6, r7, lsr r9      @ encoding: [0x37,0x69,0x86,0xe1]
961@ CHECK: orr	r6, r6, r7, asr r9      @ encoding: [0x57,0x69,0x86,0xe1]
962@ CHECK: orr	r6, r6, r7, ror r9      @ encoding: [0x77,0x69,0x86,0xe1]
963@ CHECK: orr	r4, r4, r5, rrx         @ encoding: [0x65,0x40,0x84,0xe1]
964
965        orrseq r4, r5, #0xf000
966        orrne r4, r5, r6
967        orrseq r4, r5, r6, lsl #5
968        orrlo r6, r7, r8, ror r9
969        orrshi r4, r5, r6, rrx
970        orrcs r5, #0xf000
971        orrseq r4, r5
972        orrne r6, r7, asr r9
973        orrslt r6, r7, ror r9
974        orrsgt r4, r5, rrx
975
976@ CHECK: orrseq	r4, r5, #61440          @ encoding: [0x0f,0x4a,0x95,0x03]
977@ CHECK: orrne	r4, r5, r6              @ encoding: [0x06,0x40,0x85,0x11]
978@ CHECK: orrseq	r4, r5, r6, lsl #5      @ encoding: [0x86,0x42,0x95,0x01]
979@ CHECK: orrlo	r6, r7, r8, ror r9      @ encoding: [0x78,0x69,0x87,0x31]
980@ CHECK: orrshi	r4, r5, r6, rrx         @ encoding: [0x66,0x40,0x95,0x81]
981@ CHECK: orrhs	r5, r5, #61440          @ encoding: [0x0f,0x5a,0x85,0x23]
982@ CHECK: orrseq	r4, r4, r5              @ encoding: [0x05,0x40,0x94,0x01]
983@ CHECK: orrne	r6, r6, r7, asr r9      @ encoding: [0x57,0x69,0x86,0x11]
984@ CHECK: orrslt	r6, r6, r7, ror r9      @ encoding: [0x77,0x69,0x96,0xb1]
985@ CHECK: orrsgt	r4, r4, r5, rrx         @ encoding: [0x65,0x40,0x94,0xc1]
986
987@------------------------------------------------------------------------------
988@ PKH
989@------------------------------------------------------------------------------
990        pkhbt r2, r2, r3
991        pkhbt r2, r2, r3, lsl #31
992        pkhbt r2, r2, r3, lsl #0
993        pkhbt r2, r2, r3, lsl #15
994
995        pkhtb r2, r2, r3
996        pkhtb r2, r2, r3, asr #31
997        pkhtb r2, r2, r3, asr #15
998
999@ CHECK: pkhbt	r2, r2, r3              @ encoding: [0x13,0x20,0x82,0xe6]
1000@ CHECK: pkhbt	r2, r2, r3, lsl #31     @ encoding: [0x93,0x2f,0x82,0xe6]
1001@ CHECK: pkhbt	r2, r2, r3              @ encoding: [0x13,0x20,0x82,0xe6]
1002@ CHECK: pkhbt	r2, r2, r3, lsl #15     @ encoding: [0x93,0x27,0x82,0xe6]
1003
1004@ CHECK: pkhbt	r2, r2, r3              @ encoding: [0x13,0x20,0x82,0xe6]
1005@ CHECK: pkhtb	r2, r2, r3, asr #31     @ encoding: [0xd3,0x2f,0x82,0xe6]
1006@ CHECK: pkhtb	r2, r2, r3, asr #15     @ encoding: [0xd3,0x27,0x82,0xe6]
1007
1008@------------------------------------------------------------------------------
1009@ FIXME: PLD
1010@------------------------------------------------------------------------------
1011@------------------------------------------------------------------------------
1012@ FIXME: PLI
1013@------------------------------------------------------------------------------
1014
1015
1016@------------------------------------------------------------------------------
1017@ POP
1018@------------------------------------------------------------------------------
1019        pop {r7}
1020        pop {r7, r8, r9, r10}
1021
1022@ FIXME: pop of a single register should encode as "ldr r7, [sp], #4"
1023@ CHECK-FIXME: pop	{r7}                    @ encoding: [0x04,0x70,0x9d,0xe4]
1024@ CHECK: pop	{r7, r8, r9, r10}       @ encoding: [0x80,0x07,0xbd,0xe8]
1025
1026
1027@------------------------------------------------------------------------------
1028@ PUSH
1029@------------------------------------------------------------------------------
1030        push {r7}
1031        push {r7, r8, r9, r10}
1032
1033@ FIXME: push of a single register should encode as "str r7, [sp, #-4]!"
1034@ CHECK-FIXME: push	{r7}                    @ encoding: [0x04,0x70,0x2d,0xe5]
1035@ CHECK: push	{r7, r8, r9, r10}       @ encoding: [0x80,0x07,0x2d,0xe9]
1036
1037
1038@------------------------------------------------------------------------------
1039@ QADD/QADD16/QADD8
1040@------------------------------------------------------------------------------
1041        qadd r1, r2, r3
1042        qaddne r1, r2, r3
1043        qadd16 r1, r2, r3
1044        qadd16gt r1, r2, r3
1045        qadd8 r1, r2, r3
1046        qadd8le r1, r2, r3
1047
1048@ CHECK: qadd	r1, r2, r3              @ encoding: [0x52,0x10,0x03,0xe1]
1049@ CHECK: qaddne	r1, r2, r3              @ encoding: [0x52,0x10,0x03,0x11]
1050@ CHECK: qadd16	r1, r2, r3              @ encoding: [0x13,0x1f,0x22,0xe6]
1051@ CHECK: qadd16gt	r1, r2, r3      @ encoding: [0x13,0x1f,0x22,0xc6]
1052@ CHECK: qadd8	r1, r2, r3              @ encoding: [0x93,0x1f,0x22,0xe6]
1053@ CHECK: qadd8le r1, r2, r3             @ encoding: [0x93,0x1f,0x22,0xd6]
1054
1055
1056@------------------------------------------------------------------------------
1057@ QDADD/QDSUB
1058@------------------------------------------------------------------------------
1059        qdadd r6, r7, r8
1060        qdaddhi r6, r7, r8
1061        qdsub r6, r7, r8
1062        qdsubhi r6, r7, r8
1063
1064@ CHECK: qdadd	r6, r7, r8              @ encoding: [0x57,0x60,0x48,0xe1]
1065@ CHECK: qdaddhi r6, r7, r8             @ encoding: [0x57,0x60,0x48,0x81]
1066@ CHECK: qdsub	r6, r7, r8              @ encoding: [0x57,0x60,0x68,0xe1]
1067@ CHECK: qdsubhi r6, r7, r8             @ encoding: [0x57,0x60,0x68,0x81]
1068
1069
1070@------------------------------------------------------------------------------
1071@ QSAX
1072@------------------------------------------------------------------------------
1073        qsax r9, r12, r0
1074        qsaxeq r9, r12, r0
1075
1076@ CHECK: qsax	r9, r12, r0             @ encoding: [0x50,0x9f,0x2c,0xe6]
1077@ CHECK: qsaxeq	r9, r12, r0             @ encoding: [0x50,0x9f,0x2c,0x06]
1078
1079
1080@------------------------------------------------------------------------------
1081@ QSUB/QSUB16/QSUB8
1082@------------------------------------------------------------------------------
1083        qsub r1, r2, r3
1084        qsubne r1, r2, r3
1085        qsub16 r1, r2, r3
1086        qsub16gt r1, r2, r3
1087        qsub8 r1, r2, r3
1088        qsub8le r1, r2, r3
1089
1090@ CHECK: qsub	r1, r2, r3              @ encoding: [0x52,0x10,0x23,0xe1]
1091@ CHECK: qsubne	r1, r2, r3              @ encoding: [0x52,0x10,0x23,0x11]
1092@ CHECK: qsub16	r1, r2, r3              @ encoding: [0x73,0x1f,0x22,0xe6]
1093@ CHECK: qsub16gt	r1, r2, r3      @ encoding: [0x73,0x1f,0x22,0xc6]
1094@ CHECK: qsub8	r1, r2, r3              @ encoding: [0xf3,0x1f,0x22,0xe6]
1095@ CHECK: qsub8le r1, r2, r3             @ encoding: [0xf3,0x1f,0x22,0xd6]
1096
1097
1098@------------------------------------------------------------------------------
1099@ RBIT
1100@------------------------------------------------------------------------------
1101        rbit r1, r2
1102        rbitne r1, r2
1103
1104@ CHECK: rbit	r1, r2                  @ encoding: [0x32,0x1f,0xff,0xe6]
1105@ CHECK: rbitne	r1, r2                  @ encoding: [0x32,0x1f,0xff,0x16]
1106
1107
1108@------------------------------------------------------------------------------
1109@ REV/REV16/REVSH
1110@------------------------------------------------------------------------------
1111        rev r1, r9
1112        revne r1, r5
1113        rev16 r8, r3
1114        rev16ne r12, r4
1115        revsh r4, r9
1116        revshne r9, r1
1117
1118@ CHECK: rev	r1, r9                  @ encoding: [0x39,0x1f,0xbf,0xe6]
1119@ CHECK: revne	r1, r5                  @ encoding: [0x35,0x1f,0xbf,0x16]
1120@ CHECK: rev16	r8, r3                  @ encoding: [0xb3,0x8f,0xbf,0xe6]
1121@ CHECK: rev16ne r12, r4                @ encoding: [0xb4,0xcf,0xbf,0x16]
1122@ CHECK: revsh	r4, r9                  @ encoding: [0xb9,0x4f,0xff,0xe6]
1123@ CHECK: revshne r9, r1                 @ encoding: [0xb1,0x9f,0xff,0x16]
1124
1125
1126@------------------------------------------------------------------------------
1127@ RSB
1128@------------------------------------------------------------------------------
1129        rsb r4, r5, #0xf000
1130        rsb r4, r5, r6
1131        rsb r4, r5, r6, lsl #5
1132        rsblo r4, r5, r6, lsr #5
1133        rsb r4, r5, r6, lsr #5
1134        rsb r4, r5, r6, asr #5
1135        rsb r4, r5, r6, ror #5
1136        rsb r6, r7, r8, lsl r9
1137        rsb r6, r7, r8, lsr r9
1138        rsb r6, r7, r8, asr r9
1139        rsble r6, r7, r8, ror r9
1140        rsb r4, r5, r6, rrx
1141
1142        @ destination register is optional
1143        rsb r5, #0xf000
1144        rsb r4, r5
1145        rsb r4, r5, lsl #5
1146        rsb r4, r5, lsr #5
1147        rsbne r4, r5, lsr #5
1148        rsb r4, r5, asr #5
1149        rsb r4, r5, ror #5
1150        rsbgt r6, r7, lsl r9
1151        rsb r6, r7, lsr r9
1152        rsb r6, r7, asr r9
1153        rsb r6, r7, ror r9
1154        rsb r4, r5, rrx
1155
1156@ CHECK: rsb	r4, r5, #61440          @ encoding: [0x0f,0x4a,0x65,0xe2]
1157@ CHECK: rsb	r4, r5, r6              @ encoding: [0x06,0x40,0x65,0xe0]
1158@ CHECK: rsb	r4, r5, r6, lsl #5      @ encoding: [0x86,0x42,0x65,0xe0]
1159@ CHECK: rsblo	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x65,0x30]
1160@ CHECK: rsb	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x65,0xe0]
1161@ CHECK: rsb	r4, r5, r6, asr #5      @ encoding: [0xc6,0x42,0x65,0xe0]
1162@ CHECK: rsb	r4, r5, r6, ror #5      @ encoding: [0xe6,0x42,0x65,0xe0]
1163@ CHECK: rsb	r6, r7, r8, lsl r9      @ encoding: [0x18,0x69,0x67,0xe0]
1164@ CHECK: rsb	r6, r7, r8, lsr r9      @ encoding: [0x38,0x69,0x67,0xe0]
1165@ CHECK: rsb	r6, r7, r8, asr r9      @ encoding: [0x58,0x69,0x67,0xe0]
1166@ CHECK: rsble	r6, r7, r8, ror r9      @ encoding: [0x78,0x69,0x67,0xd0]
1167@ CHECK: rsb	r4, r5, r6, rrx         @ encoding: [0x66,0x40,0x65,0xe0]
1168
1169@ CHECK: rsb	r5, r5, #61440          @ encoding: [0x0f,0x5a,0x65,0xe2]
1170@ CHECK: rsb	r4, r4, r5              @ encoding: [0x05,0x40,0x64,0xe0]
1171@ CHECK: rsb	r4, r4, r5, lsl #5      @ encoding: [0x85,0x42,0x64,0xe0]
1172@ CHECK: rsb	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x64,0xe0]
1173@ CHECK: rsbne	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x64,0x10]
1174@ CHECK: rsb	r4, r4, r5, asr #5      @ encoding: [0xc5,0x42,0x64,0xe0]
1175@ CHECK: rsb	r4, r4, r5, ror #5      @ encoding: [0xe5,0x42,0x64,0xe0]
1176@ CHECK: rsbgt	r6, r6, r7, lsl r9      @ encoding: [0x17,0x69,0x66,0xc0]
1177@ CHECK: rsb	r6, r6, r7, lsr r9      @ encoding: [0x37,0x69,0x66,0xe0]
1178@ CHECK: rsb	r6, r6, r7, asr r9      @ encoding: [0x57,0x69,0x66,0xe0]
1179@ CHECK: rsb	r6, r6, r7, ror r9      @ encoding: [0x77,0x69,0x66,0xe0]
1180@ CHECK: rsb	r4, r4, r5, rrx         @ encoding: [0x65,0x40,0x64,0xe0]
1181
1182@------------------------------------------------------------------------------
1183@ RSC
1184@------------------------------------------------------------------------------
1185        rsc r4, r5, #0xf000
1186        rsc r4, r5, r6
1187        rsc r4, r5, r6, lsl #5
1188        rsclo r4, r5, r6, lsr #5
1189        rsc r4, r5, r6, lsr #5
1190        rsc r4, r5, r6, asr #5
1191        rsc r4, r5, r6, ror #5
1192        rsc r6, r7, r8, lsl r9
1193        rsc r6, r7, r8, lsr r9
1194        rsc r6, r7, r8, asr r9
1195        rscle r6, r7, r8, ror r9
1196
1197        @ destination register is optional
1198        rsc r5, #0xf000
1199        rsc r4, r5
1200        rsc r4, r5, lsl #5
1201        rsc r4, r5, lsr #5
1202        rscne r4, r5, lsr #5
1203        rsc r4, r5, asr #5
1204        rsc r4, r5, ror #5
1205        rscgt r6, r7, lsl r9
1206        rsc r6, r7, lsr r9
1207        rsc r6, r7, asr r9
1208        rsc r6, r7, ror r9
1209
1210@ CHECK: rsc	r4, r5, #61440          @ encoding: [0x0f,0x4a,0xe5,0xe2]
1211@ CHECK: rsc	r4, r5, r6              @ encoding: [0x06,0x40,0xe5,0xe0]
1212@ CHECK: rsc	r4, r5, r6, lsl #5      @ encoding: [0x86,0x42,0xe5,0xe0]
1213@ CHECK: rsclo	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0xe5,0x30]
1214@ CHECK: rsc	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0xe5,0xe0]
1215@ CHECK: rsc	r4, r5, r6, asr #5      @ encoding: [0xc6,0x42,0xe5,0xe0]
1216@ CHECK: rsc	r4, r5, r6, ror #5      @ encoding: [0xe6,0x42,0xe5,0xe0]
1217@ CHECK: rsc	r6, r7, r8, lsl r9      @ encoding: [0x18,0x69,0xe7,0xe0]
1218@ CHECK: rsc	r6, r7, r8, lsr r9      @ encoding: [0x38,0x69,0xe7,0xe0]
1219@ CHECK: rsc	r6, r7, r8, asr r9      @ encoding: [0x58,0x69,0xe7,0xe0]
1220@ CHECK: rscle	r6, r7, r8, ror r9      @ encoding: [0x78,0x69,0xe7,0xd0]
1221
1222@ CHECK: rsc	r5, r5, #61440          @ encoding: [0x0f,0x5a,0xe5,0xe2]
1223@ CHECK: rsc	r4, r4, r5              @ encoding: [0x05,0x40,0xe4,0xe0]
1224@ CHECK: rsc	r4, r4, r5, lsl #5      @ encoding: [0x85,0x42,0xe4,0xe0]
1225@ CHECK: rsc	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0xe4,0xe0]
1226@ CHECK: rscne	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0xe4,0x10]
1227@ CHECK: rsc	r4, r4, r5, asr #5      @ encoding: [0xc5,0x42,0xe4,0xe0]
1228@ CHECK: rsc	r4, r4, r5, ror #5      @ encoding: [0xe5,0x42,0xe4,0xe0]
1229@ CHECK: rscgt	r6, r6, r7, lsl r9      @ encoding: [0x17,0x69,0xe6,0xc0]
1230@ CHECK: rsc	r6, r6, r7, lsr r9      @ encoding: [0x37,0x69,0xe6,0xe0]
1231@ CHECK: rsc	r6, r6, r7, asr r9      @ encoding: [0x57,0x69,0xe6,0xe0]
1232@ CHECK: rsc	r6, r6, r7, ror r9      @ encoding: [0x77,0x69,0xe6,0xe0]
1233
1234@------------------------------------------------------------------------------
1235@ SADD16/SADD8
1236@------------------------------------------------------------------------------
1237        sadd16 r1, r2, r3
1238        sadd16gt r1, r2, r3
1239        sadd8 r1, r2, r3
1240        sadd8le r1, r2, r3
1241
1242@ CHECK: sadd16	r1, r2, r3              @ encoding: [0x13,0x1f,0x12,0xe6]
1243@ CHECK: sadd16gt	r1, r2, r3      @ encoding: [0x13,0x1f,0x12,0xc6]
1244@ CHECK: sadd8	r1, r2, r3              @ encoding: [0x93,0x1f,0x12,0xe6]
1245@ CHECK: sadd8le r1, r2, r3             @ encoding: [0x93,0x1f,0x12,0xd6]
1246
1247
1248@------------------------------------------------------------------------------
1249@ SASX
1250@------------------------------------------------------------------------------
1251        sasx r9, r12, r0
1252        sasxeq r9, r12, r0
1253
1254@ CHECK: sasx	r9, r12, r0             @ encoding: [0x30,0x9f,0x1c,0xe6]
1255@ CHECK: sasxeq	r9, r12, r0             @ encoding: [0x30,0x9f,0x1c,0x06]
1256
1257
1258@------------------------------------------------------------------------------
1259@ SBC
1260@------------------------------------------------------------------------------
1261        sbc r4, r5, #0xf000
1262        sbc r4, r5, r6
1263        sbc r4, r5, r6, lsl #5
1264        sbc r4, r5, r6, lsr #5
1265        sbc r4, r5, r6, lsr #5
1266        sbc r4, r5, r6, asr #5
1267        sbc r4, r5, r6, ror #5
1268        sbc r6, r7, r8, lsl r9
1269        sbc r6, r7, r8, lsr r9
1270        sbc r6, r7, r8, asr r9
1271        sbc r6, r7, r8, ror r9
1272
1273        @ destination register is optional
1274        sbc r5, #0xf000
1275        sbc r4, r5
1276        sbc r4, r5, lsl #5
1277        sbc r4, r5, lsr #5
1278        sbc r4, r5, lsr #5
1279        sbc r4, r5, asr #5
1280        sbc r4, r5, ror #5
1281        sbc r6, r7, lsl r9
1282        sbc r6, r7, lsr r9
1283        sbc r6, r7, asr r9
1284        sbc r6, r7, ror r9
1285
1286@ CHECK: sbc	r4, r5, #61440          @ encoding: [0x0f,0x4a,0xc5,0xe2]
1287@ CHECK: sbc	r4, r5, r6              @ encoding: [0x06,0x40,0xc5,0xe0]
1288@ CHECK: sbc	r4, r5, r6, lsl #5      @ encoding: [0x86,0x42,0xc5,0xe0]
1289@ CHECK: sbc	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0xc5,0xe0]
1290@ CHECK: sbc	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0xc5,0xe0]
1291@ CHECK: sbc	r4, r5, r6, asr #5      @ encoding: [0xc6,0x42,0xc5,0xe0]
1292@ CHECK: sbc	r4, r5, r6, ror #5      @ encoding: [0xe6,0x42,0xc5,0xe0]
1293@ CHECK: sbc	r6, r7, r8, lsl r9      @ encoding: [0x18,0x69,0xc7,0xe0]
1294@ CHECK: sbc	r6, r7, r8, lsr r9      @ encoding: [0x38,0x69,0xc7,0xe0]
1295@ CHECK: sbc	r6, r7, r8, asr r9      @ encoding: [0x58,0x69,0xc7,0xe0]
1296@ CHECK: sbc	r6, r7, r8, ror r9      @ encoding: [0x78,0x69,0xc7,0xe0]
1297
1298@ CHECK: sbc	r5, r5, #61440          @ encoding: [0x0f,0x5a,0xc5,0xe2]
1299@ CHECK: sbc	r4, r4, r5              @ encoding: [0x05,0x40,0xc4,0xe0]
1300@ CHECK: sbc	r4, r4, r5, lsl #5      @ encoding: [0x85,0x42,0xc4,0xe0]
1301@ CHECK: sbc	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0xc4,0xe0]
1302@ CHECK: sbc	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0xc4,0xe0]
1303@ CHECK: sbc	r4, r4, r5, asr #5      @ encoding: [0xc5,0x42,0xc4,0xe0]
1304@ CHECK: sbc	r4, r4, r5, ror #5      @ encoding: [0xe5,0x42,0xc4,0xe0]
1305@ CHECK: sbc	r6, r6, r7, lsl r9      @ encoding: [0x17,0x69,0xc6,0xe0]
1306@ CHECK: sbc	r6, r6, r7, lsr r9      @ encoding: [0x37,0x69,0xc6,0xe0]
1307@ CHECK: sbc	r6, r6, r7, asr r9      @ encoding: [0x57,0x69,0xc6,0xe0]
1308@ CHECK: sbc	r6, r6, r7, ror r9      @ encoding: [0x77,0x69,0xc6,0xe0]
1309
1310
1311@------------------------------------------------------------------------------
1312@ SBFX
1313@------------------------------------------------------------------------------
1314        sbfx r4, r5, #16, #1
1315        sbfxgt r4, r5, #16, #16
1316
1317@ CHECK: sbfx	r4, r5, #16, #1         @ encoding: [0x55,0x48,0xa0,0xe7]
1318@ CHECK: sbfxgt	r4, r5, #16, #16        @ encoding: [0x55,0x48,0xaf,0xc7]
1319
1320
1321@------------------------------------------------------------------------------
1322@ SEL
1323@------------------------------------------------------------------------------
1324        sel r9, r2, r1
1325        selne r9, r2, r1
1326
1327@ CHECK: sel	r9, r2, r1              @ encoding: [0xb1,0x9f,0x82,0xe6]
1328@ CHECK: selne	r9, r2, r1              @ encoding: [0xb1,0x9f,0x82,0x16]
1329
1330
1331@------------------------------------------------------------------------------
1332@ SETEND
1333@------------------------------------------------------------------------------
1334        setend be
1335        setend le
1336
1337        sel	r9, r2, r1              @ encoding: [0xb1,0x9f,0x82,0xe6]
1338        selne	r9, r2, r1              @ encoding: [0xb1,0x9f,0x82,0x16]
1339
1340
1341@------------------------------------------------------------------------------
1342@ SEV
1343@------------------------------------------------------------------------------
1344        sev
1345        seveq
1346
1347@ CHECK: sev                             @ encoding: [0x04,0xf0,0x20,0xe3]
1348@ CHECK: seveq                           @ encoding: [0x04,0xf0,0x20,0x03]
1349
1350@------------------------------------------------------------------------------
1351@ SHADD16/SHADD8
1352@------------------------------------------------------------------------------
1353        shadd16 r4, r8, r2
1354        shadd16gt r4, r8, r2
1355        shadd8 r4, r8, r2
1356        shadd8gt r4, r8, r2
1357
1358@ CHECK: shadd16	r4, r8, r2      @ encoding: [0x12,0x4f,0x38,0xe6]
1359@ CHECK: shadd16gt	r4, r8, r2      @ encoding: [0x12,0x4f,0x38,0xc6]
1360@ CHECK: shadd8	r4, r8, r2              @ encoding: [0x92,0x4f,0x38,0xe6]
1361@ CHECK: shadd8gt	r4, r8, r2      @ encoding: [0x92,0x4f,0x38,0xc6]
1362
1363
1364@------------------------------------------------------------------------------
1365@ SHASX
1366@------------------------------------------------------------------------------
1367        shasx r4, r8, r2
1368        shasxgt r4, r8, r2
1369
1370@ CHECK: shasx	r4, r8, r2              @ encoding: [0x32,0x4f,0x38,0xe6]
1371@ CHECK: shasxgt r4, r8, r2             @ encoding: [0x32,0x4f,0x38,0xc6]
1372
1373
1374@------------------------------------------------------------------------------
1375@ SHSUB16/SHSUB8
1376@------------------------------------------------------------------------------
1377        shsub16 r4, r8, r2
1378        shsub16gt r4, r8, r2
1379        shsub8 r4, r8, r2
1380        shsub8gt r4, r8, r2
1381
1382@ CHECK: shsub16	r4, r8, r2      @ encoding: [0x72,0x4f,0x38,0xe6]
1383@ CHECK: shsub16gt	r4, r8, r2      @ encoding: [0x72,0x4f,0x38,0xc6]
1384@ CHECK: shsub8	r4, r8, r2              @ encoding: [0xf2,0x4f,0x38,0xe6]
1385@ CHECK: shsub8gt	r4, r8, r2      @ encoding: [0xf2,0x4f,0x38,0xc6]
1386
1387@------------------------------------------------------------------------------
1388@ SMC
1389@------------------------------------------------------------------------------
1390        smc #0xf
1391        smceq #0
1392
1393@ CHECK: smc	#15                     @ encoding: [0x7f,0x00,0x60,0xe1]
1394@ CHECK: smceq	#0                      @ encoding: [0x70,0x00,0x60,0x01]
1395
1396@------------------------------------------------------------------------------
1397@ SMLABB/SMLABT/SMLATB/SMLATT
1398@------------------------------------------------------------------------------
1399        smlabb r3, r1, r9, r0
1400        smlabt r5, r6, r4, r1
1401        smlatb r4, r2, r3, r2
1402        smlatt r8, r3, r8, r4
1403        smlabbge r3, r1, r9, r0
1404        smlabtle r5, r6, r4, r1
1405        smlatbne r4, r2, r3, r2
1406        smlatteq r8, r3, r8, r4
1407
1408@ CHECK: smlabb	r3, r1, r9, r0          @ encoding: [0x81,0x09,0x03,0xe1]
1409@ CHECK: smlabt	r5, r6, r4, r1          @ encoding: [0xc6,0x14,0x05,0xe1]
1410@ CHECK: smlatb	r4, r2, r3, r2          @ encoding: [0xa2,0x23,0x04,0xe1]
1411@ CHECK: smlatt	r8, r3, r8, r4          @ encoding: [0xe3,0x48,0x08,0xe1]
1412@ CHECK: smlabbge	r3, r1, r9, r0  @ encoding: [0x81,0x09,0x03,0xa1]
1413@ CHECK: smlabtle	r5, r6, r4, r1  @ encoding: [0xc6,0x14,0x05,0xd1]
1414@ CHECK: smlatbne	r4, r2, r3, r2  @ encoding: [0xa2,0x23,0x04,0x11]
1415@ CHECK: smlatteq	r8, r3, r8, r4  @ encoding: [0xe3,0x48,0x08,0x01]
1416
1417@------------------------------------------------------------------------------
1418@ SMLAD/SMLADX
1419@------------------------------------------------------------------------------
1420        smlad r2, r3, r5, r8
1421        smladx r2, r3, r5, r8
1422        smladeq r2, r3, r5, r8
1423        smladxhi r2, r3, r5, r8
1424
1425@ CHECK: smlad	r2, r3, r5, r8          @ encoding: [0x13,0x85,0x02,0xe7]
1426@ CHECK: smladx	r2, r3, r5, r8          @ encoding: [0x33,0x85,0x02,0xe7]
1427@ CHECK: smladeq	r2, r3, r5, r8  @ encoding: [0x13,0x85,0x02,0x07]
1428@ CHECK: smladxhi	r2, r3, r5, r8  @ encoding: [0x33,0x85,0x02,0x87]
1429
1430
1431@------------------------------------------------------------------------------
1432@ SMLAL
1433@------------------------------------------------------------------------------
1434        smlal r2, r3, r5, r8
1435        smlals r2, r3, r5, r8
1436        smlaleq r2, r3, r5, r8
1437        smlalshi r2, r3, r5, r8
1438
1439@ CHECK: smlal	r2, r3, r5, r8          @ encoding: [0x95,0x28,0xe3,0xe0]
1440@ CHECK: smlals	r2, r3, r5, r8          @ encoding: [0x95,0x28,0xf3,0xe0]
1441@ CHECK: smlaleq	r2, r3, r5, r8  @ encoding: [0x95,0x28,0xe3,0x00]
1442@ CHECK: smlalshi	r2, r3, r5, r8  @ encoding: [0x95,0x28,0xf3,0x80]
1443
1444
1445@------------------------------------------------------------------------------
1446@ SMLALBB/SMLALBT/SMLALTB/SMLALTT
1447@------------------------------------------------------------------------------
1448        smlalbb r3, r1, r9, r0
1449        smlalbt r5, r6, r4, r1
1450        smlaltb r4, r2, r3, r2
1451        smlaltt r8, r3, r8, r4
1452        smlalbbge r3, r1, r9, r0
1453        smlalbtle r5, r6, r4, r1
1454        smlaltbne r4, r2, r3, r2
1455        smlaltteq r8, r3, r8, r4
1456
1457@ CHECK: smlalbb	r3, r1, r9, r0  @ encoding: [0x89,0x30,0x41,0xe1]
1458@ CHECK: smlalbt	r5, r6, r4, r1  @ encoding: [0xc4,0x51,0x46,0xe1]
1459@ CHECK: smlaltb	r4, r2, r3, r2  @ encoding: [0xa3,0x42,0x42,0xe1]
1460@ CHECK: smlaltt	r8, r3, r8, r4  @ encoding: [0xe8,0x84,0x43,0xe1]
1461@ CHECK: smlalbbge	r3, r1, r9, r0  @ encoding: [0x89,0x30,0x41,0xa1]
1462@ CHECK: smlalbtle	r5, r6, r4, r1  @ encoding: [0xc4,0x51,0x46,0xd1]
1463@ CHECK: smlaltbne	r4, r2, r3, r2  @ encoding: [0xa3,0x42,0x42,0x11]
1464@ CHECK: smlaltteq	r8, r3, r8, r4  @ encoding: [0xe8,0x84,0x43,0x01]
1465
1466
1467@------------------------------------------------------------------------------
1468@ SMLALD/SMLALDX
1469@------------------------------------------------------------------------------
1470        smlald r2, r3, r5, r8
1471        smlaldx r2, r3, r5, r8
1472        smlaldeq r2, r3, r5, r8
1473        smlaldxhi r2, r3, r5, r8
1474
1475@ CHECK: smlald	r2, r3, r5, r8          @ encoding: [0x15,0x28,0x43,0xe7]
1476@ CHECK: smlaldx	r2, r3, r5, r8  @ encoding: [0x35,0x28,0x43,0xe7]
1477@ CHECK: smlaldeq	r2, r3, r5, r8  @ encoding: [0x15,0x28,0x43,0x07]
1478@ CHECK: smlaldxhi	r2, r3, r5, r8  @ encoding: [0x35,0x28,0x43,0x87]
1479
1480
1481@------------------------------------------------------------------------------
1482@ SMLAWB/SMLAWT
1483@------------------------------------------------------------------------------
1484        smlawb r2, r3, r10, r8
1485        smlawt r8, r3, r5, r9
1486        smlawbeq r2, r7, r5, r8
1487        smlawthi r1, r3, r0, r8
1488
1489@ CHECK: smlawb	r2, r3, r10, r8         @ encoding: [0x83,0x8a,0x22,0xe1]
1490@ CHECK: smlawt	r8, r3, r5, r9          @ encoding: [0xc3,0x95,0x28,0xe1]
1491@ CHECK: smlawbeq	r2, r7, r5, r8  @ encoding: [0x87,0x85,0x22,0x01]
1492@ CHECK: smlawthi	r1, r3, r0, r8  @ encoding: [0xc3,0x80,0x21,0x81]
1493
1494
1495@------------------------------------------------------------------------------
1496@ SMLSD/SMLSDX
1497@------------------------------------------------------------------------------
1498        smlsd r2, r3, r5, r8
1499        smlsdx r2, r3, r5, r8
1500        smlsdeq r2, r3, r5, r8
1501        smlsdxhi r2, r3, r5, r8
1502
1503@ CHECK: smlsd	r2, r3, r5, r8          @ encoding: [0x53,0x85,0x02,0xe7]
1504@ CHECK: smlsdx	r2, r3, r5, r8          @ encoding: [0x73,0x85,0x02,0xe7]
1505@ CHECK: smlsdeq	r2, r3, r5, r8  @ encoding: [0x53,0x85,0x02,0x07]
1506@ CHECK: smlsdxhi	r2, r3, r5, r8  @ encoding: [0x73,0x85,0x02,0x87]
1507
1508
1509@------------------------------------------------------------------------------
1510@ SMLSLD/SMLSLDX
1511@------------------------------------------------------------------------------
1512        smlsld r2, r9, r5, r1
1513        smlsldx r4, r11, r2, r8
1514        smlsldeq r8, r2, r5, r6
1515        smlsldxhi r1, r0, r3, r8
1516
1517@ CHECK: smlsld	r2, r9, r5, r1          @ encoding: [0x55,0x21,0x49,0xe7]
1518@ CHECK: smlsldx	r4, r11, r2, r8 @ encoding: [0x72,0x48,0x4b,0xe7]
1519@ CHECK: smlsldeq	r8, r2, r5, r6  @ encoding: [0x55,0x86,0x42,0x07]
1520@ CHECK: smlsldxhi	r1, r0, r3, r8  @ encoding: [0x73,0x18,0x40,0x87]
1521
1522
1523@------------------------------------------------------------------------------
1524@ SMMLA/SMMLAR
1525@------------------------------------------------------------------------------
1526        smmla r1, r2, r3, r4
1527        smmlar r4, r3, r2, r1
1528        smmlalo r1, r2, r3, r4
1529        smmlarcs r4, r3, r2, r1
1530
1531@ CHECK: smmla	r1, r2, r3, r4          @ encoding: [0x12,0x43,0x51,0xe7]
1532@ CHECK: smmlar	r4, r3, r2, r1          @ encoding: [0x33,0x12,0x54,0xe7]
1533@ CHECK: smmlalo	r1, r2, r3, r4  @ encoding: [0x12,0x43,0x51,0x37]
1534@ CHECK: smmlarhs	r4, r3, r2, r1  @ encoding: [0x33,0x12,0x54,0x27]
1535
1536
1537@------------------------------------------------------------------------------
1538@ SMMLS/SMMLSR
1539@------------------------------------------------------------------------------
1540        smmls r1, r2, r3, r4
1541        smmlsr r4, r3, r2, r1
1542        smmlslo r1, r2, r3, r4
1543        smmlsrcs r4, r3, r2, r1
1544
1545@ CHECK: smmls	r1, r2, r3, r4          @ encoding: [0xd2,0x43,0x51,0xe7]
1546@ CHECK: smmlsr	r4, r3, r2, r1          @ encoding: [0xf3,0x12,0x54,0xe7]
1547@ CHECK: smmlslo	r1, r2, r3, r4  @ encoding: [0xd2,0x43,0x51,0x37]
1548@ CHECK: smmlsrhs	r4, r3, r2, r1  @ encoding: [0xf3,0x12,0x54,0x27]
1549
1550
1551@------------------------------------------------------------------------------
1552@ SMMUL/SMMULR
1553@------------------------------------------------------------------------------
1554        smmul r2, r3, r4
1555        smmulr r3, r2, r1
1556        smmulcc r2, r3, r4
1557        smmulrhs r3, r2, r1
1558
1559@ CHECK: smmul	r2, r3, r4              @ encoding: [0x13,0xf4,0x52,0xe7]
1560@ CHECK: smmulr	r3, r2, r1              @ encoding: [0x32,0xf1,0x53,0xe7]
1561@ CHECK: smmullo	r2, r3, r4      @ encoding: [0x13,0xf4,0x52,0x37]
1562@ CHECK: smmulrhs	r3, r2, r1      @ encoding: [0x32,0xf1,0x53,0x27]
1563
1564
1565@------------------------------------------------------------------------------
1566@ SMUAD/SMUADX
1567@------------------------------------------------------------------------------
1568        smuad r2, r3, r4
1569        smuadx r3, r2, r1
1570        smuadlt r2, r3, r4
1571        smuadxge r3, r2, r1
1572
1573@ CHECK: smuad	r2, r3, r4              @ encoding: [0x13,0xf4,0x02,0xe7]
1574@ CHECK: smuadx	r3, r2, r1              @ encoding: [0x32,0xf1,0x03,0xe7]
1575@ CHECK: smuadlt	r2, r3, r4      @ encoding: [0x13,0xf4,0x02,0xb7]
1576@ CHECK: smuadxge	r3, r2, r1      @ encoding: [0x32,0xf1,0x03,0xa7]
1577
1578
1579@------------------------------------------------------------------------------
1580@ SMULBB/SMLALBT/SMLALTB/SMLALTT
1581@------------------------------------------------------------------------------
1582        smulbb r3, r9, r0
1583        smulbt r5, r4, r1
1584        smultb r4, r2, r2
1585        smultt r8, r3, r4
1586        smulbbge r1, r9, r0
1587        smulbtle r5, r6, r4
1588        smultbne r2, r3, r2
1589        smultteq r8, r3, r4
1590
1591@ CHECK: smulbb	r3, r9, r0              @ encoding: [0x89,0x00,0x63,0xe1]
1592@ CHECK: smulbt	r5, r4, r1              @ encoding: [0xc4,0x01,0x65,0xe1]
1593@ CHECK: smultb	r4, r2, r2              @ encoding: [0xa2,0x02,0x64,0xe1]
1594@ CHECK: smultt	r8, r3, r4              @ encoding: [0xe3,0x04,0x68,0xe1]
1595@ CHECK: smulbbge	r1, r9, r0      @ encoding: [0x89,0x00,0x61,0xa1]
1596@ CHECK: smulbtle	r5, r6, r4      @ encoding: [0xc6,0x04,0x65,0xd1]
1597@ CHECK: smultbne	r2, r3, r2      @ encoding: [0xa3,0x02,0x62,0x11]
1598@ CHECK: smultteq	r8, r3, r4      @ encoding: [0xe3,0x04,0x68,0x01]
1599
1600
1601@------------------------------------------------------------------------------
1602@ SMULL
1603@------------------------------------------------------------------------------
1604        smull r3, r9, r0, r1
1605        smulls r3, r9, r0, r2
1606        smulleq r8, r3, r4, r5
1607        smullseq r8, r3, r4, r3
1608
1609@ CHECK: smull	r3, r9, r0, r1          @ encoding: [0x90,0x31,0xc9,0xe0]
1610@ CHECK: smulls	r3, r9, r0, r2          @ encoding: [0x90,0x32,0xd9,0xe0]
1611@ CHECK: smulleq	r8, r3, r4, r5  @ encoding: [0x94,0x85,0xc3,0x00]
1612@ CHECK: smullseq	r8, r3, r4, r3  @ encoding: [0x94,0x83,0xd3,0x00]
1613
1614
1615@------------------------------------------------------------------------------
1616@ SMULWB/SMULWT
1617@------------------------------------------------------------------------------
1618        smulwb r3, r9, r0
1619        smulwt r3, r9, r2
1620
1621@ CHECK: smulwb	r3, r9, r0              @ encoding: [0xa9,0x00,0x23,0xe1]
1622@ CHECK: smulwt	r3, r9, r2              @ encoding: [0xe9,0x02,0x23,0xe1]
1623
1624
1625@------------------------------------------------------------------------------
1626@ SMUSD/SMUSDX
1627@------------------------------------------------------------------------------
1628        smusd r3, r0, r1
1629        smusdx r3, r9, r2
1630        smusdeq r8, r3, r2
1631        smusdxne r7, r4, r3
1632
1633@ CHECK: smusd	r3, r0, r1              @ encoding: [0x50,0xf1,0x03,0xe7]
1634@ CHECK: smusdx	r3, r9, r2              @ encoding: [0x79,0xf2,0x03,0xe7]
1635@ CHECK: smusdeq	r8, r3, r2      @ encoding: [0x53,0xf2,0x08,0x07]
1636@ CHECK: smusdxne	r7, r4, r3      @ encoding: [0x74,0xf3,0x07,0x17]
1637
1638
1639@------------------------------------------------------------------------------
1640@ FIXME: SRS
1641@------------------------------------------------------------------------------
1642
1643
1644@------------------------------------------------------------------------------
1645@ SSAT
1646@------------------------------------------------------------------------------
1647        ssat	r8, #1, r10
1648        ssat	r8, #1, r10, lsl #0
1649        ssat	r8, #1, r10, lsl #31
1650        ssat	r8, #1, r10, asr #32
1651        ssat	r8, #1, r10, asr #1
1652
1653@ CHECK: ssat	r8, #1, r10             @ encoding: [0x1a,0x80,0xa0,0xe6]
1654@ CHECK: ssat	r8, #1, r10             @ encoding: [0x1a,0x80,0xa0,0xe6]
1655@ CHECK: ssat	r8, #1, r10, lsl #31    @ encoding: [0x9a,0x8f,0xa0,0xe6]
1656@ CHECK: ssat	r8, #1, r10, asr #32    @ encoding: [0x5a,0x80,0xa0,0xe6]
1657@ CHECK: ssat	r8, #1, r10, asr #1     @ encoding: [0xda,0x80,0xa0,0xe6]
1658
1659
1660@------------------------------------------------------------------------------
1661@ SSAT16
1662@------------------------------------------------------------------------------
1663        ssat16	r2, #1, r7
1664        ssat16	r3, #16, r5
1665
1666@ CHECK: ssat16	r2, #1, r7              @ encoding: [0x37,0x2f,0xa0,0xe6]
1667@ CHECK: ssat16	r3, #16, r5             @ encoding: [0x35,0x3f,0xaf,0xe6]
1668
1669
1670@------------------------------------------------------------------------------
1671@ SSAX
1672@------------------------------------------------------------------------------
1673        ssax r2, r3, r4
1674        ssaxlt r2, r3, r4
1675
1676@ CHECK: ssax	r2, r3, r4              @ encoding: [0x54,0x2f,0x13,0xe6]
1677@ CHECK: ssaxlt	r2, r3, r4              @ encoding: [0x54,0x2f,0x13,0xb6]
1678
1679@------------------------------------------------------------------------------
1680@ SSUB16/SSUB8
1681@------------------------------------------------------------------------------
1682        ssub16 r1, r0, r6
1683        ssub16ne r5, r3, r2
1684        ssub8 r9, r2, r4
1685        ssub8eq r5, r1, r2
1686
1687@ CHECK: ssub16	r1, r0, r6              @ encoding: [0x76,0x1f,0x10,0xe6]
1688@ CHECK: ssub16ne	r5, r3, r2      @ encoding: [0x72,0x5f,0x13,0x16]
1689@ CHECK: ssub8	r9, r2, r4              @ encoding: [0xf4,0x9f,0x12,0xe6]
1690@ CHECK: ssub8eq	r5, r1, r2      @ encoding: [0xf2,0x5f,0x11,0x06]
1691
1692
1693@------------------------------------------------------------------------------
1694@ STM*
1695@------------------------------------------------------------------------------
1696        stm       r2, {r1,r3-r6,sp}
1697        stmia     r3, {r1,r3-r6,lr}
1698        stmib     r4, {r1,r3-r6,sp}
1699        stmda     r5, {r1,r3-r6,sp}
1700        stmdb     r6, {r1,r3-r6,r8}
1701        stmfd     sp, {r1,r3-r6,sp}
1702
1703        @ with update
1704        stm       r8!, {r1,r3-r6,sp}
1705        stmib     r9!, {r1,r3-r6,sp}
1706        stmda     sp!, {r1,r3-r6}
1707        stmdb     r0!, {r1,r5,r7,sp}
1708
1709@ CHECK: stm	r2, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x82,0xe8]
1710@ CHECK: stm	r3, {lr, r1, r3, r4, r5, r6} @ encoding: [0x7a,0x40,0x83,0xe8]
1711@ CHECK: stmib	r4, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x84,0xe9]
1712@ CHECK: stmda	r5, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x05,0xe8]
1713@ CHECK: stmdb	r6, {r1, r3, r4, r5, r6, r8} @ encoding: [0x7a,0x01,0x06,0xe9]
1714@ CHECK: stmdb	sp, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0x0d,0xe9]
1715
1716@ CHECK: stm	r8!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa8,0xe8]
1717@ CHECK: stmib	r9!, {r1, r3, r4, r5, r6, sp} @ encoding: [0x7a,0x20,0xa9,0xe9]
1718@ CHECK: stmda	sp!, {r1, r3, r4, r5, r6} @ encoding: [0x7a,0x00,0x2d,0xe8]
1719@ CHECK: stmdb	r0!, {r1, r5, r7, sp}   @ encoding: [0xa2,0x20,0x20,0xe9]
1720
1721
1722@------------------------------------------------------------------------------
1723@ FIXME:STR*
1724@------------------------------------------------------------------------------
1725@------------------------------------------------------------------------------
1726@ STREX/STREXB/STREXH/STREXD
1727@------------------------------------------------------------------------------
1728        strexb  r1, r3, [r4]
1729        strexh  r4, r2, [r5]
1730        strex  r2, r1, [r7]
1731        strexd  r6, r2, r3, [r8]
1732
1733@ CHECK: strexb	r1, r3, [r4]            @ encoding: [0x93,0x1f,0xc4,0xe1]
1734@ CHECK: strexh	r4, r2, [r5]            @ encoding: [0x92,0x4f,0xe5,0xe1]
1735@ CHECK: strex	r2, r1, [r7]            @ encoding: [0x91,0x2f,0x87,0xe1]
1736@ CHECK: strexd	r6, r2, r3, [r8]        @ encoding: [0x92,0x6f,0xa8,0xe1]
1737
1738
1739@------------------------------------------------------------------------------
1740@ SUB
1741@------------------------------------------------------------------------------
1742        sub r4, r5, #0xf000
1743        sub r4, r5, r6
1744        sub r4, r5, r6, lsl #5
1745        sub r4, r5, r6, lsr #5
1746        sub r4, r5, r6, lsr #5
1747        sub r4, r5, r6, asr #5
1748        sub r4, r5, r6, ror #5
1749        sub r6, r7, r8, lsl r9
1750        sub r6, r7, r8, lsr r9
1751        sub r6, r7, r8, asr r9
1752        sub r6, r7, r8, ror r9
1753
1754        @ destination register is optional
1755        sub r5, #0xf000
1756        sub r4, r5
1757        sub r4, r5, lsl #5
1758        sub r4, r5, lsr #5
1759        sub r4, r5, lsr #5
1760        sub r4, r5, asr #5
1761        sub r4, r5, ror #5
1762        sub r6, r7, lsl r9
1763        sub r6, r7, lsr r9
1764        sub r6, r7, asr r9
1765        sub r6, r7, ror r9
1766
1767@ CHECK: sub	r4, r5, #61440          @ encoding: [0x0f,0x4a,0x45,0xe2]
1768@ CHECK: sub	r4, r5, r6              @ encoding: [0x06,0x40,0x45,0xe0]
1769@ CHECK: sub	r4, r5, r6, lsl #5      @ encoding: [0x86,0x42,0x45,0xe0]
1770@ CHECK: sub	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x45,0xe0]
1771@ CHECK: sub	r4, r5, r6, lsr #5      @ encoding: [0xa6,0x42,0x45,0xe0]
1772@ CHECK: sub	r4, r5, r6, asr #5      @ encoding: [0xc6,0x42,0x45,0xe0]
1773@ CHECK: sub	r4, r5, r6, ror #5      @ encoding: [0xe6,0x42,0x45,0xe0]
1774@ CHECK: sub	r6, r7, r8, lsl r9      @ encoding: [0x18,0x69,0x47,0xe0]
1775@ CHECK: sub	r6, r7, r8, lsr r9      @ encoding: [0x38,0x69,0x47,0xe0]
1776@ CHECK: sub	r6, r7, r8, asr r9      @ encoding: [0x58,0x69,0x47,0xe0]
1777@ CHECK: sub	r6, r7, r8, ror r9      @ encoding: [0x78,0x69,0x47,0xe0]
1778
1779
1780@ CHECK: sub	r5, r5, #61440          @ encoding: [0x0f,0x5a,0x45,0xe2]
1781@ CHECK: sub	r4, r4, r5              @ encoding: [0x05,0x40,0x44,0xe0]
1782@ CHECK: sub	r4, r4, r5, lsl #5      @ encoding: [0x85,0x42,0x44,0xe0]
1783@ CHECK: sub	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x44,0xe0]
1784@ CHECK: sub	r4, r4, r5, lsr #5      @ encoding: [0xa5,0x42,0x44,0xe0]
1785@ CHECK: sub	r4, r4, r5, asr #5      @ encoding: [0xc5,0x42,0x44,0xe0]
1786@ CHECK: sub	r4, r4, r5, ror #5      @ encoding: [0xe5,0x42,0x44,0xe0]
1787@ CHECK: sub	r6, r6, r7, lsl r9      @ encoding: [0x17,0x69,0x46,0xe0]
1788@ CHECK: sub	r6, r6, r7, lsr r9      @ encoding: [0x37,0x69,0x46,0xe0]
1789@ CHECK: sub	r6, r6, r7, asr r9      @ encoding: [0x57,0x69,0x46,0xe0]
1790@ CHECK: sub	r6, r6, r7, ror r9      @ encoding: [0x77,0x69,0x46,0xe0]
1791
1792
1793@------------------------------------------------------------------------------
1794@ SVC
1795@------------------------------------------------------------------------------
1796        svc #16
1797        svc #0
1798        svc #0xffffff
1799
1800@ CHECK: svc	#16                     @ encoding: [0x10,0x00,0x00,0xef]
1801@ CHECK: svc	#0                      @ encoding: [0x00,0x00,0x00,0xef]
1802@ CHECK: svc	#16777215               @ encoding: [0xff,0xff,0xff,0xef]
1803
1804
1805@------------------------------------------------------------------------------
1806@ SWP/SWPB
1807@------------------------------------------------------------------------------
1808        swp r1, r2, [r3]
1809        swp r4, r4, [r6]
1810        swpb r5, r1, [r9]
1811
1812@ CHECK: swp	r1, r2, [r3]            @ encoding: [0x92,0x10,0x03,0xe1]
1813@ CHECK: swp	r4, r4, [r6]            @ encoding: [0x94,0x40,0x06,0xe1]
1814@ CHECK: swpb	r5, r1, [r9]            @ encoding: [0x91,0x50,0x49,0xe1]
1815
1816
1817@------------------------------------------------------------------------------
1818@ SXTAB
1819@------------------------------------------------------------------------------
1820        sxtab r2, r3, r4
1821        sxtab r4, r5, r6, ror #0
1822        sxtablt r6, r2, r9, ror #8
1823        sxtab r5, r1, r4, ror #16
1824        sxtab r7, r8, r3, ror #24
1825
1826@ CHECK: sxtab	r2, r3, r4              @ encoding: [0x74,0x20,0xa3,0xe6]
1827@ CHECK: sxtab	r4, r5, r6              @ encoding: [0x76,0x40,0xa5,0xe6]
1828@ CHECK: sxtablt	r6, r2, r9, ror #8
1829                                        @ encoding: [0x79,0x64,0xa2,0xb6]
1830@ CHECK: sxtab	r5, r1, r4, ror #16
1831                                        @ encoding: [0x74,0x58,0xa1,0xe6]
1832@ CHECK: sxtab	r7, r8, r3, ror #24
1833                                        @ encoding: [0x73,0x7c,0xa8,0xe6]
1834
1835
1836@------------------------------------------------------------------------------
1837@ SXTAB16
1838@------------------------------------------------------------------------------
1839        sxtab16ge r0, r1, r4
1840        sxtab16 r6, r2, r7, ror #0
1841        sxtab16 r3, r5, r8, ror #8
1842        sxtab16 r3, r2, r1, ror #16
1843        sxtab16eq r1, r2, r3, ror #24
1844
1845@ CHECK: sxtab16ge	r0, r1, r4      @ encoding: [0x74,0x00,0x81,0xa6]
1846@ CHECK: sxtab16	r6, r2, r7      @ encoding: [0x77,0x60,0x82,0xe6]
1847@ CHECK: sxtab16	r3, r5, r8, ror #8
1848                                        @ encoding: [0x78,0x34,0x85,0xe6]
1849@ CHECK: sxtab16	r3, r2, r1, ror #16
1850                                        @ encoding: [0x71,0x38,0x82,0xe6]
1851@ CHECK: sxtab16eq	r1, r2, r3, ror #24
1852                                        @ encoding: [0x73,0x1c,0x82,0x06]
1853
1854@------------------------------------------------------------------------------
1855@ SXTAH
1856@------------------------------------------------------------------------------
1857        sxtah r1, r3, r9
1858        sxtahhi r6, r1, r6, ror #0
1859        sxtah r3, r8, r3, ror #8
1860        sxtahlo r2, r2, r4, ror #16
1861        sxtah r9, r3, r3, ror #24
1862
1863@ CHECK: sxtah	r1, r3, r9              @ encoding: [0x79,0x10,0xb3,0xe6]
1864@ CHECK: sxtahhi	r6, r1, r6      @ encoding: [0x76,0x60,0xb1,0x86]
1865@ CHECK: sxtah	r3, r8, r3, ror #8
1866                                        @ encoding: [0x73,0x34,0xb8,0xe6]
1867@ CHECK: sxtahlo	r2, r2, r4, ror #16
1868                                        @ encoding: [0x74,0x28,0xb2,0x36]
1869@ CHECK: sxtah	r9, r3, r3, ror #24
1870                                        @ encoding: [0x73,0x9c,0xb3,0xe6]
1871
1872@------------------------------------------------------------------------------
1873@ SXTB
1874@------------------------------------------------------------------------------
1875        sxtbge r2, r4
1876        sxtb r5, r6, ror #0
1877        sxtb r6, r9, ror #8
1878        sxtbcc r5, r1, ror #16
1879        sxtb r8, r3, ror #24
1880
1881@ CHECK: sxtbge	r2, r4                  @ encoding: [0x74,0x20,0xaf,0xa6]
1882@ CHECK: sxtb	r5, r6                  @ encoding: [0x76,0x50,0xaf,0xe6]
1883@ CHECK: sxtb	r6, r9, ror #8
1884                                        @ encoding: [0x79,0x64,0xaf,0xe6]
1885@ CHECK: sxtblo	r5, r1, ror #16
1886                                        @ encoding: [0x71,0x58,0xaf,0x36]
1887@ CHECK: sxtb	r8, r3, ror #24
1888                                        @ encoding: [0x73,0x8c,0xaf,0xe6]
1889
1890
1891@------------------------------------------------------------------------------
1892@ SXTB16
1893@------------------------------------------------------------------------------
1894        sxtb16 r1, r4
1895        sxtb16 r6, r7, ror #0
1896        sxtb16cs r3, r5, ror #8
1897        sxtb16 r3, r1, ror #16
1898        sxtb16ge r2, r3, ror #24
1899
1900@ CHECK: sxtb16	r1, r4                  @ encoding: [0x74,0x10,0x8f,0xe6]
1901@ CHECK: sxtb16	r6, r7                  @ encoding: [0x77,0x60,0x8f,0xe6]
1902@ CHECK: sxtb16hs	r3, r5, ror #8
1903                                        @ encoding: [0x75,0x34,0x8f,0x26]
1904@ CHECK: sxtb16	r3, r1, ror #16
1905                                        @ encoding: [0x71,0x38,0x8f,0xe6]
1906@ CHECK: sxtb16ge	r2, r3, ror #24
1907                                        @ encoding: [0x73,0x2c,0x8f,0xa6]
1908
1909
1910@------------------------------------------------------------------------------
1911@ SXTH
1912@------------------------------------------------------------------------------
1913        sxthne r3, r9
1914        sxth r1, r6, ror #0
1915        sxth r3, r8, ror #8
1916        sxthle r2, r2, ror #16
1917        sxth r9, r3, ror #24
1918
1919@ CHECK: sxthne	r3, r9                  @ encoding: [0x79,0x30,0xbf,0x16]
1920@ CHECK: sxth	r1, r6                  @ encoding: [0x76,0x10,0xbf,0xe6]
1921@ CHECK: sxth	r3, r8, ror #8
1922                                        @ encoding: [0x78,0x34,0xbf,0xe6]
1923@ CHECK: sxthle	r2, r2, ror #16
1924                                        @ encoding: [0x72,0x28,0xbf,0xd6]
1925@ CHECK: sxth	r9, r3, ror #24
1926                                        @ encoding: [0x73,0x9c,0xbf,0xe6]
1927
1928
1929@------------------------------------------------------------------------------
1930@ FIXME: TBB/TBH
1931@------------------------------------------------------------------------------
1932
1933
1934@------------------------------------------------------------------------------
1935@ TEQ
1936@------------------------------------------------------------------------------
1937        teq r5, #0xf000
1938        teq r4, r5
1939        teq r4, r5, lsl #5
1940        teq r4, r5, lsr #5
1941        teq r4, r5, lsr #5
1942        teq r4, r5, asr #5
1943        teq r4, r5, ror #5
1944        teq r6, r7, lsl r9
1945        teq r6, r7, lsr r9
1946        teq r6, r7, asr r9
1947        teq r6, r7, ror r9
1948
1949@ CHECK: teq	r5, #61440              @ encoding: [0x0f,0x0a,0x35,0xe3]
1950@ CHECK: teq	r4, r5                  @ encoding: [0x05,0x00,0x34,0xe1]
1951@ CHECK: teq	r4, r5, lsl #5          @ encoding: [0x85,0x02,0x34,0xe1]
1952@ CHECK: teq	r4, r5, lsr #5          @ encoding: [0xa5,0x02,0x34,0xe1]
1953@ CHECK: teq	r4, r5, lsr #5          @ encoding: [0xa5,0x02,0x34,0xe1]
1954@ CHECK: teq	r4, r5, asr #5          @ encoding: [0xc5,0x02,0x34,0xe1]
1955@ CHECK: teq	r4, r5, ror #5          @ encoding: [0xe5,0x02,0x34,0xe1]
1956@ CHECK: teq	r6, r7, lsl r9          @ encoding: [0x17,0x09,0x36,0xe1]
1957@ CHECK: teq	r6, r7, lsr r9          @ encoding: [0x37,0x09,0x36,0xe1]
1958@ CHECK: teq	r6, r7, asr r9          @ encoding: [0x57,0x09,0x36,0xe1]
1959@ CHECK: teq	r6, r7, ror r9          @ encoding: [0x77,0x09,0x36,0xe1]
1960
1961
1962@------------------------------------------------------------------------------
1963@ TST
1964@------------------------------------------------------------------------------
1965        tst r5, #0xf000
1966        tst r4, r5
1967        tst r4, r5, lsl #5
1968        tst r4, r5, lsr #5
1969        tst r4, r5, lsr #5
1970        tst r4, r5, asr #5
1971        tst r4, r5, ror #5
1972        tst r6, r7, lsl r9
1973        tst r6, r7, lsr r9
1974        tst r6, r7, asr r9
1975        tst r6, r7, ror r9
1976
1977@ CHECK: tst	r5, #61440              @ encoding: [0x0f,0x0a,0x15,0xe3]
1978@ CHECK: tst	r4, r5                  @ encoding: [0x05,0x00,0x14,0xe1]
1979@ CHECK: tst	r4, r5, lsl #5          @ encoding: [0x85,0x02,0x14,0xe1]
1980@ CHECK: tst	r4, r5, lsr #5          @ encoding: [0xa5,0x02,0x14,0xe1]
1981@ CHECK: tst	r4, r5, lsr #5          @ encoding: [0xa5,0x02,0x14,0xe1]
1982@ CHECK: tst	r4, r5, asr #5          @ encoding: [0xc5,0x02,0x14,0xe1]
1983@ CHECK: tst	r4, r5, ror #5          @ encoding: [0xe5,0x02,0x14,0xe1]
1984@ CHECK: tst	r6, r7, lsl r9          @ encoding: [0x17,0x09,0x16,0xe1]
1985@ CHECK: tst	r6, r7, lsr r9          @ encoding: [0x37,0x09,0x16,0xe1]
1986@ CHECK: tst	r6, r7, asr r9          @ encoding: [0x57,0x09,0x16,0xe1]
1987@ CHECK: tst	r6, r7, ror r9          @ encoding: [0x77,0x09,0x16,0xe1]
1988
1989
1990@------------------------------------------------------------------------------
1991@ UADD16/UADD8
1992@------------------------------------------------------------------------------
1993        uadd16 r1, r2, r3
1994        uadd16gt r1, r2, r3
1995        uadd8 r1, r2, r3
1996        uadd8le r1, r2, r3
1997
1998@ CHECK: uadd16	r1, r2, r3              @ encoding: [0x13,0x1f,0x52,0xe6]
1999@ CHECK: uadd16gt	r1, r2, r3      @ encoding: [0x13,0x1f,0x52,0xc6]
2000@ CHECK: uadd8	r1, r2, r3              @ encoding: [0x93,0x1f,0x52,0xe6]
2001@ CHECK: uadd8le r1, r2, r3             @ encoding: [0x93,0x1f,0x52,0xd6]
2002
2003
2004@------------------------------------------------------------------------------
2005@ UASX
2006@------------------------------------------------------------------------------
2007        uasx r9, r12, r0
2008        uasxeq r9, r12, r0
2009
2010@ CHECK: uasx	r9, r12, r0             @ encoding: [0x30,0x9f,0x5c,0xe6]
2011@ CHECK: uasxeq	r9, r12, r0             @ encoding: [0x30,0x9f,0x5c,0x06]
2012
2013
2014@------------------------------------------------------------------------------
2015@ UBFX
2016@------------------------------------------------------------------------------
2017        ubfx r4, r5, #16, #1
2018        ubfxgt r4, r5, #16, #16
2019
2020@ CHECK: ubfx	r4, r5, #16, #1         @ encoding: [0x55,0x48,0xe0,0xe7]
2021@ CHECK: ubfxgt	r4, r5, #16, #16        @ encoding: [0x55,0x48,0xef,0xc7]
2022
2023
2024@------------------------------------------------------------------------------
2025@ UHADD16/UHADD8
2026@------------------------------------------------------------------------------
2027        uhadd16 r4, r8, r2
2028        uhadd16gt r4, r8, r2
2029        uhadd8 r4, r8, r2
2030        uhadd8gt r4, r8, r2
2031
2032@ CHECK: uhadd16	r4, r8, r2      @ encoding: [0x12,0x4f,0x78,0xe6]
2033@ CHECK: uhadd16gt	r4, r8, r2      @ encoding: [0x12,0x4f,0x78,0xc6]
2034@ CHECK: uhadd8	r4, r8, r2              @ encoding: [0x92,0x4f,0x78,0xe6]
2035@ CHECK: uhadd8gt	r4, r8, r2      @ encoding: [0x92,0x4f,0x78,0xc6]
2036
2037
2038@------------------------------------------------------------------------------
2039@ UHASX
2040@------------------------------------------------------------------------------
2041        uhasx r4, r8, r2
2042        uhasxgt r4, r8, r2
2043
2044@ CHECK: uhasx	r4, r8, r2              @ encoding: [0x32,0x4f,0x78,0xe6]
2045@ CHECK: uhasxgt r4, r8, r2             @ encoding: [0x32,0x4f,0x78,0xc6]
2046
2047
2048@------------------------------------------------------------------------------
2049@ UHSUB16/UHSUB8
2050@------------------------------------------------------------------------------
2051        uhsub16 r4, r8, r2
2052        uhsub16gt r4, r8, r2
2053        uhsub8 r4, r8, r2
2054        uhsub8gt r4, r8, r2
2055
2056@ CHECK: uhsub16	r4, r8, r2      @ encoding: [0x72,0x4f,0x78,0xe6]
2057@ CHECK: uhsub16gt	r4, r8, r2      @ encoding: [0x72,0x4f,0x78,0xc6]
2058@ CHECK: uhsub8	r4, r8, r2              @ encoding: [0xf2,0x4f,0x78,0xe6]
2059@ CHECK: uhsub8gt	r4, r8, r2      @ encoding: [0xf2,0x4f,0x78,0xc6]
2060
2061
2062@------------------------------------------------------------------------------
2063@ UMAAL
2064@------------------------------------------------------------------------------
2065        umaal r3, r4, r5, r6
2066        umaallt r3, r4, r5, r6
2067
2068@ CHECK: umaal	r3, r4, r5, r6          @ encoding: [0x95,0x46,0x43,0xe0]
2069@ CHECK: umaallt	r3, r4, r5, r6  @ encoding: [0x95,0x46,0x43,0xb0]
2070
2071
2072@------------------------------------------------------------------------------
2073@ UMLAL
2074@------------------------------------------------------------------------------
2075        umlal r2, r4, r6, r8
2076        umlalgt r6, r1, r2, r6
2077        umlals r2, r9, r2, r3
2078        umlalseq r3, r5, r1, r2
2079
2080@ CHECK: umlal	r2, r4, r6, r8          @ encoding: [0x96,0x28,0xa4,0xe0]
2081@ CHECK: umlalgt	r6, r1, r2, r6  @ encoding: [0x92,0x66,0xa1,0xc0]
2082@ CHECK: umlals	r2, r9, r2, r3          @ encoding: [0x92,0x23,0xb9,0xe0]
2083@ CHECK: umlalseq	r3, r5, r1, r2  @ encoding: [0x91,0x32,0xb5,0x00]
2084
2085
2086@------------------------------------------------------------------------------
2087@ UMULL
2088@------------------------------------------------------------------------------
2089        umull r2, r4, r6, r8
2090        umullgt r6, r1, r2, r6
2091        umulls r2, r9, r2, r3
2092        umullseq r3, r5, r1, r2
2093
2094@ CHECK: umull	r2, r4, r6, r8          @ encoding: [0x96,0x28,0x84,0xe0]
2095@ CHECK: umullgt	r6, r1, r2, r6  @ encoding: [0x92,0x66,0x81,0xc0]
2096@ CHECK: umulls	r2, r9, r2, r3          @ encoding: [0x92,0x23,0x99,0xe0]
2097@ CHECK: umullseq	r3, r5, r1, r2  @ encoding: [0x91,0x32,0x95,0x00]
2098
2099
2100@------------------------------------------------------------------------------
2101@ UQADD16/UQADD8
2102@------------------------------------------------------------------------------
2103        uqadd16 r1, r2, r3
2104        uqadd16gt r4, r7, r9
2105        uqadd8 r3, r4, r8
2106        uqadd8le r8, r1, r2
2107
2108
2109@ CHECK: uqadd16	r1, r2, r3      @ encoding: [0x13,0x1f,0x62,0xe6]
2110@ CHECK: uqadd16gt	r4, r7, r9      @ encoding: [0x19,0x4f,0x67,0xc6]
2111@ CHECK: uqadd8	r3, r4, r8              @ encoding: [0x98,0x3f,0x64,0xe6]
2112@ CHECK: uqadd8le	r8, r1, r2      @ encoding: [0x92,0x8f,0x61,0xd6]
2113
2114
2115@------------------------------------------------------------------------------
2116@ UQASX
2117@------------------------------------------------------------------------------
2118        uqasx r2, r4, r1
2119        uqasxhi r5, r2, r9
2120
2121@ CHECK: uqasx	r2, r4, r1              @ encoding: [0x31,0x2f,0x64,0xe6]
2122@ CHECK: uqasxhi	r5, r2, r9      @ encoding: [0x39,0x5f,0x62,0x86]
2123
2124
2125@------------------------------------------------------------------------------
2126@ UQSAX
2127@------------------------------------------------------------------------------
2128        uqsax r1, r3, r7
2129        uqsaxal r3, r6, r2
2130
2131@ CHECK: uqsax	r1, r3, r7              @ encoding: [0x57,0x1f,0x63,0xe6]
2132@ CHECK: uqsax	r3, r6, r2              @ encoding: [0x52,0x3f,0x66,0xe6]
2133
2134
2135@------------------------------------------------------------------------------
2136@ UQSUB16/UQSUB8
2137@------------------------------------------------------------------------------
2138        uqsub16 r1, r5, r3
2139        uqsub16gt r3, r2, r5
2140        uqsub8 r2, r1, r4
2141        uqsub8le r4, r6, r9
2142
2143@ CHECK: uqsub16	r1, r5, r3      @ encoding: [0x73,0x1f,0x65,0xe6]
2144@ CHECK: uqsub16gt	r3, r2, r5      @ encoding: [0x75,0x3f,0x62,0xc6]
2145@ CHECK: uqsub8	r2, r1, r4              @ encoding: [0xf4,0x2f,0x61,0xe6]
2146@ CHECK: uqsub8le	r4, r6, r9      @ encoding: [0xf9,0x4f,0x66,0xd6]
2147
2148
2149@------------------------------------------------------------------------------
2150@ USADA8/USAD8
2151@------------------------------------------------------------------------------
2152        usad8 r2, r1, r4
2153        usad8le r4, r6, r9
2154        usada8 r1, r5, r3, r7
2155        usada8gt r3, r2, r5, r1
2156
2157@ CHECK: usad8	r2, r1, r4              @ encoding: [0x11,0xf4,0x82,0xe7]
2158@ CHECK: usad8le	r4, r6, r9      @ encoding: [0x16,0xf9,0x84,0xd7]
2159@ CHECK: usada8	r1, r5, r3, r7          @ encoding: [0x15,0x73,0x81,0xe7]
2160@ CHECK: usada8gt	r3, r2, r5, r1  @ encoding: [0x12,0x15,0x83,0xc7]
2161
2162
2163@------------------------------------------------------------------------------
2164@ USAT
2165@------------------------------------------------------------------------------
2166
2167        usat	r8, #1, r10
2168        usat	r8, #4, r10, lsl #0
2169        usat	r8, #5, r10, lsl #31
2170        usat	r8, #31, r10, asr #32
2171        usat	r8, #16, r10, asr #1
2172
2173@ CHECK: usat	r8, #1, r10             @ encoding: [0x1a,0x80,0xe1,0xe6]
2174@ CHECK: usat	r8, #4, r10             @ encoding: [0x1a,0x80,0xe4,0xe6]
2175@ CHECK: usat	r8, #5, r10, lsl #31    @ encoding: [0x9a,0x8f,0xe5,0xe6]
2176@ CHECK: usat	r8, #31, r10, asr #32   @ encoding: [0x5a,0x80,0xff,0xe6]
2177@ CHECK: usat	r8, #16, r10, asr #1    @ encoding: [0xda,0x80,0xf0,0xe6]
2178
2179@------------------------------------------------------------------------------
2180@ USAT16
2181@------------------------------------------------------------------------------
2182        usat16	r2, #2, r7
2183        usat16	r3, #15, r5
2184
2185@ CHECK: usat16	r2, #2, r7              @ encoding: [0x32,0x2f,0xe2,0xe6]
2186@ CHECK: usat16	r3, #15, r5             @ encoding: [0x33,0x3f,0xef,0xe6]
2187
2188
2189@------------------------------------------------------------------------------
2190@ USAX
2191@------------------------------------------------------------------------------
2192        usax r2, r3, r4
2193        usaxne r2, r3, r4
2194
2195@ CHECK: usax	r2, r3, r4              @ encoding: [0x54,0x2f,0x53,0xe6]
2196@ CHECK: usaxne	r2, r3, r4              @ encoding: [0x54,0x2f,0x53,0x16]
2197
2198@------------------------------------------------------------------------------
2199@ USUB16/USUB8
2200@------------------------------------------------------------------------------
2201        usub16 r4, r2, r7
2202        usub16hi r1, r1, r3
2203        usub8 r1, r8, r5
2204        usub8le r9, r2, r3
2205
2206@ CHECK: usub16	r4, r2, r7              @ encoding: [0x77,0x4f,0x52,0xe6]
2207@ CHECK: usub16hi	r1, r1, r3      @ encoding: [0x73,0x1f,0x51,0x86]
2208@ CHECK: usub8	r1, r8, r5              @ encoding: [0xf5,0x1f,0x58,0xe6]
2209@ CHECK: usub8le	r9, r2, r3      @ encoding: [0xf3,0x9f,0x52,0xd6]
2210
2211