xref: /aosp_15_r20/external/llvm/test/MC/ARM/basic-thumb2-instructions.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -show-encoding < %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker@ RUN: llvm-mc -triple=thumbebv7-unknown-unknown -mcpu=cortex-a8 -show-encoding < %s | FileCheck --check-prefix=CHECK-BE %s
3*9880d681SAndroid Build Coastguard Worker  .syntax unified
4*9880d681SAndroid Build Coastguard Worker  .globl _func
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker@ Check that the assembler can handle the documented syntax from the ARM ARM.
7*9880d681SAndroid Build Coastguard Worker@ For complex constructs like shifter operands, check more thoroughly for them
8*9880d681SAndroid Build Coastguard Worker@ once then spot check that following instructions accept the form generally.
9*9880d681SAndroid Build Coastguard Worker@ This gives us good coverage while keeping the overall size of the test
10*9880d681SAndroid Build Coastguard Worker@ more reasonable.
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker@ FIXME: Some 3-operand instructions have a 2-operand assembly syntax.
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Worker_func:
16*9880d681SAndroid Build Coastguard Worker@ CHECK: _func
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
19*9880d681SAndroid Build Coastguard Worker@ ADC (immediate)
20*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
21*9880d681SAndroid Build Coastguard Worker        adc r0, r1, #4
22*9880d681SAndroid Build Coastguard Worker        adcs r0, r1, #0
23*9880d681SAndroid Build Coastguard Worker        adc r1, r2, #255
24*9880d681SAndroid Build Coastguard Worker        adc r3, r7, #0x00550055
25*9880d681SAndroid Build Coastguard Worker        adc r8, r12, #0xaa00aa00
26*9880d681SAndroid Build Coastguard Worker        adc r9, r7, #0xa5a5a5a5
27*9880d681SAndroid Build Coastguard Worker        adc r5, r3, #0x87000000
28*9880d681SAndroid Build Coastguard Worker        adc r4, r2, #0x7f800000
29*9880d681SAndroid Build Coastguard Worker        adc r4, r2, #0x00000680
30*9880d681SAndroid Build Coastguard Worker
31*9880d681SAndroid Build Coastguard Worker@ CHECK: adc	r0, r1, #4              @ encoding: [0x41,0xf1,0x04,0x00]
32*9880d681SAndroid Build Coastguard Worker@ CHECK: adcs	r0, r1, #0              @ encoding: [0x51,0xf1,0x00,0x00]
33*9880d681SAndroid Build Coastguard Worker@ CHECK: adc	r1, r2, #255            @ encoding: [0x42,0xf1,0xff,0x01]
34*9880d681SAndroid Build Coastguard Worker@ CHECK: adc	r3, r7, #5570645        @ encoding: [0x47,0xf1,0x55,0x13]
35*9880d681SAndroid Build Coastguard Worker@ CHECK: adc	r8, r12, #2852170240    @ encoding: [0x4c,0xf1,0xaa,0x28]
36*9880d681SAndroid Build Coastguard Worker@ CHECK: adc	r9, r7, #2779096485     @ encoding: [0x47,0xf1,0xa5,0x39]
37*9880d681SAndroid Build Coastguard Worker@ CHECK: adc	r5, r3, #2264924160     @ encoding: [0x43,0xf1,0x07,0x45]
38*9880d681SAndroid Build Coastguard Worker@ CHECK: adc	r4, r2, #2139095040     @ encoding: [0x42,0xf1,0xff,0x44]
39*9880d681SAndroid Build Coastguard Worker@ CHECK: adc	r4, r2, #1664           @ encoding: [0x42,0xf5,0xd0,0x64]
40*9880d681SAndroid Build Coastguard Worker
41*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
42*9880d681SAndroid Build Coastguard Worker@ ADC (register)
43*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
44*9880d681SAndroid Build Coastguard Worker        adc r4, r5, r6
45*9880d681SAndroid Build Coastguard Worker        adcs r4, r5, r6
46*9880d681SAndroid Build Coastguard Worker        adc.w r9, r1, r3
47*9880d681SAndroid Build Coastguard Worker        adcs.w r9, r1, r3
48*9880d681SAndroid Build Coastguard Worker        adc	r0, r1, r3, ror #4
49*9880d681SAndroid Build Coastguard Worker        adcs	r0, r1, r3, lsl #7
50*9880d681SAndroid Build Coastguard Worker        adc.w	r0, r1, r3, lsr #31
51*9880d681SAndroid Build Coastguard Worker        adcs.w	r0, r1, r3, asr #32
52*9880d681SAndroid Build Coastguard Worker
53*9880d681SAndroid Build Coastguard Worker@ CHECK: adc.w	r4, r5, r6              @ encoding: [0x45,0xeb,0x06,0x04]
54*9880d681SAndroid Build Coastguard Worker@ CHECK: adcs.w	r4, r5, r6              @ encoding: [0x55,0xeb,0x06,0x04]
55*9880d681SAndroid Build Coastguard Worker@ CHECK: adc.w	r9, r1, r3              @ encoding: [0x41,0xeb,0x03,0x09]
56*9880d681SAndroid Build Coastguard Worker@ CHECK: adcs.w	r9, r1, r3              @ encoding: [0x51,0xeb,0x03,0x09]
57*9880d681SAndroid Build Coastguard Worker@ CHECK: adc.w	r0, r1, r3, ror #4      @ encoding: [0x41,0xeb,0x33,0x10]
58*9880d681SAndroid Build Coastguard Worker@ CHECK: adcs.w	r0, r1, r3, lsl #7      @ encoding: [0x51,0xeb,0xc3,0x10]
59*9880d681SAndroid Build Coastguard Worker@ CHECK: adc.w	r0, r1, r3, lsr #31     @ encoding: [0x41,0xeb,0xd3,0x70]
60*9880d681SAndroid Build Coastguard Worker@ CHECK: adcs.w	r0, r1, r3, asr #32     @ encoding: [0x51,0xeb,0x23,0x00]
61*9880d681SAndroid Build Coastguard Worker
62*9880d681SAndroid Build Coastguard Worker
63*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
64*9880d681SAndroid Build Coastguard Worker@ ADD (immediate)
65*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
66*9880d681SAndroid Build Coastguard Worker        itet eq
67*9880d681SAndroid Build Coastguard Worker        addeq r1, r2, #4
68*9880d681SAndroid Build Coastguard Worker        addwne r5, r3, #1023
69*9880d681SAndroid Build Coastguard Worker        addeq r4, r5, #293
70*9880d681SAndroid Build Coastguard Worker        add r2, sp, #1024
71*9880d681SAndroid Build Coastguard Worker        add r2, r8, #0xff00
72*9880d681SAndroid Build Coastguard Worker        add r2, r3, #257
73*9880d681SAndroid Build Coastguard Worker        addw r2, r3, #257
74*9880d681SAndroid Build Coastguard Worker        add r12, r6, #0x100
75*9880d681SAndroid Build Coastguard Worker        addw r12, r6, #0x100
76*9880d681SAndroid Build Coastguard Worker        adds r1, r2, #0x1f0
77*9880d681SAndroid Build Coastguard Worker	add r2, #1
78*9880d681SAndroid Build Coastguard Worker        add r0, r0, #32
79*9880d681SAndroid Build Coastguard Worker        adds r2, r2, #56
80*9880d681SAndroid Build Coastguard Worker        adds r2, #56
81*9880d681SAndroid Build Coastguard Worker        add r1, r7, #0xcbcbcbcb
82*9880d681SAndroid Build Coastguard Worker        add sp, sp, #0x1fe0000
83*9880d681SAndroid Build Coastguard Worker
84*9880d681SAndroid Build Coastguard Worker        adds.w r2, #-16
85*9880d681SAndroid Build Coastguard Worker        adds.w r2, r2, #-16
86*9880d681SAndroid Build Coastguard Worker        addw r2, #-16
87*9880d681SAndroid Build Coastguard Worker        addw r2, #-16
88*9880d681SAndroid Build Coastguard Worker        addw r2, r2, #-16
89*9880d681SAndroid Build Coastguard Worker
90*9880d681SAndroid Build Coastguard Worker@ CHECK: itet	eq                      @ encoding: [0x0a,0xbf]
91*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq	r1, r2, #4              @ encoding: [0x11,0x1d]
92*9880d681SAndroid Build Coastguard Worker@ CHECK: addwne	r5, r3, #1023           @ encoding: [0x03,0xf2,0xff,0x35]
93*9880d681SAndroid Build Coastguard Worker@ CHECK: addweq	r4, r5, #293            @ encoding: [0x05,0xf2,0x25,0x14]
94*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w	r2, sp, #1024           @ encoding: [0x0d,0xf5,0x80,0x62]
95*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w	r2, r8, #65280          @ encoding: [0x08,0xf5,0x7f,0x42]
96*9880d681SAndroid Build Coastguard Worker@ CHECK: addw	r2, r3, #257            @ encoding: [0x03,0xf2,0x01,0x12]
97*9880d681SAndroid Build Coastguard Worker@ CHECK: addw	r2, r3, #257            @ encoding: [0x03,0xf2,0x01,0x12]
98*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w	r12, r6, #256           @ encoding: [0x06,0xf5,0x80,0x7c]
99*9880d681SAndroid Build Coastguard Worker@ CHECK: addw	r12, r6, #256           @ encoding: [0x06,0xf2,0x00,0x1c]
100*9880d681SAndroid Build Coastguard Worker@ CHECK: adds.w	r1, r2, #496            @ encoding: [0x12,0xf5,0xf8,0x71]
101*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w	r2, r2, #1              @ encoding: [0x02,0xf1,0x01,0x02]
102*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w	r0, r0, #32             @ encoding: [0x00,0xf1,0x20,0x00]
103*9880d681SAndroid Build Coastguard Worker@ CHECK: adds	r2, #56                 @ encoding: [0x38,0x32]
104*9880d681SAndroid Build Coastguard Worker@ CHECK: adds	r2, #56                 @ encoding: [0x38,0x32]
105*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w  r1, r7, #3419130827     @ encoding: [0x07,0xf1,0xcb,0x31]
106*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w	sp, sp, #33423360       @ encoding: [0x0d,0xf1,0xff,0x7d]
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Worker@ CHECK: subs.w	r2, r2, #16             @ encoding: [0xb2,0xf1,0x10,0x02]
109*9880d681SAndroid Build Coastguard Worker@ CHECK: subs.w	r2, r2, #16             @ encoding: [0xb2,0xf1,0x10,0x02]
110*9880d681SAndroid Build Coastguard Worker@ CHECK: subw	r2, r2, #16             @ encoding: [0xa2,0xf2,0x10,0x02]
111*9880d681SAndroid Build Coastguard Worker@ CHECK: subw	r2, r2, #16             @ encoding: [0xa2,0xf2,0x10,0x02]
112*9880d681SAndroid Build Coastguard Worker@ CHECK: subw	r2, r2, #16             @ encoding: [0xa2,0xf2,0x10,0x02]
113*9880d681SAndroid Build Coastguard Worker
114*9880d681SAndroid Build Coastguard Worker
115*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
116*9880d681SAndroid Build Coastguard Worker@ ADD (register, not SP) A8.8.6
117*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
118*9880d681SAndroid Build Coastguard Worker        add r1, r2, r8
119*9880d681SAndroid Build Coastguard Worker        add r5, r9, r2, asr #32
120*9880d681SAndroid Build Coastguard Worker        adds r7, r3, r1, lsl #31
121*9880d681SAndroid Build Coastguard Worker        adds.w r0, r3, r6, lsr #25
122*9880d681SAndroid Build Coastguard Worker        add.w r4, r8, r1, ror #12
123*9880d681SAndroid Build Coastguard Worker        adds r1, r1, r7              // T1
124*9880d681SAndroid Build Coastguard Worker        it eq
125*9880d681SAndroid Build Coastguard Worker        addeq r1, r3, r5             // T1
126*9880d681SAndroid Build Coastguard Worker        it eq
127*9880d681SAndroid Build Coastguard Worker        addeq r1, r1, r5             // T1
128*9880d681SAndroid Build Coastguard Worker        it eq
129*9880d681SAndroid Build Coastguard Worker        addseq r1, r3, r5            // T3
130*9880d681SAndroid Build Coastguard Worker        it eq
131*9880d681SAndroid Build Coastguard Worker        addseq r1, r1, r5            // T3
132*9880d681SAndroid Build Coastguard Worker        add r10, r8
133*9880d681SAndroid Build Coastguard Worker        add r10, r10, r8
134*9880d681SAndroid Build Coastguard Worker        it eq
135*9880d681SAndroid Build Coastguard Worker        addeq r1, r10                // T2
136*9880d681SAndroid Build Coastguard Worker        it eq
137*9880d681SAndroid Build Coastguard Worker        addseq r1, r10               // T3
138*9880d681SAndroid Build Coastguard Worker
139*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w	r1, r2, r8              @ encoding: [0x02,0xeb,0x08,0x01]
140*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w	r5, r9, r2, asr #32     @ encoding: [0x09,0xeb,0x22,0x05]
141*9880d681SAndroid Build Coastguard Worker@ CHECK: adds.w	r7, r3, r1, lsl #31     @ encoding: [0x13,0xeb,0xc1,0x77]
142*9880d681SAndroid Build Coastguard Worker@ CHECK: adds.w	r0, r3, r6, lsr #25     @ encoding: [0x13,0xeb,0x56,0x60]
143*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w	r4, r8, r1, ror #12     @ encoding: [0x08,0xeb,0x31,0x34]
144*9880d681SAndroid Build Coastguard Worker@ CHECK: adds r1, r1, r7                @ encoding: [0xc9,0x19]
145*9880d681SAndroid Build Coastguard Worker@ CHECK: it eq                          @ encoding: [0x08,0xbf]
146*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq r1, r3, r5               @ encoding: [0x59,0x19]
147*9880d681SAndroid Build Coastguard Worker@ CHECK: it eq                          @ encoding: [0x08,0xbf]
148*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq r1, r1, r5               @ encoding: [0x49,0x19]
149*9880d681SAndroid Build Coastguard Worker@ CHECK: it eq                          @ encoding: [0x08,0xbf]
150*9880d681SAndroid Build Coastguard Worker@ CHECK: addseq.w r1, r3, r5            @ encoding: [0x13,0xeb,0x05,0x01]
151*9880d681SAndroid Build Coastguard Worker@ CHECK: it eq                          @ encoding: [0x08,0xbf]
152*9880d681SAndroid Build Coastguard Worker@ CHECK: addseq.w r1, r1, r5            @ encoding: [0x11,0xeb,0x05,0x01]
153*9880d681SAndroid Build Coastguard Worker@ CHECK: add	r10, r8                 @ encoding: [0xc2,0x44]
154*9880d681SAndroid Build Coastguard Worker@ CHECK: add	r10, r8                 @ encoding: [0xc2,0x44]
155*9880d681SAndroid Build Coastguard Worker@ CHECK: it eq                          @ encoding: [0x08,0xbf]
156*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq r1, r10                  @ encoding: [0x51,0x44]
157*9880d681SAndroid Build Coastguard Worker@ CHECK: it eq                          @ encoding: [0x08,0xbf]
158*9880d681SAndroid Build Coastguard Worker@ CHECK: addseq.w r1, r1, r10           @ encoding: [0x11,0xeb,0x0a,0x01]
159*9880d681SAndroid Build Coastguard Worker
160*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
161*9880d681SAndroid Build Coastguard Worker@ ADD (SP plus immediate) A8.8.9
162*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
163*9880d681SAndroid Build Coastguard Worker        it eq
164*9880d681SAndroid Build Coastguard Worker@ CHECK: it eq                          @ encoding: [0x08,0xbf]
165*9880d681SAndroid Build Coastguard Worker        addeq r7, sp, #1020          // T1
166*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq	r7, sp, #1020           @ encoding: [0xff,0xaf]
167*9880d681SAndroid Build Coastguard Worker
168*9880d681SAndroid Build Coastguard Worker        it eq
169*9880d681SAndroid Build Coastguard Worker@ CHECK: it eq                          @ encoding: [0x08,0xbf]
170*9880d681SAndroid Build Coastguard Worker        addeq sp, sp, #508           // T2
171*9880d681SAndroid Build Coastguard Worker@ FIXME: ARMARM says 'addeq sp, sp, #508'
172*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq	sp, #508                @ encoding: [0x7f,0xb0]
173*9880d681SAndroid Build Coastguard Worker
174*9880d681SAndroid Build Coastguard Worker        add r7, sp, #15              // T3
175*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w	r7, sp, #15             @ encoding: [0x0d,0xf1,0x0f,0x07]
176*9880d681SAndroid Build Coastguard Worker        adds r7, sp, #16             // T3
177*9880d681SAndroid Build Coastguard Worker@ CHECK: adds.w	r7, sp, #16             @ encoding: [0x1d,0xf1,0x10,0x07]
178*9880d681SAndroid Build Coastguard Worker        add r8, sp, #16              // T3
179*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w	r8, sp, #16             @ encoding: [0x0d,0xf1,0x10,0x08]
180*9880d681SAndroid Build Coastguard Worker
181*9880d681SAndroid Build Coastguard Worker        addw r6, sp, #1020           // T4
182*9880d681SAndroid Build Coastguard Worker@ CHECK: addw	r6, sp, #1020           @ encoding: [0x0d,0xf2,0xfc,0x36]
183*9880d681SAndroid Build Coastguard Worker        add r6, sp, #1019            // T4
184*9880d681SAndroid Build Coastguard Worker@ CHECK: addw	r6, sp, #1019           @ encoding: [0x0d,0xf2,0xfb,0x36]
185*9880d681SAndroid Build Coastguard Worker
186*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
187*9880d681SAndroid Build Coastguard Worker@ ADD (SP plus register) A8.8.10
188*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
189*9880d681SAndroid Build Coastguard Worker        it eq
190*9880d681SAndroid Build Coastguard Worker@ CHECK: it eq                          @ encoding: [0x08,0xbf]
191*9880d681SAndroid Build Coastguard Worker        addeq r8, sp, r8             // T1
192*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq	r8, sp, r8              @ encoding: [0xe8,0x44]
193*9880d681SAndroid Build Coastguard Worker        it eq
194*9880d681SAndroid Build Coastguard Worker@ CHECK: it eq                          @ encoding: [0x08,0xbf]
195*9880d681SAndroid Build Coastguard Worker        addeq r8, sp                 // T1
196*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq	r8, sp                  @ encoding: [0xe8,0x44]
197*9880d681SAndroid Build Coastguard Worker
198*9880d681SAndroid Build Coastguard Worker        it eq
199*9880d681SAndroid Build Coastguard Worker@ CHECK: it eq                          @ encoding: [0x08,0xbf]
200*9880d681SAndroid Build Coastguard Worker        addeq sp, r9                 // T2
201*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq	sp, r9                  @ encoding: [0xcd,0x44]
202*9880d681SAndroid Build Coastguard Worker
203*9880d681SAndroid Build Coastguard Worker        add r2, sp, ip               // T3
204*9880d681SAndroid Build Coastguard Worker@ CHECK: add.w r2, sp, r12              @ encoding: [0x0d,0xeb,0x0c,0x02]
205*9880d681SAndroid Build Coastguard Worker        it eq
206*9880d681SAndroid Build Coastguard Worker@ CHECK: it eq                          @ encoding: [0x08,0xbf]
207*9880d681SAndroid Build Coastguard Worker        addeq r2, sp, ip             // T3
208*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq.w r2, sp, r12            @ encoding: [0x0d,0xeb,0x0c,0x02]
209*9880d681SAndroid Build Coastguard Worker
210*9880d681SAndroid Build Coastguard Worker
211*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
212*9880d681SAndroid Build Coastguard Worker@ FIXME: ADR
213*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
214*9880d681SAndroid Build Coastguard Worker
215*9880d681SAndroid Build Coastguard Worker        subw r11, pc, #3270
216*9880d681SAndroid Build Coastguard Worker        adr.w r2, #3
217*9880d681SAndroid Build Coastguard Worker        adr.w r11, #-826
218*9880d681SAndroid Build Coastguard Worker        adr.w r1, #-0x0
219*9880d681SAndroid Build Coastguard Worker
220*9880d681SAndroid Build Coastguard Worker@ CHECK: subw  r11, pc, #3270          @ encoding: [0xaf,0xf6,0xc6,0x4b]
221*9880d681SAndroid Build Coastguard Worker@ CHECK: adr.w r2, #3                  @ encoding: [0x0f,0xf2,0x03,0x02]
222*9880d681SAndroid Build Coastguard Worker@ CHECK: adr.w r11, #-826              @ encoding: [0xaf,0xf2,0x3a,0x3b]
223*9880d681SAndroid Build Coastguard Worker@ CHECK: adr.w r1, #-0                 @ encoding: [0xaf,0xf2,0x00,0x01]
224*9880d681SAndroid Build Coastguard Worker
225*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
226*9880d681SAndroid Build Coastguard Worker@ AND (immediate)
227*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
228*9880d681SAndroid Build Coastguard Worker        and r2, r5, #0xff000
229*9880d681SAndroid Build Coastguard Worker        ands r3, r12, #0xf
230*9880d681SAndroid Build Coastguard Worker        and r1, #0xff
231*9880d681SAndroid Build Coastguard Worker        and r1, r1, #0xff
232*9880d681SAndroid Build Coastguard Worker        and r5, r4, #0xffffffff
233*9880d681SAndroid Build Coastguard Worker        ands r1, r9, #0xffffffff
234*9880d681SAndroid Build Coastguard Worker
235*9880d681SAndroid Build Coastguard Worker@ CHECK: and	r2, r5, #1044480        @ encoding: [0x05,0xf4,0x7f,0x22]
236*9880d681SAndroid Build Coastguard Worker@ CHECK: ands	r3, r12, #15            @ encoding: [0x1c,0xf0,0x0f,0x03]
237*9880d681SAndroid Build Coastguard Worker@ CHECK: and	r1, r1, #255            @ encoding: [0x01,0xf0,0xff,0x01]
238*9880d681SAndroid Build Coastguard Worker@ CHECK: and	r1, r1, #255            @ encoding: [0x01,0xf0,0xff,0x01]
239*9880d681SAndroid Build Coastguard Worker@ CHECK: and	r5, r4, #4294967295     @ encoding: [0x04,0xf0,0xff,0x35]
240*9880d681SAndroid Build Coastguard Worker@ CHECK: ands	r1, r9, #4294967295     @ encoding: [0x19,0xf0,0xff,0x31]
241*9880d681SAndroid Build Coastguard Worker
242*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
243*9880d681SAndroid Build Coastguard Worker@ AND (register)
244*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
245*9880d681SAndroid Build Coastguard Worker        and r4, r9, r8
246*9880d681SAndroid Build Coastguard Worker        and r1, r4, r8, asr #3
247*9880d681SAndroid Build Coastguard Worker        ands r2, r1, r7, lsl #1
248*9880d681SAndroid Build Coastguard Worker        ands.w r4, r5, r2, lsr #20
249*9880d681SAndroid Build Coastguard Worker        and.w r9, r12, r1, ror #17
250*9880d681SAndroid Build Coastguard Worker
251*9880d681SAndroid Build Coastguard Worker@ CHECK: and.w	r4, r9, r8              @ encoding: [0x09,0xea,0x08,0x04]
252*9880d681SAndroid Build Coastguard Worker@ CHECK: and.w	r1, r4, r8, asr #3      @ encoding: [0x04,0xea,0xe8,0x01]
253*9880d681SAndroid Build Coastguard Worker@ CHECK: ands.w	r2, r1, r7, lsl #1      @ encoding: [0x11,0xea,0x47,0x02]
254*9880d681SAndroid Build Coastguard Worker@ CHECK: ands.w	r4, r5, r2, lsr #20     @ encoding: [0x15,0xea,0x12,0x54]
255*9880d681SAndroid Build Coastguard Worker@ CHECK: and.w	r9, r12, r1, ror #17    @ encoding: [0x0c,0xea,0x71,0x49]
256*9880d681SAndroid Build Coastguard Worker
257*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
258*9880d681SAndroid Build Coastguard Worker@ ASR (immediate)
259*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
260*9880d681SAndroid Build Coastguard Worker        asr r2, r3, #12
261*9880d681SAndroid Build Coastguard Worker        asrs r8, r3, #32
262*9880d681SAndroid Build Coastguard Worker        asrs.w r2, r3, #1
263*9880d681SAndroid Build Coastguard Worker        asr r2, r3, #4
264*9880d681SAndroid Build Coastguard Worker        asrs r2, r12, #15
265*9880d681SAndroid Build Coastguard Worker
266*9880d681SAndroid Build Coastguard Worker        asr r3, #19
267*9880d681SAndroid Build Coastguard Worker        asrs r8, #2
268*9880d681SAndroid Build Coastguard Worker        asrs.w r7, #5
269*9880d681SAndroid Build Coastguard Worker        asr.w r12, #21
270*9880d681SAndroid Build Coastguard Worker
271*9880d681SAndroid Build Coastguard Worker@ CHECK: asr.w	r2, r3, #12             @ encoding: [0x4f,0xea,0x23,0x32]
272*9880d681SAndroid Build Coastguard Worker@ CHECK: asrs.w	r8, r3, #32             @ encoding: [0x5f,0xea,0x23,0x08]
273*9880d681SAndroid Build Coastguard Worker@ CHECK: asrs.w	r2, r3, #1              @ encoding: [0x5f,0xea,0x63,0x02]
274*9880d681SAndroid Build Coastguard Worker@ CHECK: asr.w	r2, r3, #4              @ encoding: [0x4f,0xea,0x23,0x12]
275*9880d681SAndroid Build Coastguard Worker@ CHECK: asrs.w	r2, r12, #15            @ encoding: [0x5f,0xea,0xec,0x32]
276*9880d681SAndroid Build Coastguard Worker
277*9880d681SAndroid Build Coastguard Worker@ CHECK: asr.w	r3, r3, #19             @ encoding: [0x4f,0xea,0xe3,0x43]
278*9880d681SAndroid Build Coastguard Worker@ CHECK: asrs.w	r8, r8, #2              @ encoding: [0x5f,0xea,0xa8,0x08]
279*9880d681SAndroid Build Coastguard Worker@ CHECK: asrs.w	r7, r7, #5              @ encoding: [0x5f,0xea,0x67,0x17]
280*9880d681SAndroid Build Coastguard Worker@ CHECK: asr.w	r12, r12, #21           @ encoding: [0x4f,0xea,0x6c,0x5c]
281*9880d681SAndroid Build Coastguard Worker
282*9880d681SAndroid Build Coastguard Worker
283*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
284*9880d681SAndroid Build Coastguard Worker@ ASR (register)
285*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
286*9880d681SAndroid Build Coastguard Worker        asr r3, r4, r2
287*9880d681SAndroid Build Coastguard Worker        asr.w r1, r2
288*9880d681SAndroid Build Coastguard Worker        asrs r3, r4, r8
289*9880d681SAndroid Build Coastguard Worker
290*9880d681SAndroid Build Coastguard Worker@ CHECK: asr.w	r3, r4, r2              @ encoding: [0x44,0xfa,0x02,0xf3]
291*9880d681SAndroid Build Coastguard Worker@ CHECK: asr.w	r1, r1, r2              @ encoding: [0x41,0xfa,0x02,0xf1]
292*9880d681SAndroid Build Coastguard Worker@ CHECK: asrs.w	r3, r4, r8              @ encoding: [0x54,0xfa,0x08,0xf3]
293*9880d681SAndroid Build Coastguard Worker
294*9880d681SAndroid Build Coastguard Worker
295*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
296*9880d681SAndroid Build Coastguard Worker@ B
297*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
298*9880d681SAndroid Build Coastguard Worker        b.w   _bar
299*9880d681SAndroid Build Coastguard Worker        beq.w   _bar
300*9880d681SAndroid Build Coastguard Worker        it eq
301*9880d681SAndroid Build Coastguard Worker        beq.w _bar
302*9880d681SAndroid Build Coastguard Worker        bmi.w   #-183396
303*9880d681SAndroid Build Coastguard Worker
304*9880d681SAndroid Build Coastguard Worker@ CHECK: b.w	_bar                    @ encoding: [A,0xf0'A',A,0x90'A']
305*9880d681SAndroid Build Coastguard Worker@ CHECK:  @   fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch
306*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: b.w	_bar                    @ encoding: [0xf0'A',A,0x90'A',A]
307*9880d681SAndroid Build Coastguard Worker@ CHECK-BE:  @   fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch
308*9880d681SAndroid Build Coastguard Worker@ CHECK: beq.w	_bar                    @ encoding: [A,0xf0'A',A,0x80'A']
309*9880d681SAndroid Build Coastguard Worker@ CHECK:  @   fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch
310*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: beq.w	_bar                    @ encoding: [0xf0'A',A,0x80'A',A]
311*9880d681SAndroid Build Coastguard Worker@ CHECK-BE:  @   fixup A - offset: 0, value: _bar, kind: fixup_t2_condbranch
312*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                      @ encoding: [0x08,0xbf]
313*9880d681SAndroid Build Coastguard Worker@ CHECK: beq.w	_bar                    @ encoding: [A,0xf0'A',A,0x90'A']
314*9880d681SAndroid Build Coastguard Worker@ CHECK:  @   fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch
315*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: beq.w	_bar                    @ encoding: [0xf0'A',A,0x90'A',A]
316*9880d681SAndroid Build Coastguard Worker@ CHECK-BE:  @   fixup A - offset: 0, value: _bar, kind: fixup_t2_uncondbranch
317*9880d681SAndroid Build Coastguard Worker@ CHECK: bmi.w   #-183396                @ encoding: [0x13,0xf5,0xce,0xa9]
318*9880d681SAndroid Build Coastguard Worker
319*9880d681SAndroid Build Coastguard Worker
320*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
321*9880d681SAndroid Build Coastguard Worker@ BFC
322*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
323*9880d681SAndroid Build Coastguard Worker        bfc r5, #3, #17
324*9880d681SAndroid Build Coastguard Worker        it lo
325*9880d681SAndroid Build Coastguard Worker        bfccc r5, #3, #17
326*9880d681SAndroid Build Coastguard Worker
327*9880d681SAndroid Build Coastguard Worker@ CHECK: bfc	r5, #3, #17             @ encoding: [0x6f,0xf3,0xd3,0x05]
328*9880d681SAndroid Build Coastguard Worker@ CHECK: it	lo                      @ encoding: [0x38,0xbf]
329*9880d681SAndroid Build Coastguard Worker@ CHECK: bfclo	r5, #3, #17             @ encoding: [0x6f,0xf3,0xd3,0x05]
330*9880d681SAndroid Build Coastguard Worker
331*9880d681SAndroid Build Coastguard Worker
332*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
333*9880d681SAndroid Build Coastguard Worker@ BFI
334*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
335*9880d681SAndroid Build Coastguard Worker        bfi r5, r2, #3, #17
336*9880d681SAndroid Build Coastguard Worker        it ne
337*9880d681SAndroid Build Coastguard Worker        bfine r5, r2, #3, #17
338*9880d681SAndroid Build Coastguard Worker
339*9880d681SAndroid Build Coastguard Worker@ CHECK: bfi	r5, r2, #3, #17         @ encoding: [0x62,0xf3,0xd3,0x05]
340*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ne                      @ encoding: [0x18,0xbf]
341*9880d681SAndroid Build Coastguard Worker@ CHECK: bfine	r5, r2, #3, #17         @ encoding: [0x62,0xf3,0xd3,0x05]
342*9880d681SAndroid Build Coastguard Worker
343*9880d681SAndroid Build Coastguard Worker
344*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
345*9880d681SAndroid Build Coastguard Worker@ BIC
346*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
347*9880d681SAndroid Build Coastguard Worker        bic r10, r1, #0xf
348*9880d681SAndroid Build Coastguard Worker        bic r5, r2, #0xffffffff
349*9880d681SAndroid Build Coastguard Worker        bics r11, r10, #0xffffffff
350*9880d681SAndroid Build Coastguard Worker        bic r12, r3, r6
351*9880d681SAndroid Build Coastguard Worker        bic r11, r2, r6, lsl #12
352*9880d681SAndroid Build Coastguard Worker        bic r8, r4, r1, lsr #11
353*9880d681SAndroid Build Coastguard Worker        bic r7, r5, r7, lsr #15
354*9880d681SAndroid Build Coastguard Worker        bic r6, r7, r9, asr #32
355*9880d681SAndroid Build Coastguard Worker        bic r5, r6, r8, ror #1
356*9880d681SAndroid Build Coastguard Worker
357*9880d681SAndroid Build Coastguard Worker        @ destination register is optional
358*9880d681SAndroid Build Coastguard Worker        bic r1, #0xf
359*9880d681SAndroid Build Coastguard Worker        bic r1, r1
360*9880d681SAndroid Build Coastguard Worker        bic r4, r2, lsl #31
361*9880d681SAndroid Build Coastguard Worker        bic r6, r3, lsr #12
362*9880d681SAndroid Build Coastguard Worker        bic r7, r4, lsr #7
363*9880d681SAndroid Build Coastguard Worker        bic r8, r5, asr #15
364*9880d681SAndroid Build Coastguard Worker        bic r12, r6, ror #29
365*9880d681SAndroid Build Coastguard Worker
366*9880d681SAndroid Build Coastguard Worker@ CHECK: bic	r10, r1, #15            @ encoding: [0x21,0xf0,0x0f,0x0a]
367*9880d681SAndroid Build Coastguard Worker@ CHECK: bic	r5, r2, #4294967295     @ encoding: [0x22,0xf0,0xff,0x35]
368*9880d681SAndroid Build Coastguard Worker@ CHECK: bics	r11, r10, #4294967295   @ encoding: [0x3a,0xf0,0xff,0x3b]
369*9880d681SAndroid Build Coastguard Worker@ CHECK: bic.w	r12, r3, r6             @ encoding: [0x23,0xea,0x06,0x0c]
370*9880d681SAndroid Build Coastguard Worker@ CHECK: bic.w	r11, r2, r6, lsl #12    @ encoding: [0x22,0xea,0x06,0x3b]
371*9880d681SAndroid Build Coastguard Worker@ CHECK: bic.w	r8, r4, r1, lsr #11     @ encoding: [0x24,0xea,0xd1,0x28]
372*9880d681SAndroid Build Coastguard Worker@ CHECK: bic.w	r7, r5, r7, lsr #15     @ encoding: [0x25,0xea,0xd7,0x37]
373*9880d681SAndroid Build Coastguard Worker@ CHECK: bic.w	r6, r7, r9, asr #32     @ encoding: [0x27,0xea,0x29,0x06]
374*9880d681SAndroid Build Coastguard Worker@ CHECK: bic.w	r5, r6, r8, ror #1      @ encoding: [0x26,0xea,0x78,0x05]
375*9880d681SAndroid Build Coastguard Worker
376*9880d681SAndroid Build Coastguard Worker@ CHECK: bic	r1, r1, #15             @ encoding: [0x21,0xf0,0x0f,0x01]
377*9880d681SAndroid Build Coastguard Worker@ CHECK: bic.w	r1, r1, r1              @ encoding: [0x21,0xea,0x01,0x01]
378*9880d681SAndroid Build Coastguard Worker@ CHECK: bic.w	r4, r4, r2, lsl #31     @ encoding: [0x24,0xea,0xc2,0x74]
379*9880d681SAndroid Build Coastguard Worker@ CHECK: bic.w	r6, r6, r3, lsr #12     @ encoding: [0x26,0xea,0x13,0x36]
380*9880d681SAndroid Build Coastguard Worker@ CHECK: bic.w	r7, r7, r4, lsr #7      @ encoding: [0x27,0xea,0xd4,0x17]
381*9880d681SAndroid Build Coastguard Worker@ CHECK: bic.w	r8, r8, r5, asr #15     @ encoding: [0x28,0xea,0xe5,0x38]
382*9880d681SAndroid Build Coastguard Worker@ CHECK: bic.w	r12, r12, r6, ror #29   @ encoding: [0x2c,0xea,0x76,0x7c]
383*9880d681SAndroid Build Coastguard Worker
384*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
385*9880d681SAndroid Build Coastguard Worker@ BKPT
386*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
387*9880d681SAndroid Build Coastguard Worker        it pl
388*9880d681SAndroid Build Coastguard Worker        bkpt #234
389*9880d681SAndroid Build Coastguard Worker
390*9880d681SAndroid Build Coastguard Worker@ CHECK: it pl                      @ encoding: [0x58,0xbf]
391*9880d681SAndroid Build Coastguard Worker@ CHECK: bkpt #234                    @ encoding: [0xea,0xbe]
392*9880d681SAndroid Build Coastguard Worker
393*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
394*9880d681SAndroid Build Coastguard Worker@ BXJ
395*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
396*9880d681SAndroid Build Coastguard Worker        bxj r5
397*9880d681SAndroid Build Coastguard Worker        it ne
398*9880d681SAndroid Build Coastguard Worker        bxjne r7
399*9880d681SAndroid Build Coastguard Worker
400*9880d681SAndroid Build Coastguard Worker@ CHECK: bxj	r5                      @ encoding: [0xc5,0xf3,0x00,0x8f]
401*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ne                      @ encoding: [0x18,0xbf]
402*9880d681SAndroid Build Coastguard Worker@ CHECK: bxjne	r7                      @ encoding: [0xc7,0xf3,0x00,0x8f]
403*9880d681SAndroid Build Coastguard Worker
404*9880d681SAndroid Build Coastguard Worker
405*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
406*9880d681SAndroid Build Coastguard Worker@ CBZ/CBNZ
407*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
408*9880d681SAndroid Build Coastguard Worker        cbnz    r7, #6
409*9880d681SAndroid Build Coastguard Worker        cbnz    r7, #12
410*9880d681SAndroid Build Coastguard Worker        cbz   r6, _bar
411*9880d681SAndroid Build Coastguard Worker        cbnz   r6, _bar
412*9880d681SAndroid Build Coastguard Worker
413*9880d681SAndroid Build Coastguard Worker@ CHECK: cbnz    r7, #6                  @ encoding: [0x1f,0xb9]
414*9880d681SAndroid Build Coastguard Worker@ CHECK: cbnz    r7, #12                 @ encoding: [0x37,0xb9]
415*9880d681SAndroid Build Coastguard Worker@ CHECK: cbz	r6, _bar                @ encoding: [0x06'A',0xb1'A']
416*9880d681SAndroid Build Coastguard Worker@ CHECK:   @   fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb
417*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: cbz	r6, _bar                @ encoding: [0xb1'A',0x06'A']
418*9880d681SAndroid Build Coastguard Worker@ CHECK-BE:   @   fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb
419*9880d681SAndroid Build Coastguard Worker@ CHECK: cbnz	r6, _bar                @ encoding: [0x06'A',0xb9'A']
420*9880d681SAndroid Build Coastguard Worker@ CHECK:   @   fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb
421*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: cbnz	r6, _bar                @ encoding: [0xb9'A',0x06'A']
422*9880d681SAndroid Build Coastguard Worker@ CHECK-BE:   @   fixup A - offset: 0, value: _bar, kind: fixup_arm_thumb_cb
423*9880d681SAndroid Build Coastguard Worker
424*9880d681SAndroid Build Coastguard Worker
425*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
426*9880d681SAndroid Build Coastguard Worker@ CDP/CDP2
427*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
428*9880d681SAndroid Build Coastguard Worker  cdp  p7, #1, c1, c1, c1, #4
429*9880d681SAndroid Build Coastguard Worker  cdp2  p7, #1, c1, c1, c1, #4
430*9880d681SAndroid Build Coastguard Worker
431*9880d681SAndroid Build Coastguard Worker@ CHECK: cdp	p7, #1, c1, c1, c1, #4  @ encoding: [0x11,0xee,0x81,0x17]
432*9880d681SAndroid Build Coastguard Worker@ CHECK: cdp2	p7, #1, c1, c1, c1, #4  @ encoding: [0x11,0xfe,0x81,0x17]
433*9880d681SAndroid Build Coastguard Worker
434*9880d681SAndroid Build Coastguard Worker
435*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
436*9880d681SAndroid Build Coastguard Worker@ CLREX
437*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
438*9880d681SAndroid Build Coastguard Worker        clrex
439*9880d681SAndroid Build Coastguard Worker        it ne
440*9880d681SAndroid Build Coastguard Worker        clrexne
441*9880d681SAndroid Build Coastguard Worker
442*9880d681SAndroid Build Coastguard Worker@ CHECK: clrex                           @ encoding: [0xbf,0xf3,0x2f,0x8f]
443*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ne                       @ encoding: [0x18,0xbf]
444*9880d681SAndroid Build Coastguard Worker@ CHECK: clrexne                         @ encoding: [0xbf,0xf3,0x2f,0x8f]
445*9880d681SAndroid Build Coastguard Worker
446*9880d681SAndroid Build Coastguard Worker
447*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
448*9880d681SAndroid Build Coastguard Worker@ CLZ
449*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
450*9880d681SAndroid Build Coastguard Worker        clz r1, r2
451*9880d681SAndroid Build Coastguard Worker        it eq
452*9880d681SAndroid Build Coastguard Worker        clzeq r1, r2
453*9880d681SAndroid Build Coastguard Worker
454*9880d681SAndroid Build Coastguard Worker@ CHECK: clz	r1, r2                  @ encoding: [0xb2,0xfa,0x82,0xf1]
455*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                      @ encoding: [0x08,0xbf]
456*9880d681SAndroid Build Coastguard Worker@ CHECK: clzeq	r1, r2                  @ encoding: [0xb2,0xfa,0x82,0xf1]
457*9880d681SAndroid Build Coastguard Worker
458*9880d681SAndroid Build Coastguard Worker
459*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
460*9880d681SAndroid Build Coastguard Worker@ CMN
461*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
462*9880d681SAndroid Build Coastguard Worker        cmn r1, #0xf
463*9880d681SAndroid Build Coastguard Worker        cmn r8, r6
464*9880d681SAndroid Build Coastguard Worker        cmn r1, r6, lsl #10
465*9880d681SAndroid Build Coastguard Worker        cmn r1, r6, lsr #10
466*9880d681SAndroid Build Coastguard Worker        cmn sp, r6, lsr #10
467*9880d681SAndroid Build Coastguard Worker        cmn r1, r6, asr #10
468*9880d681SAndroid Build Coastguard Worker        cmn r1, r6, ror #10
469*9880d681SAndroid Build Coastguard Worker
470*9880d681SAndroid Build Coastguard Worker@ CHECK: cmn.w	r1, #15                 @ encoding: [0x11,0xf1,0x0f,0x0f]
471*9880d681SAndroid Build Coastguard Worker@ CHECK: cmn.w	r8, r6                  @ encoding: [0x18,0xeb,0x06,0x0f]
472*9880d681SAndroid Build Coastguard Worker@ CHECK: cmn.w	r1, r6, lsl #10         @ encoding: [0x11,0xeb,0x86,0x2f]
473*9880d681SAndroid Build Coastguard Worker@ CHECK: cmn.w	r1, r6, lsr #10         @ encoding: [0x11,0xeb,0x96,0x2f]
474*9880d681SAndroid Build Coastguard Worker@ CHECK: cmn.w	sp, r6, lsr #10         @ encoding: [0x1d,0xeb,0x96,0x2f]
475*9880d681SAndroid Build Coastguard Worker@ CHECK: cmn.w	r1, r6, asr #10         @ encoding: [0x11,0xeb,0xa6,0x2f]
476*9880d681SAndroid Build Coastguard Worker@ CHECK: cmn.w	r1, r6, ror #10         @ encoding: [0x11,0xeb,0xb6,0x2f]
477*9880d681SAndroid Build Coastguard Worker
478*9880d681SAndroid Build Coastguard Worker
479*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
480*9880d681SAndroid Build Coastguard Worker@ CMP
481*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
482*9880d681SAndroid Build Coastguard Worker        cmp r5, #0xff00
483*9880d681SAndroid Build Coastguard Worker        cmp.w r4, r12
484*9880d681SAndroid Build Coastguard Worker        cmp r9, r6, lsl #12
485*9880d681SAndroid Build Coastguard Worker        cmp r3, r7, lsr #31
486*9880d681SAndroid Build Coastguard Worker        cmp sp, r6, lsr #1
487*9880d681SAndroid Build Coastguard Worker        cmp r2, r5, asr #24
488*9880d681SAndroid Build Coastguard Worker        cmp r1, r4, ror #15
489*9880d681SAndroid Build Coastguard Worker        cmp r2, #-2
490*9880d681SAndroid Build Coastguard Worker        cmp r9, #1
491*9880d681SAndroid Build Coastguard Worker
492*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp.w	r5, #65280              @ encoding: [0xb5,0xf5,0x7f,0x4f]
493*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp.w	r4, r12                 @ encoding: [0xb4,0xeb,0x0c,0x0f]
494*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp.w	r9, r6, lsl #12         @ encoding: [0xb9,0xeb,0x06,0x3f]
495*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp.w	r3, r7, lsr #31         @ encoding: [0xb3,0xeb,0xd7,0x7f]
496*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp.w	sp, r6, lsr #1          @ encoding: [0xbd,0xeb,0x56,0x0f]
497*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp.w	r2, r5, asr #24         @ encoding: [0xb2,0xeb,0x25,0x6f]
498*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp.w	r1, r4, ror #15         @ encoding: [0xb1,0xeb,0xf4,0x3f]
499*9880d681SAndroid Build Coastguard Worker@ CHECK: cmn.w	r2, #2                  @ encoding: [0x12,0xf1,0x02,0x0f]
500*9880d681SAndroid Build Coastguard Worker@ CHECK: cmp.w	r9, #1                  @ encoding: [0xb9,0xf1,0x01,0x0f]
501*9880d681SAndroid Build Coastguard Worker
502*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
503*9880d681SAndroid Build Coastguard Worker@ CPS
504*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
505*9880d681SAndroid Build Coastguard Worker
506*9880d681SAndroid Build Coastguard Worker        cpsie f
507*9880d681SAndroid Build Coastguard Worker        cpsid a
508*9880d681SAndroid Build Coastguard Worker        cpsie.w f
509*9880d681SAndroid Build Coastguard Worker        cpsid.w a
510*9880d681SAndroid Build Coastguard Worker        cpsie i, #3
511*9880d681SAndroid Build Coastguard Worker        cpsie.w i, #3
512*9880d681SAndroid Build Coastguard Worker        cpsid f, #9
513*9880d681SAndroid Build Coastguard Worker        cpsid.w f, #9
514*9880d681SAndroid Build Coastguard Worker        cps #0
515*9880d681SAndroid Build Coastguard Worker        cps.w #0
516*9880d681SAndroid Build Coastguard Worker
517*9880d681SAndroid Build Coastguard Worker@ CHECK: cpsie f                        @ encoding: [0x61,0xb6]
518*9880d681SAndroid Build Coastguard Worker@ CHECK: cpsid a                        @ encoding: [0x74,0xb6]
519*9880d681SAndroid Build Coastguard Worker@ CHECK: cpsie.w f                      @ encoding: [0xaf,0xf3,0x20,0x84]
520*9880d681SAndroid Build Coastguard Worker@ CHECK: cpsid.w a                      @ encoding: [0xaf,0xf3,0x80,0x86]
521*9880d681SAndroid Build Coastguard Worker@ CHECK: cpsie i, #3                    @ encoding: [0xaf,0xf3,0x43,0x85]
522*9880d681SAndroid Build Coastguard Worker@ CHECK: cpsie i, #3                    @ encoding: [0xaf,0xf3,0x43,0x85]
523*9880d681SAndroid Build Coastguard Worker@ CHECK: cpsid f, #9                    @ encoding: [0xaf,0xf3,0x29,0x87]
524*9880d681SAndroid Build Coastguard Worker@ CHECK: cpsid f, #9                    @ encoding: [0xaf,0xf3,0x29,0x87]
525*9880d681SAndroid Build Coastguard Worker@ CHECK: cps   #0                       @ encoding: [0xaf,0xf3,0x00,0x81]
526*9880d681SAndroid Build Coastguard Worker@ CHECK: cps   #0                       @ encoding: [0xaf,0xf3,0x00,0x81]
527*9880d681SAndroid Build Coastguard Worker
528*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
529*9880d681SAndroid Build Coastguard Worker@ DBG
530*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
531*9880d681SAndroid Build Coastguard Worker        dbg #5
532*9880d681SAndroid Build Coastguard Worker        dbg #0
533*9880d681SAndroid Build Coastguard Worker        dbg #15
534*9880d681SAndroid Build Coastguard Worker
535*9880d681SAndroid Build Coastguard Worker@ CHECK: dbg	#5                      @ encoding: [0xaf,0xf3,0xf5,0x80]
536*9880d681SAndroid Build Coastguard Worker@ CHECK: dbg	#0                      @ encoding: [0xaf,0xf3,0xf0,0x80]
537*9880d681SAndroid Build Coastguard Worker@ CHECK: dbg	#15                     @ encoding: [0xaf,0xf3,0xff,0x80]
538*9880d681SAndroid Build Coastguard Worker
539*9880d681SAndroid Build Coastguard Worker
540*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
541*9880d681SAndroid Build Coastguard Worker@ DMB
542*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
543*9880d681SAndroid Build Coastguard Worker        dmb #0xf
544*9880d681SAndroid Build Coastguard Worker        dmb #0xe
545*9880d681SAndroid Build Coastguard Worker        dmb #0xd
546*9880d681SAndroid Build Coastguard Worker        dmb #0xc
547*9880d681SAndroid Build Coastguard Worker        dmb #0xb
548*9880d681SAndroid Build Coastguard Worker        dmb #0xa
549*9880d681SAndroid Build Coastguard Worker        dmb #0x9
550*9880d681SAndroid Build Coastguard Worker        dmb #0x8
551*9880d681SAndroid Build Coastguard Worker        dmb #0x7
552*9880d681SAndroid Build Coastguard Worker        dmb #0x6
553*9880d681SAndroid Build Coastguard Worker        dmb #0x5
554*9880d681SAndroid Build Coastguard Worker        dmb #0x4
555*9880d681SAndroid Build Coastguard Worker        dmb #0x3
556*9880d681SAndroid Build Coastguard Worker        dmb #0x2
557*9880d681SAndroid Build Coastguard Worker        dmb #0x1
558*9880d681SAndroid Build Coastguard Worker        dmb #0x0
559*9880d681SAndroid Build Coastguard Worker
560*9880d681SAndroid Build Coastguard Worker        dmb sy
561*9880d681SAndroid Build Coastguard Worker        dmb st
562*9880d681SAndroid Build Coastguard Worker        dmb sh
563*9880d681SAndroid Build Coastguard Worker        dmb ish
564*9880d681SAndroid Build Coastguard Worker        dmb shst
565*9880d681SAndroid Build Coastguard Worker        dmb ishst
566*9880d681SAndroid Build Coastguard Worker        dmb un
567*9880d681SAndroid Build Coastguard Worker        dmb nsh
568*9880d681SAndroid Build Coastguard Worker        dmb unst
569*9880d681SAndroid Build Coastguard Worker        dmb nshst
570*9880d681SAndroid Build Coastguard Worker        dmb osh
571*9880d681SAndroid Build Coastguard Worker        dmb oshst
572*9880d681SAndroid Build Coastguard Worker        dmb
573*9880d681SAndroid Build Coastguard Worker
574*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	sy                      @ encoding: [0xbf,0xf3,0x5f,0x8f]
575*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	st                      @ encoding: [0xbf,0xf3,0x5e,0x8f]
576*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	#0xd                    @ encoding: [0xbf,0xf3,0x5d,0x8f]
577*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	#0xc                    @ encoding: [0xbf,0xf3,0x5c,0x8f]
578*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	ish                     @ encoding: [0xbf,0xf3,0x5b,0x8f]
579*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	ishst                   @ encoding: [0xbf,0xf3,0x5a,0x8f]
580*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	#0x9                    @ encoding: [0xbf,0xf3,0x59,0x8f]
581*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	#0x8                    @ encoding: [0xbf,0xf3,0x58,0x8f]
582*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	nsh                     @ encoding: [0xbf,0xf3,0x57,0x8f]
583*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	nshst                   @ encoding: [0xbf,0xf3,0x56,0x8f]
584*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	#0x5                    @ encoding: [0xbf,0xf3,0x55,0x8f]
585*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	#0x4                    @ encoding: [0xbf,0xf3,0x54,0x8f]
586*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	osh                     @ encoding: [0xbf,0xf3,0x53,0x8f]
587*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	oshst                   @ encoding: [0xbf,0xf3,0x52,0x8f]
588*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	#0x1                    @ encoding: [0xbf,0xf3,0x51,0x8f]
589*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	#0x0                    @ encoding: [0xbf,0xf3,0x50,0x8f]
590*9880d681SAndroid Build Coastguard Worker
591*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	sy                      @ encoding: [0xbf,0xf3,0x5f,0x8f]
592*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	st                      @ encoding: [0xbf,0xf3,0x5e,0x8f]
593*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	ish                     @ encoding: [0xbf,0xf3,0x5b,0x8f]
594*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	ish                     @ encoding: [0xbf,0xf3,0x5b,0x8f]
595*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	ishst                   @ encoding: [0xbf,0xf3,0x5a,0x8f]
596*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	ishst                   @ encoding: [0xbf,0xf3,0x5a,0x8f]
597*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	nsh                     @ encoding: [0xbf,0xf3,0x57,0x8f]
598*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	nsh                     @ encoding: [0xbf,0xf3,0x57,0x8f]
599*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	nshst                   @ encoding: [0xbf,0xf3,0x56,0x8f]
600*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	nshst                   @ encoding: [0xbf,0xf3,0x56,0x8f]
601*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	osh                     @ encoding: [0xbf,0xf3,0x53,0x8f]
602*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	oshst                   @ encoding: [0xbf,0xf3,0x52,0x8f]
603*9880d681SAndroid Build Coastguard Worker@ CHECK: dmb	sy                      @ encoding: [0xbf,0xf3,0x5f,0x8f]
604*9880d681SAndroid Build Coastguard Worker
605*9880d681SAndroid Build Coastguard Worker
606*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
607*9880d681SAndroid Build Coastguard Worker@ DSB
608*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
609*9880d681SAndroid Build Coastguard Worker        dsb #0xf
610*9880d681SAndroid Build Coastguard Worker        dsb #0xe
611*9880d681SAndroid Build Coastguard Worker        dsb #0xd
612*9880d681SAndroid Build Coastguard Worker        dsb #0xc
613*9880d681SAndroid Build Coastguard Worker        dsb #0xb
614*9880d681SAndroid Build Coastguard Worker        dsb #0xa
615*9880d681SAndroid Build Coastguard Worker        dsb #0x9
616*9880d681SAndroid Build Coastguard Worker        dsb #0x8
617*9880d681SAndroid Build Coastguard Worker        dsb #0x7
618*9880d681SAndroid Build Coastguard Worker        dsb #0x6
619*9880d681SAndroid Build Coastguard Worker        dsb #0x5
620*9880d681SAndroid Build Coastguard Worker        dsb #0x4
621*9880d681SAndroid Build Coastguard Worker        dsb #0x3
622*9880d681SAndroid Build Coastguard Worker        dsb #0x2
623*9880d681SAndroid Build Coastguard Worker        dsb #0x1
624*9880d681SAndroid Build Coastguard Worker        dsb #0x0
625*9880d681SAndroid Build Coastguard Worker
626*9880d681SAndroid Build Coastguard Worker        dsb sy
627*9880d681SAndroid Build Coastguard Worker        dsb st
628*9880d681SAndroid Build Coastguard Worker        dsb sh
629*9880d681SAndroid Build Coastguard Worker        dsb ish
630*9880d681SAndroid Build Coastguard Worker        dsb shst
631*9880d681SAndroid Build Coastguard Worker        dsb ishst
632*9880d681SAndroid Build Coastguard Worker        dsb un
633*9880d681SAndroid Build Coastguard Worker        dsb nsh
634*9880d681SAndroid Build Coastguard Worker        dsb unst
635*9880d681SAndroid Build Coastguard Worker        dsb nshst
636*9880d681SAndroid Build Coastguard Worker        dsb osh
637*9880d681SAndroid Build Coastguard Worker        dsb oshst
638*9880d681SAndroid Build Coastguard Worker        dsb
639*9880d681SAndroid Build Coastguard Worker
640*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	sy                      @ encoding: [0xbf,0xf3,0x4f,0x8f]
641*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	st                      @ encoding: [0xbf,0xf3,0x4e,0x8f]
642*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	#0xd                    @ encoding: [0xbf,0xf3,0x4d,0x8f]
643*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	#0xc                    @ encoding: [0xbf,0xf3,0x4c,0x8f]
644*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	ish                     @ encoding: [0xbf,0xf3,0x4b,0x8f]
645*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	ishst                   @ encoding: [0xbf,0xf3,0x4a,0x8f]
646*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	#0x9                    @ encoding: [0xbf,0xf3,0x49,0x8f]
647*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	#0x8                    @ encoding: [0xbf,0xf3,0x48,0x8f]
648*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	nsh                     @ encoding: [0xbf,0xf3,0x47,0x8f]
649*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	nshst                   @ encoding: [0xbf,0xf3,0x46,0x8f]
650*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	#0x5                    @ encoding: [0xbf,0xf3,0x45,0x8f]
651*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	#0x4                    @ encoding: [0xbf,0xf3,0x44,0x8f]
652*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	osh                     @ encoding: [0xbf,0xf3,0x43,0x8f]
653*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	oshst                   @ encoding: [0xbf,0xf3,0x42,0x8f]
654*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	#0x1                    @ encoding: [0xbf,0xf3,0x41,0x8f]
655*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	#0x0                    @ encoding: [0xbf,0xf3,0x40,0x8f]
656*9880d681SAndroid Build Coastguard Worker
657*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	sy                      @ encoding: [0xbf,0xf3,0x4f,0x8f]
658*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	st                      @ encoding: [0xbf,0xf3,0x4e,0x8f]
659*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	ish                     @ encoding: [0xbf,0xf3,0x4b,0x8f]
660*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	ish                     @ encoding: [0xbf,0xf3,0x4b,0x8f]
661*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	ishst                   @ encoding: [0xbf,0xf3,0x4a,0x8f]
662*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	ishst                   @ encoding: [0xbf,0xf3,0x4a,0x8f]
663*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	nsh                     @ encoding: [0xbf,0xf3,0x47,0x8f]
664*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	nsh                     @ encoding: [0xbf,0xf3,0x47,0x8f]
665*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	nshst                   @ encoding: [0xbf,0xf3,0x46,0x8f]
666*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	nshst                   @ encoding: [0xbf,0xf3,0x46,0x8f]
667*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	osh                     @ encoding: [0xbf,0xf3,0x43,0x8f]
668*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	oshst                   @ encoding: [0xbf,0xf3,0x42,0x8f]
669*9880d681SAndroid Build Coastguard Worker@ CHECK: dsb	sy                      @ encoding: [0xbf,0xf3,0x4f,0x8f]
670*9880d681SAndroid Build Coastguard Worker
671*9880d681SAndroid Build Coastguard Worker
672*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
673*9880d681SAndroid Build Coastguard Worker@ EOR
674*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
675*9880d681SAndroid Build Coastguard Worker        eor r4, r5, #0xf000
676*9880d681SAndroid Build Coastguard Worker        eor r4, r5, r6
677*9880d681SAndroid Build Coastguard Worker        eor r4, r5, r6, lsl #5
678*9880d681SAndroid Build Coastguard Worker        eor r4, r5, r6, lsr #5
679*9880d681SAndroid Build Coastguard Worker        eor r4, r5, r6, lsr #5
680*9880d681SAndroid Build Coastguard Worker        eor r4, r5, r6, asr #5
681*9880d681SAndroid Build Coastguard Worker        eor r4, r5, r6, ror #5
682*9880d681SAndroid Build Coastguard Worker
683*9880d681SAndroid Build Coastguard Worker@ CHECK: eor	r4, r5, #61440          @ encoding: [0x85,0xf4,0x70,0x44]
684*9880d681SAndroid Build Coastguard Worker@ CHECK: eor.w	r4, r5, r6              @ encoding: [0x85,0xea,0x06,0x04]
685*9880d681SAndroid Build Coastguard Worker@ CHECK: eor.w	r4, r5, r6, lsl #5      @ encoding: [0x85,0xea,0x46,0x14]
686*9880d681SAndroid Build Coastguard Worker@ CHECK: eor.w	r4, r5, r6, lsr #5      @ encoding: [0x85,0xea,0x56,0x14]
687*9880d681SAndroid Build Coastguard Worker@ CHECK: eor.w	r4, r5, r6, lsr #5      @ encoding: [0x85,0xea,0x56,0x14]
688*9880d681SAndroid Build Coastguard Worker@ CHECK: eor.w	r4, r5, r6, asr #5      @ encoding: [0x85,0xea,0x66,0x14]
689*9880d681SAndroid Build Coastguard Worker@ CHECK: eor.w	r4, r5, r6, ror #5      @ encoding: [0x85,0xea,0x76,0x14]
690*9880d681SAndroid Build Coastguard Worker
691*9880d681SAndroid Build Coastguard Worker
692*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
693*9880d681SAndroid Build Coastguard Worker@ ISB
694*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
695*9880d681SAndroid Build Coastguard Worker        isb sy
696*9880d681SAndroid Build Coastguard Worker        isb
697*9880d681SAndroid Build Coastguard Worker        isb #15
698*9880d681SAndroid Build Coastguard Worker        isb #1
699*9880d681SAndroid Build Coastguard Worker
700*9880d681SAndroid Build Coastguard Worker@ CHECK: isb	sy                      @ encoding: [0xbf,0xf3,0x6f,0x8f]
701*9880d681SAndroid Build Coastguard Worker@ CHECK: isb	sy                      @ encoding: [0xbf,0xf3,0x6f,0x8f]
702*9880d681SAndroid Build Coastguard Worker@ CHECK: isb	sy                      @ encoding: [0xbf,0xf3,0x6f,0x8f]
703*9880d681SAndroid Build Coastguard Worker@ CHECK: isb	#0x1                    @ encoding: [0xbf,0xf3,0x61,0x8f]
704*9880d681SAndroid Build Coastguard Worker
705*9880d681SAndroid Build Coastguard Worker
706*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
707*9880d681SAndroid Build Coastguard Worker@ IT
708*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
709*9880d681SAndroid Build Coastguard Worker@ Test encodings of a few full IT blocks, not just the IT instruction
710*9880d681SAndroid Build Coastguard Worker
711*9880d681SAndroid Build Coastguard Worker        iteet eq
712*9880d681SAndroid Build Coastguard Worker        addeq r0, r1, r2
713*9880d681SAndroid Build Coastguard Worker        nopne
714*9880d681SAndroid Build Coastguard Worker        subne r5, r6, r7
715*9880d681SAndroid Build Coastguard Worker        addeq r1, r2, #4
716*9880d681SAndroid Build Coastguard Worker
717*9880d681SAndroid Build Coastguard Worker@ CHECK: iteet	eq                      @ encoding: [0x0d,0xbf]
718*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq	r0, r1, r2              @ encoding: [0x88,0x18]
719*9880d681SAndroid Build Coastguard Worker@ CHECK: nopne                          @ encoding: [0x00,0xbf]
720*9880d681SAndroid Build Coastguard Worker@ CHECK: subne	r5, r6, r7              @ encoding: [0xf5,0x1b]
721*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq	r1, r2, #4              @ encoding: [0x11,0x1d]
722*9880d681SAndroid Build Coastguard Worker
723*9880d681SAndroid Build Coastguard Worker@ Should also work for UPPER CASE condition codes.
724*9880d681SAndroid Build Coastguard Worker
725*9880d681SAndroid Build Coastguard Worker        ITEET EQ
726*9880d681SAndroid Build Coastguard Worker        ADDEQ R0, R1, R2
727*9880d681SAndroid Build Coastguard Worker        NOPNE
728*9880d681SAndroid Build Coastguard Worker        SUBNE R5, R6, R7
729*9880d681SAndroid Build Coastguard Worker        ADDEQ R1, R2, #4
730*9880d681SAndroid Build Coastguard Worker
731*9880d681SAndroid Build Coastguard Worker@ CHECK: iteet	eq                      @ encoding: [0x0d,0xbf]
732*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq	r0, r1, r2              @ encoding: [0x88,0x18]
733*9880d681SAndroid Build Coastguard Worker@ CHECK: nopne                          @ encoding: [0x00,0xbf]
734*9880d681SAndroid Build Coastguard Worker@ CHECK: subne	r5, r6, r7              @ encoding: [0xf5,0x1b]
735*9880d681SAndroid Build Coastguard Worker@ CHECK: addeq	r1, r2, #4              @ encoding: [0x11,0x1d]
736*9880d681SAndroid Build Coastguard Worker
737*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
738*9880d681SAndroid Build Coastguard Worker@ LDC{L}/LDC2{L}
739*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
740*9880d681SAndroid Build Coastguard Worker        ldc2 p0, c8, [r1, #4]
741*9880d681SAndroid Build Coastguard Worker        ldc2 p1, c7, [r2]
742*9880d681SAndroid Build Coastguard Worker        ldc2 p2, c6, [r3, #-224]
743*9880d681SAndroid Build Coastguard Worker        ldc2 p3, c5, [r4, #-120]!
744*9880d681SAndroid Build Coastguard Worker        ldc2 p4, c4, [r5], #16
745*9880d681SAndroid Build Coastguard Worker        ldc2 p5, c3, [r6], #-72
746*9880d681SAndroid Build Coastguard Worker        ldc2l p6, c2, [r7, #4]
747*9880d681SAndroid Build Coastguard Worker        ldc2l p7, c1, [r8]
748*9880d681SAndroid Build Coastguard Worker        ldc2l p8, c0, [r9, #-224]
749*9880d681SAndroid Build Coastguard Worker        ldc2l p9, c1, [r10, #-120]!
750*9880d681SAndroid Build Coastguard Worker        ldc2l p0, c2, [r11], #16
751*9880d681SAndroid Build Coastguard Worker        ldc2l p1, c3, [r12], #-72
752*9880d681SAndroid Build Coastguard Worker
753*9880d681SAndroid Build Coastguard Worker        ldc p12, c4, [r0, #4]
754*9880d681SAndroid Build Coastguard Worker        ldc p13, c5, [r1]
755*9880d681SAndroid Build Coastguard Worker        ldc p14, c6, [r2, #-224]
756*9880d681SAndroid Build Coastguard Worker        ldc p15, c7, [r3, #-120]!
757*9880d681SAndroid Build Coastguard Worker        ldc p5, c8, [r4], #16
758*9880d681SAndroid Build Coastguard Worker        ldc p4, c9, [r5], #-72
759*9880d681SAndroid Build Coastguard Worker        ldcl p3, c10, [r6, #4]
760*9880d681SAndroid Build Coastguard Worker        ldcl p2, c11, [r7]
761*9880d681SAndroid Build Coastguard Worker        ldcl p1, c12, [r8, #-224]
762*9880d681SAndroid Build Coastguard Worker        ldcl p0, c13, [r9, #-120]!
763*9880d681SAndroid Build Coastguard Worker        ldcl p6, c14, [r10], #16
764*9880d681SAndroid Build Coastguard Worker        ldcl p7, c15, [r11], #-72
765*9880d681SAndroid Build Coastguard Worker
766*9880d681SAndroid Build Coastguard Worker        ldc2 p2, c8, [r1], { 25 }
767*9880d681SAndroid Build Coastguard Worker
768*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2	p0, c8, [r1, #4]        @ encoding: [0x91,0xfd,0x01,0x80]
769*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2	p1, c7, [r2]            @ encoding: [0x92,0xfd,0x00,0x71]
770*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2	p2, c6, [r3, #-224]     @ encoding: [0x13,0xfd,0x38,0x62]
771*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2	p3, c5, [r4, #-120]!    @ encoding: [0x34,0xfd,0x1e,0x53]
772*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2	p4, c4, [r5], #16       @ encoding: [0xb5,0xfc,0x04,0x44]
773*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2	p5, c3, [r6], #-72      @ encoding: [0x36,0xfc,0x12,0x35]
774*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2l	p6, c2, [r7, #4]        @ encoding: [0xd7,0xfd,0x01,0x26]
775*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2l	p7, c1, [r8]            @ encoding: [0xd8,0xfd,0x00,0x17]
776*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2l	p8, c0, [r9, #-224]     @ encoding: [0x59,0xfd,0x38,0x08]
777*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2l	p9, c1, [r10, #-120]!   @ encoding: [0x7a,0xfd,0x1e,0x19]
778*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2l	p0, c2, [r11], #16      @ encoding: [0xfb,0xfc,0x04,0x20]
779*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2l	p1, c3, [r12], #-72     @ encoding: [0x7c,0xfc,0x12,0x31]
780*9880d681SAndroid Build Coastguard Worker
781*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc	p12, c4, [r0, #4]       @ encoding: [0x90,0xed,0x01,0x4c]
782*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc	p13, c5, [r1]           @ encoding: [0x91,0xed,0x00,0x5d]
783*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc	p14, c6, [r2, #-224]    @ encoding: [0x12,0xed,0x38,0x6e]
784*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc	p15, c7, [r3, #-120]!   @ encoding: [0x33,0xed,0x1e,0x7f]
785*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc	p5, c8, [r4], #16       @ encoding: [0xb4,0xec,0x04,0x85]
786*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc	p4, c9, [r5], #-72      @ encoding: [0x35,0xec,0x12,0x94]
787*9880d681SAndroid Build Coastguard Worker@ CHECK: ldcl	p3, c10, [r6, #4]       @ encoding: [0xd6,0xed,0x01,0xa3]
788*9880d681SAndroid Build Coastguard Worker@ CHECK: ldcl	p2, c11, [r7]           @ encoding: [0xd7,0xed,0x00,0xb2]
789*9880d681SAndroid Build Coastguard Worker@ CHECK: ldcl	p1, c12, [r8, #-224]    @ encoding: [0x58,0xed,0x38,0xc1]
790*9880d681SAndroid Build Coastguard Worker@ CHECK: ldcl	p0, c13, [r9, #-120]!   @ encoding: [0x79,0xed,0x1e,0xd0]
791*9880d681SAndroid Build Coastguard Worker@ CHECK: ldcl	p6, c14, [r10], #16     @ encoding: [0xfa,0xec,0x04,0xe6]
792*9880d681SAndroid Build Coastguard Worker@ CHECK: ldcl	p7, c15, [r11], #-72    @ encoding: [0x7b,0xec,0x12,0xf7]
793*9880d681SAndroid Build Coastguard Worker
794*9880d681SAndroid Build Coastguard Worker@ CHECK: ldc2	p2, c8, [r1], {25}      @ encoding: [0x91,0xfc,0x19,0x82]
795*9880d681SAndroid Build Coastguard Worker
796*9880d681SAndroid Build Coastguard Worker
797*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
798*9880d681SAndroid Build Coastguard Worker@ LDMIA
799*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
800*9880d681SAndroid Build Coastguard Worker        ldmia.w r4, {r4, r5, r8, r9}
801*9880d681SAndroid Build Coastguard Worker        ldmia.w r4, {r5, r6}
802*9880d681SAndroid Build Coastguard Worker        ldmia.w r5!, {r3, r8}
803*9880d681SAndroid Build Coastguard Worker        ldm.w r4, {r4, r5, r8, r9}
804*9880d681SAndroid Build Coastguard Worker        ldm.w r4, {r5, r6}
805*9880d681SAndroid Build Coastguard Worker        ldm.w r5!, {r3, r8}
806*9880d681SAndroid Build Coastguard Worker        ldm.w r5!, {r1, r2}
807*9880d681SAndroid Build Coastguard Worker        ldm.w r2, {r1, r2}
808*9880d681SAndroid Build Coastguard Worker
809*9880d681SAndroid Build Coastguard Worker        ldmia r4, {r4, r5, r8, r9}
810*9880d681SAndroid Build Coastguard Worker        ldmia r4, {r5, r6}
811*9880d681SAndroid Build Coastguard Worker        ldmia r5!, {r3, r8}
812*9880d681SAndroid Build Coastguard Worker        ldm r4, {r4, r5, r8, r9}
813*9880d681SAndroid Build Coastguard Worker        ldm r4, {r5, r6}
814*9880d681SAndroid Build Coastguard Worker        ldm r5!, {r3, r8}
815*9880d681SAndroid Build Coastguard Worker        ldmfd r5!, {r3, r8}
816*9880d681SAndroid Build Coastguard Worker        ldmia sp!, {r4-r11, pc}
817*9880d681SAndroid Build Coastguard Worker
818*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x94,0xe8,0x30,0x03]
819*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r4, {r5, r6}            @ encoding: [0x94,0xe8,0x60,0x00]
820*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r5!, {r3, r8}           @ encoding: [0xb5,0xe8,0x08,0x01]
821*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x94,0xe8,0x30,0x03]
822*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r4, {r5, r6}            @ encoding: [0x94,0xe8,0x60,0x00]
823*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r5!, {r3, r8}           @ encoding: [0xb5,0xe8,0x08,0x01]
824*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r5!, {r1, r2}           @ encoding: [0xb5,0xe8,0x06,0x00]
825*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r2, {r1, r2}            @ encoding: [0x92,0xe8,0x06,0x00]
826*9880d681SAndroid Build Coastguard Worker
827*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x94,0xe8,0x30,0x03]
828*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r4, {r5, r6}            @ encoding: [0x94,0xe8,0x60,0x00]
829*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r5!, {r3, r8}           @ encoding: [0xb5,0xe8,0x08,0x01]
830*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x94,0xe8,0x30,0x03]
831*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r4, {r5, r6}            @ encoding: [0x94,0xe8,0x60,0x00]
832*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r5!, {r3, r8}           @ encoding: [0xb5,0xe8,0x08,0x01]
833*9880d681SAndroid Build Coastguard Worker@ CHECK: ldm.w	r5!, {r3, r8}           @ encoding: [0xb5,0xe8,0x08,0x01]
834*9880d681SAndroid Build Coastguard Worker@ CHECK: pop.w	{r4, r5, r6, r7, r8, r9, r10, r11, pc} @ encoding: [0xbd,0xe8,0xf0,0x8f]
835*9880d681SAndroid Build Coastguard Worker
836*9880d681SAndroid Build Coastguard Worker
837*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
838*9880d681SAndroid Build Coastguard Worker@ LDMDB
839*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
840*9880d681SAndroid Build Coastguard Worker        ldmdb r4, {r4, r5, r8, r9}
841*9880d681SAndroid Build Coastguard Worker        ldmdb r4, {r5, r6}
842*9880d681SAndroid Build Coastguard Worker        ldmdb r5!, {r3, r8}
843*9880d681SAndroid Build Coastguard Worker        ldmea r5!, {r3, r8}
844*9880d681SAndroid Build Coastguard Worker        ldmdb.w r4, {r5, r6}
845*9880d681SAndroid Build Coastguard Worker        ldmdb.w r5!, {r3, r8}
846*9880d681SAndroid Build Coastguard Worker
847*9880d681SAndroid Build Coastguard Worker@ CHECK: ldmdb	r4, {r4, r5, r8, r9}    @ encoding: [0x14,0xe9,0x30,0x03]
848*9880d681SAndroid Build Coastguard Worker@ CHECK: ldmdb	r4, {r5, r6}            @ encoding: [0x14,0xe9,0x60,0x00]
849*9880d681SAndroid Build Coastguard Worker@ CHECK: ldmdb	r5!, {r3, r8}           @ encoding: [0x35,0xe9,0x08,0x01]
850*9880d681SAndroid Build Coastguard Worker@ CHECK: ldmdb	r5!, {r3, r8}           @ encoding: [0x35,0xe9,0x08,0x01]
851*9880d681SAndroid Build Coastguard Worker@ CHECK: ldmdb	r4, {r5, r6}            @ encoding: [0x14,0xe9,0x60,0x00]
852*9880d681SAndroid Build Coastguard Worker@ CHECK: ldmdb	r5!, {r3, r8}           @ encoding: [0x35,0xe9,0x08,0x01]
853*9880d681SAndroid Build Coastguard Worker
854*9880d681SAndroid Build Coastguard Worker
855*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
856*9880d681SAndroid Build Coastguard Worker@ LDR(immediate)
857*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
858*9880d681SAndroid Build Coastguard Worker        ldr r5, [r5, #-4]
859*9880d681SAndroid Build Coastguard Worker        ldr r5, [r6, #32]
860*9880d681SAndroid Build Coastguard Worker        ldr r5, [r6, #33]
861*9880d681SAndroid Build Coastguard Worker        ldr r5, [r6, #257]
862*9880d681SAndroid Build Coastguard Worker        ldr.w pc, [r7, #257]
863*9880d681SAndroid Build Coastguard Worker        ldr r2, [r4, #255]!
864*9880d681SAndroid Build Coastguard Worker        ldr r8, [sp, #4]!
865*9880d681SAndroid Build Coastguard Worker        ldr lr, [sp, #-4]!
866*9880d681SAndroid Build Coastguard Worker        ldr r2, [r4], #255
867*9880d681SAndroid Build Coastguard Worker        ldr r8, [sp], #4
868*9880d681SAndroid Build Coastguard Worker        ldr lr, [sp], #-4
869*9880d681SAndroid Build Coastguard Worker
870*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr	r5, [r5, #-4]           @ encoding: [0x55,0xf8,0x04,0x5c]
871*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr	r5, [r6, #32]           @ encoding: [0x35,0x6a]
872*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r5, [r6, #33]           @ encoding: [0xd6,0xf8,0x21,0x50]
873*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r5, [r6, #257]          @ encoding: [0xd6,0xf8,0x01,0x51]
874*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	pc, [r7, #257]          @ encoding: [0xd7,0xf8,0x01,0xf1]
875*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr	r2, [r4, #255]!         @ encoding: [0x54,0xf8,0xff,0x2f]
876*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr	r8, [sp, #4]!           @ encoding: [0x5d,0xf8,0x04,0x8f]
877*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr	lr, [sp, #-4]!          @ encoding: [0x5d,0xf8,0x04,0xed]
878*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr	r2, [r4], #255          @ encoding: [0x54,0xf8,0xff,0x2b]
879*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr	r8, [sp], #4            @ encoding: [0x5d,0xf8,0x04,0x8b]
880*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr	lr, [sp], #-4           @ encoding: [0x5d,0xf8,0x04,0xe9]
881*9880d681SAndroid Build Coastguard Worker
882*9880d681SAndroid Build Coastguard Worker
883*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
884*9880d681SAndroid Build Coastguard Worker@ LDR(literal)
885*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
886*9880d681SAndroid Build Coastguard Worker        ldr.w r5, _foo
887*9880d681SAndroid Build Coastguard Worker        ldr   lr, (_strcmp-4)
888*9880d681SAndroid Build Coastguard Worker        ldr sp, _foo
889*9880d681SAndroid Build Coastguard Worker
890*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r5, _foo                @ encoding: [0x5f'A',0xf8'A',A,0x50'A']
891*9880d681SAndroid Build Coastguard Worker@ CHECK: @   fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
892*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: ldr.w	r5, _foo                @ encoding: [0xf8'A',0x5f'A',0x50'A',A]
893*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: @   fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
894*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	lr, _strcmp-4           @ encoding: [0x5f'A',0xf8'A',A,0xe0'A']
895*9880d681SAndroid Build Coastguard Worker@ CHECK: @   fixup A - offset: 0, value: _strcmp-4, kind: fixup_t2_ldst_pcrel_12
896*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: ldr.w	lr, _strcmp-4           @ encoding: [0xf8'A',0x5f'A',0xe0'A',A]
897*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: @   fixup A - offset: 0, value: _strcmp-4, kind: fixup_t2_ldst_pcrel_12
898*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w sp, _foo                 @ encoding: [0x5f'A',0xf8'A',A,0xd0'A']
899*9880d681SAndroid Build Coastguard Worker@ CHECK: @   fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
900*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: ldr.w sp, _foo                 @ encoding: [0xf8'A',0x5f'A',0xd0'A',A]
901*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: @   fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
902*9880d681SAndroid Build Coastguard Worker
903*9880d681SAndroid Build Coastguard Worker        ldr r7, [pc, #8]
904*9880d681SAndroid Build Coastguard Worker        ldr.n r7, [pc, #8]
905*9880d681SAndroid Build Coastguard Worker        ldr.w r7, [pc, #8]
906*9880d681SAndroid Build Coastguard Worker        ldr r4, [pc, #1020]
907*9880d681SAndroid Build Coastguard Worker        ldr r3, [pc, #-1020]
908*9880d681SAndroid Build Coastguard Worker        ldr r6, [pc, #1024]
909*9880d681SAndroid Build Coastguard Worker        ldr r0, [pc, #-1024]
910*9880d681SAndroid Build Coastguard Worker        ldr r2, [pc, #4095]
911*9880d681SAndroid Build Coastguard Worker        ldr r1, [pc, #-4095]
912*9880d681SAndroid Build Coastguard Worker        ldr r8, [pc, #132]
913*9880d681SAndroid Build Coastguard Worker        ldr pc, [pc, #256]
914*9880d681SAndroid Build Coastguard Worker        ldr pc, [pc, #-400]
915*9880d681SAndroid Build Coastguard Worker        ldr sp, [pc, #4]
916*9880d681SAndroid Build Coastguard Worker
917*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr	r7, [pc, #8]            @ encoding: [0x02,0x4f]
918*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr	r7, [pc, #8]            @ encoding: [0x02,0x4f]
919*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r7, [pc, #8]            @ encoding: [0xdf,0xf8,0x08,0x70]
920*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr	r4, [pc, #1020]         @ encoding: [0xff,0x4c]
921*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r3, [pc, #-1020]        @ encoding: [0x5f,0xf8,0xfc,0x33]
922*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r6, [pc, #1024]         @ encoding: [0xdf,0xf8,0x00,0x64]
923*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r0, [pc, #-1024]        @ encoding: [0x5f,0xf8,0x00,0x04]
924*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r2, [pc, #4095]         @ encoding: [0xdf,0xf8,0xff,0x2f]
925*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r1, [pc, #-4095]        @ encoding: [0x5f,0xf8,0xff,0x1f]
926*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r8, [pc, #132]          @ encoding: [0xdf,0xf8,0x84,0x80]
927*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	pc, [pc, #256]          @ encoding: [0xdf,0xf8,0x00,0xf1]
928*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	pc, [pc, #-400]         @ encoding: [0x5f,0xf8,0x90,0xf1]
929*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w  sp, [pc, #4]            @ encoding: [0xdf,0xf8,0x04,0xd0]
930*9880d681SAndroid Build Coastguard Worker
931*9880d681SAndroid Build Coastguard Worker        ldrb  r9, [pc, #-0]
932*9880d681SAndroid Build Coastguard Worker        ldrsb r11, [pc, #-0]
933*9880d681SAndroid Build Coastguard Worker        ldrh  r10, [pc, #-0]
934*9880d681SAndroid Build Coastguard Worker        ldrsh r1, [pc, #-0]
935*9880d681SAndroid Build Coastguard Worker        ldr   r5, [pc, #-0]
936*9880d681SAndroid Build Coastguard Worker
937*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	r9, [pc, #-0]           @ encoding: [0x1f,0xf8,0x00,0x90]
938*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w	r11, [pc, #-0]  @ encoding: [0x1f,0xf9,0x00,0xb0]
939*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	r10, [pc, #-0]          @ encoding: [0x3f,0xf8,0x00,0xa0]
940*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w	r1, [pc, #-0]   @ encoding: [0x3f,0xf9,0x00,0x10]
941*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r5, [pc, #-0]           @ encoding: [0x5f,0xf8,0x00,0x50]
942*9880d681SAndroid Build Coastguard Worker
943*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
944*9880d681SAndroid Build Coastguard Worker@ LDR(register)
945*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
946*9880d681SAndroid Build Coastguard Worker        ldr r1, [r8, r1]
947*9880d681SAndroid Build Coastguard Worker        ldr.w r4, [r5, r2]
948*9880d681SAndroid Build Coastguard Worker        ldr r6, [r0, r2, lsl #3]
949*9880d681SAndroid Build Coastguard Worker        ldr r8, [r8, r2, lsl #2]
950*9880d681SAndroid Build Coastguard Worker        ldr r7, [sp, r2, lsl #1]
951*9880d681SAndroid Build Coastguard Worker        ldr r7, [sp, r2, lsl #0]
952*9880d681SAndroid Build Coastguard Worker
953*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r1, [r8, r1]            @ encoding: [0x58,0xf8,0x01,0x10]
954*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r4, [r5, r2]            @ encoding: [0x55,0xf8,0x02,0x40]
955*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r6, [r0, r2, lsl #3]    @ encoding: [0x50,0xf8,0x32,0x60]
956*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r8, [r8, r2, lsl #2]    @ encoding: [0x58,0xf8,0x22,0x80]
957*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r7, [sp, r2, lsl #1]    @ encoding: [0x5d,0xf8,0x12,0x70]
958*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r7, [sp, r2]            @ encoding: [0x5d,0xf8,0x02,0x70]
959*9880d681SAndroid Build Coastguard Worker
960*9880d681SAndroid Build Coastguard Worker
961*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
962*9880d681SAndroid Build Coastguard Worker@ LDRB(immediate)
963*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
964*9880d681SAndroid Build Coastguard Worker        ldrb r5, [r5, #-4]
965*9880d681SAndroid Build Coastguard Worker        ldrb r5, [r6, #32]
966*9880d681SAndroid Build Coastguard Worker        ldrb r5, [r6, #33]
967*9880d681SAndroid Build Coastguard Worker        ldrb r5, [r6, #257]
968*9880d681SAndroid Build Coastguard Worker        ldrb.w lr, [r7, #257]
969*9880d681SAndroid Build Coastguard Worker        ldrb r5, [r8, #255]!
970*9880d681SAndroid Build Coastguard Worker        ldrb r2, [r5, #4]!
971*9880d681SAndroid Build Coastguard Worker        ldrb r1, [r4, #-4]!
972*9880d681SAndroid Build Coastguard Worker        ldrb lr, [r3], #255
973*9880d681SAndroid Build Coastguard Worker        ldrb r9, [r2], #4
974*9880d681SAndroid Build Coastguard Worker        ldrb r3, [sp], #-4
975*9880d681SAndroid Build Coastguard Worker
976*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb	r5, [r5, #-4]           @ encoding: [0x15,0xf8,0x04,0x5c]
977*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	r5, [r6, #32]           @ encoding: [0x96,0xf8,0x20,0x50]
978*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	r5, [r6, #33]           @ encoding: [0x96,0xf8,0x21,0x50]
979*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	r5, [r6, #257]          @ encoding: [0x96,0xf8,0x01,0x51]
980*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	lr, [r7, #257]          @ encoding: [0x97,0xf8,0x01,0xe1]
981*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb	r5, [r8, #255]!         @ encoding: [0x18,0xf8,0xff,0x5f]
982*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb	r2, [r5, #4]!           @ encoding: [0x15,0xf8,0x04,0x2f]
983*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb	r1, [r4, #-4]!          @ encoding: [0x14,0xf8,0x04,0x1d]
984*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb	lr, [r3], #255          @ encoding: [0x13,0xf8,0xff,0xeb]
985*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb	r9, [r2], #4            @ encoding: [0x12,0xf8,0x04,0x9b]
986*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb	r3, [sp], #-4           @ encoding: [0x1d,0xf8,0x04,0x39]
987*9880d681SAndroid Build Coastguard Worker
988*9880d681SAndroid Build Coastguard Worker
989*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
990*9880d681SAndroid Build Coastguard Worker@ LDRB(register)
991*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
992*9880d681SAndroid Build Coastguard Worker        ldrb r1, [r8, r1]
993*9880d681SAndroid Build Coastguard Worker        ldrb.w r4, [r5, r2]
994*9880d681SAndroid Build Coastguard Worker        ldrb r6, [r0, r2, lsl #3]
995*9880d681SAndroid Build Coastguard Worker        ldrb r8, [r8, r2, lsl #2]
996*9880d681SAndroid Build Coastguard Worker        ldrb r7, [sp, r2, lsl #1]
997*9880d681SAndroid Build Coastguard Worker        ldrb r7, [sp, r2, lsl #0]
998*9880d681SAndroid Build Coastguard Worker
999*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	r1, [r8, r1]            @ encoding: [0x18,0xf8,0x01,0x10]
1000*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	r4, [r5, r2]            @ encoding: [0x15,0xf8,0x02,0x40]
1001*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	r6, [r0, r2, lsl #3]    @ encoding: [0x10,0xf8,0x32,0x60]
1002*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	r8, [r8, r2, lsl #2]    @ encoding: [0x18,0xf8,0x22,0x80]
1003*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	r7, [sp, r2, lsl #1]    @ encoding: [0x1d,0xf8,0x12,0x70]
1004*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	r7, [sp, r2]            @ encoding: [0x1d,0xf8,0x02,0x70]
1005*9880d681SAndroid Build Coastguard Worker
1006*9880d681SAndroid Build Coastguard Worker
1007*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1008*9880d681SAndroid Build Coastguard Worker@ LDRBT
1009*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1010*9880d681SAndroid Build Coastguard Worker        ldrbt r1, [r2]
1011*9880d681SAndroid Build Coastguard Worker        ldrbt r1, [r8, #0]
1012*9880d681SAndroid Build Coastguard Worker        ldrbt r1, [r8, #3]
1013*9880d681SAndroid Build Coastguard Worker        ldrbt r1, [r8, #255]
1014*9880d681SAndroid Build Coastguard Worker
1015*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrbt	r1, [r2]                @ encoding: [0x12,0xf8,0x00,0x1e]
1016*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrbt	r1, [r8]                @ encoding: [0x18,0xf8,0x00,0x1e]
1017*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrbt	r1, [r8, #3]            @ encoding: [0x18,0xf8,0x03,0x1e]
1018*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrbt	r1, [r8, #255]          @ encoding: [0x18,0xf8,0xff,0x1e]
1019*9880d681SAndroid Build Coastguard Worker
1020*9880d681SAndroid Build Coastguard Worker
1021*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1022*9880d681SAndroid Build Coastguard Worker@ LDRD
1023*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1024*9880d681SAndroid Build Coastguard Worker        ldrd r3, r5, [r6, #24]
1025*9880d681SAndroid Build Coastguard Worker        ldrd r3, r5, [r6, #24]!
1026*9880d681SAndroid Build Coastguard Worker        ldrd r3, r5, [r6], #4
1027*9880d681SAndroid Build Coastguard Worker        ldrd r3, r5, [r6], #-8
1028*9880d681SAndroid Build Coastguard Worker        ldrd r3, r5, [r6]
1029*9880d681SAndroid Build Coastguard Worker        ldrd r8, r1, [r3, #0]
1030*9880d681SAndroid Build Coastguard Worker        ldrd r0, r1, [r2, #-0]
1031*9880d681SAndroid Build Coastguard Worker        ldrd r0, r1, [r2, #-0]!
1032*9880d681SAndroid Build Coastguard Worker        ldrd r0, r1, [r2], #-0
1033*9880d681SAndroid Build Coastguard Worker
1034*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrd	r3, r5, [r6, #24]       @ encoding: [0xd6,0xe9,0x06,0x35]
1035*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrd	r3, r5, [r6, #24]!      @ encoding: [0xf6,0xe9,0x06,0x35]
1036*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrd	r3, r5, [r6], #4        @ encoding: [0xf6,0xe8,0x01,0x35]
1037*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrd	r3, r5, [r6], #-8       @ encoding: [0x76,0xe8,0x02,0x35]
1038*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrd	r3, r5, [r6]            @ encoding: [0xd6,0xe9,0x00,0x35]
1039*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrd	r8, r1, [r3]            @ encoding: [0xd3,0xe9,0x00,0x81]
1040*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrd	r0, r1, [r2, #-0]       @ encoding: [0x52,0xe9,0x00,0x01]
1041*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrd	r0, r1, [r2, #-0]!      @ encoding: [0x72,0xe9,0x00,0x01]
1042*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrd	r0, r1, [r2], #-0       @ encoding: [0x72,0xe8,0x00,0x01]
1043*9880d681SAndroid Build Coastguard Worker
1044*9880d681SAndroid Build Coastguard Worker
1045*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1046*9880d681SAndroid Build Coastguard Worker@ FIXME: LDRD(literal)
1047*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1048*9880d681SAndroid Build Coastguard Worker
1049*9880d681SAndroid Build Coastguard Worker
1050*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1051*9880d681SAndroid Build Coastguard Worker@ LDREX/LDREXB/LDREXH/LDREXD
1052*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1053*9880d681SAndroid Build Coastguard Worker        ldrex r1, [r4]
1054*9880d681SAndroid Build Coastguard Worker        ldrex r8, [r4, #0]
1055*9880d681SAndroid Build Coastguard Worker        ldrex r2, [sp, #128]
1056*9880d681SAndroid Build Coastguard Worker        ldrexb r5, [r7]
1057*9880d681SAndroid Build Coastguard Worker        ldrexh r9, [r12]
1058*9880d681SAndroid Build Coastguard Worker        ldrexd r9, r3, [r4]
1059*9880d681SAndroid Build Coastguard Worker
1060*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrex	r1, [r4]                @ encoding: [0x54,0xe8,0x00,0x1f]
1061*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrex	r8, [r4]                @ encoding: [0x54,0xe8,0x00,0x8f]
1062*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrex	r2, [sp, #128]          @ encoding: [0x5d,0xe8,0x20,0x2f]
1063*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrexb	r5, [r7]                @ encoding: [0xd7,0xe8,0x4f,0x5f]
1064*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrexh	r9, [r12]               @ encoding: [0xdc,0xe8,0x5f,0x9f]
1065*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrexd	r9, r3, [r4]            @ encoding: [0xd4,0xe8,0x7f,0x93]
1066*9880d681SAndroid Build Coastguard Worker
1067*9880d681SAndroid Build Coastguard Worker
1068*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1069*9880d681SAndroid Build Coastguard Worker@ LDRH(immediate)
1070*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1071*9880d681SAndroid Build Coastguard Worker        ldrh r5, [r5, #-4]
1072*9880d681SAndroid Build Coastguard Worker        ldrh r5, [r6, #32]
1073*9880d681SAndroid Build Coastguard Worker        ldrh r5, [r6, #33]
1074*9880d681SAndroid Build Coastguard Worker        ldrh r5, [r6, #257]
1075*9880d681SAndroid Build Coastguard Worker        ldrh.w lr, [r7, #257]
1076*9880d681SAndroid Build Coastguard Worker        ldrh r5, [r8, #255]!
1077*9880d681SAndroid Build Coastguard Worker        ldrh r2, [r5, #4]!
1078*9880d681SAndroid Build Coastguard Worker        ldrh r1, [r4, #-4]!
1079*9880d681SAndroid Build Coastguard Worker        ldrh lr, [r3], #255
1080*9880d681SAndroid Build Coastguard Worker        ldrh r9, [r2], #4
1081*9880d681SAndroid Build Coastguard Worker        ldrh r3, [sp], #-4
1082*9880d681SAndroid Build Coastguard Worker
1083*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh	r5, [r5, #-4]           @ encoding: [0x35,0xf8,0x04,0x5c]
1084*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh	r5, [r6, #32]           @ encoding: [0x35,0x8c]
1085*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	r5, [r6, #33]           @ encoding: [0xb6,0xf8,0x21,0x50]
1086*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	r5, [r6, #257]          @ encoding: [0xb6,0xf8,0x01,0x51]
1087*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	lr, [r7, #257]          @ encoding: [0xb7,0xf8,0x01,0xe1]
1088*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh	r5, [r8, #255]!         @ encoding: [0x38,0xf8,0xff,0x5f]
1089*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh	r2, [r5, #4]!           @ encoding: [0x35,0xf8,0x04,0x2f]
1090*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh	r1, [r4, #-4]!          @ encoding: [0x34,0xf8,0x04,0x1d]
1091*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh	lr, [r3], #255          @ encoding: [0x33,0xf8,0xff,0xeb]
1092*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh	r9, [r2], #4            @ encoding: [0x32,0xf8,0x04,0x9b]
1093*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh	r3, [sp], #-4           @ encoding: [0x3d,0xf8,0x04,0x39]
1094*9880d681SAndroid Build Coastguard Worker
1095*9880d681SAndroid Build Coastguard Worker
1096*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1097*9880d681SAndroid Build Coastguard Worker@ LDRH(register)
1098*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1099*9880d681SAndroid Build Coastguard Worker        ldrh r1, [r8, r1]
1100*9880d681SAndroid Build Coastguard Worker        ldrh.w r4, [r5, r2]
1101*9880d681SAndroid Build Coastguard Worker        ldrh r6, [r0, r2, lsl #3]
1102*9880d681SAndroid Build Coastguard Worker        ldrh r8, [r8, r2, lsl #2]
1103*9880d681SAndroid Build Coastguard Worker        ldrh r7, [sp, r2, lsl #1]
1104*9880d681SAndroid Build Coastguard Worker        ldrh r7, [sp, r2, lsl #0]
1105*9880d681SAndroid Build Coastguard Worker
1106*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	r1, [r8, r1]            @ encoding: [0x38,0xf8,0x01,0x10]
1107*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	r4, [r5, r2]            @ encoding: [0x35,0xf8,0x02,0x40]
1108*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	r6, [r0, r2, lsl #3]    @ encoding: [0x30,0xf8,0x32,0x60]
1109*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	r8, [r8, r2, lsl #2]    @ encoding: [0x38,0xf8,0x22,0x80]
1110*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	r7, [sp, r2, lsl #1]    @ encoding: [0x3d,0xf8,0x12,0x70]
1111*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	r7, [sp, r2]            @ encoding: [0x3d,0xf8,0x02,0x70]
1112*9880d681SAndroid Build Coastguard Worker
1113*9880d681SAndroid Build Coastguard Worker
1114*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1115*9880d681SAndroid Build Coastguard Worker@ LDRH(literal)
1116*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1117*9880d681SAndroid Build Coastguard Worker        ldrh r5, _bar
1118*9880d681SAndroid Build Coastguard Worker
1119*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	r5, _bar                @ encoding: [0x3f'A',0xf8'A',A,0x50'A']
1120*9880d681SAndroid Build Coastguard Worker@ CHECK:     @   fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1121*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: ldrh.w	r5, _bar                @ encoding: [0xf8'A',0x3f'A',0x50'A',A]
1122*9880d681SAndroid Build Coastguard Worker@ CHECK-BE:     @   fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1123*9880d681SAndroid Build Coastguard Worker
1124*9880d681SAndroid Build Coastguard Worker
1125*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1126*9880d681SAndroid Build Coastguard Worker@ LDRHT
1127*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1128*9880d681SAndroid Build Coastguard Worker        ldrht r1, [r2]
1129*9880d681SAndroid Build Coastguard Worker        ldrht r1, [r8, #0]
1130*9880d681SAndroid Build Coastguard Worker        ldrht r1, [r8, #3]
1131*9880d681SAndroid Build Coastguard Worker        ldrht r1, [r8, #255]
1132*9880d681SAndroid Build Coastguard Worker
1133*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrht	r1, [r2]                @ encoding: [0x32,0xf8,0x00,0x1e]
1134*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrht	r1, [r8]                @ encoding: [0x38,0xf8,0x00,0x1e]
1135*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrht	r1, [r8, #3]            @ encoding: [0x38,0xf8,0x03,0x1e]
1136*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrht	r1, [r8, #255]          @ encoding: [0x38,0xf8,0xff,0x1e]
1137*9880d681SAndroid Build Coastguard Worker
1138*9880d681SAndroid Build Coastguard Worker
1139*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1140*9880d681SAndroid Build Coastguard Worker@ LDRSB(immediate)
1141*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1142*9880d681SAndroid Build Coastguard Worker        ldrsb r5, [r5, #-4]
1143*9880d681SAndroid Build Coastguard Worker        ldrsb r5, [r6, #32]
1144*9880d681SAndroid Build Coastguard Worker        ldrsb r5, [r6, #33]
1145*9880d681SAndroid Build Coastguard Worker        ldrsb r5, [r6, #257]
1146*9880d681SAndroid Build Coastguard Worker        ldrsb.w lr, [r7, #257]
1147*9880d681SAndroid Build Coastguard Worker
1148*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb	r5, [r5, #-4]            @ encoding: [0x15,0xf9,0x04,0x5c]
1149*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r5, [r6, #32]           @ encoding: [0x96,0xf9,0x20,0x50]
1150*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r5, [r6, #33]           @ encoding: [0x96,0xf9,0x21,0x50]
1151*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r5, [r6, #257]          @ encoding: [0x96,0xf9,0x01,0x51]
1152*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w lr, [r7, #257]          @ encoding: [0x97,0xf9,0x01,0xe1]
1153*9880d681SAndroid Build Coastguard Worker
1154*9880d681SAndroid Build Coastguard Worker
1155*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1156*9880d681SAndroid Build Coastguard Worker@ LDRSB(register)
1157*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1158*9880d681SAndroid Build Coastguard Worker        ldrsb r1, [r8, r1]
1159*9880d681SAndroid Build Coastguard Worker        ldrsb.w r4, [r5, r2]
1160*9880d681SAndroid Build Coastguard Worker        ldrsb r6, [r0, r2, lsl #3]
1161*9880d681SAndroid Build Coastguard Worker        ldrsb r8, [r8, r2, lsl #2]
1162*9880d681SAndroid Build Coastguard Worker        ldrsb r7, [sp, r2, lsl #1]
1163*9880d681SAndroid Build Coastguard Worker        ldrsb r7, [sp, r2, lsl #0]
1164*9880d681SAndroid Build Coastguard Worker        ldrsb r5, [r8, #255]!
1165*9880d681SAndroid Build Coastguard Worker        ldrsb r2, [r5, #4]!
1166*9880d681SAndroid Build Coastguard Worker        ldrsb r1, [r4, #-4]!
1167*9880d681SAndroid Build Coastguard Worker        ldrsb lr, [r3], #255
1168*9880d681SAndroid Build Coastguard Worker        ldrsb r9, [r2], #4
1169*9880d681SAndroid Build Coastguard Worker        ldrsb r3, [sp], #-4
1170*9880d681SAndroid Build Coastguard Worker
1171*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r1, [r8, r1]           @ encoding: [0x18,0xf9,0x01,0x10]
1172*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r4, [r5, r2]           @ encoding: [0x15,0xf9,0x02,0x40]
1173*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r6, [r0, r2, lsl #3]   @ encoding: [0x10,0xf9,0x32,0x60]
1174*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r8, [r8, r2, lsl #2]   @ encoding: [0x18,0xf9,0x22,0x80]
1175*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r7, [sp, r2, lsl #1]   @ encoding: [0x1d,0xf9,0x12,0x70]
1176*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r7, [sp, r2]           @ encoding: [0x1d,0xf9,0x02,0x70]
1177*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb	r5, [r8, #255]!         @ encoding: [0x18,0xf9,0xff,0x5f]
1178*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb	r2, [r5, #4]!           @ encoding: [0x15,0xf9,0x04,0x2f]
1179*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb	r1, [r4, #-4]!          @ encoding: [0x14,0xf9,0x04,0x1d]
1180*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb	lr, [r3], #255          @ encoding: [0x13,0xf9,0xff,0xeb]
1181*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb	r9, [r2], #4            @ encoding: [0x12,0xf9,0x04,0x9b]
1182*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb	r3, [sp], #-4           @ encoding: [0x1d,0xf9,0x04,0x39]
1183*9880d681SAndroid Build Coastguard Worker
1184*9880d681SAndroid Build Coastguard Worker
1185*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1186*9880d681SAndroid Build Coastguard Worker@ LDRSB(literal)
1187*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1188*9880d681SAndroid Build Coastguard Worker        ldrsb r5, _bar
1189*9880d681SAndroid Build Coastguard Worker
1190*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r5, _bar               @ encoding: [0x1f'A',0xf9'A',A,0x50'A']
1191*9880d681SAndroid Build Coastguard Worker@ CHECK:      @   fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1192*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: ldrsb.w r5, _bar               @ encoding: [0xf9'A',0x1f'A',0x50'A',A]
1193*9880d681SAndroid Build Coastguard Worker@ CHECK-BE:      @   fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1194*9880d681SAndroid Build Coastguard Worker
1195*9880d681SAndroid Build Coastguard Worker
1196*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1197*9880d681SAndroid Build Coastguard Worker@ LDRSBT
1198*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1199*9880d681SAndroid Build Coastguard Worker        ldrsbt r1, [r2]
1200*9880d681SAndroid Build Coastguard Worker        ldrsbt r1, [r8, #0]
1201*9880d681SAndroid Build Coastguard Worker        ldrsbt r1, [r8, #3]
1202*9880d681SAndroid Build Coastguard Worker        ldrsbt r1, [r8, #255]
1203*9880d681SAndroid Build Coastguard Worker
1204*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsbt	r1, [r2]                @ encoding: [0x12,0xf9,0x00,0x1e]
1205*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsbt	r1, [r8]                @ encoding: [0x18,0xf9,0x00,0x1e]
1206*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsbt	r1, [r8, #3]            @ encoding: [0x18,0xf9,0x03,0x1e]
1207*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsbt	r1, [r8, #255]          @ encoding: [0x18,0xf9,0xff,0x1e]
1208*9880d681SAndroid Build Coastguard Worker
1209*9880d681SAndroid Build Coastguard Worker
1210*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1211*9880d681SAndroid Build Coastguard Worker@ LDRSH(immediate)
1212*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1213*9880d681SAndroid Build Coastguard Worker        ldrsh r5, [r5, #-4]
1214*9880d681SAndroid Build Coastguard Worker        ldrsh r5, [r6, #32]
1215*9880d681SAndroid Build Coastguard Worker        ldrsh r5, [r6, #33]
1216*9880d681SAndroid Build Coastguard Worker        ldrsh r5, [r6, #257]
1217*9880d681SAndroid Build Coastguard Worker        ldrsh.w lr, [r7, #257]
1218*9880d681SAndroid Build Coastguard Worker
1219*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh	r5, [r5, #-4]           @ encoding: [0x35,0xf9,0x04,0x5c]
1220*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r5, [r6, #32]          @ encoding: [0xb6,0xf9,0x20,0x50]
1221*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r5, [r6, #33]          @ encoding: [0xb6,0xf9,0x21,0x50]
1222*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r5, [r6, #257]         @ encoding: [0xb6,0xf9,0x01,0x51]
1223*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w lr, [r7, #257]         @ encoding: [0xb7,0xf9,0x01,0xe1]
1224*9880d681SAndroid Build Coastguard Worker
1225*9880d681SAndroid Build Coastguard Worker
1226*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1227*9880d681SAndroid Build Coastguard Worker@ LDRSH(register)
1228*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1229*9880d681SAndroid Build Coastguard Worker        ldrsh r1, [r8, r1]
1230*9880d681SAndroid Build Coastguard Worker        ldrsh.w r4, [r5, r2]
1231*9880d681SAndroid Build Coastguard Worker        ldrsh r6, [r0, r2, lsl #3]
1232*9880d681SAndroid Build Coastguard Worker        ldrsh r8, [r8, r2, lsl #2]
1233*9880d681SAndroid Build Coastguard Worker        ldrsh r7, [sp, r2, lsl #1]
1234*9880d681SAndroid Build Coastguard Worker        ldrsh r7, [sp, r2, lsl #0]
1235*9880d681SAndroid Build Coastguard Worker        ldrsh r5, [r8, #255]!
1236*9880d681SAndroid Build Coastguard Worker        ldrsh r2, [r5, #4]!
1237*9880d681SAndroid Build Coastguard Worker        ldrsh r1, [r4, #-4]!
1238*9880d681SAndroid Build Coastguard Worker        ldrsh lr, [r3], #255
1239*9880d681SAndroid Build Coastguard Worker        ldrsh r9, [r2], #4
1240*9880d681SAndroid Build Coastguard Worker        ldrsh r3, [sp], #-4
1241*9880d681SAndroid Build Coastguard Worker
1242*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r1, [r8, r1]           @ encoding: [0x38,0xf9,0x01,0x10]
1243*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r4, [r5, r2]           @ encoding: [0x35,0xf9,0x02,0x40]
1244*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r6, [r0, r2, lsl #3]   @ encoding: [0x30,0xf9,0x32,0x60]
1245*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r8, [r8, r2, lsl #2]   @ encoding: [0x38,0xf9,0x22,0x80]
1246*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r7, [sp, r2, lsl #1]   @ encoding: [0x3d,0xf9,0x12,0x70]
1247*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r7, [sp, r2]           @ encoding: [0x3d,0xf9,0x02,0x70]
1248*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh	r5, [r8, #255]!         @ encoding: [0x38,0xf9,0xff,0x5f]
1249*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh	r2, [r5, #4]!           @ encoding: [0x35,0xf9,0x04,0x2f]
1250*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh	r1, [r4, #-4]!          @ encoding: [0x34,0xf9,0x04,0x1d]
1251*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh	lr, [r3], #255          @ encoding: [0x33,0xf9,0xff,0xeb]
1252*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh	r9, [r2], #4            @ encoding: [0x32,0xf9,0x04,0x9b]
1253*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh	r3, [sp], #-4           @ encoding: [0x3d,0xf9,0x04,0x39]
1254*9880d681SAndroid Build Coastguard Worker
1255*9880d681SAndroid Build Coastguard Worker
1256*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1257*9880d681SAndroid Build Coastguard Worker@ LDRSH(literal)
1258*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1259*9880d681SAndroid Build Coastguard Worker        ldrsh r5, _bar
1260*9880d681SAndroid Build Coastguard Worker
1261*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r5, _bar               @ encoding: [0x3f'A',0xf9'A',A,0x50'A']
1262*9880d681SAndroid Build Coastguard Worker@ CHECK:      @   fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1263*9880d681SAndroid Build Coastguard Worker@ CHECK-BE: ldrsh.w r5, _bar               @ encoding: [0xf9'A',0x3f'A',0x50'A',A]
1264*9880d681SAndroid Build Coastguard Worker@ CHECK-BE:      @   fixup A - offset: 0, value: _bar, kind: fixup_t2_ldst_pcrel_12
1265*9880d681SAndroid Build Coastguard Worker
1266*9880d681SAndroid Build Coastguard Worker@ TEMPORARILY DISABLED:
1267*9880d681SAndroid Build Coastguard Worker@        ldrsh.w r4, [pc, #1435]
1268*9880d681SAndroid Build Coastguard Worker@      : ldrsh.w r4, [pc, #1435]               @ encoding: [0x3f,0xf9,0x9b,0x45]
1269*9880d681SAndroid Build Coastguard Worker
1270*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1271*9880d681SAndroid Build Coastguard Worker@ LDRSHT
1272*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1273*9880d681SAndroid Build Coastguard Worker        ldrsht r1, [r2]
1274*9880d681SAndroid Build Coastguard Worker        ldrsht r1, [r8, #0]
1275*9880d681SAndroid Build Coastguard Worker        ldrsht r1, [r8, #3]
1276*9880d681SAndroid Build Coastguard Worker        ldrsht r1, [r8, #255]
1277*9880d681SAndroid Build Coastguard Worker
1278*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsht	r1, [r2]                @ encoding: [0x32,0xf9,0x00,0x1e]
1279*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsht	r1, [r8]                @ encoding: [0x38,0xf9,0x00,0x1e]
1280*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsht	r1, [r8, #3]            @ encoding: [0x38,0xf9,0x03,0x1e]
1281*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsht	r1, [r8, #255]          @ encoding: [0x38,0xf9,0xff,0x1e]
1282*9880d681SAndroid Build Coastguard Worker
1283*9880d681SAndroid Build Coastguard Worker
1284*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1285*9880d681SAndroid Build Coastguard Worker@ LDRT
1286*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1287*9880d681SAndroid Build Coastguard Worker        ldrt r1, [r2]
1288*9880d681SAndroid Build Coastguard Worker        ldrt r2, [r6, #0]
1289*9880d681SAndroid Build Coastguard Worker        ldrt r3, [r7, #3]
1290*9880d681SAndroid Build Coastguard Worker        ldrt r4, [r9, #255]
1291*9880d681SAndroid Build Coastguard Worker
1292*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrt	r1, [r2]                @ encoding: [0x52,0xf8,0x00,0x1e]
1293*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrt	r2, [r6]                @ encoding: [0x56,0xf8,0x00,0x2e]
1294*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrt	r3, [r7, #3]            @ encoding: [0x57,0xf8,0x03,0x3e]
1295*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrt	r4, [r9, #255]          @ encoding: [0x59,0xf8,0xff,0x4e]
1296*9880d681SAndroid Build Coastguard Worker
1297*9880d681SAndroid Build Coastguard Worker
1298*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1299*9880d681SAndroid Build Coastguard Worker@ LSL (immediate)
1300*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1301*9880d681SAndroid Build Coastguard Worker        lsl r2, r3, #12
1302*9880d681SAndroid Build Coastguard Worker        lsls r8, r3, #31
1303*9880d681SAndroid Build Coastguard Worker        lsls.w r2, r3, #1
1304*9880d681SAndroid Build Coastguard Worker        lsl r2, r3, #4
1305*9880d681SAndroid Build Coastguard Worker        lsls r2, r12, #15
1306*9880d681SAndroid Build Coastguard Worker
1307*9880d681SAndroid Build Coastguard Worker        lsl r3, #19
1308*9880d681SAndroid Build Coastguard Worker        lsls r8, #2
1309*9880d681SAndroid Build Coastguard Worker        lsls.w r7, #5
1310*9880d681SAndroid Build Coastguard Worker        lsl.w r12, #21
1311*9880d681SAndroid Build Coastguard Worker
1312*9880d681SAndroid Build Coastguard Worker@ CHECK: lsl.w	r2, r3, #12             @ encoding: [0x4f,0xea,0x03,0x32]
1313*9880d681SAndroid Build Coastguard Worker@ CHECK: lsls.w	r8, r3, #31             @ encoding: [0x5f,0xea,0xc3,0x78]
1314*9880d681SAndroid Build Coastguard Worker@ CHECK: lsls.w	r2, r3, #1              @ encoding: [0x5f,0xea,0x43,0x02]
1315*9880d681SAndroid Build Coastguard Worker@ CHECK: lsl.w	r2, r3, #4              @ encoding: [0x4f,0xea,0x03,0x12]
1316*9880d681SAndroid Build Coastguard Worker@ CHECK: lsls.w	r2, r12, #15            @ encoding: [0x5f,0xea,0xcc,0x32]
1317*9880d681SAndroid Build Coastguard Worker
1318*9880d681SAndroid Build Coastguard Worker@ CHECK: lsl.w	r3, r3, #19             @ encoding: [0x4f,0xea,0xc3,0x43]
1319*9880d681SAndroid Build Coastguard Worker@ CHECK: lsls.w	r8, r8, #2              @ encoding: [0x5f,0xea,0x88,0x08]
1320*9880d681SAndroid Build Coastguard Worker@ CHECK: lsls.w	r7, r7, #5              @ encoding: [0x5f,0xea,0x47,0x17]
1321*9880d681SAndroid Build Coastguard Worker@ CHECK: lsl.w	r12, r12, #21           @ encoding: [0x4f,0xea,0x4c,0x5c]
1322*9880d681SAndroid Build Coastguard Worker
1323*9880d681SAndroid Build Coastguard Worker
1324*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1325*9880d681SAndroid Build Coastguard Worker@ LSL (register)
1326*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1327*9880d681SAndroid Build Coastguard Worker        lsl r3, r4, r2
1328*9880d681SAndroid Build Coastguard Worker        lsl.w r1, r2
1329*9880d681SAndroid Build Coastguard Worker        lsls r3, r4, r8
1330*9880d681SAndroid Build Coastguard Worker
1331*9880d681SAndroid Build Coastguard Worker@ CHECK: lsl.w	r3, r4, r2              @ encoding: [0x04,0xfa,0x02,0xf3]
1332*9880d681SAndroid Build Coastguard Worker@ CHECK: lsl.w	r1, r1, r2              @ encoding: [0x01,0xfa,0x02,0xf1]
1333*9880d681SAndroid Build Coastguard Worker@ CHECK: lsls.w	r3, r4, r8              @ encoding: [0x14,0xfa,0x08,0xf3]
1334*9880d681SAndroid Build Coastguard Worker
1335*9880d681SAndroid Build Coastguard Worker
1336*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1337*9880d681SAndroid Build Coastguard Worker@ LSR (immediate)
1338*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1339*9880d681SAndroid Build Coastguard Worker        lsr r2, r3, #12
1340*9880d681SAndroid Build Coastguard Worker        lsrs r8, r3, #32
1341*9880d681SAndroid Build Coastguard Worker        lsrs.w r2, r3, #1
1342*9880d681SAndroid Build Coastguard Worker        lsr r2, r3, #4
1343*9880d681SAndroid Build Coastguard Worker        lsrs r2, r12, #15
1344*9880d681SAndroid Build Coastguard Worker
1345*9880d681SAndroid Build Coastguard Worker        lsr r3, #19
1346*9880d681SAndroid Build Coastguard Worker        lsrs r8, #2
1347*9880d681SAndroid Build Coastguard Worker        lsrs.w r7, #5
1348*9880d681SAndroid Build Coastguard Worker        lsr.w r12, #21
1349*9880d681SAndroid Build Coastguard Worker
1350*9880d681SAndroid Build Coastguard Worker@ CHECK: lsr.w	r2, r3, #12             @ encoding: [0x4f,0xea,0x13,0x32]
1351*9880d681SAndroid Build Coastguard Worker@ CHECK: lsrs.w	r8, r3, #32             @ encoding: [0x5f,0xea,0x13,0x08]
1352*9880d681SAndroid Build Coastguard Worker@ CHECK: lsrs.w	r2, r3, #1              @ encoding: [0x5f,0xea,0x53,0x02]
1353*9880d681SAndroid Build Coastguard Worker@ CHECK: lsr.w	r2, r3, #4              @ encoding: [0x4f,0xea,0x13,0x12]
1354*9880d681SAndroid Build Coastguard Worker@ CHECK: lsrs.w	r2, r12, #15            @ encoding: [0x5f,0xea,0xdc,0x32]
1355*9880d681SAndroid Build Coastguard Worker
1356*9880d681SAndroid Build Coastguard Worker@ CHECK: lsr.w	r3, r3, #19             @ encoding: [0x4f,0xea,0xd3,0x43]
1357*9880d681SAndroid Build Coastguard Worker@ CHECK: lsrs.w	r8, r8, #2              @ encoding: [0x5f,0xea,0x98,0x08]
1358*9880d681SAndroid Build Coastguard Worker@ CHECK: lsrs.w	r7, r7, #5              @ encoding: [0x5f,0xea,0x57,0x17]
1359*9880d681SAndroid Build Coastguard Worker@ CHECK: lsr.w	r12, r12, #21           @ encoding: [0x4f,0xea,0x5c,0x5c]
1360*9880d681SAndroid Build Coastguard Worker
1361*9880d681SAndroid Build Coastguard Worker
1362*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1363*9880d681SAndroid Build Coastguard Worker@ LSR (register)
1364*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1365*9880d681SAndroid Build Coastguard Worker        lsr r3, r4, r2
1366*9880d681SAndroid Build Coastguard Worker        lsr.w r1, r2
1367*9880d681SAndroid Build Coastguard Worker        lsrs r3, r4, r8
1368*9880d681SAndroid Build Coastguard Worker
1369*9880d681SAndroid Build Coastguard Worker@ CHECK: lsr.w	r3, r4, r2              @ encoding: [0x24,0xfa,0x02,0xf3]
1370*9880d681SAndroid Build Coastguard Worker@ CHECK: lsr.w	r1, r1, r2              @ encoding: [0x21,0xfa,0x02,0xf1]
1371*9880d681SAndroid Build Coastguard Worker@ CHECK: lsrs.w	r3, r4, r8              @ encoding: [0x34,0xfa,0x08,0xf3]
1372*9880d681SAndroid Build Coastguard Worker
1373*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1374*9880d681SAndroid Build Coastguard Worker@ MCR/MCR2
1375*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1376*9880d681SAndroid Build Coastguard Worker        mcr  p7, #1, r5, c1, c1, #4
1377*9880d681SAndroid Build Coastguard Worker        mcr2  p7, #1, r5, c1, c1, #4
1378*9880d681SAndroid Build Coastguard Worker        mcr p14, #0, r4, c0, c5
1379*9880d681SAndroid Build Coastguard Worker        mcr2 p4, #2, r2, c1, c3
1380*9880d681SAndroid Build Coastguard Worker
1381*9880d681SAndroid Build Coastguard Worker@ CHECK: mcr	p7, #1, r5, c1, c1, #4  @ encoding: [0x21,0xee,0x91,0x57]
1382*9880d681SAndroid Build Coastguard Worker@ CHECK: mcr2	p7, #1, r5, c1, c1, #4  @ encoding: [0x21,0xfe,0x91,0x57]
1383*9880d681SAndroid Build Coastguard Worker@ CHECK: mcr	p14, #0, r4, c0, c5, #0 @ encoding: [0x00,0xee,0x15,0x4e]
1384*9880d681SAndroid Build Coastguard Worker@ CHECK: mcr2	p4, #2, r2, c1, c3, #0  @ encoding: [0x41,0xfe,0x13,0x24]
1385*9880d681SAndroid Build Coastguard Worker
1386*9880d681SAndroid Build Coastguard Worker
1387*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1388*9880d681SAndroid Build Coastguard Worker@ MCRR/MCRR2
1389*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1390*9880d681SAndroid Build Coastguard Worker        mcrr  p7, #15, r5, r4, c1
1391*9880d681SAndroid Build Coastguard Worker        mcrr2  p7, #15, r5, r4, c1
1392*9880d681SAndroid Build Coastguard Worker
1393*9880d681SAndroid Build Coastguard Worker@ CHECK: mcrr	p7, #15, r5, r4, c1     @ encoding: [0x44,0xec,0xf1,0x57]
1394*9880d681SAndroid Build Coastguard Worker@ CHECK: mcrr2	p7, #15, r5, r4, c1     @ encoding: [0x44,0xfc,0xf1,0x57]
1395*9880d681SAndroid Build Coastguard Worker
1396*9880d681SAndroid Build Coastguard Worker
1397*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1398*9880d681SAndroid Build Coastguard Worker@ MLA/MLS
1399*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1400*9880d681SAndroid Build Coastguard Worker        mla  r1,r2,r3,r4
1401*9880d681SAndroid Build Coastguard Worker        mls  r1,r2,r3,r4
1402*9880d681SAndroid Build Coastguard Worker
1403*9880d681SAndroid Build Coastguard Worker@ CHECK: mla	r1, r2, r3, r4          @ encoding: [0x02,0xfb,0x03,0x41]
1404*9880d681SAndroid Build Coastguard Worker@ CHECK: mls	r1, r2, r3, r4          @ encoding: [0x02,0xfb,0x13,0x41]
1405*9880d681SAndroid Build Coastguard Worker
1406*9880d681SAndroid Build Coastguard Worker
1407*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1408*9880d681SAndroid Build Coastguard Worker@ MOV(immediate)
1409*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1410*9880d681SAndroid Build Coastguard Worker        movs r1, #21
1411*9880d681SAndroid Build Coastguard Worker        movs.w r1, #21
1412*9880d681SAndroid Build Coastguard Worker        movs r8, #21
1413*9880d681SAndroid Build Coastguard Worker        movw r0, #65535
1414*9880d681SAndroid Build Coastguard Worker        movw r1, #43777
1415*9880d681SAndroid Build Coastguard Worker        movw r1, #43792
1416*9880d681SAndroid Build Coastguard Worker        mov.w r0, #0x3fc0000
1417*9880d681SAndroid Build Coastguard Worker        mov r0, #0x3fc0000
1418*9880d681SAndroid Build Coastguard Worker        movs.w r0, #0x3fc0000
1419*9880d681SAndroid Build Coastguard Worker        itte eq
1420*9880d681SAndroid Build Coastguard Worker        movseq r1, #12
1421*9880d681SAndroid Build Coastguard Worker        moveq r1, #12
1422*9880d681SAndroid Build Coastguard Worker        movne.w r1, #12
1423*9880d681SAndroid Build Coastguard Worker        mov.w r6, #450
1424*9880d681SAndroid Build Coastguard Worker        it lo
1425*9880d681SAndroid Build Coastguard Worker        movlo r1, #-1
1426*9880d681SAndroid Build Coastguard Worker
1427*9880d681SAndroid Build Coastguard Worker        @ alias for mvn
1428*9880d681SAndroid Build Coastguard Worker        mov r3, #-3
1429*9880d681SAndroid Build Coastguard Worker        mov r11, #0xabcd
1430*9880d681SAndroid Build Coastguard Worker        movs r0, #1
1431*9880d681SAndroid Build Coastguard Worker        it ne
1432*9880d681SAndroid Build Coastguard Worker        movne r3, #15
1433*9880d681SAndroid Build Coastguard Worker
1434*9880d681SAndroid Build Coastguard Worker        itt eq
1435*9880d681SAndroid Build Coastguard Worker        moveq r0, #255
1436*9880d681SAndroid Build Coastguard Worker        moveq r1, #256
1437*9880d681SAndroid Build Coastguard Worker
1438*9880d681SAndroid Build Coastguard Worker@ CHECK: movs	r1, #21                 @ encoding: [0x15,0x21]
1439*9880d681SAndroid Build Coastguard Worker@ CHECK: movs.w	r1, #21                 @ encoding: [0x5f,0xf0,0x15,0x01]
1440*9880d681SAndroid Build Coastguard Worker@ CHECK: movs.w	r8, #21                 @ encoding: [0x5f,0xf0,0x15,0x08]
1441*9880d681SAndroid Build Coastguard Worker@ CHECK: movw	r0, #65535              @ encoding: [0x4f,0xf6,0xff,0x70]
1442*9880d681SAndroid Build Coastguard Worker@ CHECK: movw	r1, #43777              @ encoding: [0x4a,0xf6,0x01,0x31]
1443*9880d681SAndroid Build Coastguard Worker@ CHECK: movw	r1, #43792              @ encoding: [0x4a,0xf6,0x10,0x31]
1444*9880d681SAndroid Build Coastguard Worker@ CHECK: mov.w	r0, #66846720           @ encoding: [0x4f,0xf0,0x7f,0x70]
1445*9880d681SAndroid Build Coastguard Worker@ CHECK: mov.w	r0, #66846720           @ encoding: [0x4f,0xf0,0x7f,0x70]
1446*9880d681SAndroid Build Coastguard Worker@ CHECK: movs.w	r0, #66846720           @ encoding: [0x5f,0xf0,0x7f,0x70]
1447*9880d681SAndroid Build Coastguard Worker@ CHECK: itte	eq                      @ encoding: [0x06,0xbf]
1448*9880d681SAndroid Build Coastguard Worker@ CHECK: movseq.w	r1, #12         @ encoding: [0x5f,0xf0,0x0c,0x01]
1449*9880d681SAndroid Build Coastguard Worker@ CHECK: moveq	r1, #12                 @ encoding: [0x0c,0x21]
1450*9880d681SAndroid Build Coastguard Worker@ CHECK: movne.w r1, #12                @ encoding: [0x4f,0xf0,0x0c,0x01]
1451*9880d681SAndroid Build Coastguard Worker@ CHECK: mov.w	r6, #450                @ encoding: [0x4f,0xf4,0xe1,0x76]
1452*9880d681SAndroid Build Coastguard Worker@ CHECK: it	lo                      @ encoding: [0x38,0xbf]
1453*9880d681SAndroid Build Coastguard Worker@ CHECK: movlo.w	r1, #-1         @ encoding: [0x4f,0xf0,0xff,0x31]
1454*9880d681SAndroid Build Coastguard Worker@ CHECK: mvn	r3, #2                  @ encoding: [0x6f,0xf0,0x02,0x03]
1455*9880d681SAndroid Build Coastguard Worker@ CHECK: movw	r11, #43981             @ encoding: [0x4a,0xf6,0xcd,0x3b]
1456*9880d681SAndroid Build Coastguard Worker@ CHECK: movs	r0, #1                  @ encoding: [0x01,0x20]
1457*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ne                      @ encoding: [0x18,0xbf]
1458*9880d681SAndroid Build Coastguard Worker@ CHECK: movne	r3, #15                 @ encoding: [0x0f,0x23]
1459*9880d681SAndroid Build Coastguard Worker
1460*9880d681SAndroid Build Coastguard Worker@ CHECK: itt    eq                      @ encoding: [0x04,0xbf]
1461*9880d681SAndroid Build Coastguard Worker@ CHECK: moveq  r0, #255                @ encoding: [0xff,0x20]
1462*9880d681SAndroid Build Coastguard Worker@ CHECK: movweq r1, #256                @ encoding: [0x40,0xf2,0x00,0x11]
1463*9880d681SAndroid Build Coastguard Worker
1464*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1465*9880d681SAndroid Build Coastguard Worker@ MOV(shifted register)
1466*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1467*9880d681SAndroid Build Coastguard Worker        mov r6, r2, lsl #16
1468*9880d681SAndroid Build Coastguard Worker        mov r6, r2, lsr #16
1469*9880d681SAndroid Build Coastguard Worker        movs r6, r2, asr #32
1470*9880d681SAndroid Build Coastguard Worker        movs r6, r2, ror #5
1471*9880d681SAndroid Build Coastguard Worker        movs r4, r4, lsl r5
1472*9880d681SAndroid Build Coastguard Worker        movs r4, r4, lsr r5
1473*9880d681SAndroid Build Coastguard Worker        movs r4, r4, asr r5
1474*9880d681SAndroid Build Coastguard Worker        movs r4, r4, ror r5
1475*9880d681SAndroid Build Coastguard Worker        mov r4, r4, lsl r5
1476*9880d681SAndroid Build Coastguard Worker        movs r4, r4, ror r8
1477*9880d681SAndroid Build Coastguard Worker        movs r4, r5, lsr r6
1478*9880d681SAndroid Build Coastguard Worker        itttt eq
1479*9880d681SAndroid Build Coastguard Worker        moveq r4, r4, lsl r5
1480*9880d681SAndroid Build Coastguard Worker        moveq r4, r4, lsr r5
1481*9880d681SAndroid Build Coastguard Worker        moveq r4, r4, asr r5
1482*9880d681SAndroid Build Coastguard Worker        moveq r4, r4, ror r5
1483*9880d681SAndroid Build Coastguard Worker        mov r4, r4, rrx
1484*9880d681SAndroid Build Coastguard Worker
1485*9880d681SAndroid Build Coastguard Worker@ CHECK: lsl.w	r6, r2, #16             @ encoding: [0x4f,0xea,0x02,0x46]
1486*9880d681SAndroid Build Coastguard Worker@ CHECK: lsr.w	r6, r2, #16             @ encoding: [0x4f,0xea,0x12,0x46]
1487*9880d681SAndroid Build Coastguard Worker@ CHECK: asrs	r6, r2, #32             @ encoding: [0x16,0x10]
1488*9880d681SAndroid Build Coastguard Worker@ CHECK: rors.w	r6, r2, #5              @ encoding: [0x5f,0xea,0x72,0x16]
1489*9880d681SAndroid Build Coastguard Worker@ CHECK: lsls	r4, r5                  @ encoding: [0xac,0x40]
1490*9880d681SAndroid Build Coastguard Worker@ CHECK: lsrs	r4, r5                  @ encoding: [0xec,0x40]
1491*9880d681SAndroid Build Coastguard Worker@ CHECK: asrs	r4, r5                  @ encoding: [0x2c,0x41]
1492*9880d681SAndroid Build Coastguard Worker@ CHECK: rors	r4, r5                  @ encoding: [0xec,0x41]
1493*9880d681SAndroid Build Coastguard Worker@ CHECK: lsl.w	r4, r4, r5              @ encoding: [0x04,0xfa,0x05,0xf4]
1494*9880d681SAndroid Build Coastguard Worker@ CHECK: rors.w	r4, r4, r8              @ encoding: [0x74,0xfa,0x08,0xf4]
1495*9880d681SAndroid Build Coastguard Worker@ CHECK: lsrs.w	r4, r5, r6              @ encoding: [0x35,0xfa,0x06,0xf4]
1496*9880d681SAndroid Build Coastguard Worker@ CHECK: itttt	eq                      @ encoding: [0x01,0xbf]
1497*9880d681SAndroid Build Coastguard Worker@ CHECK: lsleq	r4, r5                  @ encoding: [0xac,0x40]
1498*9880d681SAndroid Build Coastguard Worker@ CHECK: lsreq	r4, r5                  @ encoding: [0xec,0x40]
1499*9880d681SAndroid Build Coastguard Worker@ CHECK: asreq	r4, r5                  @ encoding: [0x2c,0x41]
1500*9880d681SAndroid Build Coastguard Worker@ CHECK: roreq	r4, r5                  @ encoding: [0xec,0x41]
1501*9880d681SAndroid Build Coastguard Worker@ CHECK: rrx	r4, r4                  @ encoding: [0x4f,0xea,0x34,0x04]
1502*9880d681SAndroid Build Coastguard Worker
1503*9880d681SAndroid Build Coastguard Worker
1504*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1505*9880d681SAndroid Build Coastguard Worker@ MOVT
1506*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1507*9880d681SAndroid Build Coastguard Worker        movt r3, #7
1508*9880d681SAndroid Build Coastguard Worker        movt r6, #0xffff
1509*9880d681SAndroid Build Coastguard Worker        it eq
1510*9880d681SAndroid Build Coastguard Worker        movteq r4, #0xff0
1511*9880d681SAndroid Build Coastguard Worker
1512*9880d681SAndroid Build Coastguard Worker@ CHECK: movt	r3, #7                  @ encoding: [0xc0,0xf2,0x07,0x03]
1513*9880d681SAndroid Build Coastguard Worker@ CHECK: movt	r6, #65535              @ encoding: [0xcf,0xf6,0xff,0x76]
1514*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                      @ encoding: [0x08,0xbf]
1515*9880d681SAndroid Build Coastguard Worker@ CHECK: movteq	r4, #4080               @ encoding: [0xc0,0xf6,0xf0,0x74]
1516*9880d681SAndroid Build Coastguard Worker
1517*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1518*9880d681SAndroid Build Coastguard Worker@ MRC/MRC2
1519*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1520*9880d681SAndroid Build Coastguard Worker        mrc  p14, #0, r1, c1, c2, #4
1521*9880d681SAndroid Build Coastguard Worker        mrc  p15, #7, apsr_nzcv, c15, c6, #6
1522*9880d681SAndroid Build Coastguard Worker        mrc  p9, #1, r1, c2, c2
1523*9880d681SAndroid Build Coastguard Worker        mrc2 p12, #3, r3, c3, c4
1524*9880d681SAndroid Build Coastguard Worker        mrc2 p14, #0, r1, c1, c2, #4
1525*9880d681SAndroid Build Coastguard Worker        mrc2 p8, #7, apsr_nzcv, c15, c0, #1
1526*9880d681SAndroid Build Coastguard Worker
1527*9880d681SAndroid Build Coastguard Worker@ CHECK: mrc  p14, #0, r1, c1, c2, #4            @ encoding: [0x11,0xee,0x92,0x1e]
1528*9880d681SAndroid Build Coastguard Worker@ CHECK: mrc  p15, #7, apsr_nzcv, c15, c6, #6    @ encoding: [0xff,0xee,0xd6,0xff]
1529*9880d681SAndroid Build Coastguard Worker@ CHECK: mrc  p9, #1, r1, c2, c2, #0             @ encoding: [0x32,0xee,0x12,0x19]
1530*9880d681SAndroid Build Coastguard Worker@ CHECK: mrc2 p12, #3, r3, c3, c4, #0            @ encoding: [0x73,0xfe,0x14,0x3c]
1531*9880d681SAndroid Build Coastguard Worker@ CHECK: mrc2 p14, #0, r1, c1, c2, #4            @ encoding: [0x11,0xfe,0x92,0x1e]
1532*9880d681SAndroid Build Coastguard Worker@ CHECK: mrc2 p8, #7, apsr_nzcv, c15, c0, #1     @ encoding: [0xff,0xfe,0x30,0xf8]
1533*9880d681SAndroid Build Coastguard Worker
1534*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1535*9880d681SAndroid Build Coastguard Worker@ MRRC/MRRC2
1536*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1537*9880d681SAndroid Build Coastguard Worker        mrrc  p7, #1, r5, r4, c1
1538*9880d681SAndroid Build Coastguard Worker        mrrc2  p7, #1, r5, r4, c1
1539*9880d681SAndroid Build Coastguard Worker
1540*9880d681SAndroid Build Coastguard Worker@ CHECK: mrrc	p7, #1, r5, r4, c1      @ encoding: [0x54,0xec,0x11,0x57]
1541*9880d681SAndroid Build Coastguard Worker@ CHECK: mrrc2	p7, #1, r5, r4, c1      @ encoding: [0x54,0xfc,0x11,0x57]
1542*9880d681SAndroid Build Coastguard Worker
1543*9880d681SAndroid Build Coastguard Worker
1544*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1545*9880d681SAndroid Build Coastguard Worker@ MRS
1546*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1547*9880d681SAndroid Build Coastguard Worker        mrs  r8, apsr
1548*9880d681SAndroid Build Coastguard Worker        mrs  r8, cpsr
1549*9880d681SAndroid Build Coastguard Worker        mrs  r8, spsr
1550*9880d681SAndroid Build Coastguard Worker
1551*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs	r8, apsr                @ encoding: [0xef,0xf3,0x00,0x88]
1552*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs	r8, apsr                @ encoding: [0xef,0xf3,0x00,0x88]
1553*9880d681SAndroid Build Coastguard Worker@ CHECK: mrs	r8, spsr                @ encoding: [0xff,0xf3,0x00,0x88]
1554*9880d681SAndroid Build Coastguard Worker
1555*9880d681SAndroid Build Coastguard Worker
1556*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1557*9880d681SAndroid Build Coastguard Worker@ MSR
1558*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1559*9880d681SAndroid Build Coastguard Worker        msr  apsr, r1
1560*9880d681SAndroid Build Coastguard Worker        msr  apsr_g, r2
1561*9880d681SAndroid Build Coastguard Worker        msr  apsr_nzcvq, r3
1562*9880d681SAndroid Build Coastguard Worker        msr  APSR_nzcvq, r4
1563*9880d681SAndroid Build Coastguard Worker        msr  apsr_nzcvqg, r5
1564*9880d681SAndroid Build Coastguard Worker        msr  cpsr_fc, r6
1565*9880d681SAndroid Build Coastguard Worker        msr  cpsr_c, r7
1566*9880d681SAndroid Build Coastguard Worker        msr  cpsr_x, r8
1567*9880d681SAndroid Build Coastguard Worker        msr  cpsr_fc, r9
1568*9880d681SAndroid Build Coastguard Worker        msr  cpsr_all, r11
1569*9880d681SAndroid Build Coastguard Worker        msr  cpsr_fsx, r12
1570*9880d681SAndroid Build Coastguard Worker        msr  spsr_fc, r0
1571*9880d681SAndroid Build Coastguard Worker        msr  SPSR_fsxc, r5
1572*9880d681SAndroid Build Coastguard Worker        msr  cpsr_fsxc, r8
1573*9880d681SAndroid Build Coastguard Worker        msr  cpsr, r3
1574*9880d681SAndroid Build Coastguard Worker
1575*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	APSR_nzcvq, r1          @ encoding: [0x81,0xf3,0x00,0x88]
1576*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	APSR_g, r2              @ encoding: [0x82,0xf3,0x00,0x84]
1577*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	APSR_nzcvq, r3          @ encoding: [0x83,0xf3,0x00,0x88]
1578*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	APSR_nzcvq, r4          @ encoding: [0x84,0xf3,0x00,0x88]
1579*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	APSR_nzcvqg, r5         @ encoding: [0x85,0xf3,0x00,0x8c]
1580*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	CPSR_fc, r6             @ encoding: [0x86,0xf3,0x00,0x89]
1581*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	CPSR_c, r7              @ encoding: [0x87,0xf3,0x00,0x81]
1582*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	CPSR_x, r8              @ encoding: [0x88,0xf3,0x00,0x82]
1583*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	CPSR_fc, r9             @ encoding: [0x89,0xf3,0x00,0x89]
1584*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	CPSR_fc, r11            @ encoding: [0x8b,0xf3,0x00,0x89]
1585*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	CPSR_fsx, r12           @ encoding: [0x8c,0xf3,0x00,0x8e]
1586*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	SPSR_fc, r0             @ encoding: [0x90,0xf3,0x00,0x89]
1587*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	SPSR_fsxc, r5           @ encoding: [0x95,0xf3,0x00,0x8f]
1588*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	CPSR_fsxc, r8           @ encoding: [0x88,0xf3,0x00,0x8f]
1589*9880d681SAndroid Build Coastguard Worker@ CHECK: msr	CPSR_fc, r3             @ encoding: [0x83,0xf3,0x00,0x89]
1590*9880d681SAndroid Build Coastguard Worker
1591*9880d681SAndroid Build Coastguard Worker
1592*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1593*9880d681SAndroid Build Coastguard Worker@ MUL
1594*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1595*9880d681SAndroid Build Coastguard Worker        muls r3, r4, r3
1596*9880d681SAndroid Build Coastguard Worker        mul r3, r4, r3
1597*9880d681SAndroid Build Coastguard Worker        mul r3, r4, r6
1598*9880d681SAndroid Build Coastguard Worker        it eq
1599*9880d681SAndroid Build Coastguard Worker        muleq r3, r4, r5
1600*9880d681SAndroid Build Coastguard Worker        it le
1601*9880d681SAndroid Build Coastguard Worker        mulle r4, r4, r8
1602*9880d681SAndroid Build Coastguard Worker        mul r5, r6
1603*9880d681SAndroid Build Coastguard Worker
1604*9880d681SAndroid Build Coastguard Worker@ CHECK: muls	r3, r4, r3              @ encoding: [0x63,0x43]
1605*9880d681SAndroid Build Coastguard Worker@ CHECK: mul	r3, r4, r3              @ encoding: [0x04,0xfb,0x03,0xf3]
1606*9880d681SAndroid Build Coastguard Worker@ CHECK: mul	r3, r4, r6              @ encoding: [0x04,0xfb,0x06,0xf3]
1607*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                      @ encoding: [0x08,0xbf]
1608*9880d681SAndroid Build Coastguard Worker@ CHECK: muleq	r3, r4, r5              @ encoding: [0x04,0xfb,0x05,0xf3]
1609*9880d681SAndroid Build Coastguard Worker@ CHECK: it	le                      @ encoding: [0xd8,0xbf]
1610*9880d681SAndroid Build Coastguard Worker@ CHECK: mulle	r4, r4, r8              @ encoding: [0x04,0xfb,0x08,0xf4]
1611*9880d681SAndroid Build Coastguard Worker@ CHECK: mul	r5, r6, r5              @ encoding: [0x06,0xfb,0x05,0xf5]
1612*9880d681SAndroid Build Coastguard Worker
1613*9880d681SAndroid Build Coastguard Worker
1614*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1615*9880d681SAndroid Build Coastguard Worker@ MVN(immediate)
1616*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1617*9880d681SAndroid Build Coastguard Worker        mvns r8, #21
1618*9880d681SAndroid Build Coastguard Worker        mvn r0, #0x3fc0000
1619*9880d681SAndroid Build Coastguard Worker        mvns r0, #0x3fc0000
1620*9880d681SAndroid Build Coastguard Worker        itte eq
1621*9880d681SAndroid Build Coastguard Worker        mvnseq r1, #12
1622*9880d681SAndroid Build Coastguard Worker        mvneq.w r1, #12
1623*9880d681SAndroid Build Coastguard Worker        mvnne r1, #12
1624*9880d681SAndroid Build Coastguard Worker
1625*9880d681SAndroid Build Coastguard Worker@ CHECK: mvns	r8, #21                 @ encoding: [0x7f,0xf0,0x15,0x08]
1626*9880d681SAndroid Build Coastguard Worker@ CHECK: mvn	r0, #66846720           @ encoding: [0x6f,0xf0,0x7f,0x70]
1627*9880d681SAndroid Build Coastguard Worker@ CHECK: mvns	r0, #66846720           @ encoding: [0x7f,0xf0,0x7f,0x70]
1628*9880d681SAndroid Build Coastguard Worker@ CHECK: itte	eq                      @ encoding: [0x06,0xbf]
1629*9880d681SAndroid Build Coastguard Worker@ CHECK: mvnseq	r1, #12                 @ encoding: [0x7f,0xf0,0x0c,0x01]
1630*9880d681SAndroid Build Coastguard Worker@ CHECK: mvneq	r1, #12                 @ encoding: [0x6f,0xf0,0x0c,0x01]
1631*9880d681SAndroid Build Coastguard Worker@ CHECK: mvnne	r1, #12                 @ encoding: [0x6f,0xf0,0x0c,0x01]
1632*9880d681SAndroid Build Coastguard Worker
1633*9880d681SAndroid Build Coastguard Worker
1634*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1635*9880d681SAndroid Build Coastguard Worker@ MVN(register)
1636*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1637*9880d681SAndroid Build Coastguard Worker        mvn r2, r3
1638*9880d681SAndroid Build Coastguard Worker        mvns r2, r3
1639*9880d681SAndroid Build Coastguard Worker        mvn r5, r6, lsl #19
1640*9880d681SAndroid Build Coastguard Worker        mvn r5, r6, lsr #9
1641*9880d681SAndroid Build Coastguard Worker        mvn.w r5, r6, asr #4
1642*9880d681SAndroid Build Coastguard Worker        mvn r5, r6, ror #6
1643*9880d681SAndroid Build Coastguard Worker        mvn r5, r6, rrx
1644*9880d681SAndroid Build Coastguard Worker        it eq
1645*9880d681SAndroid Build Coastguard Worker        mvneq r2, r3
1646*9880d681SAndroid Build Coastguard Worker
1647*9880d681SAndroid Build Coastguard Worker@ CHECK: mvn.w	r2, r3                  @ encoding: [0x6f,0xea,0x03,0x02]
1648*9880d681SAndroid Build Coastguard Worker@ CHECK: mvns	r2, r3                  @ encoding: [0xda,0x43]
1649*9880d681SAndroid Build Coastguard Worker@ CHECK: mvn.w	r5, r6, lsl #19         @ encoding: [0x6f,0xea,0xc6,0x45]
1650*9880d681SAndroid Build Coastguard Worker@ CHECK: mvn.w	r5, r6, lsr #9          @ encoding: [0x6f,0xea,0x56,0x25]
1651*9880d681SAndroid Build Coastguard Worker@ CHECK: mvn.w	r5, r6, asr #4          @ encoding: [0x6f,0xea,0x26,0x15]
1652*9880d681SAndroid Build Coastguard Worker@ CHECK: mvn.w	r5, r6, ror #6          @ encoding: [0x6f,0xea,0xb6,0x15]
1653*9880d681SAndroid Build Coastguard Worker@ CHECK: mvn.w	r5, r6, rrx             @ encoding: [0x6f,0xea,0x36,0x05]
1654*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                      @ encoding: [0x08,0xbf]
1655*9880d681SAndroid Build Coastguard Worker@ CHECK: mvneq	r2, r3                  @ encoding: [0xda,0x43]
1656*9880d681SAndroid Build Coastguard Worker
1657*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1658*9880d681SAndroid Build Coastguard Worker@ NEG
1659*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1660*9880d681SAndroid Build Coastguard Worker        neg r5, r2
1661*9880d681SAndroid Build Coastguard Worker        neg r5, r8
1662*9880d681SAndroid Build Coastguard Worker
1663*9880d681SAndroid Build Coastguard Worker@ CHECK: rsb.w	r5, r2, #0              @ encoding: [0xc2,0xf1,0x00,0x05]
1664*9880d681SAndroid Build Coastguard Worker@ CHECK: rsb.w	r5, r8, #0              @ encoding: [0xc8,0xf1,0x00,0x05]
1665*9880d681SAndroid Build Coastguard Worker
1666*9880d681SAndroid Build Coastguard Worker
1667*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1668*9880d681SAndroid Build Coastguard Worker@ NOP
1669*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1670*9880d681SAndroid Build Coastguard Worker        nop.w
1671*9880d681SAndroid Build Coastguard Worker
1672*9880d681SAndroid Build Coastguard Worker@ CHECK: nop.w                          @ encoding: [0xaf,0xf3,0x00,0x80]
1673*9880d681SAndroid Build Coastguard Worker
1674*9880d681SAndroid Build Coastguard Worker
1675*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1676*9880d681SAndroid Build Coastguard Worker@ ORN
1677*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1678*9880d681SAndroid Build Coastguard Worker        orn r4, r5, #0xf000
1679*9880d681SAndroid Build Coastguard Worker        orn r4, r5, r6
1680*9880d681SAndroid Build Coastguard Worker        orns r4, r5, r6
1681*9880d681SAndroid Build Coastguard Worker        orn r4, r5, r6, lsl #5
1682*9880d681SAndroid Build Coastguard Worker        orns r4, r5, r6, lsr #5
1683*9880d681SAndroid Build Coastguard Worker        orn r4, r5, r6, lsr #5
1684*9880d681SAndroid Build Coastguard Worker        orns r4, r5, r6, asr #5
1685*9880d681SAndroid Build Coastguard Worker        orn r4, r5, r6, ror #5
1686*9880d681SAndroid Build Coastguard Worker
1687*9880d681SAndroid Build Coastguard Worker@ CHECK: orn	r4, r5, #61440          @ encoding: [0x65,0xf4,0x70,0x44]
1688*9880d681SAndroid Build Coastguard Worker@ CHECK: orn	r4, r5, r6              @ encoding: [0x65,0xea,0x06,0x04]
1689*9880d681SAndroid Build Coastguard Worker@ CHECK: orns	r4, r5, r6              @ encoding: [0x75,0xea,0x06,0x04]
1690*9880d681SAndroid Build Coastguard Worker@ CHECK: orn	r4, r5, r6, lsl #5      @ encoding: [0x65,0xea,0x46,0x14]
1691*9880d681SAndroid Build Coastguard Worker@ CHECK: orns	r4, r5, r6, lsr #5      @ encoding: [0x75,0xea,0x56,0x14]
1692*9880d681SAndroid Build Coastguard Worker@ CHECK: orn	r4, r5, r6, lsr #5      @ encoding: [0x65,0xea,0x56,0x14]
1693*9880d681SAndroid Build Coastguard Worker@ CHECK: orns	r4, r5, r6, asr #5      @ encoding: [0x75,0xea,0x66,0x14]
1694*9880d681SAndroid Build Coastguard Worker@ CHECK: orn	r4, r5, r6, ror #5      @ encoding: [0x65,0xea,0x76,0x14]
1695*9880d681SAndroid Build Coastguard Worker
1696*9880d681SAndroid Build Coastguard Worker
1697*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1698*9880d681SAndroid Build Coastguard Worker@ ORR
1699*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1700*9880d681SAndroid Build Coastguard Worker        orr r4, r5, #0xf000
1701*9880d681SAndroid Build Coastguard Worker        orr r4, r5, r6
1702*9880d681SAndroid Build Coastguard Worker        orr r4, r5, r6, lsl #5
1703*9880d681SAndroid Build Coastguard Worker        orrs r4, r5, r6, lsr #5
1704*9880d681SAndroid Build Coastguard Worker        orr r4, r5, r6, lsr #5
1705*9880d681SAndroid Build Coastguard Worker        orrs r4, r5, r6, asr #5
1706*9880d681SAndroid Build Coastguard Worker        orr r4, r5, r6, ror #5
1707*9880d681SAndroid Build Coastguard Worker
1708*9880d681SAndroid Build Coastguard Worker@ CHECK: orr	r4, r5, #61440          @ encoding: [0x45,0xf4,0x70,0x44]
1709*9880d681SAndroid Build Coastguard Worker@ CHECK: orr.w	r4, r5, r6              @ encoding: [0x45,0xea,0x06,0x04]
1710*9880d681SAndroid Build Coastguard Worker@ CHECK: orr.w	r4, r5, r6, lsl #5      @ encoding: [0x45,0xea,0x46,0x14]
1711*9880d681SAndroid Build Coastguard Worker@ CHECK: orrs.w	r4, r5, r6, lsr #5      @ encoding: [0x55,0xea,0x56,0x14]
1712*9880d681SAndroid Build Coastguard Worker@ CHECK: orr.w	r4, r5, r6, lsr #5      @ encoding: [0x45,0xea,0x56,0x14]
1713*9880d681SAndroid Build Coastguard Worker@ CHECK: orrs.w	r4, r5, r6, asr #5      @ encoding: [0x55,0xea,0x66,0x14]
1714*9880d681SAndroid Build Coastguard Worker@ CHECK: orr.w	r4, r5, r6, ror #5      @ encoding: [0x45,0xea,0x76,0x14]
1715*9880d681SAndroid Build Coastguard Worker
1716*9880d681SAndroid Build Coastguard Worker
1717*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1718*9880d681SAndroid Build Coastguard Worker@ PKH
1719*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1720*9880d681SAndroid Build Coastguard Worker        pkhbt r2, r2, r3
1721*9880d681SAndroid Build Coastguard Worker        pkhbt r2, r2, r3, lsl #31
1722*9880d681SAndroid Build Coastguard Worker        pkhbt r2, r2, r3, lsl #0
1723*9880d681SAndroid Build Coastguard Worker        pkhbt r2, r2, r3, lsl #15
1724*9880d681SAndroid Build Coastguard Worker
1725*9880d681SAndroid Build Coastguard Worker        pkhtb r2, r2, r3
1726*9880d681SAndroid Build Coastguard Worker        pkhtb r2, r2, r3, asr #31
1727*9880d681SAndroid Build Coastguard Worker        pkhtb r2, r2, r3, asr #15
1728*9880d681SAndroid Build Coastguard Worker
1729*9880d681SAndroid Build Coastguard Worker@ CHECK: pkhbt	r2, r2, r3              @ encoding: [0xc2,0xea,0x03,0x02]
1730*9880d681SAndroid Build Coastguard Worker@ CHECK: pkhbt	r2, r2, r3, lsl #31     @ encoding: [0xc2,0xea,0xc3,0x72]
1731*9880d681SAndroid Build Coastguard Worker@ CHECK: pkhbt	r2, r2, r3              @ encoding: [0xc2,0xea,0x03,0x02]
1732*9880d681SAndroid Build Coastguard Worker@ CHECK: pkhbt	r2, r2, r3, lsl #15     @ encoding: [0xc2,0xea,0xc3,0x32]
1733*9880d681SAndroid Build Coastguard Worker
1734*9880d681SAndroid Build Coastguard Worker@ CHECK: pkhbt	r2, r3, r2              @ encoding: [0xc3,0xea,0x02,0x02]
1735*9880d681SAndroid Build Coastguard Worker@ CHECK: pkhtb	r2, r2, r3, asr #31     @ encoding: [0xc2,0xea,0xe3,0x72]
1736*9880d681SAndroid Build Coastguard Worker@ CHECK: pkhtb	r2, r2, r3, asr #15     @ encoding: [0xc2,0xea,0xe3,0x32]
1737*9880d681SAndroid Build Coastguard Worker
1738*9880d681SAndroid Build Coastguard Worker
1739*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1740*9880d681SAndroid Build Coastguard Worker@ PLD(immediate)
1741*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1742*9880d681SAndroid Build Coastguard Worker        pld [r5, #-4]
1743*9880d681SAndroid Build Coastguard Worker        pld [r6, #32]
1744*9880d681SAndroid Build Coastguard Worker        pld [r6, #33]
1745*9880d681SAndroid Build Coastguard Worker        pld [r6, #257]
1746*9880d681SAndroid Build Coastguard Worker        pld [r7, #257]
1747*9880d681SAndroid Build Coastguard Worker        pld [r1, #0]
1748*9880d681SAndroid Build Coastguard Worker        pld [r1, #-0]
1749*9880d681SAndroid Build Coastguard Worker
1750*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[r5, #-4]               @ encoding: [0x15,0xf8,0x04,0xfc]
1751*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[r6, #32]               @ encoding: [0x96,0xf8,0x20,0xf0]
1752*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[r6, #33]               @ encoding: [0x96,0xf8,0x21,0xf0]
1753*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[r6, #257]              @ encoding: [0x96,0xf8,0x01,0xf1]
1754*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[r7, #257]              @ encoding: [0x97,0xf8,0x01,0xf1]
1755*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[r1]                    @ encoding: [0x91,0xf8,0x00,0xf0]
1756*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[r1, #-0]               @ encoding: [0x11,0xf8,0x00,0xfc]
1757*9880d681SAndroid Build Coastguard Worker
1758*9880d681SAndroid Build Coastguard Worker
1759*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1760*9880d681SAndroid Build Coastguard Worker@ PLD(literal)
1761*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1762*9880d681SAndroid Build Coastguard Worker@        pld  _foo
1763*9880d681SAndroid Build Coastguard Worker
1764*9880d681SAndroid Build Coastguard Worker@ FIXME: pld	_foo                    @ encoding: [0x9f'A',0xf8'A',A,0xf0'A']
1765*9880d681SAndroid Build Coastguard Worker            @   fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
1766*9880d681SAndroid Build Coastguard Worker
1767*9880d681SAndroid Build Coastguard Worker        pld [pc,#-4095]
1768*9880d681SAndroid Build Coastguard Worker@ CHECK: pld [pc, #-4095]            @ encoding: [0x1f,0xf8,0xff,0xff]
1769*9880d681SAndroid Build Coastguard Worker
1770*9880d681SAndroid Build Coastguard Worker
1771*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1772*9880d681SAndroid Build Coastguard Worker@ PLD(register)
1773*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1774*9880d681SAndroid Build Coastguard Worker        pld [r8, r1]
1775*9880d681SAndroid Build Coastguard Worker        pld [r5, r2]
1776*9880d681SAndroid Build Coastguard Worker        pld [r0, r2, lsl #3]
1777*9880d681SAndroid Build Coastguard Worker        pld [r8, r2, lsl #2]
1778*9880d681SAndroid Build Coastguard Worker        pld [sp, r2, lsl #1]
1779*9880d681SAndroid Build Coastguard Worker        pld [sp, r2, lsl #0]
1780*9880d681SAndroid Build Coastguard Worker
1781*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[r8, r1]                @ encoding: [0x18,0xf8,0x01,0xf0]
1782*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[r5, r2]                @ encoding: [0x15,0xf8,0x02,0xf0]
1783*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[r0, r2, lsl #3]        @ encoding: [0x10,0xf8,0x32,0xf0]
1784*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[r8, r2, lsl #2]        @ encoding: [0x18,0xf8,0x22,0xf0]
1785*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[sp, r2, lsl #1]        @ encoding: [0x1d,0xf8,0x12,0xf0]
1786*9880d681SAndroid Build Coastguard Worker@ CHECK: pld	[sp, r2]                @ encoding: [0x1d,0xf8,0x02,0xf0]
1787*9880d681SAndroid Build Coastguard Worker
1788*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1789*9880d681SAndroid Build Coastguard Worker@ PLI(immediate)
1790*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1791*9880d681SAndroid Build Coastguard Worker        pli [r5, #-4]
1792*9880d681SAndroid Build Coastguard Worker        pli [r6, #32]
1793*9880d681SAndroid Build Coastguard Worker        pli [r6, #33]
1794*9880d681SAndroid Build Coastguard Worker        pli [r6, #257]
1795*9880d681SAndroid Build Coastguard Worker        pli [r7, #257]
1796*9880d681SAndroid Build Coastguard Worker        pli [pc, #+4095]
1797*9880d681SAndroid Build Coastguard Worker        pli [pc, #-4095]
1798*9880d681SAndroid Build Coastguard Worker
1799*9880d681SAndroid Build Coastguard Worker@ CHECK: pli	[r5, #-4]               @ encoding: [0x15,0xf9,0x04,0xfc]
1800*9880d681SAndroid Build Coastguard Worker@ CHECK: pli	[r6, #32]               @ encoding: [0x96,0xf9,0x20,0xf0]
1801*9880d681SAndroid Build Coastguard Worker@ CHECK: pli	[r6, #33]               @ encoding: [0x96,0xf9,0x21,0xf0]
1802*9880d681SAndroid Build Coastguard Worker@ CHECK: pli	[r6, #257]              @ encoding: [0x96,0xf9,0x01,0xf1]
1803*9880d681SAndroid Build Coastguard Worker@ CHECK: pli	[r7, #257]              @ encoding: [0x97,0xf9,0x01,0xf1]
1804*9880d681SAndroid Build Coastguard Worker@ CHECK: pli    [pc, #4095]             @ encoding: [0x9f,0xf9,0xff,0xff]
1805*9880d681SAndroid Build Coastguard Worker@ CHECK: pli    [pc, #-4095]            @ encoding: [0x1f,0xf9,0xff,0xff]
1806*9880d681SAndroid Build Coastguard Worker
1807*9880d681SAndroid Build Coastguard Worker
1808*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1809*9880d681SAndroid Build Coastguard Worker@ PLI(literal)
1810*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1811*9880d681SAndroid Build Coastguard Worker@        pli  _foo
1812*9880d681SAndroid Build Coastguard Worker
1813*9880d681SAndroid Build Coastguard Worker
1814*9880d681SAndroid Build Coastguard Worker@ FIXME: pli	_foo                    @ encoding: [0x9f'A',0xf9'A',A,0xf0'A']
1815*9880d681SAndroid Build Coastguard Worker           @   fixup A - offset: 0, value: _foo, kind: fixup_t2_ldst_pcrel_12
1816*9880d681SAndroid Build Coastguard Worker
1817*9880d681SAndroid Build Coastguard Worker
1818*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1819*9880d681SAndroid Build Coastguard Worker@ PLI(register)
1820*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1821*9880d681SAndroid Build Coastguard Worker        pli [r8, r1]
1822*9880d681SAndroid Build Coastguard Worker        pli [r5, r2]
1823*9880d681SAndroid Build Coastguard Worker        pli [r0, r2, lsl #3]
1824*9880d681SAndroid Build Coastguard Worker        pli [r8, r2, lsl #2]
1825*9880d681SAndroid Build Coastguard Worker        pli [sp, r2, lsl #1]
1826*9880d681SAndroid Build Coastguard Worker        pli [sp, r2, lsl #0]
1827*9880d681SAndroid Build Coastguard Worker
1828*9880d681SAndroid Build Coastguard Worker@ CHECK: pli	[r8, r1]                @ encoding: [0x18,0xf9,0x01,0xf0]
1829*9880d681SAndroid Build Coastguard Worker@ CHECK: pli	[r5, r2]                @ encoding: [0x15,0xf9,0x02,0xf0]
1830*9880d681SAndroid Build Coastguard Worker@ CHECK: pli	[r0, r2, lsl #3]        @ encoding: [0x10,0xf9,0x32,0xf0]
1831*9880d681SAndroid Build Coastguard Worker@ CHECK: pli	[r8, r2, lsl #2]        @ encoding: [0x18,0xf9,0x22,0xf0]
1832*9880d681SAndroid Build Coastguard Worker@ CHECK: pli	[sp, r2, lsl #1]        @ encoding: [0x1d,0xf9,0x12,0xf0]
1833*9880d681SAndroid Build Coastguard Worker@ CHECK: pli	[sp, r2]                @ encoding: [0x1d,0xf9,0x02,0xf0]
1834*9880d681SAndroid Build Coastguard Worker
1835*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1836*9880d681SAndroid Build Coastguard Worker@ POP (alias)
1837*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1838*9880d681SAndroid Build Coastguard Worker        pop {r2, r9}
1839*9880d681SAndroid Build Coastguard Worker
1840*9880d681SAndroid Build Coastguard Worker@ CHECK: pop.w	{r2, r9}                @ encoding: [0xbd,0xe8,0x04,0x02]
1841*9880d681SAndroid Build Coastguard Worker
1842*9880d681SAndroid Build Coastguard Worker
1843*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1844*9880d681SAndroid Build Coastguard Worker@ PUSH (alias)
1845*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1846*9880d681SAndroid Build Coastguard Worker        push {r2, r9}
1847*9880d681SAndroid Build Coastguard Worker
1848*9880d681SAndroid Build Coastguard Worker@ CHECK: push.w	{r2, r9}                @ encoding: [0x2d,0xe9,0x04,0x02]
1849*9880d681SAndroid Build Coastguard Worker
1850*9880d681SAndroid Build Coastguard Worker
1851*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1852*9880d681SAndroid Build Coastguard Worker@ QADD/QADD16/QADD8
1853*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1854*9880d681SAndroid Build Coastguard Worker        qadd r1, r2, r3
1855*9880d681SAndroid Build Coastguard Worker        qadd16 r1, r2, r3
1856*9880d681SAndroid Build Coastguard Worker        qadd8 r1, r2, r3
1857*9880d681SAndroid Build Coastguard Worker        itte gt
1858*9880d681SAndroid Build Coastguard Worker        qaddgt r1, r2, r3
1859*9880d681SAndroid Build Coastguard Worker        qadd16gt r1, r2, r3
1860*9880d681SAndroid Build Coastguard Worker        qadd8le r1, r2, r3
1861*9880d681SAndroid Build Coastguard Worker
1862*9880d681SAndroid Build Coastguard Worker@ CHECK: qadd	r1, r2, r3              @ encoding: [0x83,0xfa,0x82,0xf1]
1863*9880d681SAndroid Build Coastguard Worker@ CHECK: qadd16	r1, r2, r3              @ encoding: [0x92,0xfa,0x13,0xf1]
1864*9880d681SAndroid Build Coastguard Worker@ CHECK: qadd8	r1, r2, r3              @ encoding: [0x82,0xfa,0x13,0xf1]
1865*9880d681SAndroid Build Coastguard Worker@ CHECK: itte	gt                      @ encoding: [0xc6,0xbf]
1866*9880d681SAndroid Build Coastguard Worker@ CHECK: qaddgt	r1, r2, r3              @ encoding: [0x83,0xfa,0x82,0xf1]
1867*9880d681SAndroid Build Coastguard Worker@ CHECK: qadd16gt r1, r2, r3            @ encoding: [0x92,0xfa,0x13,0xf1]
1868*9880d681SAndroid Build Coastguard Worker@ CHECK: qadd8le r1, r2, r3             @ encoding: [0x82,0xfa,0x13,0xf1]
1869*9880d681SAndroid Build Coastguard Worker
1870*9880d681SAndroid Build Coastguard Worker
1871*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1872*9880d681SAndroid Build Coastguard Worker@ QDADD/QDSUB
1873*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1874*9880d681SAndroid Build Coastguard Worker        qdadd r6, r7, r8
1875*9880d681SAndroid Build Coastguard Worker        qdsub r6, r7, r8
1876*9880d681SAndroid Build Coastguard Worker        itt hi
1877*9880d681SAndroid Build Coastguard Worker        qdaddhi r6, r7, r8
1878*9880d681SAndroid Build Coastguard Worker        qdsubhi r6, r7, r8
1879*9880d681SAndroid Build Coastguard Worker
1880*9880d681SAndroid Build Coastguard Worker@ CHECK: qdadd	r6, r7, r8              @ encoding: [0x88,0xfa,0x97,0xf6]
1881*9880d681SAndroid Build Coastguard Worker@ CHECK: qdsub	r6, r7, r8              @ encoding: [0x88,0xfa,0xb7,0xf6]
1882*9880d681SAndroid Build Coastguard Worker@ CHECK: itt	hi                      @ encoding: [0x84,0xbf]
1883*9880d681SAndroid Build Coastguard Worker@ CHECK: qdaddhi r6, r7, r8             @ encoding: [0x88,0xfa,0x97,0xf6]
1884*9880d681SAndroid Build Coastguard Worker@ CHECK: qdsubhi r6, r7, r8             @ encoding: [0x88,0xfa,0xb7,0xf6]
1885*9880d681SAndroid Build Coastguard Worker
1886*9880d681SAndroid Build Coastguard Worker
1887*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1888*9880d681SAndroid Build Coastguard Worker@ QSAX
1889*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1890*9880d681SAndroid Build Coastguard Worker        qsax r9, r12, r0
1891*9880d681SAndroid Build Coastguard Worker        it eq
1892*9880d681SAndroid Build Coastguard Worker        qsaxeq r9, r12, r0
1893*9880d681SAndroid Build Coastguard Worker
1894*9880d681SAndroid Build Coastguard Worker@ CHECK: qsax	r9, r12, r0             @ encoding: [0xec,0xfa,0x10,0xf9]
1895*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                      @ encoding: [0x08,0xbf]
1896*9880d681SAndroid Build Coastguard Worker@ CHECK: qsaxeq	r9, r12, r0             @ encoding: [0xec,0xfa,0x10,0xf9]
1897*9880d681SAndroid Build Coastguard Worker
1898*9880d681SAndroid Build Coastguard Worker
1899*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1900*9880d681SAndroid Build Coastguard Worker@ QSUB/QSUB16/QSUB8
1901*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1902*9880d681SAndroid Build Coastguard Worker        qsub r1, r2, r3
1903*9880d681SAndroid Build Coastguard Worker        qsub16 r1, r2, r3
1904*9880d681SAndroid Build Coastguard Worker        qsub8 r1, r2, r3
1905*9880d681SAndroid Build Coastguard Worker        itet le
1906*9880d681SAndroid Build Coastguard Worker        qsuble r1, r2, r3
1907*9880d681SAndroid Build Coastguard Worker        qsub16gt r1, r2, r3
1908*9880d681SAndroid Build Coastguard Worker        qsub8le r1, r2, r3
1909*9880d681SAndroid Build Coastguard Worker
1910*9880d681SAndroid Build Coastguard Worker@ CHECK: qsub	r1, r2, r3              @ encoding: [0x83,0xfa,0xa2,0xf1]
1911*9880d681SAndroid Build Coastguard Worker@ CHECK: qsub16	r1, r2, r3              @ encoding: [0xd2,0xfa,0x13,0xf1]
1912*9880d681SAndroid Build Coastguard Worker@ CHECK: qsub8	r1, r2, r3              @ encoding: [0xc2,0xfa,0x13,0xf1]
1913*9880d681SAndroid Build Coastguard Worker@ CHECK: itet	le                      @ encoding: [0xd6,0xbf]
1914*9880d681SAndroid Build Coastguard Worker@ CHECK: qsuble	r1, r2, r3              @ encoding: [0x83,0xfa,0xa2,0xf1]
1915*9880d681SAndroid Build Coastguard Worker@ CHECK: qsub16gt	r1, r2, r3      @ encoding: [0xd2,0xfa,0x13,0xf1]
1916*9880d681SAndroid Build Coastguard Worker@ CHECK: qsub8le r1, r2, r3             @ encoding: [0xc2,0xfa,0x13,0xf1]
1917*9880d681SAndroid Build Coastguard Worker
1918*9880d681SAndroid Build Coastguard Worker
1919*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1920*9880d681SAndroid Build Coastguard Worker@ RBIT
1921*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1922*9880d681SAndroid Build Coastguard Worker        rbit r1, r2
1923*9880d681SAndroid Build Coastguard Worker        it ne
1924*9880d681SAndroid Build Coastguard Worker        rbitne r1, r2
1925*9880d681SAndroid Build Coastguard Worker
1926*9880d681SAndroid Build Coastguard Worker@ CHECK: rbit	r1, r2                  @ encoding: [0x92,0xfa,0xa2,0xf1]
1927*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ne                      @ encoding: [0x18,0xbf]
1928*9880d681SAndroid Build Coastguard Worker@ CHECK: rbitne	r1, r2                  @ encoding: [0x92,0xfa,0xa2,0xf1]
1929*9880d681SAndroid Build Coastguard Worker
1930*9880d681SAndroid Build Coastguard Worker
1931*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1932*9880d681SAndroid Build Coastguard Worker@ REV
1933*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1934*9880d681SAndroid Build Coastguard Worker        rev.w r1, r2
1935*9880d681SAndroid Build Coastguard Worker        rev r2, r8
1936*9880d681SAndroid Build Coastguard Worker        itt ne
1937*9880d681SAndroid Build Coastguard Worker        revne r1, r2
1938*9880d681SAndroid Build Coastguard Worker        revne r1, r8
1939*9880d681SAndroid Build Coastguard Worker
1940*9880d681SAndroid Build Coastguard Worker@ CHECK: rev.w	r1, r2                  @ encoding: [0x92,0xfa,0x82,0xf1]
1941*9880d681SAndroid Build Coastguard Worker@ CHECK: rev.w	r2, r8                  @ encoding: [0x98,0xfa,0x88,0xf2]
1942*9880d681SAndroid Build Coastguard Worker@ CHECK: itt	ne                      @ encoding: [0x1c,0xbf]
1943*9880d681SAndroid Build Coastguard Worker@ CHECK: revne	r1, r2                  @ encoding: [0x11,0xba]
1944*9880d681SAndroid Build Coastguard Worker@ CHECK: revne.w r1, r8                 @ encoding: [0x98,0xfa,0x88,0xf1]
1945*9880d681SAndroid Build Coastguard Worker
1946*9880d681SAndroid Build Coastguard Worker
1947*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1948*9880d681SAndroid Build Coastguard Worker@ REV16
1949*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1950*9880d681SAndroid Build Coastguard Worker        rev16.w r1, r2
1951*9880d681SAndroid Build Coastguard Worker        rev16 r2, r8
1952*9880d681SAndroid Build Coastguard Worker        itt ne
1953*9880d681SAndroid Build Coastguard Worker        rev16ne r1, r2
1954*9880d681SAndroid Build Coastguard Worker        rev16ne r1, r8
1955*9880d681SAndroid Build Coastguard Worker
1956*9880d681SAndroid Build Coastguard Worker@ CHECK: rev16.w r1, r2                 @ encoding: [0x92,0xfa,0x92,0xf1]
1957*9880d681SAndroid Build Coastguard Worker@ CHECK: rev16.w r2, r8                 @ encoding: [0x98,0xfa,0x98,0xf2]
1958*9880d681SAndroid Build Coastguard Worker@ CHECK: itt	ne                      @ encoding: [0x1c,0xbf]
1959*9880d681SAndroid Build Coastguard Worker@ CHECK: rev16ne r1, r2                 @ encoding: [0x51,0xba]
1960*9880d681SAndroid Build Coastguard Worker@ CHECK: rev16ne.w	r1, r8          @ encoding: [0x98,0xfa,0x98,0xf1]
1961*9880d681SAndroid Build Coastguard Worker
1962*9880d681SAndroid Build Coastguard Worker
1963*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1964*9880d681SAndroid Build Coastguard Worker@ REVSH
1965*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1966*9880d681SAndroid Build Coastguard Worker        revsh.w r1, r2
1967*9880d681SAndroid Build Coastguard Worker        revsh r2, r8
1968*9880d681SAndroid Build Coastguard Worker        itt ne
1969*9880d681SAndroid Build Coastguard Worker        revshne r1, r2
1970*9880d681SAndroid Build Coastguard Worker        revshne r1, r8
1971*9880d681SAndroid Build Coastguard Worker
1972*9880d681SAndroid Build Coastguard Worker@ CHECK: revsh.w r1, r2                 @ encoding: [0x92,0xfa,0xb2,0xf1]
1973*9880d681SAndroid Build Coastguard Worker@ CHECK: revsh.w r2, r8                 @ encoding: [0x98,0xfa,0xb8,0xf2]
1974*9880d681SAndroid Build Coastguard Worker@ CHECK: itt	ne                      @ encoding: [0x1c,0xbf]
1975*9880d681SAndroid Build Coastguard Worker@ CHECK: revshne r1, r2                 @ encoding: [0xd1,0xba]
1976*9880d681SAndroid Build Coastguard Worker@ CHECK: revshne.w	r1, r8          @ encoding: [0x98,0xfa,0xb8,0xf1]
1977*9880d681SAndroid Build Coastguard Worker
1978*9880d681SAndroid Build Coastguard Worker
1979*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1980*9880d681SAndroid Build Coastguard Worker@ ROR (immediate)
1981*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
1982*9880d681SAndroid Build Coastguard Worker        ror r2, r3, #12
1983*9880d681SAndroid Build Coastguard Worker        rors r8, r3, #31
1984*9880d681SAndroid Build Coastguard Worker        rors.w r2, r3, #1
1985*9880d681SAndroid Build Coastguard Worker        ror r2, r3, #4
1986*9880d681SAndroid Build Coastguard Worker        rors r2, r12, #15
1987*9880d681SAndroid Build Coastguard Worker
1988*9880d681SAndroid Build Coastguard Worker        ror r3, #19
1989*9880d681SAndroid Build Coastguard Worker        rors r8, #2
1990*9880d681SAndroid Build Coastguard Worker        rors.w r7, #5
1991*9880d681SAndroid Build Coastguard Worker        ror.w r12, #21
1992*9880d681SAndroid Build Coastguard Worker
1993*9880d681SAndroid Build Coastguard Worker@ CHECK: ror.w	r2, r3, #12             @ encoding: [0x4f,0xea,0x33,0x32]
1994*9880d681SAndroid Build Coastguard Worker@ CHECK: rors.w	r8, r3, #31             @ encoding: [0x5f,0xea,0xf3,0x78]
1995*9880d681SAndroid Build Coastguard Worker@ CHECK: rors.w	r2, r3, #1              @ encoding: [0x5f,0xea,0x73,0x02]
1996*9880d681SAndroid Build Coastguard Worker@ CHECK: ror.w	r2, r3, #4              @ encoding: [0x4f,0xea,0x33,0x12]
1997*9880d681SAndroid Build Coastguard Worker@ CHECK: rors.w	r2, r12, #15            @ encoding: [0x5f,0xea,0xfc,0x32]
1998*9880d681SAndroid Build Coastguard Worker
1999*9880d681SAndroid Build Coastguard Worker@ CHECK: ror.w	r3, r3, #19             @ encoding: [0x4f,0xea,0xf3,0x43]
2000*9880d681SAndroid Build Coastguard Worker@ CHECK: rors.w	r8, r8, #2              @ encoding: [0x5f,0xea,0xb8,0x08]
2001*9880d681SAndroid Build Coastguard Worker@ CHECK: rors.w	r7, r7, #5              @ encoding: [0x5f,0xea,0x77,0x17]
2002*9880d681SAndroid Build Coastguard Worker@ CHECK: ror.w	r12, r12, #21           @ encoding: [0x4f,0xea,0x7c,0x5c]
2003*9880d681SAndroid Build Coastguard Worker
2004*9880d681SAndroid Build Coastguard Worker
2005*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2006*9880d681SAndroid Build Coastguard Worker@ ROR (register)
2007*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2008*9880d681SAndroid Build Coastguard Worker        ror r3, r4, r2
2009*9880d681SAndroid Build Coastguard Worker        ror.w r1, r2
2010*9880d681SAndroid Build Coastguard Worker        rors r3, r4, r8
2011*9880d681SAndroid Build Coastguard Worker
2012*9880d681SAndroid Build Coastguard Worker@ CHECK: ror.w	r3, r4, r2              @ encoding: [0x64,0xfa,0x02,0xf3]
2013*9880d681SAndroid Build Coastguard Worker@ CHECK: ror.w	r1, r1, r2              @ encoding: [0x61,0xfa,0x02,0xf1]
2014*9880d681SAndroid Build Coastguard Worker@ CHECK: rors.w	r3, r4, r8              @ encoding: [0x74,0xfa,0x08,0xf3]
2015*9880d681SAndroid Build Coastguard Worker
2016*9880d681SAndroid Build Coastguard Worker
2017*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2018*9880d681SAndroid Build Coastguard Worker@ RRX
2019*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2020*9880d681SAndroid Build Coastguard Worker        rrx r1, r2
2021*9880d681SAndroid Build Coastguard Worker        rrxs r1, r2
2022*9880d681SAndroid Build Coastguard Worker        ite lt
2023*9880d681SAndroid Build Coastguard Worker        rrxlt r9, r12
2024*9880d681SAndroid Build Coastguard Worker        rrxsge r8, r3
2025*9880d681SAndroid Build Coastguard Worker
2026*9880d681SAndroid Build Coastguard Worker@ CHECK: rrx	r1, r2                  @ encoding: [0x4f,0xea,0x32,0x01]
2027*9880d681SAndroid Build Coastguard Worker@ CHECK: rrxs	r1, r2                  @ encoding: [0x5f,0xea,0x32,0x01]
2028*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	lt                      @ encoding: [0xb4,0xbf]
2029*9880d681SAndroid Build Coastguard Worker@ CHECK: rrxlt	r9, r12                 @ encoding: [0x4f,0xea,0x3c,0x09]
2030*9880d681SAndroid Build Coastguard Worker@ CHECK: rrxsge	r8, r3                  @ encoding: [0x5f,0xea,0x33,0x08]
2031*9880d681SAndroid Build Coastguard Worker
2032*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2033*9880d681SAndroid Build Coastguard Worker@ RSB (immediate)
2034*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2035*9880d681SAndroid Build Coastguard Worker        rsb r2, r5, #0xff000
2036*9880d681SAndroid Build Coastguard Worker        rsbs r3, r12, #0xf
2037*9880d681SAndroid Build Coastguard Worker        rsb r1, #0xff
2038*9880d681SAndroid Build Coastguard Worker        rsb r1, r1, #0xff
2039*9880d681SAndroid Build Coastguard Worker        rsb r11, r11, #0
2040*9880d681SAndroid Build Coastguard Worker        rsb r9, #0
2041*9880d681SAndroid Build Coastguard Worker        rsbs r3, r1, #0
2042*9880d681SAndroid Build Coastguard Worker        rsb r3, r1, #0
2043*9880d681SAndroid Build Coastguard Worker
2044*9880d681SAndroid Build Coastguard Worker@ CHECK: rsb.w	r2, r5, #1044480        @ encoding: [0xc5,0xf5,0x7f,0x22]
2045*9880d681SAndroid Build Coastguard Worker@ CHECK: rsbs.w	r3, r12, #15            @ encoding: [0xdc,0xf1,0x0f,0x03]
2046*9880d681SAndroid Build Coastguard Worker@ CHECK: rsb.w	r1, r1, #255            @ encoding: [0xc1,0xf1,0xff,0x01]
2047*9880d681SAndroid Build Coastguard Worker@ CHECK: rsb.w	r1, r1, #255            @ encoding: [0xc1,0xf1,0xff,0x01]
2048*9880d681SAndroid Build Coastguard Worker@ CHECK: rsb.w	r11, r11, #0            @ encoding: [0xcb,0xf1,0x00,0x0b]
2049*9880d681SAndroid Build Coastguard Worker@ CHECK: rsb.w	r9, r9, #0              @ encoding: [0xc9,0xf1,0x00,0x09]
2050*9880d681SAndroid Build Coastguard Worker@ CHECK: rsbs	r3, r1, #0              @ encoding: [0x4b,0x42]
2051*9880d681SAndroid Build Coastguard Worker@ CHECK: rsb.w	r3, r1, #0              @ encoding: [0xc1,0xf1,0x00,0x03]
2052*9880d681SAndroid Build Coastguard Worker
2053*9880d681SAndroid Build Coastguard Worker
2054*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2055*9880d681SAndroid Build Coastguard Worker@ RSB (register)
2056*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2057*9880d681SAndroid Build Coastguard Worker        rsb r4, r8
2058*9880d681SAndroid Build Coastguard Worker        rsb r4, r9, r8
2059*9880d681SAndroid Build Coastguard Worker        rsb r1, r4, r8, asr #3
2060*9880d681SAndroid Build Coastguard Worker        rsbs r2, r1, r7, lsl #1
2061*9880d681SAndroid Build Coastguard Worker
2062*9880d681SAndroid Build Coastguard Worker@ CHECK: rsb	r4, r4, r8              @ encoding: [0xc4,0xeb,0x08,0x04]
2063*9880d681SAndroid Build Coastguard Worker@ CHECK: rsb	r4, r9, r8              @ encoding: [0xc9,0xeb,0x08,0x04]
2064*9880d681SAndroid Build Coastguard Worker@ CHECK: rsb	r1, r4, r8, asr #3      @ encoding: [0xc4,0xeb,0xe8,0x01]
2065*9880d681SAndroid Build Coastguard Worker@ CHECK: rsbs	r2, r1, r7, lsl #1      @ encoding: [0xd1,0xeb,0x47,0x02]
2066*9880d681SAndroid Build Coastguard Worker
2067*9880d681SAndroid Build Coastguard Worker
2068*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2069*9880d681SAndroid Build Coastguard Worker@ SADD16
2070*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2071*9880d681SAndroid Build Coastguard Worker        sadd16 r3, r4, r8
2072*9880d681SAndroid Build Coastguard Worker        it ne
2073*9880d681SAndroid Build Coastguard Worker        sadd16ne r3, r4, r8
2074*9880d681SAndroid Build Coastguard Worker
2075*9880d681SAndroid Build Coastguard Worker@ CHECK: sadd16	r3, r4, r8              @ encoding: [0x94,0xfa,0x08,0xf3]
2076*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ne                      @ encoding: [0x18,0xbf]
2077*9880d681SAndroid Build Coastguard Worker@ CHECK: sadd16ne	r3, r4, r8      @ encoding: [0x94,0xfa,0x08,0xf3]
2078*9880d681SAndroid Build Coastguard Worker
2079*9880d681SAndroid Build Coastguard Worker
2080*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2081*9880d681SAndroid Build Coastguard Worker@ SADD8
2082*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2083*9880d681SAndroid Build Coastguard Worker        sadd8 r3, r4, r8
2084*9880d681SAndroid Build Coastguard Worker        it ne
2085*9880d681SAndroid Build Coastguard Worker        sadd8ne r3, r4, r8
2086*9880d681SAndroid Build Coastguard Worker
2087*9880d681SAndroid Build Coastguard Worker@ CHECK: sadd8	r3, r4, r8              @ encoding: [0x84,0xfa,0x08,0xf3]
2088*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ne                      @ encoding: [0x18,0xbf]
2089*9880d681SAndroid Build Coastguard Worker@ CHECK: sadd8ne r3, r4, r8             @ encoding: [0x84,0xfa,0x08,0xf3]
2090*9880d681SAndroid Build Coastguard Worker
2091*9880d681SAndroid Build Coastguard Worker
2092*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2093*9880d681SAndroid Build Coastguard Worker@ SASX
2094*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2095*9880d681SAndroid Build Coastguard Worker        saddsubx r9, r2, r7
2096*9880d681SAndroid Build Coastguard Worker        it ne
2097*9880d681SAndroid Build Coastguard Worker        saddsubxne r2, r5, r6
2098*9880d681SAndroid Build Coastguard Worker        sasx r9, r2, r7
2099*9880d681SAndroid Build Coastguard Worker        it ne
2100*9880d681SAndroid Build Coastguard Worker        sasxne r2, r5, r6
2101*9880d681SAndroid Build Coastguard Worker
2102*9880d681SAndroid Build Coastguard Worker@ CHECK: sasx	r9, r2, r7              @ encoding: [0xa2,0xfa,0x07,0xf9]
2103*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ne                      @ encoding: [0x18,0xbf]
2104*9880d681SAndroid Build Coastguard Worker@ CHECK: sasxne	r2, r5, r6              @ encoding: [0xa5,0xfa,0x06,0xf2]
2105*9880d681SAndroid Build Coastguard Worker@ CHECK: sasx	r9, r2, r7              @ encoding: [0xa2,0xfa,0x07,0xf9]
2106*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ne                      @ encoding: [0x18,0xbf]
2107*9880d681SAndroid Build Coastguard Worker@ CHECK: sasxne	r2, r5, r6              @ encoding: [0xa5,0xfa,0x06,0xf2]
2108*9880d681SAndroid Build Coastguard Worker
2109*9880d681SAndroid Build Coastguard Worker
2110*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2111*9880d681SAndroid Build Coastguard Worker@ SBC (immediate)
2112*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2113*9880d681SAndroid Build Coastguard Worker        sbc r0, r1, #4
2114*9880d681SAndroid Build Coastguard Worker        sbcs r0, r1, #0
2115*9880d681SAndroid Build Coastguard Worker        sbc r1, r2, #255
2116*9880d681SAndroid Build Coastguard Worker        sbc r3, r7, #0x00550055
2117*9880d681SAndroid Build Coastguard Worker        sbc r8, r12, #0xaa00aa00
2118*9880d681SAndroid Build Coastguard Worker        sbc r9, r7, #0xa5a5a5a5
2119*9880d681SAndroid Build Coastguard Worker        sbc r5, r3, #0x87000000
2120*9880d681SAndroid Build Coastguard Worker        sbc r4, r2, #0x7f800000
2121*9880d681SAndroid Build Coastguard Worker        sbc r4, r2, #0x00000680
2122*9880d681SAndroid Build Coastguard Worker
2123*9880d681SAndroid Build Coastguard Worker@ CHECK: sbc	r0, r1, #4              @ encoding: [0x61,0xf1,0x04,0x00]
2124*9880d681SAndroid Build Coastguard Worker@ CHECK: sbcs	r0, r1, #0              @ encoding: [0x71,0xf1,0x00,0x00]
2125*9880d681SAndroid Build Coastguard Worker@ CHECK: sbc	r1, r2, #255            @ encoding: [0x62,0xf1,0xff,0x01]
2126*9880d681SAndroid Build Coastguard Worker@ CHECK: sbc	r3, r7, #5570645        @ encoding: [0x67,0xf1,0x55,0x13]
2127*9880d681SAndroid Build Coastguard Worker@ CHECK: sbc	r8, r12, #2852170240    @ encoding: [0x6c,0xf1,0xaa,0x28]
2128*9880d681SAndroid Build Coastguard Worker@ CHECK: sbc	r9, r7, #2779096485     @ encoding: [0x67,0xf1,0xa5,0x39]
2129*9880d681SAndroid Build Coastguard Worker@ CHECK: sbc	r5, r3, #2264924160     @ encoding: [0x63,0xf1,0x07,0x45]
2130*9880d681SAndroid Build Coastguard Worker@ CHECK: sbc	r4, r2, #2139095040     @ encoding: [0x62,0xf1,0xff,0x44]
2131*9880d681SAndroid Build Coastguard Worker@ CHECK: sbc	r4, r2, #1664           @ encoding: [0x62,0xf5,0xd0,0x64]
2132*9880d681SAndroid Build Coastguard Worker
2133*9880d681SAndroid Build Coastguard Worker
2134*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2135*9880d681SAndroid Build Coastguard Worker@ SBC (register)
2136*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2137*9880d681SAndroid Build Coastguard Worker        sbc r4, r5, r6
2138*9880d681SAndroid Build Coastguard Worker        sbcs r4, r5, r6
2139*9880d681SAndroid Build Coastguard Worker        sbc.w r9, r1, r3
2140*9880d681SAndroid Build Coastguard Worker        sbcs.w r9, r1, r3
2141*9880d681SAndroid Build Coastguard Worker        sbc	r0, r1, r3, ror #4
2142*9880d681SAndroid Build Coastguard Worker        sbcs	r0, r1, r3, lsl #7
2143*9880d681SAndroid Build Coastguard Worker        sbc.w	r0, r1, r3, lsr #31
2144*9880d681SAndroid Build Coastguard Worker        sbcs.w	r0, r1, r3, asr #32
2145*9880d681SAndroid Build Coastguard Worker
2146*9880d681SAndroid Build Coastguard Worker@ CHECK: sbc.w	r4, r5, r6              @ encoding: [0x65,0xeb,0x06,0x04]
2147*9880d681SAndroid Build Coastguard Worker@ CHECK: sbcs.w	r4, r5, r6              @ encoding: [0x75,0xeb,0x06,0x04]
2148*9880d681SAndroid Build Coastguard Worker@ CHECK: sbc.w	r9, r1, r3              @ encoding: [0x61,0xeb,0x03,0x09]
2149*9880d681SAndroid Build Coastguard Worker@ CHECK: sbcs.w	r9, r1, r3              @ encoding: [0x71,0xeb,0x03,0x09]
2150*9880d681SAndroid Build Coastguard Worker@ CHECK: sbc.w	r0, r1, r3, ror #4      @ encoding: [0x61,0xeb,0x33,0x10]
2151*9880d681SAndroid Build Coastguard Worker@ CHECK: sbcs.w	r0, r1, r3, lsl #7      @ encoding: [0x71,0xeb,0xc3,0x10]
2152*9880d681SAndroid Build Coastguard Worker@ CHECK: sbc.w	r0, r1, r3, lsr #31     @ encoding: [0x61,0xeb,0xd3,0x70]
2153*9880d681SAndroid Build Coastguard Worker@ CHECK: sbcs.w	r0, r1, r3, asr #32     @ encoding: [0x71,0xeb,0x23,0x00]
2154*9880d681SAndroid Build Coastguard Worker
2155*9880d681SAndroid Build Coastguard Worker
2156*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2157*9880d681SAndroid Build Coastguard Worker@ SBFX
2158*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2159*9880d681SAndroid Build Coastguard Worker        sbfx r4, r5, #16, #1
2160*9880d681SAndroid Build Coastguard Worker        it gt
2161*9880d681SAndroid Build Coastguard Worker        sbfxgt r4, r5, #16, #16
2162*9880d681SAndroid Build Coastguard Worker
2163*9880d681SAndroid Build Coastguard Worker@ CHECK: sbfx	r4, r5, #16, #1         @ encoding: [0x45,0xf3,0x00,0x44]
2164*9880d681SAndroid Build Coastguard Worker@ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
2165*9880d681SAndroid Build Coastguard Worker@ CHECK: sbfxgt	r4, r5, #16, #16        @ encoding: [0x45,0xf3,0x0f,0x44]
2166*9880d681SAndroid Build Coastguard Worker
2167*9880d681SAndroid Build Coastguard Worker
2168*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2169*9880d681SAndroid Build Coastguard Worker@ SEL
2170*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2171*9880d681SAndroid Build Coastguard Worker        sel r5, r9, r2
2172*9880d681SAndroid Build Coastguard Worker        it le
2173*9880d681SAndroid Build Coastguard Worker        selle r5, r9, r2
2174*9880d681SAndroid Build Coastguard Worker
2175*9880d681SAndroid Build Coastguard Worker@ CHECK: sel	r5, r9, r2              @ encoding: [0xa9,0xfa,0x82,0xf5]
2176*9880d681SAndroid Build Coastguard Worker@ CHECK: it	le                      @ encoding: [0xd8,0xbf]
2177*9880d681SAndroid Build Coastguard Worker@ CHECK: selle	r5, r9, r2              @ encoding: [0xa9,0xfa,0x82,0xf5]
2178*9880d681SAndroid Build Coastguard Worker
2179*9880d681SAndroid Build Coastguard Worker
2180*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2181*9880d681SAndroid Build Coastguard Worker@ SEV
2182*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2183*9880d681SAndroid Build Coastguard Worker        sev.w
2184*9880d681SAndroid Build Coastguard Worker        it eq
2185*9880d681SAndroid Build Coastguard Worker        seveq.w
2186*9880d681SAndroid Build Coastguard Worker
2187*9880d681SAndroid Build Coastguard Worker@ CHECK: sev.w                           @ encoding: [0xaf,0xf3,0x04,0x80]
2188*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                       @ encoding: [0x08,0xbf]
2189*9880d681SAndroid Build Coastguard Worker@ CHECK: seveq.w                         @ encoding: [0xaf,0xf3,0x04,0x80]
2190*9880d681SAndroid Build Coastguard Worker
2191*9880d681SAndroid Build Coastguard Worker
2192*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2193*9880d681SAndroid Build Coastguard Worker@ SADD16/SADD8
2194*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2195*9880d681SAndroid Build Coastguard Worker        sadd16 r1, r2, r3
2196*9880d681SAndroid Build Coastguard Worker        sadd8 r1, r2, r3
2197*9880d681SAndroid Build Coastguard Worker        ite gt
2198*9880d681SAndroid Build Coastguard Worker        sadd16gt r1, r2, r3
2199*9880d681SAndroid Build Coastguard Worker        sadd8le r1, r2, r3
2200*9880d681SAndroid Build Coastguard Worker
2201*9880d681SAndroid Build Coastguard Worker@ CHECK: sadd16	r1, r2, r3              @ encoding: [0x92,0xfa,0x03,0xf1]
2202*9880d681SAndroid Build Coastguard Worker@ CHECK: sadd8	r1, r2, r3              @ encoding: [0x82,0xfa,0x03,0xf1]
2203*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
2204*9880d681SAndroid Build Coastguard Worker@ CHECK: sadd16gt	r1, r2, r3      @ encoding: [0x92,0xfa,0x03,0xf1]
2205*9880d681SAndroid Build Coastguard Worker@ CHECK: sadd8le r1, r2, r3             @ encoding: [0x82,0xfa,0x03,0xf1]
2206*9880d681SAndroid Build Coastguard Worker
2207*9880d681SAndroid Build Coastguard Worker
2208*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2209*9880d681SAndroid Build Coastguard Worker@ SHASX
2210*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2211*9880d681SAndroid Build Coastguard Worker        shasx r4, r8, r2
2212*9880d681SAndroid Build Coastguard Worker        it gt
2213*9880d681SAndroid Build Coastguard Worker        shasxgt r4, r8, r2
2214*9880d681SAndroid Build Coastguard Worker        shaddsubx r4, r8, r2
2215*9880d681SAndroid Build Coastguard Worker        it gt
2216*9880d681SAndroid Build Coastguard Worker        shaddsubxgt r4, r8, r2
2217*9880d681SAndroid Build Coastguard Worker
2218*9880d681SAndroid Build Coastguard Worker@ CHECK: shasx	r4, r8, r2              @ encoding: [0xa8,0xfa,0x22,0xf4]
2219*9880d681SAndroid Build Coastguard Worker@ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
2220*9880d681SAndroid Build Coastguard Worker@ CHECK: shasxgt r4, r8, r2             @ encoding: [0xa8,0xfa,0x22,0xf4]
2221*9880d681SAndroid Build Coastguard Worker@ CHECK: shasx	r4, r8, r2              @ encoding: [0xa8,0xfa,0x22,0xf4]
2222*9880d681SAndroid Build Coastguard Worker@ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
2223*9880d681SAndroid Build Coastguard Worker@ CHECK: shasxgt r4, r8, r2             @ encoding: [0xa8,0xfa,0x22,0xf4]
2224*9880d681SAndroid Build Coastguard Worker
2225*9880d681SAndroid Build Coastguard Worker
2226*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2227*9880d681SAndroid Build Coastguard Worker@ SHASX
2228*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2229*9880d681SAndroid Build Coastguard Worker        shsax r4, r8, r2
2230*9880d681SAndroid Build Coastguard Worker        it gt
2231*9880d681SAndroid Build Coastguard Worker        shsaxgt r4, r8, r2
2232*9880d681SAndroid Build Coastguard Worker        shsubaddx r4, r8, r2
2233*9880d681SAndroid Build Coastguard Worker        it gt
2234*9880d681SAndroid Build Coastguard Worker        shsubaddxgt r4, r8, r2
2235*9880d681SAndroid Build Coastguard Worker
2236*9880d681SAndroid Build Coastguard Worker@ CHECK: shsax	r4, r8, r2              @ encoding: [0xe8,0xfa,0x22,0xf4]
2237*9880d681SAndroid Build Coastguard Worker@ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
2238*9880d681SAndroid Build Coastguard Worker@ CHECK: shsaxgt r4, r8, r2             @ encoding: [0xe8,0xfa,0x22,0xf4]
2239*9880d681SAndroid Build Coastguard Worker@ CHECK: shsax	r4, r8, r2              @ encoding: [0xe8,0xfa,0x22,0xf4]
2240*9880d681SAndroid Build Coastguard Worker@ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
2241*9880d681SAndroid Build Coastguard Worker@ CHECK: shsaxgt r4, r8, r2             @ encoding: [0xe8,0xfa,0x22,0xf4]
2242*9880d681SAndroid Build Coastguard Worker
2243*9880d681SAndroid Build Coastguard Worker
2244*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2245*9880d681SAndroid Build Coastguard Worker@ SHSUB16/SHSUB8
2246*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2247*9880d681SAndroid Build Coastguard Worker        shsub16 r4, r8, r2
2248*9880d681SAndroid Build Coastguard Worker        shsub8 r4, r8, r2
2249*9880d681SAndroid Build Coastguard Worker        itt gt
2250*9880d681SAndroid Build Coastguard Worker        shsub16gt r4, r8, r2
2251*9880d681SAndroid Build Coastguard Worker        shsub8gt r4, r8, r2
2252*9880d681SAndroid Build Coastguard Worker
2253*9880d681SAndroid Build Coastguard Worker@ CHECK: shsub16 r4, r8, r2             @ encoding: [0xd8,0xfa,0x22,0xf4]
2254*9880d681SAndroid Build Coastguard Worker@ CHECK: shsub8	r4, r8, r2              @ encoding: [0xc8,0xfa,0x22,0xf4]
2255*9880d681SAndroid Build Coastguard Worker@ CHECK: itt	gt                      @ encoding: [0xc4,0xbf]
2256*9880d681SAndroid Build Coastguard Worker@ CHECK: shsub16gt	r4, r8, r2      @ encoding: [0xd8,0xfa,0x22,0xf4]
2257*9880d681SAndroid Build Coastguard Worker@ CHECK: shsub8gt	r4, r8, r2      @ encoding: [0xc8,0xfa,0x22,0xf4]
2258*9880d681SAndroid Build Coastguard Worker
2259*9880d681SAndroid Build Coastguard Worker
2260*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2261*9880d681SAndroid Build Coastguard Worker@ SMLABB/SMLABT/SMLATB/SMLATT
2262*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2263*9880d681SAndroid Build Coastguard Worker        smlabb r3, r1, r9, r0
2264*9880d681SAndroid Build Coastguard Worker        smlabt r5, r6, r4, r1
2265*9880d681SAndroid Build Coastguard Worker        smlatb r4, r2, r3, r2
2266*9880d681SAndroid Build Coastguard Worker        smlatt r8, r3, r8, r4
2267*9880d681SAndroid Build Coastguard Worker        itete gt
2268*9880d681SAndroid Build Coastguard Worker        smlabbgt r3, r1, r9, r0
2269*9880d681SAndroid Build Coastguard Worker        smlabtle r5, r6, r4, r1
2270*9880d681SAndroid Build Coastguard Worker        smlatbgt r4, r2, r3, r2
2271*9880d681SAndroid Build Coastguard Worker        smlattle r8, r3, r8, r4
2272*9880d681SAndroid Build Coastguard Worker
2273*9880d681SAndroid Build Coastguard Worker@ CHECK: smlabb	r3, r1, r9, r0          @ encoding: [0x11,0xfb,0x09,0x03]
2274*9880d681SAndroid Build Coastguard Worker@ CHECK: smlabt	r5, r6, r4, r1          @ encoding: [0x16,0xfb,0x14,0x15]
2275*9880d681SAndroid Build Coastguard Worker@ CHECK: smlatb	r4, r2, r3, r2          @ encoding: [0x12,0xfb,0x23,0x24]
2276*9880d681SAndroid Build Coastguard Worker@ CHECK: smlatt	r8, r3, r8, r4          @ encoding: [0x13,0xfb,0x38,0x48]
2277*9880d681SAndroid Build Coastguard Worker@ CHECK: itete	gt                      @ encoding: [0xcb,0xbf]
2278*9880d681SAndroid Build Coastguard Worker@ CHECK: smlabbgt	r3, r1, r9, r0  @ encoding: [0x11,0xfb,0x09,0x03]
2279*9880d681SAndroid Build Coastguard Worker@ CHECK: smlabtle	r5, r6, r4, r1  @ encoding: [0x16,0xfb,0x14,0x15]
2280*9880d681SAndroid Build Coastguard Worker@ CHECK: smlatbgt	r4, r2, r3, r2  @ encoding: [0x12,0xfb,0x23,0x24]
2281*9880d681SAndroid Build Coastguard Worker@ CHECK: smlattle	r8, r3, r8, r4  @ encoding: [0x13,0xfb,0x38,0x48]
2282*9880d681SAndroid Build Coastguard Worker
2283*9880d681SAndroid Build Coastguard Worker
2284*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2285*9880d681SAndroid Build Coastguard Worker@ SMLAD/SMLADX
2286*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2287*9880d681SAndroid Build Coastguard Worker        smlad r2, r3, r5, r8
2288*9880d681SAndroid Build Coastguard Worker        smladx r2, r3, r5, r8
2289*9880d681SAndroid Build Coastguard Worker        itt hi
2290*9880d681SAndroid Build Coastguard Worker        smladhi r2, r3, r5, r8
2291*9880d681SAndroid Build Coastguard Worker        smladxhi r2, r3, r5, r8
2292*9880d681SAndroid Build Coastguard Worker
2293*9880d681SAndroid Build Coastguard Worker@ CHECK: smlad	r2, r3, r5, r8          @ encoding: [0x23,0xfb,0x05,0x82]
2294*9880d681SAndroid Build Coastguard Worker@ CHECK: smladx	r2, r3, r5, r8          @ encoding: [0x23,0xfb,0x15,0x82]
2295*9880d681SAndroid Build Coastguard Worker@ CHECK: itt	hi                      @ encoding: [0x84,0xbf]
2296*9880d681SAndroid Build Coastguard Worker@ CHECK: smladhi r2, r3, r5, r8         @ encoding: [0x23,0xfb,0x05,0x82]
2297*9880d681SAndroid Build Coastguard Worker@ CHECK: smladxhi	r2, r3, r5, r8  @ encoding: [0x23,0xfb,0x15,0x82]
2298*9880d681SAndroid Build Coastguard Worker
2299*9880d681SAndroid Build Coastguard Worker
2300*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2301*9880d681SAndroid Build Coastguard Worker@ SMLAL
2302*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2303*9880d681SAndroid Build Coastguard Worker        smlal r2, r3, r5, r8
2304*9880d681SAndroid Build Coastguard Worker        it eq
2305*9880d681SAndroid Build Coastguard Worker        smlaleq r2, r3, r5, r8
2306*9880d681SAndroid Build Coastguard Worker
2307*9880d681SAndroid Build Coastguard Worker@ CHECK: smlal	r2, r3, r5, r8          @ encoding: [0xc5,0xfb,0x08,0x23]
2308*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                      @ encoding: [0x08,0xbf]
2309*9880d681SAndroid Build Coastguard Worker@ CHECK: smlaleq r2, r3, r5, r8         @ encoding: [0xc5,0xfb,0x08,0x23]
2310*9880d681SAndroid Build Coastguard Worker
2311*9880d681SAndroid Build Coastguard Worker
2312*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2313*9880d681SAndroid Build Coastguard Worker@ SMLALBB/SMLALBT/SMLALTB/SMLALTT
2314*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2315*9880d681SAndroid Build Coastguard Worker        smlalbb r3, r1, r9, r0
2316*9880d681SAndroid Build Coastguard Worker        smlalbt r5, r6, r4, r1
2317*9880d681SAndroid Build Coastguard Worker        smlaltb r4, r2, r3, r2
2318*9880d681SAndroid Build Coastguard Worker        smlaltt r8, r3, r8, r4
2319*9880d681SAndroid Build Coastguard Worker        iteet ge
2320*9880d681SAndroid Build Coastguard Worker        smlalbbge r3, r1, r9, r0
2321*9880d681SAndroid Build Coastguard Worker        smlalbtlt r5, r6, r4, r1
2322*9880d681SAndroid Build Coastguard Worker        smlaltblt r4, r2, r3, r2
2323*9880d681SAndroid Build Coastguard Worker        smlalttge r8, r3, r8, r4
2324*9880d681SAndroid Build Coastguard Worker
2325*9880d681SAndroid Build Coastguard Worker@ CHECK: smlalbb r3, r1, r9, r0         @ encoding: [0xc9,0xfb,0x80,0x31]
2326*9880d681SAndroid Build Coastguard Worker@ CHECK: smlalbt r5, r6, r4, r1         @ encoding: [0xc4,0xfb,0x91,0x56]
2327*9880d681SAndroid Build Coastguard Worker@ CHECK: smlaltb r4, r2, r3, r2         @ encoding: [0xc3,0xfb,0xa2,0x42]
2328*9880d681SAndroid Build Coastguard Worker@ CHECK: smlaltt r8, r3, r8, r4         @ encoding: [0xc8,0xfb,0xb4,0x83]
2329*9880d681SAndroid Build Coastguard Worker@ CHECK: iteet	ge                      @ encoding: [0xad,0xbf]
2330*9880d681SAndroid Build Coastguard Worker@ CHECK: smlalbbge	r3, r1, r9, r0  @ encoding: [0xc9,0xfb,0x80,0x31]
2331*9880d681SAndroid Build Coastguard Worker@ CHECK: smlalbtlt	r5, r6, r4, r1  @ encoding: [0xc4,0xfb,0x91,0x56]
2332*9880d681SAndroid Build Coastguard Worker@ CHECK: smlaltblt	r4, r2, r3, r2  @ encoding: [0xc3,0xfb,0xa2,0x42]
2333*9880d681SAndroid Build Coastguard Worker@ CHECK: smlalttge	r8, r3, r8, r4  @ encoding: [0xc8,0xfb,0xb4,0x83]
2334*9880d681SAndroid Build Coastguard Worker
2335*9880d681SAndroid Build Coastguard Worker
2336*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2337*9880d681SAndroid Build Coastguard Worker@ SMLALD/SMLALDX
2338*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2339*9880d681SAndroid Build Coastguard Worker        smlald r2, r3, r5, r8
2340*9880d681SAndroid Build Coastguard Worker        smlaldx r2, r3, r5, r8
2341*9880d681SAndroid Build Coastguard Worker        ite eq
2342*9880d681SAndroid Build Coastguard Worker        smlaldeq r2, r3, r5, r8
2343*9880d681SAndroid Build Coastguard Worker        smlaldxne r2, r3, r5, r8
2344*9880d681SAndroid Build Coastguard Worker
2345*9880d681SAndroid Build Coastguard Worker@ CHECK: smlald	r2, r3, r5, r8          @ encoding: [0xc5,0xfb,0xc8,0x23]
2346*9880d681SAndroid Build Coastguard Worker@ CHECK: smlaldx r2, r3, r5, r8         @ encoding: [0xc5,0xfb,0xd8,0x23]
2347*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	eq                      @ encoding: [0x0c,0xbf]
2348*9880d681SAndroid Build Coastguard Worker@ CHECK: smlaldeq	r2, r3, r5, r8  @ encoding: [0xc5,0xfb,0xc8,0x23]
2349*9880d681SAndroid Build Coastguard Worker@ CHECK: smlaldxne	r2, r3, r5, r8  @ encoding: [0xc5,0xfb,0xd8,0x23]
2350*9880d681SAndroid Build Coastguard Worker
2351*9880d681SAndroid Build Coastguard Worker
2352*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2353*9880d681SAndroid Build Coastguard Worker@ SMLAWB/SMLAWT
2354*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2355*9880d681SAndroid Build Coastguard Worker        smlawb r2, r3, r10, r8
2356*9880d681SAndroid Build Coastguard Worker        smlawt r8, r3, r5, r9
2357*9880d681SAndroid Build Coastguard Worker        ite eq
2358*9880d681SAndroid Build Coastguard Worker        smlawbeq r2, r7, r5, r8
2359*9880d681SAndroid Build Coastguard Worker        smlawtne r1, r3, r0, r8
2360*9880d681SAndroid Build Coastguard Worker
2361*9880d681SAndroid Build Coastguard Worker@ CHECK: smlawb	r2, r3, r10, r8         @ encoding: [0x33,0xfb,0x0a,0x82]
2362*9880d681SAndroid Build Coastguard Worker@ CHECK: smlawt	r8, r3, r5, r9          @ encoding: [0x33,0xfb,0x15,0x98]
2363*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	eq                      @ encoding: [0x0c,0xbf]
2364*9880d681SAndroid Build Coastguard Worker@ CHECK: smlawbeq	r2, r7, r5, r8  @ encoding: [0x37,0xfb,0x05,0x82]
2365*9880d681SAndroid Build Coastguard Worker@ CHECK: smlawtne	r1, r3, r0, r8  @ encoding: [0x33,0xfb,0x10,0x81]
2366*9880d681SAndroid Build Coastguard Worker
2367*9880d681SAndroid Build Coastguard Worker
2368*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2369*9880d681SAndroid Build Coastguard Worker@ SMLSD/SMLSDX
2370*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2371*9880d681SAndroid Build Coastguard Worker        smlsd r2, r3, r5, r8
2372*9880d681SAndroid Build Coastguard Worker        smlsdx r2, r3, r5, r8
2373*9880d681SAndroid Build Coastguard Worker        ite le
2374*9880d681SAndroid Build Coastguard Worker        smlsdle r2, r3, r5, r8
2375*9880d681SAndroid Build Coastguard Worker        smlsdxgt r2, r3, r5, r8
2376*9880d681SAndroid Build Coastguard Worker
2377*9880d681SAndroid Build Coastguard Worker@ CHECK: smlsd	r2, r3, r5, r8          @ encoding: [0x43,0xfb,0x05,0x82]
2378*9880d681SAndroid Build Coastguard Worker@ CHECK: smlsdx	r2, r3, r5, r8          @ encoding: [0x43,0xfb,0x15,0x82]
2379*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	le                      @ encoding: [0xd4,0xbf]
2380*9880d681SAndroid Build Coastguard Worker@ CHECK: smlsdle	r2, r3, r5, r8  @ encoding: [0x43,0xfb,0x05,0x82]
2381*9880d681SAndroid Build Coastguard Worker@ CHECK: smlsdxgt	r2, r3, r5, r8  @ encoding: [0x43,0xfb,0x15,0x82]
2382*9880d681SAndroid Build Coastguard Worker
2383*9880d681SAndroid Build Coastguard Worker
2384*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2385*9880d681SAndroid Build Coastguard Worker@ SMLSLD/SMLSLDX
2386*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2387*9880d681SAndroid Build Coastguard Worker        smlsld r2, r9, r5, r1
2388*9880d681SAndroid Build Coastguard Worker        smlsldx r4, r11, r2, r8
2389*9880d681SAndroid Build Coastguard Worker        ite ge
2390*9880d681SAndroid Build Coastguard Worker        smlsldge r8, r2, r5, r6
2391*9880d681SAndroid Build Coastguard Worker        smlsldxlt r1, r0, r3, r8
2392*9880d681SAndroid Build Coastguard Worker
2393*9880d681SAndroid Build Coastguard Worker@ CHECK: smlsld	r2, r9, r5, r1          @ encoding: [0xd5,0xfb,0xc1,0x29]
2394*9880d681SAndroid Build Coastguard Worker@ CHECK: smlsldx	r4, r11, r2, r8 @ encoding: [0xd2,0xfb,0xd8,0x4b]
2395*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	ge                      @ encoding: [0xac,0xbf]
2396*9880d681SAndroid Build Coastguard Worker@ CHECK: smlsldge	r8, r2, r5, r6  @ encoding: [0xd5,0xfb,0xc6,0x82]
2397*9880d681SAndroid Build Coastguard Worker@ CHECK: smlsldxlt	r1, r0, r3, r8  @ encoding: [0xd3,0xfb,0xd8,0x10]
2398*9880d681SAndroid Build Coastguard Worker
2399*9880d681SAndroid Build Coastguard Worker
2400*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2401*9880d681SAndroid Build Coastguard Worker@ SMMLA/SMMLAR
2402*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2403*9880d681SAndroid Build Coastguard Worker        smmla r1, r2, r3, r4
2404*9880d681SAndroid Build Coastguard Worker        smmlar r4, r3, r2, r1
2405*9880d681SAndroid Build Coastguard Worker        ite lo
2406*9880d681SAndroid Build Coastguard Worker        smmlalo r1, r2, r3, r4
2407*9880d681SAndroid Build Coastguard Worker        smmlarcs r4, r3, r2, r1
2408*9880d681SAndroid Build Coastguard Worker
2409*9880d681SAndroid Build Coastguard Worker@ CHECK: smmla	r1, r2, r3, r4          @ encoding: [0x52,0xfb,0x03,0x41]
2410*9880d681SAndroid Build Coastguard Worker@ CHECK: smmlar	r4, r3, r2, r1          @ encoding: [0x53,0xfb,0x12,0x14]
2411*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	lo                      @ encoding: [0x34,0xbf]
2412*9880d681SAndroid Build Coastguard Worker@ CHECK: smmlalo	r1, r2, r3, r4  @ encoding: [0x52,0xfb,0x03,0x41]
2413*9880d681SAndroid Build Coastguard Worker@ CHECK: smmlarhs	r4, r3, r2, r1  @ encoding: [0x53,0xfb,0x12,0x14]
2414*9880d681SAndroid Build Coastguard Worker
2415*9880d681SAndroid Build Coastguard Worker
2416*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2417*9880d681SAndroid Build Coastguard Worker@ SMMLS/SMMLSR
2418*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2419*9880d681SAndroid Build Coastguard Worker        smmls r1, r2, r3, r4
2420*9880d681SAndroid Build Coastguard Worker        smmlsr r4, r3, r2, r1
2421*9880d681SAndroid Build Coastguard Worker        ite lo
2422*9880d681SAndroid Build Coastguard Worker        smmlslo r1, r2, r3, r4
2423*9880d681SAndroid Build Coastguard Worker        smmlsrcs r4, r3, r2, r1
2424*9880d681SAndroid Build Coastguard Worker
2425*9880d681SAndroid Build Coastguard Worker@ CHECK: smmls	r1, r2, r3, r4          @ encoding: [0x62,0xfb,0x03,0x41]
2426*9880d681SAndroid Build Coastguard Worker@ CHECK: smmlsr	r4, r3, r2, r1          @ encoding: [0x63,0xfb,0x12,0x14]
2427*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	lo                      @ encoding: [0x34,0xbf]
2428*9880d681SAndroid Build Coastguard Worker@ CHECK: smmlslo	r1, r2, r3, r4  @ encoding: [0x62,0xfb,0x03,0x41]
2429*9880d681SAndroid Build Coastguard Worker@ CHECK: smmlsrhs	r4, r3, r2, r1  @ encoding: [0x63,0xfb,0x12,0x14]
2430*9880d681SAndroid Build Coastguard Worker
2431*9880d681SAndroid Build Coastguard Worker
2432*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2433*9880d681SAndroid Build Coastguard Worker@ SMMUL/SMMULR
2434*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2435*9880d681SAndroid Build Coastguard Worker        smmul r2, r3, r4
2436*9880d681SAndroid Build Coastguard Worker        smmulr r3, r2, r1
2437*9880d681SAndroid Build Coastguard Worker        ite cc
2438*9880d681SAndroid Build Coastguard Worker        smmulcc r2, r3, r4
2439*9880d681SAndroid Build Coastguard Worker        smmulrhs r3, r2, r1
2440*9880d681SAndroid Build Coastguard Worker
2441*9880d681SAndroid Build Coastguard Worker@ CHECK: smmul	r2, r3, r4              @ encoding: [0x53,0xfb,0x04,0xf2]
2442*9880d681SAndroid Build Coastguard Worker@ CHECK: smmulr	r3, r2, r1              @ encoding: [0x52,0xfb,0x11,0xf3]
2443*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	lo                      @ encoding: [0x34,0xbf]
2444*9880d681SAndroid Build Coastguard Worker@ CHECK: smmullo	r2, r3, r4      @ encoding: [0x53,0xfb,0x04,0xf2]
2445*9880d681SAndroid Build Coastguard Worker@ CHECK: smmulrhs	r3, r2, r1      @ encoding: [0x52,0xfb,0x11,0xf3]
2446*9880d681SAndroid Build Coastguard Worker
2447*9880d681SAndroid Build Coastguard Worker
2448*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2449*9880d681SAndroid Build Coastguard Worker@ SMUAD/SMUADX
2450*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2451*9880d681SAndroid Build Coastguard Worker        smuad r2, r3, r4
2452*9880d681SAndroid Build Coastguard Worker        smuadx r3, r2, r1
2453*9880d681SAndroid Build Coastguard Worker        ite lt
2454*9880d681SAndroid Build Coastguard Worker        smuadlt r2, r3, r4
2455*9880d681SAndroid Build Coastguard Worker        smuadxge r3, r2, r1
2456*9880d681SAndroid Build Coastguard Worker
2457*9880d681SAndroid Build Coastguard Worker@ CHECK: smuad	r2, r3, r4              @ encoding: [0x23,0xfb,0x04,0xf2]
2458*9880d681SAndroid Build Coastguard Worker@ CHECK: smuadx	r3, r2, r1              @ encoding: [0x22,0xfb,0x11,0xf3]
2459*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	lt                      @ encoding: [0xb4,0xbf]
2460*9880d681SAndroid Build Coastguard Worker@ CHECK: smuadlt	r2, r3, r4      @ encoding: [0x23,0xfb,0x04,0xf2]
2461*9880d681SAndroid Build Coastguard Worker@ CHECK: smuadxge	r3, r2, r1      @ encoding: [0x22,0xfb,0x11,0xf3]
2462*9880d681SAndroid Build Coastguard Worker
2463*9880d681SAndroid Build Coastguard Worker
2464*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2465*9880d681SAndroid Build Coastguard Worker@ SMULBB/SMULBT/SMULTB/SMULTT
2466*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2467*9880d681SAndroid Build Coastguard Worker        smulbb r3, r9, r0
2468*9880d681SAndroid Build Coastguard Worker        smulbt r5, r4, r1
2469*9880d681SAndroid Build Coastguard Worker        smultb r4, r2, r2
2470*9880d681SAndroid Build Coastguard Worker        smultt r8, r3, r4
2471*9880d681SAndroid Build Coastguard Worker        itete ge
2472*9880d681SAndroid Build Coastguard Worker        smulbbge r1, r9, r0
2473*9880d681SAndroid Build Coastguard Worker        smulbtlt r5, r6, r4
2474*9880d681SAndroid Build Coastguard Worker        smultbge r2, r3, r2
2475*9880d681SAndroid Build Coastguard Worker        smulttlt r8, r3, r4
2476*9880d681SAndroid Build Coastguard Worker
2477*9880d681SAndroid Build Coastguard Worker@ CHECK: smulbb	r3, r9, r0              @ encoding: [0x19,0xfb,0x00,0xf3]
2478*9880d681SAndroid Build Coastguard Worker@ CHECK: smulbt	r5, r4, r1              @ encoding: [0x14,0xfb,0x11,0xf5]
2479*9880d681SAndroid Build Coastguard Worker@ CHECK: smultb	r4, r2, r2              @ encoding: [0x12,0xfb,0x22,0xf4]
2480*9880d681SAndroid Build Coastguard Worker@ CHECK: smultt	r8, r3, r4              @ encoding: [0x13,0xfb,0x34,0xf8]
2481*9880d681SAndroid Build Coastguard Worker@ CHECK: itete	ge                      @ encoding: [0xab,0xbf]
2482*9880d681SAndroid Build Coastguard Worker@ CHECK: smulbbge	r1, r9, r0      @ encoding: [0x19,0xfb,0x00,0xf1]
2483*9880d681SAndroid Build Coastguard Worker@ CHECK: smulbtlt	r5, r6, r4      @ encoding: [0x16,0xfb,0x14,0xf5]
2484*9880d681SAndroid Build Coastguard Worker@ CHECK: smultbge	r2, r3, r2      @ encoding: [0x13,0xfb,0x22,0xf2]
2485*9880d681SAndroid Build Coastguard Worker@ CHECK: smulttlt	r8, r3, r4      @ encoding: [0x13,0xfb,0x34,0xf8]
2486*9880d681SAndroid Build Coastguard Worker
2487*9880d681SAndroid Build Coastguard Worker
2488*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2489*9880d681SAndroid Build Coastguard Worker@ SMULL
2490*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2491*9880d681SAndroid Build Coastguard Worker        smull r3, r9, r0, r1
2492*9880d681SAndroid Build Coastguard Worker        it eq
2493*9880d681SAndroid Build Coastguard Worker        smulleq r8, r3, r4, r5
2494*9880d681SAndroid Build Coastguard Worker
2495*9880d681SAndroid Build Coastguard Worker@ CHECK: smull	r3, r9, r0, r1          @ encoding: [0x80,0xfb,0x01,0x39]
2496*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                      @ encoding: [0x08,0xbf]
2497*9880d681SAndroid Build Coastguard Worker@ CHECK: smulleq r8, r3, r4, r5         @ encoding: [0x84,0xfb,0x05,0x83]
2498*9880d681SAndroid Build Coastguard Worker
2499*9880d681SAndroid Build Coastguard Worker
2500*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2501*9880d681SAndroid Build Coastguard Worker@ SMULWB/SMULWT
2502*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2503*9880d681SAndroid Build Coastguard Worker        smulwb r3, r9, r0
2504*9880d681SAndroid Build Coastguard Worker        smulwt r3, r9, r2
2505*9880d681SAndroid Build Coastguard Worker        ite gt
2506*9880d681SAndroid Build Coastguard Worker        smulwbgt r3, r9, r0
2507*9880d681SAndroid Build Coastguard Worker        smulwtle r3, r9, r2
2508*9880d681SAndroid Build Coastguard Worker
2509*9880d681SAndroid Build Coastguard Worker@ CHECK: smulwb	r3, r9, r0              @ encoding: [0x39,0xfb,0x00,0xf3]
2510*9880d681SAndroid Build Coastguard Worker@ CHECK: smulwt	r3, r9, r2              @ encoding: [0x39,0xfb,0x12,0xf3]
2511*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
2512*9880d681SAndroid Build Coastguard Worker@ CHECK: smulwbgt	r3, r9, r0      @ encoding: [0x39,0xfb,0x00,0xf3]
2513*9880d681SAndroid Build Coastguard Worker@ CHECK: smulwtle	r3, r9, r2      @ encoding: [0x39,0xfb,0x12,0xf3]
2514*9880d681SAndroid Build Coastguard Worker
2515*9880d681SAndroid Build Coastguard Worker
2516*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2517*9880d681SAndroid Build Coastguard Worker@ SMUSD/SMUSDX
2518*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2519*9880d681SAndroid Build Coastguard Worker        smusd r3, r0, r1
2520*9880d681SAndroid Build Coastguard Worker        smusdx r3, r9, r2
2521*9880d681SAndroid Build Coastguard Worker        ite eq
2522*9880d681SAndroid Build Coastguard Worker        smusdeq r8, r3, r2
2523*9880d681SAndroid Build Coastguard Worker        smusdxne r7, r4, r3
2524*9880d681SAndroid Build Coastguard Worker
2525*9880d681SAndroid Build Coastguard Worker@ CHECK: smusd	r3, r0, r1              @ encoding: [0x40,0xfb,0x01,0xf3]
2526*9880d681SAndroid Build Coastguard Worker@ CHECK: smusdx	r3, r9, r2              @ encoding: [0x49,0xfb,0x12,0xf3]
2527*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	eq                      @ encoding: [0x0c,0xbf]
2528*9880d681SAndroid Build Coastguard Worker@ CHECK: smusdeq	r8, r3, r2      @ encoding: [0x43,0xfb,0x02,0xf8]
2529*9880d681SAndroid Build Coastguard Worker@ CHECK: smusdxne	r7, r4, r3      @ encoding: [0x44,0xfb,0x13,0xf7]
2530*9880d681SAndroid Build Coastguard Worker
2531*9880d681SAndroid Build Coastguard Worker
2532*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2533*9880d681SAndroid Build Coastguard Worker@ SRS
2534*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2535*9880d681SAndroid Build Coastguard Worker        srsdb sp, #1
2536*9880d681SAndroid Build Coastguard Worker        srsia sp, #0
2537*9880d681SAndroid Build Coastguard Worker
2538*9880d681SAndroid Build Coastguard Worker        srsdb sp!, #19
2539*9880d681SAndroid Build Coastguard Worker        srsia sp!, #2
2540*9880d681SAndroid Build Coastguard Worker
2541*9880d681SAndroid Build Coastguard Worker        srsea sp, #10
2542*9880d681SAndroid Build Coastguard Worker        srsfd sp, #9
2543*9880d681SAndroid Build Coastguard Worker
2544*9880d681SAndroid Build Coastguard Worker        srsea sp!, #5
2545*9880d681SAndroid Build Coastguard Worker        srsfd sp!, #5
2546*9880d681SAndroid Build Coastguard Worker
2547*9880d681SAndroid Build Coastguard Worker        srs sp, #5
2548*9880d681SAndroid Build Coastguard Worker        srs sp!, #5
2549*9880d681SAndroid Build Coastguard Worker
2550*9880d681SAndroid Build Coastguard Worker@ CHECK: srsdb	sp, #1                  @ encoding: [0x0d,0xe8,0x01,0xc0]
2551*9880d681SAndroid Build Coastguard Worker@ CHECK: srsia	sp, #0                  @ encoding: [0x8d,0xe9,0x00,0xc0]
2552*9880d681SAndroid Build Coastguard Worker@ CHECK: srsdb	sp!, #19                @ encoding: [0x2d,0xe8,0x13,0xc0]
2553*9880d681SAndroid Build Coastguard Worker@ CHECK: srsia	sp!, #2                 @ encoding: [0xad,0xe9,0x02,0xc0]
2554*9880d681SAndroid Build Coastguard Worker@ CHECK: srsia	sp, #10                 @ encoding: [0x8d,0xe9,0x0a,0xc0]
2555*9880d681SAndroid Build Coastguard Worker@ CHECK: srsdb	sp, #9                  @ encoding: [0x0d,0xe8,0x09,0xc0]
2556*9880d681SAndroid Build Coastguard Worker@ CHECK: srsia	sp!, #5                 @ encoding: [0xad,0xe9,0x05,0xc0]
2557*9880d681SAndroid Build Coastguard Worker@ CHECK: srsdb	sp!, #5                 @ encoding: [0x2d,0xe8,0x05,0xc0]
2558*9880d681SAndroid Build Coastguard Worker@ CHECK: srsia	sp, #5                  @ encoding: [0x8d,0xe9,0x05,0xc0]
2559*9880d681SAndroid Build Coastguard Worker@ CHECK: srsia	sp!, #5                 @ encoding: [0xad,0xe9,0x05,0xc0]
2560*9880d681SAndroid Build Coastguard Worker
2561*9880d681SAndroid Build Coastguard Worker        srsdb #1
2562*9880d681SAndroid Build Coastguard Worker        srsia #0
2563*9880d681SAndroid Build Coastguard Worker
2564*9880d681SAndroid Build Coastguard Worker        srsdb #19!
2565*9880d681SAndroid Build Coastguard Worker        srsia #2!
2566*9880d681SAndroid Build Coastguard Worker
2567*9880d681SAndroid Build Coastguard Worker        srsea #10
2568*9880d681SAndroid Build Coastguard Worker        srsfd #9
2569*9880d681SAndroid Build Coastguard Worker
2570*9880d681SAndroid Build Coastguard Worker        srsea #5!
2571*9880d681SAndroid Build Coastguard Worker        srsfd #5!
2572*9880d681SAndroid Build Coastguard Worker
2573*9880d681SAndroid Build Coastguard Worker        srs #5
2574*9880d681SAndroid Build Coastguard Worker        srs #5!
2575*9880d681SAndroid Build Coastguard Worker
2576*9880d681SAndroid Build Coastguard Worker@ CHECK: srsdb	sp, #1                  @ encoding: [0x0d,0xe8,0x01,0xc0]
2577*9880d681SAndroid Build Coastguard Worker@ CHECK: srsia	sp, #0                  @ encoding: [0x8d,0xe9,0x00,0xc0]
2578*9880d681SAndroid Build Coastguard Worker@ CHECK: srsdb	sp!, #19                @ encoding: [0x2d,0xe8,0x13,0xc0]
2579*9880d681SAndroid Build Coastguard Worker@ CHECK: srsia	sp!, #2                 @ encoding: [0xad,0xe9,0x02,0xc0]
2580*9880d681SAndroid Build Coastguard Worker@ CHECK: srsia	sp, #10                 @ encoding: [0x8d,0xe9,0x0a,0xc0]
2581*9880d681SAndroid Build Coastguard Worker@ CHECK: srsdb	sp, #9                  @ encoding: [0x0d,0xe8,0x09,0xc0]
2582*9880d681SAndroid Build Coastguard Worker@ CHECK: srsia	sp!, #5                 @ encoding: [0xad,0xe9,0x05,0xc0]
2583*9880d681SAndroid Build Coastguard Worker@ CHECK: srsdb	sp!, #5                 @ encoding: [0x2d,0xe8,0x05,0xc0]
2584*9880d681SAndroid Build Coastguard Worker@ CHECK: srsia	sp, #5                  @ encoding: [0x8d,0xe9,0x05,0xc0]
2585*9880d681SAndroid Build Coastguard Worker@ CHECK: srsia	sp!, #5                 @ encoding: [0xad,0xe9,0x05,0xc0]
2586*9880d681SAndroid Build Coastguard Worker
2587*9880d681SAndroid Build Coastguard Worker
2588*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2589*9880d681SAndroid Build Coastguard Worker@ SSAT
2590*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2591*9880d681SAndroid Build Coastguard Worker        ssat	r8, #1, r10
2592*9880d681SAndroid Build Coastguard Worker        ssat	r8, #1, r10, lsl #0
2593*9880d681SAndroid Build Coastguard Worker        ssat	r8, #1, r10, lsl #31
2594*9880d681SAndroid Build Coastguard Worker        ssat	r8, #1, r10, asr #1
2595*9880d681SAndroid Build Coastguard Worker
2596*9880d681SAndroid Build Coastguard Worker@ CHECK: ssat	r8, #1, r10             @ encoding: [0x0a,0xf3,0x00,0x08]
2597*9880d681SAndroid Build Coastguard Worker@ CHECK: ssat	r8, #1, r10             @ encoding: [0x0a,0xf3,0x00,0x08]
2598*9880d681SAndroid Build Coastguard Worker@ CHECK: ssat	r8, #1, r10, lsl #31    @ encoding: [0x0a,0xf3,0xc0,0x78]
2599*9880d681SAndroid Build Coastguard Worker@ CHECK: ssat	r8, #1, r10, asr #1     @ encoding: [0x2a,0xf3,0x40,0x08]
2600*9880d681SAndroid Build Coastguard Worker
2601*9880d681SAndroid Build Coastguard Worker
2602*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2603*9880d681SAndroid Build Coastguard Worker@ SSAT16
2604*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2605*9880d681SAndroid Build Coastguard Worker        ssat16	r2, #1, r7
2606*9880d681SAndroid Build Coastguard Worker        ssat16	r3, #16, r5
2607*9880d681SAndroid Build Coastguard Worker
2608*9880d681SAndroid Build Coastguard Worker@ CHECK: ssat16	r2, #1, r7              @ encoding: [0x27,0xf3,0x00,0x02]
2609*9880d681SAndroid Build Coastguard Worker@ CHECK: ssat16	r3, #16, r5             @ encoding: [0x25,0xf3,0x0f,0x03]
2610*9880d681SAndroid Build Coastguard Worker
2611*9880d681SAndroid Build Coastguard Worker
2612*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2613*9880d681SAndroid Build Coastguard Worker@ SSAX
2614*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2615*9880d681SAndroid Build Coastguard Worker        ssubaddx r2, r3, r4
2616*9880d681SAndroid Build Coastguard Worker        it lt
2617*9880d681SAndroid Build Coastguard Worker        ssubaddxlt r2, r3, r4
2618*9880d681SAndroid Build Coastguard Worker        ssax r2, r3, r4
2619*9880d681SAndroid Build Coastguard Worker        it lt
2620*9880d681SAndroid Build Coastguard Worker        ssaxlt r2, r3, r4
2621*9880d681SAndroid Build Coastguard Worker
2622*9880d681SAndroid Build Coastguard Worker@ CHECK: ssax	r2, r3, r4              @ encoding: [0xe3,0xfa,0x04,0xf2]
2623*9880d681SAndroid Build Coastguard Worker@ CHECK: it	lt                      @ encoding: [0xb8,0xbf]
2624*9880d681SAndroid Build Coastguard Worker@ CHECK: ssaxlt	r2, r3, r4              @ encoding: [0xe3,0xfa,0x04,0xf2]
2625*9880d681SAndroid Build Coastguard Worker@ CHECK: ssax	r2, r3, r4              @ encoding: [0xe3,0xfa,0x04,0xf2]
2626*9880d681SAndroid Build Coastguard Worker@ CHECK: it	lt                      @ encoding: [0xb8,0xbf]
2627*9880d681SAndroid Build Coastguard Worker@ CHECK: ssaxlt	r2, r3, r4              @ encoding: [0xe3,0xfa,0x04,0xf2]
2628*9880d681SAndroid Build Coastguard Worker
2629*9880d681SAndroid Build Coastguard Worker
2630*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2631*9880d681SAndroid Build Coastguard Worker@ SSUB16/SSUB8
2632*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2633*9880d681SAndroid Build Coastguard Worker        ssub16 r1, r0, r6
2634*9880d681SAndroid Build Coastguard Worker        ssub8 r9, r2, r4
2635*9880d681SAndroid Build Coastguard Worker        ite ne
2636*9880d681SAndroid Build Coastguard Worker        ssub16ne r5, r3, r2
2637*9880d681SAndroid Build Coastguard Worker        ssub8eq r5, r1, r2
2638*9880d681SAndroid Build Coastguard Worker
2639*9880d681SAndroid Build Coastguard Worker@ CHECK: ssub16	r1, r0, r6              @ encoding: [0xd0,0xfa,0x06,0xf1]
2640*9880d681SAndroid Build Coastguard Worker@ CHECK: ssub8	r9, r2, r4              @ encoding: [0xc2,0xfa,0x04,0xf9]
2641*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	ne                      @ encoding: [0x14,0xbf]
2642*9880d681SAndroid Build Coastguard Worker@ CHECK: ssub16ne	r5, r3, r2      @ encoding: [0xd3,0xfa,0x02,0xf5]
2643*9880d681SAndroid Build Coastguard Worker@ CHECK: ssub8eq	r5, r1, r2      @ encoding: [0xc1,0xfa,0x02,0xf5]
2644*9880d681SAndroid Build Coastguard Worker
2645*9880d681SAndroid Build Coastguard Worker
2646*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2647*9880d681SAndroid Build Coastguard Worker@ STC{L}/STC2{L}
2648*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2649*9880d681SAndroid Build Coastguard Worker        stc2 p0, c8, [r1, #4]
2650*9880d681SAndroid Build Coastguard Worker        stc2 p1, c7, [r2]
2651*9880d681SAndroid Build Coastguard Worker        stc2 p2, c6, [r3, #-224]
2652*9880d681SAndroid Build Coastguard Worker        stc2 p3, c5, [r4, #-120]!
2653*9880d681SAndroid Build Coastguard Worker        stc2 p4, c4, [r5], #16
2654*9880d681SAndroid Build Coastguard Worker        stc2 p5, c3, [r6], #-72
2655*9880d681SAndroid Build Coastguard Worker        stc2l p6, c2, [r7, #4]
2656*9880d681SAndroid Build Coastguard Worker        stc2l p7, c1, [r8]
2657*9880d681SAndroid Build Coastguard Worker        stc2l p8, c0, [r9, #-224]
2658*9880d681SAndroid Build Coastguard Worker        stc2l p9, c1, [r10, #-120]!
2659*9880d681SAndroid Build Coastguard Worker        stc2l p0, c2, [r11], #16
2660*9880d681SAndroid Build Coastguard Worker        stc2l p1, c3, [r12], #-72
2661*9880d681SAndroid Build Coastguard Worker
2662*9880d681SAndroid Build Coastguard Worker        stc p12, c4, [r0, #4]
2663*9880d681SAndroid Build Coastguard Worker        stc p13, c5, [r1]
2664*9880d681SAndroid Build Coastguard Worker        stc p14, c6, [r2, #-224]
2665*9880d681SAndroid Build Coastguard Worker        stc p15, c7, [r3, #-120]!
2666*9880d681SAndroid Build Coastguard Worker        stc p5, c8, [r4], #16
2667*9880d681SAndroid Build Coastguard Worker        stc p4, c9, [r5], #-72
2668*9880d681SAndroid Build Coastguard Worker        stcl p3, c10, [r6, #4]
2669*9880d681SAndroid Build Coastguard Worker        stcl p2, c11, [r7]
2670*9880d681SAndroid Build Coastguard Worker        stcl p1, c12, [r8, #-224]
2671*9880d681SAndroid Build Coastguard Worker        stcl p0, c13, [r9, #-120]!
2672*9880d681SAndroid Build Coastguard Worker        stcl p6, c14, [r10], #16
2673*9880d681SAndroid Build Coastguard Worker        stcl p7, c15, [r11], #-72
2674*9880d681SAndroid Build Coastguard Worker
2675*9880d681SAndroid Build Coastguard Worker        stc2 p2, c8, [r1], { 25 }
2676*9880d681SAndroid Build Coastguard Worker
2677*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2	p0, c8, [r1, #4]        @ encoding: [0x81,0xfd,0x01,0x80]
2678*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2	p1, c7, [r2]            @ encoding: [0x82,0xfd,0x00,0x71]
2679*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2	p2, c6, [r3, #-224]     @ encoding: [0x03,0xfd,0x38,0x62]
2680*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2	p3, c5, [r4, #-120]!    @ encoding: [0x24,0xfd,0x1e,0x53]
2681*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2	p4, c4, [r5], #16       @ encoding: [0xa5,0xfc,0x04,0x44]
2682*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2	p5, c3, [r6], #-72      @ encoding: [0x26,0xfc,0x12,0x35]
2683*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2l	p6, c2, [r7, #4]        @ encoding: [0xc7,0xfd,0x01,0x26]
2684*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2l	p7, c1, [r8]            @ encoding: [0xc8,0xfd,0x00,0x17]
2685*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2l	p8, c0, [r9, #-224]     @ encoding: [0x49,0xfd,0x38,0x08]
2686*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2l	p9, c1, [r10, #-120]!   @ encoding: [0x6a,0xfd,0x1e,0x19]
2687*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2l	p0, c2, [r11], #16      @ encoding: [0xeb,0xfc,0x04,0x20]
2688*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2l	p1, c3, [r12], #-72     @ encoding: [0x6c,0xfc,0x12,0x31]
2689*9880d681SAndroid Build Coastguard Worker
2690*9880d681SAndroid Build Coastguard Worker@ CHECK: stc	p12, c4, [r0, #4]       @ encoding: [0x80,0xed,0x01,0x4c]
2691*9880d681SAndroid Build Coastguard Worker@ CHECK: stc	p13, c5, [r1]           @ encoding: [0x81,0xed,0x00,0x5d]
2692*9880d681SAndroid Build Coastguard Worker@ CHECK: stc	p14, c6, [r2, #-224]    @ encoding: [0x02,0xed,0x38,0x6e]
2693*9880d681SAndroid Build Coastguard Worker@ CHECK: stc	p15, c7, [r3, #-120]!   @ encoding: [0x23,0xed,0x1e,0x7f]
2694*9880d681SAndroid Build Coastguard Worker@ CHECK: stc	p5, c8, [r4], #16       @ encoding: [0xa4,0xec,0x04,0x85]
2695*9880d681SAndroid Build Coastguard Worker@ CHECK: stc	p4, c9, [r5], #-72      @ encoding: [0x25,0xec,0x12,0x94]
2696*9880d681SAndroid Build Coastguard Worker@ CHECK: stcl	p3, c10, [r6, #4]       @ encoding: [0xc6,0xed,0x01,0xa3]
2697*9880d681SAndroid Build Coastguard Worker@ CHECK: stcl	p2, c11, [r7]           @ encoding: [0xc7,0xed,0x00,0xb2]
2698*9880d681SAndroid Build Coastguard Worker@ CHECK: stcl	p1, c12, [r8, #-224]    @ encoding: [0x48,0xed,0x38,0xc1]
2699*9880d681SAndroid Build Coastguard Worker@ CHECK: stcl	p0, c13, [r9, #-120]!   @ encoding: [0x69,0xed,0x1e,0xd0]
2700*9880d681SAndroid Build Coastguard Worker@ CHECK: stcl	p6, c14, [r10], #16     @ encoding: [0xea,0xec,0x04,0xe6]
2701*9880d681SAndroid Build Coastguard Worker@ CHECK: stcl	p7, c15, [r11], #-72    @ encoding: [0x6b,0xec,0x12,0xf7]
2702*9880d681SAndroid Build Coastguard Worker
2703*9880d681SAndroid Build Coastguard Worker@ CHECK: stc2	p2, c8, [r1], {25}      @ encoding: [0x81,0xfc,0x19,0x82]
2704*9880d681SAndroid Build Coastguard Worker
2705*9880d681SAndroid Build Coastguard Worker
2706*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2707*9880d681SAndroid Build Coastguard Worker@ STMIA
2708*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2709*9880d681SAndroid Build Coastguard Worker        stmia.w r4, {r4, r5, r8, r9}
2710*9880d681SAndroid Build Coastguard Worker        stmia.w r4, {r5, r6}
2711*9880d681SAndroid Build Coastguard Worker        stmia.w r5!, {r3, r8}
2712*9880d681SAndroid Build Coastguard Worker        stm.w r4, {r4, r5, r8, r9}
2713*9880d681SAndroid Build Coastguard Worker        stm.w r4, {r5, r6}
2714*9880d681SAndroid Build Coastguard Worker        stm.w r5!, {r3, r8}
2715*9880d681SAndroid Build Coastguard Worker        stm.w r5!, {r1, r2}
2716*9880d681SAndroid Build Coastguard Worker        stm.w r2, {r1, r2}
2717*9880d681SAndroid Build Coastguard Worker
2718*9880d681SAndroid Build Coastguard Worker        stmia r4, {r4, r5, r8, r9}
2719*9880d681SAndroid Build Coastguard Worker        stmia r4, {r5, r6}
2720*9880d681SAndroid Build Coastguard Worker        stmia r5!, {r3, r8}
2721*9880d681SAndroid Build Coastguard Worker        stm r4, {r4, r5, r8, r9}
2722*9880d681SAndroid Build Coastguard Worker        stm r4, {r5, r6}
2723*9880d681SAndroid Build Coastguard Worker        stm r5!, {r3, r8}
2724*9880d681SAndroid Build Coastguard Worker        stmea r5!, {r3, r8}
2725*9880d681SAndroid Build Coastguard Worker
2726*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x84,0xe8,0x30,0x03]
2727*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r4, {r5, r6}            @ encoding: [0x84,0xe8,0x60,0x00]
2728*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r5!, {r3, r8}           @ encoding: [0xa5,0xe8,0x08,0x01]
2729*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x84,0xe8,0x30,0x03]
2730*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r4, {r5, r6}            @ encoding: [0x84,0xe8,0x60,0x00]
2731*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r5!, {r3, r8}           @ encoding: [0xa5,0xe8,0x08,0x01]
2732*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r5!, {r1, r2}           @ encoding: [0xa5,0xe8,0x06,0x00]
2733*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r2, {r1, r2}            @ encoding: [0x82,0xe8,0x06,0x00]
2734*9880d681SAndroid Build Coastguard Worker
2735*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x84,0xe8,0x30,0x03]
2736*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r4, {r5, r6}            @ encoding: [0x84,0xe8,0x60,0x00]
2737*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r5!, {r3, r8}           @ encoding: [0xa5,0xe8,0x08,0x01]
2738*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r4, {r4, r5, r8, r9}    @ encoding: [0x84,0xe8,0x30,0x03]
2739*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r4, {r5, r6}            @ encoding: [0x84,0xe8,0x60,0x00]
2740*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r5!, {r3, r8}           @ encoding: [0xa5,0xe8,0x08,0x01]
2741*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r5!, {r3, r8}           @ encoding: [0xa5,0xe8,0x08,0x01]
2742*9880d681SAndroid Build Coastguard Worker
2743*9880d681SAndroid Build Coastguard Worker
2744*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2745*9880d681SAndroid Build Coastguard Worker@ STMDB
2746*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2747*9880d681SAndroid Build Coastguard Worker        stmdb r4, {r4, r5, r8, r9}
2748*9880d681SAndroid Build Coastguard Worker        stmdb r4, {r5, r6}
2749*9880d681SAndroid Build Coastguard Worker        stmdb r5!, {r3, r8}
2750*9880d681SAndroid Build Coastguard Worker        stmea r5!, {r3, r8}
2751*9880d681SAndroid Build Coastguard Worker        stmdb.w r5, {r0, r1}
2752*9880d681SAndroid Build Coastguard Worker
2753*9880d681SAndroid Build Coastguard Worker@ CHECK: stmdb	r4, {r4, r5, r8, r9}    @ encoding: [0x04,0xe9,0x30,0x03]
2754*9880d681SAndroid Build Coastguard Worker@ CHECK: stmdb	r4, {r5, r6}            @ encoding: [0x04,0xe9,0x60,0x00]
2755*9880d681SAndroid Build Coastguard Worker@ CHECK: stmdb	r5!, {r3, r8}           @ encoding: [0x25,0xe9,0x08,0x01]
2756*9880d681SAndroid Build Coastguard Worker@ CHECK: stm.w	r5!, {r3, r8}           @ encoding: [0xa5,0xe8,0x08,0x01]
2757*9880d681SAndroid Build Coastguard Worker@ CHECK: stmdb	r5, {r0, r1}            @ encoding: [0x05,0xe9,0x03,0x00]
2758*9880d681SAndroid Build Coastguard Worker
2759*9880d681SAndroid Build Coastguard Worker
2760*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2761*9880d681SAndroid Build Coastguard Worker@ STR(immediate)
2762*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2763*9880d681SAndroid Build Coastguard Worker        str r5, [r5, #-4]
2764*9880d681SAndroid Build Coastguard Worker        str r5, [r6, #32]
2765*9880d681SAndroid Build Coastguard Worker        str r5, [r6, #33]
2766*9880d681SAndroid Build Coastguard Worker        str r5, [r6, #257]
2767*9880d681SAndroid Build Coastguard Worker        str.w pc, [r7, #257]
2768*9880d681SAndroid Build Coastguard Worker        str r2, [r4, #255]!
2769*9880d681SAndroid Build Coastguard Worker        str r8, [sp, #4]!
2770*9880d681SAndroid Build Coastguard Worker        str lr, [sp, #-4]!
2771*9880d681SAndroid Build Coastguard Worker        str r2, [r4], #255
2772*9880d681SAndroid Build Coastguard Worker        str r8, [sp], #4
2773*9880d681SAndroid Build Coastguard Worker        str lr, [sp], #-4
2774*9880d681SAndroid Build Coastguard Worker
2775*9880d681SAndroid Build Coastguard Worker@ CHECK: str	r5, [r5, #-4]           @ encoding: [0x45,0xf8,0x04,0x5c]
2776*9880d681SAndroid Build Coastguard Worker@ CHECK: str	r5, [r6, #32]           @ encoding: [0x35,0x62]
2777*9880d681SAndroid Build Coastguard Worker@ CHECK: str.w	r5, [r6, #33]           @ encoding: [0xc6,0xf8,0x21,0x50]
2778*9880d681SAndroid Build Coastguard Worker@ CHECK: str.w	r5, [r6, #257]          @ encoding: [0xc6,0xf8,0x01,0x51]
2779*9880d681SAndroid Build Coastguard Worker@ CHECK: str.w	pc, [r7, #257]          @ encoding: [0xc7,0xf8,0x01,0xf1]
2780*9880d681SAndroid Build Coastguard Worker@ CHECK: str	r2, [r4, #255]!         @ encoding: [0x44,0xf8,0xff,0x2f]
2781*9880d681SAndroid Build Coastguard Worker@ CHECK: str	r8, [sp, #4]!           @ encoding: [0x4d,0xf8,0x04,0x8f]
2782*9880d681SAndroid Build Coastguard Worker@ CHECK: str	lr, [sp, #-4]!          @ encoding: [0x4d,0xf8,0x04,0xed]
2783*9880d681SAndroid Build Coastguard Worker@ CHECK: str	r2, [r4], #255          @ encoding: [0x44,0xf8,0xff,0x2b]
2784*9880d681SAndroid Build Coastguard Worker@ CHECK: str	r8, [sp], #4            @ encoding: [0x4d,0xf8,0x04,0x8b]
2785*9880d681SAndroid Build Coastguard Worker@ CHECK: str	lr, [sp], #-4           @ encoding: [0x4d,0xf8,0x04,0xe9]
2786*9880d681SAndroid Build Coastguard Worker
2787*9880d681SAndroid Build Coastguard Worker
2788*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2789*9880d681SAndroid Build Coastguard Worker@ STR(register)
2790*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2791*9880d681SAndroid Build Coastguard Worker        str r1, [r8, r1]
2792*9880d681SAndroid Build Coastguard Worker        str.w r4, [r5, r2]
2793*9880d681SAndroid Build Coastguard Worker        str r6, [r0, r2, lsl #3]
2794*9880d681SAndroid Build Coastguard Worker        str r8, [r8, r2, lsl #2]
2795*9880d681SAndroid Build Coastguard Worker        str r7, [sp, r2, lsl #1]
2796*9880d681SAndroid Build Coastguard Worker        str r7, [sp, r2, lsl #0]
2797*9880d681SAndroid Build Coastguard Worker
2798*9880d681SAndroid Build Coastguard Worker@ CHECK: str.w	r1, [r8, r1]            @ encoding: [0x48,0xf8,0x01,0x10]
2799*9880d681SAndroid Build Coastguard Worker@ CHECK: str.w	r4, [r5, r2]            @ encoding: [0x45,0xf8,0x02,0x40]
2800*9880d681SAndroid Build Coastguard Worker@ CHECK: str.w	r6, [r0, r2, lsl #3]    @ encoding: [0x40,0xf8,0x32,0x60]
2801*9880d681SAndroid Build Coastguard Worker@ CHECK: str.w	r8, [r8, r2, lsl #2]    @ encoding: [0x48,0xf8,0x22,0x80]
2802*9880d681SAndroid Build Coastguard Worker@ CHECK: str.w	r7, [sp, r2, lsl #1]    @ encoding: [0x4d,0xf8,0x12,0x70]
2803*9880d681SAndroid Build Coastguard Worker@ CHECK: str.w	r7, [sp, r2]            @ encoding: [0x4d,0xf8,0x02,0x70]
2804*9880d681SAndroid Build Coastguard Worker
2805*9880d681SAndroid Build Coastguard Worker
2806*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2807*9880d681SAndroid Build Coastguard Worker@ STRB(immediate)
2808*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2809*9880d681SAndroid Build Coastguard Worker        strb r5, [r5, #-4]
2810*9880d681SAndroid Build Coastguard Worker        strb r5, [r6, #32]
2811*9880d681SAndroid Build Coastguard Worker        strb r5, [r6, #33]
2812*9880d681SAndroid Build Coastguard Worker        strb r5, [r6, #257]
2813*9880d681SAndroid Build Coastguard Worker        strb.w lr, [r7, #257]
2814*9880d681SAndroid Build Coastguard Worker        strb r5, [r8, #255]!
2815*9880d681SAndroid Build Coastguard Worker        strb r2, [r5, #4]!
2816*9880d681SAndroid Build Coastguard Worker        strb r1, [r4, #-4]!
2817*9880d681SAndroid Build Coastguard Worker        strb lr, [r3], #255
2818*9880d681SAndroid Build Coastguard Worker        strb r9, [r2], #4
2819*9880d681SAndroid Build Coastguard Worker        strb r3, [sp], #-4
2820*9880d681SAndroid Build Coastguard Worker        strb r4, [r8, #-0]!
2821*9880d681SAndroid Build Coastguard Worker        strb r1, [r0], #-0
2822*9880d681SAndroid Build Coastguard Worker
2823*9880d681SAndroid Build Coastguard Worker@ CHECK: strb	r5, [r5, #-4]           @ encoding: [0x05,0xf8,0x04,0x5c]
2824*9880d681SAndroid Build Coastguard Worker@ CHECK: strb.w	r5, [r6, #32]           @ encoding: [0x86,0xf8,0x20,0x50]
2825*9880d681SAndroid Build Coastguard Worker@ CHECK: strb.w	r5, [r6, #33]           @ encoding: [0x86,0xf8,0x21,0x50]
2826*9880d681SAndroid Build Coastguard Worker@ CHECK: strb.w	r5, [r6, #257]          @ encoding: [0x86,0xf8,0x01,0x51]
2827*9880d681SAndroid Build Coastguard Worker@ CHECK: strb.w	lr, [r7, #257]          @ encoding: [0x87,0xf8,0x01,0xe1]
2828*9880d681SAndroid Build Coastguard Worker@ CHECK: strb	r5, [r8, #255]!         @ encoding: [0x08,0xf8,0xff,0x5f]
2829*9880d681SAndroid Build Coastguard Worker@ CHECK: strb	r2, [r5, #4]!           @ encoding: [0x05,0xf8,0x04,0x2f]
2830*9880d681SAndroid Build Coastguard Worker@ CHECK: strb	r1, [r4, #-4]!          @ encoding: [0x04,0xf8,0x04,0x1d]
2831*9880d681SAndroid Build Coastguard Worker@ CHECK: strb	lr, [r3], #255          @ encoding: [0x03,0xf8,0xff,0xeb]
2832*9880d681SAndroid Build Coastguard Worker@ CHECK: strb	r9, [r2], #4            @ encoding: [0x02,0xf8,0x04,0x9b]
2833*9880d681SAndroid Build Coastguard Worker@ CHECK: strb	r3, [sp], #-4           @ encoding: [0x0d,0xf8,0x04,0x39]
2834*9880d681SAndroid Build Coastguard Worker@ CHECK: strb	r4, [r8, #-0]!          @ encoding: [0x08,0xf8,0x00,0x4d]
2835*9880d681SAndroid Build Coastguard Worker@ CHECK: strb	r1, [r0], #-0           @ encoding: [0x00,0xf8,0x00,0x19]
2836*9880d681SAndroid Build Coastguard Worker
2837*9880d681SAndroid Build Coastguard Worker
2838*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2839*9880d681SAndroid Build Coastguard Worker@ STRB(register)
2840*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2841*9880d681SAndroid Build Coastguard Worker        strb r1, [r8, r1]
2842*9880d681SAndroid Build Coastguard Worker        strb.w r4, [r5, r2]
2843*9880d681SAndroid Build Coastguard Worker        strb r6, [r0, r2, lsl #3]
2844*9880d681SAndroid Build Coastguard Worker        strb r8, [r8, r2, lsl #2]
2845*9880d681SAndroid Build Coastguard Worker        strb r7, [sp, r2, lsl #1]
2846*9880d681SAndroid Build Coastguard Worker        strb r7, [sp, r2, lsl #0]
2847*9880d681SAndroid Build Coastguard Worker
2848*9880d681SAndroid Build Coastguard Worker@ CHECK: strb.w	r1, [r8, r1]            @ encoding: [0x08,0xf8,0x01,0x10]
2849*9880d681SAndroid Build Coastguard Worker@ CHECK: strb.w	r4, [r5, r2]            @ encoding: [0x05,0xf8,0x02,0x40]
2850*9880d681SAndroid Build Coastguard Worker@ CHECK: strb.w	r6, [r0, r2, lsl #3]    @ encoding: [0x00,0xf8,0x32,0x60]
2851*9880d681SAndroid Build Coastguard Worker@ CHECK: strb.w	r8, [r8, r2, lsl #2]    @ encoding: [0x08,0xf8,0x22,0x80]
2852*9880d681SAndroid Build Coastguard Worker@ CHECK: strb.w	r7, [sp, r2, lsl #1]    @ encoding: [0x0d,0xf8,0x12,0x70]
2853*9880d681SAndroid Build Coastguard Worker@ CHECK: strb.w	r7, [sp, r2]            @ encoding: [0x0d,0xf8,0x02,0x70]
2854*9880d681SAndroid Build Coastguard Worker
2855*9880d681SAndroid Build Coastguard Worker
2856*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2857*9880d681SAndroid Build Coastguard Worker@ STRBT
2858*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2859*9880d681SAndroid Build Coastguard Worker        strbt r1, [r2]
2860*9880d681SAndroid Build Coastguard Worker        strbt r1, [r8, #0]
2861*9880d681SAndroid Build Coastguard Worker        strbt r1, [r8, #3]
2862*9880d681SAndroid Build Coastguard Worker        strbt r1, [r8, #255]
2863*9880d681SAndroid Build Coastguard Worker
2864*9880d681SAndroid Build Coastguard Worker@ CHECK: strbt	r1, [r2]                @ encoding: [0x02,0xf8,0x00,0x1e]
2865*9880d681SAndroid Build Coastguard Worker@ CHECK: strbt	r1, [r8]                @ encoding: [0x08,0xf8,0x00,0x1e]
2866*9880d681SAndroid Build Coastguard Worker@ CHECK: strbt	r1, [r8, #3]            @ encoding: [0x08,0xf8,0x03,0x1e]
2867*9880d681SAndroid Build Coastguard Worker@ CHECK: strbt	r1, [r8, #255]          @ encoding: [0x08,0xf8,0xff,0x1e]
2868*9880d681SAndroid Build Coastguard Worker
2869*9880d681SAndroid Build Coastguard Worker
2870*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2871*9880d681SAndroid Build Coastguard Worker@ STRD
2872*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2873*9880d681SAndroid Build Coastguard Worker        strd r3, r5, [r6, #24]
2874*9880d681SAndroid Build Coastguard Worker        strd r3, r5, [r6, #24]!
2875*9880d681SAndroid Build Coastguard Worker        strd r3, r5, [r6], #4
2876*9880d681SAndroid Build Coastguard Worker        strd r3, r5, [r6], #-8
2877*9880d681SAndroid Build Coastguard Worker        strd r3, r5, [r6]
2878*9880d681SAndroid Build Coastguard Worker        strd r8, r1, [r3, #0]
2879*9880d681SAndroid Build Coastguard Worker        strd r0, r1, [r2, #-0]
2880*9880d681SAndroid Build Coastguard Worker        strd r0, r1, [r2, #-0]!
2881*9880d681SAndroid Build Coastguard Worker        strd r0, r1, [r2], #-0
2882*9880d681SAndroid Build Coastguard Worker        strd r0, r1, [r2, #256]
2883*9880d681SAndroid Build Coastguard Worker        strd r0, r1, [r2, #256]!
2884*9880d681SAndroid Build Coastguard Worker        strd r0, r1, [r2], #256
2885*9880d681SAndroid Build Coastguard Worker
2886*9880d681SAndroid Build Coastguard Worker@ CHECK: strd	r3, r5, [r6, #24]       @ encoding: [0xc6,0xe9,0x06,0x35]
2887*9880d681SAndroid Build Coastguard Worker@ CHECK: strd	r3, r5, [r6, #24]!      @ encoding: [0xe6,0xe9,0x06,0x35]
2888*9880d681SAndroid Build Coastguard Worker@ CHECK: strd	r3, r5, [r6], #4        @ encoding: [0xe6,0xe8,0x01,0x35]
2889*9880d681SAndroid Build Coastguard Worker@ CHECK: strd	r3, r5, [r6], #-8       @ encoding: [0x66,0xe8,0x02,0x35]
2890*9880d681SAndroid Build Coastguard Worker@ CHECK: strd	r3, r5, [r6]            @ encoding: [0xc6,0xe9,0x00,0x35]
2891*9880d681SAndroid Build Coastguard Worker@ CHECK: strd	r8, r1, [r3]            @ encoding: [0xc3,0xe9,0x00,0x81]
2892*9880d681SAndroid Build Coastguard Worker@ CHECK: strd   r0, r1, [r2, #-0]       @ encoding: [0x42,0xe9,0x00,0x01]
2893*9880d681SAndroid Build Coastguard Worker@ CHECK: strd   r0, r1, [r2, #-0]!      @ encoding: [0x62,0xe9,0x00,0x01]
2894*9880d681SAndroid Build Coastguard Worker@ CHECK: strd   r0, r1, [r2], #-0       @ encoding: [0x62,0xe8,0x00,0x01]
2895*9880d681SAndroid Build Coastguard Worker@ CHECK: strd	r0, r1, [r2, #256]      @ encoding: [0xc2,0xe9,0x40,0x01]
2896*9880d681SAndroid Build Coastguard Worker@ CHECK: strd	r0, r1, [r2, #256]!     @ encoding: [0xe2,0xe9,0x40,0x01]
2897*9880d681SAndroid Build Coastguard Worker@ CHECK: strd	r0, r1, [r2], #256      @ encoding: [0xe2,0xe8,0x40,0x01]
2898*9880d681SAndroid Build Coastguard Worker
2899*9880d681SAndroid Build Coastguard Worker
2900*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2901*9880d681SAndroid Build Coastguard Worker@ STREX/STREXB/STREXH/STREXD
2902*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2903*9880d681SAndroid Build Coastguard Worker        strex r1, r8, [r4]
2904*9880d681SAndroid Build Coastguard Worker        strex r8, r2, [r4, #0]
2905*9880d681SAndroid Build Coastguard Worker        strex r2, r12, [sp, #128]
2906*9880d681SAndroid Build Coastguard Worker        strexb r5, r1, [r7]
2907*9880d681SAndroid Build Coastguard Worker        strexh r9, r7, [r12]
2908*9880d681SAndroid Build Coastguard Worker        strexd r9, r3, r6, [r4]
2909*9880d681SAndroid Build Coastguard Worker
2910*9880d681SAndroid Build Coastguard Worker@ CHECK: strex	r1, r8, [r4]            @ encoding: [0x44,0xe8,0x00,0x81]
2911*9880d681SAndroid Build Coastguard Worker@ CHECK: strex	r8, r2, [r4]            @ encoding: [0x44,0xe8,0x00,0x28]
2912*9880d681SAndroid Build Coastguard Worker@ CHECK: strex	r2, r12, [sp, #128]     @ encoding: [0x4d,0xe8,0x20,0xc2]
2913*9880d681SAndroid Build Coastguard Worker@ CHECK: strexb	r5, r1, [r7]            @ encoding: [0xc7,0xe8,0x45,0x1f]
2914*9880d681SAndroid Build Coastguard Worker@ CHECK: strexh	r9, r7, [r12]           @ encoding: [0xcc,0xe8,0x59,0x7f]
2915*9880d681SAndroid Build Coastguard Worker@ CHECK: strexd	r9, r3, r6, [r4]        @ encoding: [0xc4,0xe8,0x79,0x36]
2916*9880d681SAndroid Build Coastguard Worker
2917*9880d681SAndroid Build Coastguard Worker
2918*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2919*9880d681SAndroid Build Coastguard Worker@ STRH(immediate)
2920*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2921*9880d681SAndroid Build Coastguard Worker        strh r5, [r5, #-4]
2922*9880d681SAndroid Build Coastguard Worker        strh r5, [r6, #32]
2923*9880d681SAndroid Build Coastguard Worker        strh r5, [r6, #33]
2924*9880d681SAndroid Build Coastguard Worker        strh r5, [r6, #257]
2925*9880d681SAndroid Build Coastguard Worker        strh.w lr, [r7, #257]
2926*9880d681SAndroid Build Coastguard Worker        strh r5, [r8, #255]!
2927*9880d681SAndroid Build Coastguard Worker        strh r2, [r5, #4]!
2928*9880d681SAndroid Build Coastguard Worker        strh r1, [r4, #-4]!
2929*9880d681SAndroid Build Coastguard Worker        strh lr, [r3], #255
2930*9880d681SAndroid Build Coastguard Worker        strh r9, [r2], #4
2931*9880d681SAndroid Build Coastguard Worker        strh r3, [sp], #-4
2932*9880d681SAndroid Build Coastguard Worker
2933*9880d681SAndroid Build Coastguard Worker@ CHECK: strh	r5, [r5, #-4]           @ encoding: [0x25,0xf8,0x04,0x5c]
2934*9880d681SAndroid Build Coastguard Worker@ CHECK: strh	r5, [r6, #32]           @ encoding: [0x35,0x84]
2935*9880d681SAndroid Build Coastguard Worker@ CHECK: strh.w	r5, [r6, #33]           @ encoding: [0xa6,0xf8,0x21,0x50]
2936*9880d681SAndroid Build Coastguard Worker@ CHECK: strh.w	r5, [r6, #257]          @ encoding: [0xa6,0xf8,0x01,0x51]
2937*9880d681SAndroid Build Coastguard Worker@ CHECK: strh.w	lr, [r7, #257]          @ encoding: [0xa7,0xf8,0x01,0xe1]
2938*9880d681SAndroid Build Coastguard Worker@ CHECK: strh	r5, [r8, #255]!         @ encoding: [0x28,0xf8,0xff,0x5f]
2939*9880d681SAndroid Build Coastguard Worker@ CHECK: strh	r2, [r5, #4]!           @ encoding: [0x25,0xf8,0x04,0x2f]
2940*9880d681SAndroid Build Coastguard Worker@ CHECK: strh	r1, [r4, #-4]!          @ encoding: [0x24,0xf8,0x04,0x1d]
2941*9880d681SAndroid Build Coastguard Worker@ CHECK: strh	lr, [r3], #255          @ encoding: [0x23,0xf8,0xff,0xeb]
2942*9880d681SAndroid Build Coastguard Worker@ CHECK: strh	r9, [r2], #4            @ encoding: [0x22,0xf8,0x04,0x9b]
2943*9880d681SAndroid Build Coastguard Worker@ CHECK: strh	r3, [sp], #-4           @ encoding: [0x2d,0xf8,0x04,0x39]
2944*9880d681SAndroid Build Coastguard Worker
2945*9880d681SAndroid Build Coastguard Worker
2946*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2947*9880d681SAndroid Build Coastguard Worker@ STRH(register)
2948*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2949*9880d681SAndroid Build Coastguard Worker        strh r1, [r8, r1]
2950*9880d681SAndroid Build Coastguard Worker        strh.w r4, [r5, r2]
2951*9880d681SAndroid Build Coastguard Worker        strh r6, [r0, r2, lsl #3]
2952*9880d681SAndroid Build Coastguard Worker        strh r8, [r8, r2, lsl #2]
2953*9880d681SAndroid Build Coastguard Worker        strh r7, [sp, r2, lsl #1]
2954*9880d681SAndroid Build Coastguard Worker        strh r7, [sp, r2, lsl #0]
2955*9880d681SAndroid Build Coastguard Worker
2956*9880d681SAndroid Build Coastguard Worker@ CHECK: strh.w	r1, [r8, r1]            @ encoding: [0x28,0xf8,0x01,0x10]
2957*9880d681SAndroid Build Coastguard Worker@ CHECK: strh.w	r4, [r5, r2]            @ encoding: [0x25,0xf8,0x02,0x40]
2958*9880d681SAndroid Build Coastguard Worker@ CHECK: strh.w	r6, [r0, r2, lsl #3]    @ encoding: [0x20,0xf8,0x32,0x60]
2959*9880d681SAndroid Build Coastguard Worker@ CHECK: strh.w	r8, [r8, r2, lsl #2]    @ encoding: [0x28,0xf8,0x22,0x80]
2960*9880d681SAndroid Build Coastguard Worker@ CHECK: strh.w	r7, [sp, r2, lsl #1]    @ encoding: [0x2d,0xf8,0x12,0x70]
2961*9880d681SAndroid Build Coastguard Worker@ CHECK: strh.w	r7, [sp, r2]            @ encoding: [0x2d,0xf8,0x02,0x70]
2962*9880d681SAndroid Build Coastguard Worker
2963*9880d681SAndroid Build Coastguard Worker
2964*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2965*9880d681SAndroid Build Coastguard Worker@ STRHT
2966*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2967*9880d681SAndroid Build Coastguard Worker        strht r1, [r2]
2968*9880d681SAndroid Build Coastguard Worker        strht r1, [r8, #0]
2969*9880d681SAndroid Build Coastguard Worker        strht r1, [r8, #3]
2970*9880d681SAndroid Build Coastguard Worker        strht r1, [r8, #255]
2971*9880d681SAndroid Build Coastguard Worker
2972*9880d681SAndroid Build Coastguard Worker@ CHECK: strht	r1, [r2]                @ encoding: [0x22,0xf8,0x00,0x1e]
2973*9880d681SAndroid Build Coastguard Worker@ CHECK: strht	r1, [r8]                @ encoding: [0x28,0xf8,0x00,0x1e]
2974*9880d681SAndroid Build Coastguard Worker@ CHECK: strht	r1, [r8, #3]            @ encoding: [0x28,0xf8,0x03,0x1e]
2975*9880d681SAndroid Build Coastguard Worker@ CHECK: strht	r1, [r8, #255]          @ encoding: [0x28,0xf8,0xff,0x1e]
2976*9880d681SAndroid Build Coastguard Worker
2977*9880d681SAndroid Build Coastguard Worker
2978*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2979*9880d681SAndroid Build Coastguard Worker@ STRT
2980*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2981*9880d681SAndroid Build Coastguard Worker        strt r1, [r2]
2982*9880d681SAndroid Build Coastguard Worker        strt r1, [r8, #0]
2983*9880d681SAndroid Build Coastguard Worker        strt r1, [r8, #3]
2984*9880d681SAndroid Build Coastguard Worker        strt r1, [r8, #255]
2985*9880d681SAndroid Build Coastguard Worker
2986*9880d681SAndroid Build Coastguard Worker@ CHECK: strt	r1, [r2]                @ encoding: [0x42,0xf8,0x00,0x1e]
2987*9880d681SAndroid Build Coastguard Worker@ CHECK: strt	r1, [r8]                @ encoding: [0x48,0xf8,0x00,0x1e]
2988*9880d681SAndroid Build Coastguard Worker@ CHECK: strt	r1, [r8, #3]            @ encoding: [0x48,0xf8,0x03,0x1e]
2989*9880d681SAndroid Build Coastguard Worker@ CHECK: strt	r1, [r8, #255]          @ encoding: [0x48,0xf8,0xff,0x1e]
2990*9880d681SAndroid Build Coastguard Worker
2991*9880d681SAndroid Build Coastguard Worker
2992*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2993*9880d681SAndroid Build Coastguard Worker@ SUB (immediate)
2994*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
2995*9880d681SAndroid Build Coastguard Worker        itet eq
2996*9880d681SAndroid Build Coastguard Worker        subeq r1, r2, #4
2997*9880d681SAndroid Build Coastguard Worker        subwne r5, r3, #1023
2998*9880d681SAndroid Build Coastguard Worker        subeq r4, r5, #293
2999*9880d681SAndroid Build Coastguard Worker        sub r2, sp, #1024
3000*9880d681SAndroid Build Coastguard Worker        sub r2, r8, #0xff00
3001*9880d681SAndroid Build Coastguard Worker        sub r2, r3, #257
3002*9880d681SAndroid Build Coastguard Worker        subw r2, r3, #257
3003*9880d681SAndroid Build Coastguard Worker        sub r12, r6, #0x100
3004*9880d681SAndroid Build Coastguard Worker        subw r12, r6, #0x100
3005*9880d681SAndroid Build Coastguard Worker        subs r1, r2, #0x1f0
3006*9880d681SAndroid Build Coastguard Worker	sub r2, #1
3007*9880d681SAndroid Build Coastguard Worker        sub r0, r0, #32
3008*9880d681SAndroid Build Coastguard Worker        subs r2, r2, #56
3009*9880d681SAndroid Build Coastguard Worker        subs r2, #56
3010*9880d681SAndroid Build Coastguard Worker
3011*9880d681SAndroid Build Coastguard Worker@ CHECK: itet	eq                      @ encoding: [0x0a,0xbf]
3012*9880d681SAndroid Build Coastguard Worker@ CHECK: subeq	r1, r2, #4              @ encoding: [0x11,0x1f]
3013*9880d681SAndroid Build Coastguard Worker@ CHECK: subwne	r5, r3, #1023           @ encoding: [0xa3,0xf2,0xff,0x35]
3014*9880d681SAndroid Build Coastguard Worker@ CHECK: subweq	r4, r5, #293            @ encoding: [0xa5,0xf2,0x25,0x14]
3015*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r2, sp, #1024           @ encoding: [0xad,0xf5,0x80,0x62]
3016*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r2, r8, #65280          @ encoding: [0xa8,0xf5,0x7f,0x42]
3017*9880d681SAndroid Build Coastguard Worker@ CHECK: subw	r2, r3, #257            @ encoding: [0xa3,0xf2,0x01,0x12]
3018*9880d681SAndroid Build Coastguard Worker@ CHECK: subw	r2, r3, #257            @ encoding: [0xa3,0xf2,0x01,0x12]
3019*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r12, r6, #256           @ encoding: [0xa6,0xf5,0x80,0x7c]
3020*9880d681SAndroid Build Coastguard Worker@ CHECK: subw	r12, r6, #256           @ encoding: [0xa6,0xf2,0x00,0x1c]
3021*9880d681SAndroid Build Coastguard Worker@ CHECK: subs.w	r1, r2, #496            @ encoding: [0xb2,0xf5,0xf8,0x71]
3022*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r2, r2, #1              @ encoding: [0xa2,0xf1,0x01,0x02]
3023*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r0, r0, #32             @ encoding: [0xa0,0xf1,0x20,0x00]
3024*9880d681SAndroid Build Coastguard Worker@ CHECK: subs	r2, #56                 @ encoding: [0x38,0x3a]
3025*9880d681SAndroid Build Coastguard Worker@ CHECK: subs	r2, #56                 @ encoding: [0x38,0x3a]
3026*9880d681SAndroid Build Coastguard Worker
3027*9880d681SAndroid Build Coastguard Worker
3028*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3029*9880d681SAndroid Build Coastguard Worker@ SUB (register)
3030*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3031*9880d681SAndroid Build Coastguard Worker        sub r4, r5, r6
3032*9880d681SAndroid Build Coastguard Worker        sub r4, r5, r6, lsl #5
3033*9880d681SAndroid Build Coastguard Worker        sub r4, r5, r6, lsr #5
3034*9880d681SAndroid Build Coastguard Worker        sub.w r4, r5, r6, lsr #5
3035*9880d681SAndroid Build Coastguard Worker        sub r4, r5, r6, asr #5
3036*9880d681SAndroid Build Coastguard Worker        sub r4, r5, r6, ror #5
3037*9880d681SAndroid Build Coastguard Worker        sub.w r5, r2, r12, rrx
3038*9880d681SAndroid Build Coastguard Worker        sub r2, sp, ip
3039*9880d681SAndroid Build Coastguard Worker        sub sp, sp, ip
3040*9880d681SAndroid Build Coastguard Worker        sub sp, ip
3041*9880d681SAndroid Build Coastguard Worker        sub.w r2, sp, ip
3042*9880d681SAndroid Build Coastguard Worker        sub.w sp, sp, ip
3043*9880d681SAndroid Build Coastguard Worker        sub.w sp, ip
3044*9880d681SAndroid Build Coastguard Worker
3045*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r4, r5, r6              @ encoding: [0xa5,0xeb,0x06,0x04]
3046*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r4, r5, r6, lsl #5      @ encoding: [0xa5,0xeb,0x46,0x14]
3047*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r4, r5, r6, lsr #5      @ encoding: [0xa5,0xeb,0x56,0x14]
3048*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r4, r5, r6, lsr #5      @ encoding: [0xa5,0xeb,0x56,0x14]
3049*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r4, r5, r6, asr #5      @ encoding: [0xa5,0xeb,0x66,0x14]
3050*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r4, r5, r6, ror #5      @ encoding: [0xa5,0xeb,0x76,0x14]
3051*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w r5, r2, r12, rrx         @ encoding: [0xa2,0xeb,0x3c,0x05]
3052*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r2, sp, r12             @ encoding: [0xad,0xeb,0x0c,0x02]
3053*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	sp, sp, r12             @ encoding: [0xad,0xeb,0x0c,0x0d]
3054*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	sp, sp, r12             @ encoding: [0xad,0xeb,0x0c,0x0d]
3055*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	r2, sp, r12             @ encoding: [0xad,0xeb,0x0c,0x02]
3056*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	sp, sp, r12             @ encoding: [0xad,0xeb,0x0c,0x0d]
3057*9880d681SAndroid Build Coastguard Worker@ CHECK: sub.w	sp, sp, r12             @ encoding: [0xad,0xeb,0x0c,0x0d]
3058*9880d681SAndroid Build Coastguard Worker
3059*9880d681SAndroid Build Coastguard Worker
3060*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3061*9880d681SAndroid Build Coastguard Worker@ SVC
3062*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3063*9880d681SAndroid Build Coastguard Worker        svc #0
3064*9880d681SAndroid Build Coastguard Worker        ite eq
3065*9880d681SAndroid Build Coastguard Worker        svceq #255
3066*9880d681SAndroid Build Coastguard Worker        swine #33
3067*9880d681SAndroid Build Coastguard Worker
3068*9880d681SAndroid Build Coastguard Worker@ CHECK: svc	#0                      @ encoding: [0x00,0xdf]
3069*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	eq                      @ encoding: [0x0c,0xbf]
3070*9880d681SAndroid Build Coastguard Worker@ CHECK: svceq	#255                    @ encoding: [0xff,0xdf]
3071*9880d681SAndroid Build Coastguard Worker@ CHECK: svcne	#33                     @ encoding: [0x21,0xdf]
3072*9880d681SAndroid Build Coastguard Worker
3073*9880d681SAndroid Build Coastguard Worker
3074*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3075*9880d681SAndroid Build Coastguard Worker@ SXTAB
3076*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3077*9880d681SAndroid Build Coastguard Worker        sxtab r2, r3, r4
3078*9880d681SAndroid Build Coastguard Worker        sxtab r4, r5, r6, ror #0
3079*9880d681SAndroid Build Coastguard Worker        it lt
3080*9880d681SAndroid Build Coastguard Worker        sxtablt r6, r2, r9, ror #8
3081*9880d681SAndroid Build Coastguard Worker        sxtab r5, r1, r4, ror #16
3082*9880d681SAndroid Build Coastguard Worker        sxtab r7, r8, r3, ror #24
3083*9880d681SAndroid Build Coastguard Worker
3084*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtab	r2, r3, r4              @ encoding: [0x43,0xfa,0x84,0xf2]
3085*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtab	r4, r5, r6              @ encoding: [0x45,0xfa,0x86,0xf4]
3086*9880d681SAndroid Build Coastguard Worker@ CHECK: it	lt                      @ encoding: [0xb8,0xbf]
3087*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtablt r6, r2, r9, ror #8     @ encoding: [0x42,0xfa,0x99,0xf6]
3088*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtab	r5, r1, r4, ror #16     @ encoding: [0x41,0xfa,0xa4,0xf5]
3089*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtab	r7, r8, r3, ror #24     @ encoding: [0x48,0xfa,0xb3,0xf7]
3090*9880d681SAndroid Build Coastguard Worker
3091*9880d681SAndroid Build Coastguard Worker
3092*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3093*9880d681SAndroid Build Coastguard Worker@ SXTAB16
3094*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3095*9880d681SAndroid Build Coastguard Worker        sxtab16 r6, r2, r7, ror #0
3096*9880d681SAndroid Build Coastguard Worker        sxtab16 r3, r5, r8, ror #8
3097*9880d681SAndroid Build Coastguard Worker        sxtab16 r3, r2, r1, ror #16
3098*9880d681SAndroid Build Coastguard Worker        ite ne
3099*9880d681SAndroid Build Coastguard Worker        sxtab16ne r0, r1, r4
3100*9880d681SAndroid Build Coastguard Worker        sxtab16eq r1, r2, r3, ror #24
3101*9880d681SAndroid Build Coastguard Worker
3102*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtab16 r6, r2, r7             @ encoding: [0x22,0xfa,0x87,0xf6]
3103*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtab16 r3, r5, r8, ror #8     @ encoding: [0x25,0xfa,0x98,0xf3]
3104*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtab16 r3, r2, r1, ror #16    @ encoding: [0x22,0xfa,0xa1,0xf3]
3105*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	ne                      @ encoding: [0x14,0xbf]
3106*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtab16ne r0, r1, r4           @ encoding: [0x21,0xfa,0x84,0xf0]
3107*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtab16eq r1, r2, r3, ror #24  @ encoding: [0x22,0xfa,0xb3,0xf1]
3108*9880d681SAndroid Build Coastguard Worker
3109*9880d681SAndroid Build Coastguard Worker
3110*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3111*9880d681SAndroid Build Coastguard Worker@ SXTAH
3112*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3113*9880d681SAndroid Build Coastguard Worker        sxtah r1, r3, r9
3114*9880d681SAndroid Build Coastguard Worker        sxtah r3, r8, r3, ror #8
3115*9880d681SAndroid Build Coastguard Worker        sxtah r9, r3, r3, ror #24
3116*9880d681SAndroid Build Coastguard Worker        ite hi
3117*9880d681SAndroid Build Coastguard Worker        sxtahhi r6, r1, r6, ror #0
3118*9880d681SAndroid Build Coastguard Worker        sxtahls r2, r2, r4, ror #16
3119*9880d681SAndroid Build Coastguard Worker
3120*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtah	r1, r3, r9              @ encoding: [0x03,0xfa,0x89,0xf1]
3121*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtah	r3, r8, r3, ror #8      @ encoding: [0x08,0xfa,0x93,0xf3]
3122*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtah	r9, r3, r3, ror #24     @ encoding: [0x03,0xfa,0xb3,0xf9]
3123*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	hi                      @ encoding: [0x8c,0xbf]
3124*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtahhi r6, r1, r6             @ encoding: [0x01,0xfa,0x86,0xf6]
3125*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtahls r2, r2, r4, ror #16    @ encoding: [0x02,0xfa,0xa4,0xf2]
3126*9880d681SAndroid Build Coastguard Worker
3127*9880d681SAndroid Build Coastguard Worker
3128*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3129*9880d681SAndroid Build Coastguard Worker@ SXTB
3130*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3131*9880d681SAndroid Build Coastguard Worker        sxtb r5, r6, ror #0
3132*9880d681SAndroid Build Coastguard Worker        sxtb r6, r9, ror #8
3133*9880d681SAndroid Build Coastguard Worker        sxtb r8, r3, ror #24
3134*9880d681SAndroid Build Coastguard Worker        ite ge
3135*9880d681SAndroid Build Coastguard Worker        sxtbge r2, r4
3136*9880d681SAndroid Build Coastguard Worker        sxtblt r5, r1, ror #16
3137*9880d681SAndroid Build Coastguard Worker        sxtb.w  r7, r8
3138*9880d681SAndroid Build Coastguard Worker
3139*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb	r5, r6                  @ encoding: [0x75,0xb2]
3140*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb.w	r6, r9, ror #8          @ encoding: [0x4f,0xfa,0x99,0xf6]
3141*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb.w	r8, r3, ror #24         @ encoding: [0x4f,0xfa,0xb3,0xf8]
3142*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	ge                      @ encoding: [0xac,0xbf]
3143*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtbge	r2, r4                  @ encoding: [0x62,0xb2]
3144*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtblt.w	r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5]
3145*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb.w	r7, r8                  @ encoding: [0x4f,0xfa,0x88,0xf7]
3146*9880d681SAndroid Build Coastguard Worker
3147*9880d681SAndroid Build Coastguard Worker
3148*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3149*9880d681SAndroid Build Coastguard Worker@ SXTB16
3150*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3151*9880d681SAndroid Build Coastguard Worker        sxtb16 r1, r4
3152*9880d681SAndroid Build Coastguard Worker        sxtb16 r6, r7, ror #0
3153*9880d681SAndroid Build Coastguard Worker        sxtb16 r3, r1, ror #16
3154*9880d681SAndroid Build Coastguard Worker        ite cs
3155*9880d681SAndroid Build Coastguard Worker        sxtb16cs r3, r5, ror #8
3156*9880d681SAndroid Build Coastguard Worker        sxtb16lo r2, r3, ror #24
3157*9880d681SAndroid Build Coastguard Worker
3158*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb16	r1, r4                  @ encoding: [0x2f,0xfa,0x84,0xf1]
3159*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb16	r6, r7                  @ encoding: [0x2f,0xfa,0x87,0xf6]
3160*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb16	r3, r1, ror #16         @ encoding: [0x2f,0xfa,0xa1,0xf3]
3161*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	hs                      @ encoding: [0x2c,0xbf]
3162*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb16hs	r3, r5, ror #8  @ encoding: [0x2f,0xfa,0x95,0xf3]
3163*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb16lo	r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2]
3164*9880d681SAndroid Build Coastguard Worker
3165*9880d681SAndroid Build Coastguard Worker
3166*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3167*9880d681SAndroid Build Coastguard Worker@ SXTH
3168*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3169*9880d681SAndroid Build Coastguard Worker        sxth r1, r6, ror #0
3170*9880d681SAndroid Build Coastguard Worker        sxth r3, r8, ror #8
3171*9880d681SAndroid Build Coastguard Worker        sxth r9, r3, ror #24
3172*9880d681SAndroid Build Coastguard Worker        itt ne
3173*9880d681SAndroid Build Coastguard Worker        sxthne r3, r9
3174*9880d681SAndroid Build Coastguard Worker        sxthne r2, r2, ror #16
3175*9880d681SAndroid Build Coastguard Worker        sxth.w  r7, r8
3176*9880d681SAndroid Build Coastguard Worker
3177*9880d681SAndroid Build Coastguard Worker@ CHECK: sxth	r1, r6                  @ encoding: [0x31,0xb2]
3178*9880d681SAndroid Build Coastguard Worker@ CHECK: sxth.w	r3, r8, ror #8          @ encoding: [0x0f,0xfa,0x98,0xf3]
3179*9880d681SAndroid Build Coastguard Worker@ CHECK: sxth.w	r9, r3, ror #24         @ encoding: [0x0f,0xfa,0xb3,0xf9]
3180*9880d681SAndroid Build Coastguard Worker@ CHECK: itt	ne                      @ encoding: [0x1c,0xbf]
3181*9880d681SAndroid Build Coastguard Worker@ CHECK: sxthne.w	r3, r9          @ encoding: [0x0f,0xfa,0x89,0xf3]
3182*9880d681SAndroid Build Coastguard Worker@ CHECK: sxthne.w	r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2]
3183*9880d681SAndroid Build Coastguard Worker@ CHECK: sxth.w	r7, r8                  @ encoding: [0x0f,0xfa,0x88,0xf7]
3184*9880d681SAndroid Build Coastguard Worker
3185*9880d681SAndroid Build Coastguard Worker
3186*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3187*9880d681SAndroid Build Coastguard Worker@ SXTB
3188*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3189*9880d681SAndroid Build Coastguard Worker        sxtb r5, r6, ror #0
3190*9880d681SAndroid Build Coastguard Worker        sxtb.w r6, r9, ror #8
3191*9880d681SAndroid Build Coastguard Worker        sxtb r8, r3, ror #24
3192*9880d681SAndroid Build Coastguard Worker        ite ge
3193*9880d681SAndroid Build Coastguard Worker        sxtbge r2, r4
3194*9880d681SAndroid Build Coastguard Worker        sxtblt r5, r1, ror #16
3195*9880d681SAndroid Build Coastguard Worker
3196*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb	r5, r6                  @ encoding: [0x75,0xb2]
3197*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb.w	r6, r9, ror #8          @ encoding: [0x4f,0xfa,0x99,0xf6]
3198*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb.w	r8, r3, ror #24         @ encoding: [0x4f,0xfa,0xb3,0xf8]
3199*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	ge                      @ encoding: [0xac,0xbf]
3200*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtbge	r2, r4                  @ encoding: [0x62,0xb2]
3201*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtblt.w	r5, r1, ror #16 @ encoding: [0x4f,0xfa,0xa1,0xf5]
3202*9880d681SAndroid Build Coastguard Worker
3203*9880d681SAndroid Build Coastguard Worker
3204*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3205*9880d681SAndroid Build Coastguard Worker@ SXTB16
3206*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3207*9880d681SAndroid Build Coastguard Worker        sxtb16 r1, r4
3208*9880d681SAndroid Build Coastguard Worker        sxtb16 r6, r7, ror #0
3209*9880d681SAndroid Build Coastguard Worker        sxtb16 r3, r1, ror #16
3210*9880d681SAndroid Build Coastguard Worker        ite cs
3211*9880d681SAndroid Build Coastguard Worker        sxtb16cs r3, r5, ror #8
3212*9880d681SAndroid Build Coastguard Worker        sxtb16lo r2, r3, ror #24
3213*9880d681SAndroid Build Coastguard Worker
3214*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb16	r1, r4                  @ encoding: [0x2f,0xfa,0x84,0xf1]
3215*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb16	r6, r7                  @ encoding: [0x2f,0xfa,0x87,0xf6]
3216*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb16	r3, r1, ror #16         @ encoding: [0x2f,0xfa,0xa1,0xf3]
3217*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	hs                      @ encoding: [0x2c,0xbf]
3218*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb16hs	r3, r5, ror #8  @ encoding: [0x2f,0xfa,0x95,0xf3]
3219*9880d681SAndroid Build Coastguard Worker@ CHECK: sxtb16lo	r2, r3, ror #24 @ encoding: [0x2f,0xfa,0xb3,0xf2]
3220*9880d681SAndroid Build Coastguard Worker
3221*9880d681SAndroid Build Coastguard Worker
3222*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3223*9880d681SAndroid Build Coastguard Worker@ SXTH
3224*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3225*9880d681SAndroid Build Coastguard Worker        sxth r1, r6, ror #0
3226*9880d681SAndroid Build Coastguard Worker        sxth.w r3, r8, ror #8
3227*9880d681SAndroid Build Coastguard Worker        sxth r9, r3, ror #24
3228*9880d681SAndroid Build Coastguard Worker        itt ne
3229*9880d681SAndroid Build Coastguard Worker        sxthne r3, r9
3230*9880d681SAndroid Build Coastguard Worker        sxthne r2, r2, ror #16
3231*9880d681SAndroid Build Coastguard Worker
3232*9880d681SAndroid Build Coastguard Worker@ CHECK: sxth	r1, r6                  @ encoding: [0x31,0xb2]
3233*9880d681SAndroid Build Coastguard Worker@ CHECK: sxth.w	r3, r8, ror #8          @ encoding: [0x0f,0xfa,0x98,0xf3]
3234*9880d681SAndroid Build Coastguard Worker@ CHECK: sxth.w	r9, r3, ror #24         @ encoding: [0x0f,0xfa,0xb3,0xf9]
3235*9880d681SAndroid Build Coastguard Worker@ CHECK: itt	ne                      @ encoding: [0x1c,0xbf]
3236*9880d681SAndroid Build Coastguard Worker@ CHECK: sxthne.w	r3, r9          @ encoding: [0x0f,0xfa,0x89,0xf3]
3237*9880d681SAndroid Build Coastguard Worker@ CHECK: sxthne.w	r2, r2, ror #16 @ encoding: [0x0f,0xfa,0xa2,0xf2]
3238*9880d681SAndroid Build Coastguard Worker
3239*9880d681SAndroid Build Coastguard Worker
3240*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3241*9880d681SAndroid Build Coastguard Worker@ TBB/TBH
3242*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3243*9880d681SAndroid Build Coastguard Worker        tbb [r3, r8]
3244*9880d681SAndroid Build Coastguard Worker        tbh [r3, r8, lsl #1]
3245*9880d681SAndroid Build Coastguard Worker        it eq
3246*9880d681SAndroid Build Coastguard Worker        tbbeq [r3, r8]
3247*9880d681SAndroid Build Coastguard Worker        it cs
3248*9880d681SAndroid Build Coastguard Worker        tbhcs [r3, r8, lsl #1]
3249*9880d681SAndroid Build Coastguard Worker
3250*9880d681SAndroid Build Coastguard Worker@ CHECK: tbb	[r3, r8]                @ encoding: [0xd3,0xe8,0x08,0xf0]
3251*9880d681SAndroid Build Coastguard Worker@ CHECK: tbh	[r3, r8, lsl #1]        @ encoding: [0xd3,0xe8,0x18,0xf0]
3252*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                      @ encoding: [0x08,0xbf]
3253*9880d681SAndroid Build Coastguard Worker@ CHECK: tbbeq	[r3, r8]                @ encoding: [0xd3,0xe8,0x08,0xf0]
3254*9880d681SAndroid Build Coastguard Worker@ CHECK: it	hs                      @ encoding: [0x28,0xbf]
3255*9880d681SAndroid Build Coastguard Worker@ CHECK: tbhhs	[r3, r8, lsl #1]        @ encoding: [0xd3,0xe8,0x18,0xf0]
3256*9880d681SAndroid Build Coastguard Worker
3257*9880d681SAndroid Build Coastguard Worker
3258*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3259*9880d681SAndroid Build Coastguard Worker@ TEQ
3260*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3261*9880d681SAndroid Build Coastguard Worker        teq r5, #0xf000
3262*9880d681SAndroid Build Coastguard Worker        teq r4, r5
3263*9880d681SAndroid Build Coastguard Worker        teq r4, r5, lsl #5
3264*9880d681SAndroid Build Coastguard Worker        teq r4, r5, lsr #5
3265*9880d681SAndroid Build Coastguard Worker        teq r4, r5, lsr #5
3266*9880d681SAndroid Build Coastguard Worker        teq r4, r5, asr #5
3267*9880d681SAndroid Build Coastguard Worker        teq r4, r5, ror #5
3268*9880d681SAndroid Build Coastguard Worker
3269*9880d681SAndroid Build Coastguard Worker@ CHECK: teq.w	r5, #61440              @ encoding: [0x95,0xf4,0x70,0x4f]
3270*9880d681SAndroid Build Coastguard Worker@ CHECK: teq.w	r4, r5                  @ encoding: [0x94,0xea,0x05,0x0f]
3271*9880d681SAndroid Build Coastguard Worker@ CHECK: teq.w	r4, r5, lsl #5          @ encoding: [0x94,0xea,0x45,0x1f]
3272*9880d681SAndroid Build Coastguard Worker@ CHECK: teq.w	r4, r5, lsr #5          @ encoding: [0x94,0xea,0x55,0x1f]
3273*9880d681SAndroid Build Coastguard Worker@ CHECK: teq.w	r4, r5, lsr #5          @ encoding: [0x94,0xea,0x55,0x1f]
3274*9880d681SAndroid Build Coastguard Worker@ CHECK: teq.w	r4, r5, asr #5          @ encoding: [0x94,0xea,0x65,0x1f]
3275*9880d681SAndroid Build Coastguard Worker@ CHECK: teq.w	r4, r5, ror #5          @ encoding: [0x94,0xea,0x75,0x1f]
3276*9880d681SAndroid Build Coastguard Worker
3277*9880d681SAndroid Build Coastguard Worker
3278*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3279*9880d681SAndroid Build Coastguard Worker@ TST
3280*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3281*9880d681SAndroid Build Coastguard Worker        tst r5, #0xf000
3282*9880d681SAndroid Build Coastguard Worker        tst r2, r5
3283*9880d681SAndroid Build Coastguard Worker        tst r3, r12, lsl #5
3284*9880d681SAndroid Build Coastguard Worker        tst r4, r11, lsr #4
3285*9880d681SAndroid Build Coastguard Worker        tst r5, r10, lsr #12
3286*9880d681SAndroid Build Coastguard Worker        tst r6, r9, asr #30
3287*9880d681SAndroid Build Coastguard Worker        tst r7, r8, ror #2
3288*9880d681SAndroid Build Coastguard Worker
3289*9880d681SAndroid Build Coastguard Worker@ CHECK: tst.w	r5, #61440              @ encoding: [0x15,0xf4,0x70,0x4f]
3290*9880d681SAndroid Build Coastguard Worker@ CHECK: tst	r2, r5                  @ encoding: [0x2a,0x42]
3291*9880d681SAndroid Build Coastguard Worker@ CHECK: tst.w	r3, r12, lsl #5         @ encoding: [0x13,0xea,0x4c,0x1f]
3292*9880d681SAndroid Build Coastguard Worker@ CHECK: tst.w	r4, r11, lsr #4         @ encoding: [0x14,0xea,0x1b,0x1f]
3293*9880d681SAndroid Build Coastguard Worker@ CHECK: tst.w	r5, r10, lsr #12        @ encoding: [0x15,0xea,0x1a,0x3f]
3294*9880d681SAndroid Build Coastguard Worker@ CHECK: tst.w	r6, r9, asr #30         @ encoding: [0x16,0xea,0xa9,0x7f]
3295*9880d681SAndroid Build Coastguard Worker@ CHECK: tst.w	r7, r8, ror #2          @ encoding: [0x17,0xea,0xb8,0x0f]
3296*9880d681SAndroid Build Coastguard Worker
3297*9880d681SAndroid Build Coastguard Worker
3298*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3299*9880d681SAndroid Build Coastguard Worker@ UADD16/UADD8
3300*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3301*9880d681SAndroid Build Coastguard Worker        uadd16 r1, r2, r3
3302*9880d681SAndroid Build Coastguard Worker        uadd8 r1, r2, r3
3303*9880d681SAndroid Build Coastguard Worker        ite gt
3304*9880d681SAndroid Build Coastguard Worker        uadd16gt r1, r2, r3
3305*9880d681SAndroid Build Coastguard Worker        uadd8le r1, r2, r3
3306*9880d681SAndroid Build Coastguard Worker
3307*9880d681SAndroid Build Coastguard Worker@ CHECK: uadd16	r1, r2, r3              @ encoding: [0x92,0xfa,0x43,0xf1]
3308*9880d681SAndroid Build Coastguard Worker@ CHECK: uadd8	r1, r2, r3              @ encoding: [0x82,0xfa,0x43,0xf1]
3309*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
3310*9880d681SAndroid Build Coastguard Worker@ CHECK: uadd16gt	r1, r2, r3      @ encoding: [0x92,0xfa,0x43,0xf1]
3311*9880d681SAndroid Build Coastguard Worker@ CHECK: uadd8le	r1, r2, r3      @ encoding: [0x82,0xfa,0x43,0xf1]
3312*9880d681SAndroid Build Coastguard Worker
3313*9880d681SAndroid Build Coastguard Worker
3314*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3315*9880d681SAndroid Build Coastguard Worker@ UASX
3316*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3317*9880d681SAndroid Build Coastguard Worker        uasx r9, r12, r0
3318*9880d681SAndroid Build Coastguard Worker        it eq
3319*9880d681SAndroid Build Coastguard Worker        uasxeq r9, r12, r0
3320*9880d681SAndroid Build Coastguard Worker        uaddsubx r9, r12, r0
3321*9880d681SAndroid Build Coastguard Worker        it eq
3322*9880d681SAndroid Build Coastguard Worker        uaddsubxeq r9, r12, r0
3323*9880d681SAndroid Build Coastguard Worker
3324*9880d681SAndroid Build Coastguard Worker@ CHECK: uasx	r9, r12, r0             @ encoding: [0xac,0xfa,0x40,0xf9]
3325*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                      @ encoding: [0x08,0xbf]
3326*9880d681SAndroid Build Coastguard Worker@ CHECK: uasxeq	r9, r12, r0             @ encoding: [0xac,0xfa,0x40,0xf9]
3327*9880d681SAndroid Build Coastguard Worker@ CHECK: uasx	r9, r12, r0             @ encoding: [0xac,0xfa,0x40,0xf9]
3328*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                      @ encoding: [0x08,0xbf]
3329*9880d681SAndroid Build Coastguard Worker@ CHECK: uasxeq	r9, r12, r0             @ encoding: [0xac,0xfa,0x40,0xf9]
3330*9880d681SAndroid Build Coastguard Worker
3331*9880d681SAndroid Build Coastguard Worker
3332*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3333*9880d681SAndroid Build Coastguard Worker@ UBFX
3334*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3335*9880d681SAndroid Build Coastguard Worker        ubfx r4, r5, #16, #1
3336*9880d681SAndroid Build Coastguard Worker        it gt
3337*9880d681SAndroid Build Coastguard Worker        ubfxgt r4, r5, #16, #16
3338*9880d681SAndroid Build Coastguard Worker
3339*9880d681SAndroid Build Coastguard Worker@ CHECK: ubfx	r4, r5, #16, #1         @ encoding: [0xc5,0xf3,0x00,0x44]
3340*9880d681SAndroid Build Coastguard Worker@ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
3341*9880d681SAndroid Build Coastguard Worker@ CHECK: ubfxgt	r4, r5, #16, #16        @ encoding: [0xc5,0xf3,0x0f,0x44]
3342*9880d681SAndroid Build Coastguard Worker
3343*9880d681SAndroid Build Coastguard Worker
3344*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3345*9880d681SAndroid Build Coastguard Worker@ UHADD16/UHADD8
3346*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3347*9880d681SAndroid Build Coastguard Worker        uhadd16 r4, r8, r2
3348*9880d681SAndroid Build Coastguard Worker        uhadd8 r4, r8, r2
3349*9880d681SAndroid Build Coastguard Worker        itt gt
3350*9880d681SAndroid Build Coastguard Worker        uhadd16gt r4, r8, r2
3351*9880d681SAndroid Build Coastguard Worker        uhadd8gt r4, r8, r2
3352*9880d681SAndroid Build Coastguard Worker
3353*9880d681SAndroid Build Coastguard Worker@ CHECK: uhadd16	r4, r8, r2      @ encoding: [0x98,0xfa,0x62,0xf4]
3354*9880d681SAndroid Build Coastguard Worker@ CHECK: uhadd8	r4, r8, r2              @ encoding: [0x88,0xfa,0x62,0xf4]
3355*9880d681SAndroid Build Coastguard Worker@ CHECK: itt	gt                      @ encoding: [0xc4,0xbf]
3356*9880d681SAndroid Build Coastguard Worker@ CHECK: uhadd16gt	r4, r8, r2      @ encoding: [0x98,0xfa,0x62,0xf4]
3357*9880d681SAndroid Build Coastguard Worker@ CHECK: uhadd8gt	r4, r8, r2      @ encoding: [0x88,0xfa,0x62,0xf4]
3358*9880d681SAndroid Build Coastguard Worker
3359*9880d681SAndroid Build Coastguard Worker
3360*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3361*9880d681SAndroid Build Coastguard Worker@ UHASX/UHSAX
3362*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3363*9880d681SAndroid Build Coastguard Worker        uhasx r4, r1, r5
3364*9880d681SAndroid Build Coastguard Worker        uhsax r5, r6, r6
3365*9880d681SAndroid Build Coastguard Worker        itt gt
3366*9880d681SAndroid Build Coastguard Worker        uhasxgt r6, r9, r8
3367*9880d681SAndroid Build Coastguard Worker        uhsaxgt r7, r8, r12
3368*9880d681SAndroid Build Coastguard Worker        uhaddsubx r4, r1, r5
3369*9880d681SAndroid Build Coastguard Worker        uhsubaddx r5, r6, r6
3370*9880d681SAndroid Build Coastguard Worker        itt gt
3371*9880d681SAndroid Build Coastguard Worker        uhaddsubxgt r6, r9, r8
3372*9880d681SAndroid Build Coastguard Worker        uhsubaddxgt r7, r8, r12
3373*9880d681SAndroid Build Coastguard Worker
3374*9880d681SAndroid Build Coastguard Worker@ CHECK: uhasx	r4, r1, r5              @ encoding: [0xa1,0xfa,0x65,0xf4]
3375*9880d681SAndroid Build Coastguard Worker@ CHECK: uhsax	r5, r6, r6              @ encoding: [0xe6,0xfa,0x66,0xf5]
3376*9880d681SAndroid Build Coastguard Worker@ CHECK: itt	gt                      @ encoding: [0xc4,0xbf]
3377*9880d681SAndroid Build Coastguard Worker@ CHECK: uhasxgt r6, r9, r8             @ encoding: [0xa9,0xfa,0x68,0xf6]
3378*9880d681SAndroid Build Coastguard Worker@ CHECK: uhsaxgt r7, r8, r12            @ encoding: [0xe8,0xfa,0x6c,0xf7]
3379*9880d681SAndroid Build Coastguard Worker@ CHECK: uhasx	r4, r1, r5              @ encoding: [0xa1,0xfa,0x65,0xf4]
3380*9880d681SAndroid Build Coastguard Worker@ CHECK: uhsax	r5, r6, r6              @ encoding: [0xe6,0xfa,0x66,0xf5]
3381*9880d681SAndroid Build Coastguard Worker@ CHECK: itt	gt                      @ encoding: [0xc4,0xbf]
3382*9880d681SAndroid Build Coastguard Worker@ CHECK: uhasxgt r6, r9, r8             @ encoding: [0xa9,0xfa,0x68,0xf6]
3383*9880d681SAndroid Build Coastguard Worker@ CHECK: uhsaxgt r7, r8, r12            @ encoding: [0xe8,0xfa,0x6c,0xf7]
3384*9880d681SAndroid Build Coastguard Worker
3385*9880d681SAndroid Build Coastguard Worker
3386*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3387*9880d681SAndroid Build Coastguard Worker@ UHSUB16/UHSUB8
3388*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3389*9880d681SAndroid Build Coastguard Worker        uhsub16 r5, r8, r3
3390*9880d681SAndroid Build Coastguard Worker        uhsub8 r1, r7, r6
3391*9880d681SAndroid Build Coastguard Worker        itt lt
3392*9880d681SAndroid Build Coastguard Worker        uhsub16lt r4, r9, r12
3393*9880d681SAndroid Build Coastguard Worker        uhsub8lt r3, r1, r5
3394*9880d681SAndroid Build Coastguard Worker
3395*9880d681SAndroid Build Coastguard Worker@ CHECK: uhsub16	r5, r8, r3      @ encoding: [0xd8,0xfa,0x63,0xf5]
3396*9880d681SAndroid Build Coastguard Worker@ CHECK: uhsub8	r1, r7, r6              @ encoding: [0xc7,0xfa,0x66,0xf1]
3397*9880d681SAndroid Build Coastguard Worker@ CHECK: itt	lt                      @ encoding: [0xbc,0xbf]
3398*9880d681SAndroid Build Coastguard Worker@ CHECK: uhsub16lt	r4, r9, r12     @ encoding: [0xd9,0xfa,0x6c,0xf4]
3399*9880d681SAndroid Build Coastguard Worker@ CHECK: uhsub8lt	r3, r1, r5      @ encoding: [0xc1,0xfa,0x65,0xf3]
3400*9880d681SAndroid Build Coastguard Worker
3401*9880d681SAndroid Build Coastguard Worker
3402*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3403*9880d681SAndroid Build Coastguard Worker@ UMAAL
3404*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3405*9880d681SAndroid Build Coastguard Worker        umaal r3, r4, r5, r6
3406*9880d681SAndroid Build Coastguard Worker        it lt
3407*9880d681SAndroid Build Coastguard Worker        umaallt r3, r4, r5, r6
3408*9880d681SAndroid Build Coastguard Worker
3409*9880d681SAndroid Build Coastguard Worker@ CHECK: umaal	r3, r4, r5, r6          @ encoding: [0xe5,0xfb,0x66,0x34]
3410*9880d681SAndroid Build Coastguard Worker@ CHECK: it	lt                      @ encoding: [0xb8,0xbf]
3411*9880d681SAndroid Build Coastguard Worker@ CHECK: umaallt	r3, r4, r5, r6  @ encoding: [0xe5,0xfb,0x66,0x34]
3412*9880d681SAndroid Build Coastguard Worker
3413*9880d681SAndroid Build Coastguard Worker
3414*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3415*9880d681SAndroid Build Coastguard Worker@ UMLAL
3416*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3417*9880d681SAndroid Build Coastguard Worker        umlal r2, r4, r6, r8
3418*9880d681SAndroid Build Coastguard Worker        it gt
3419*9880d681SAndroid Build Coastguard Worker        umlalgt r6, r1, r2, r6
3420*9880d681SAndroid Build Coastguard Worker
3421*9880d681SAndroid Build Coastguard Worker@ CHECK: umlal	r2, r4, r6, r8          @ encoding: [0xe6,0xfb,0x08,0x24]
3422*9880d681SAndroid Build Coastguard Worker@ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
3423*9880d681SAndroid Build Coastguard Worker@ CHECK: umlalgt	r6, r1, r2, r6  @ encoding: [0xe2,0xfb,0x06,0x61]
3424*9880d681SAndroid Build Coastguard Worker
3425*9880d681SAndroid Build Coastguard Worker
3426*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3427*9880d681SAndroid Build Coastguard Worker@ UMULL
3428*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3429*9880d681SAndroid Build Coastguard Worker        umull r2, r4, r6, r8
3430*9880d681SAndroid Build Coastguard Worker        it gt
3431*9880d681SAndroid Build Coastguard Worker        umullgt r6, r1, r2, r6
3432*9880d681SAndroid Build Coastguard Worker
3433*9880d681SAndroid Build Coastguard Worker@ CHECK: umull	r2, r4, r6, r8          @ encoding: [0xa6,0xfb,0x08,0x24]
3434*9880d681SAndroid Build Coastguard Worker@ CHECK: it	gt                      @ encoding: [0xc8,0xbf]
3435*9880d681SAndroid Build Coastguard Worker@ CHECK: umullgt	r6, r1, r2, r6  @ encoding: [0xa2,0xfb,0x06,0x61]
3436*9880d681SAndroid Build Coastguard Worker
3437*9880d681SAndroid Build Coastguard Worker
3438*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3439*9880d681SAndroid Build Coastguard Worker@ UQADD16/UQADD8
3440*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3441*9880d681SAndroid Build Coastguard Worker        uqadd16 r1, r2, r3
3442*9880d681SAndroid Build Coastguard Worker        uqadd8 r3, r4, r8
3443*9880d681SAndroid Build Coastguard Worker        ite gt
3444*9880d681SAndroid Build Coastguard Worker        uqadd16gt r4, r7, r9
3445*9880d681SAndroid Build Coastguard Worker        uqadd8le r8, r1, r2
3446*9880d681SAndroid Build Coastguard Worker
3447*9880d681SAndroid Build Coastguard Worker@ CHECK: uqadd16	r1, r2, r3      @ encoding: [0x92,0xfa,0x53,0xf1]
3448*9880d681SAndroid Build Coastguard Worker@ CHECK: uqadd8	r3, r4, r8              @ encoding: [0x84,0xfa,0x58,0xf3]
3449*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
3450*9880d681SAndroid Build Coastguard Worker@ CHECK: uqadd16gt	r4, r7, r9      @ encoding: [0x97,0xfa,0x59,0xf4]
3451*9880d681SAndroid Build Coastguard Worker@ CHECK: uqadd8le	r8, r1, r2      @ encoding: [0x81,0xfa,0x52,0xf8]
3452*9880d681SAndroid Build Coastguard Worker
3453*9880d681SAndroid Build Coastguard Worker
3454*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3455*9880d681SAndroid Build Coastguard Worker@ UQASX/UQSAX
3456*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3457*9880d681SAndroid Build Coastguard Worker        uqasx r1, r2, r3
3458*9880d681SAndroid Build Coastguard Worker        uqsax r3, r4, r8
3459*9880d681SAndroid Build Coastguard Worker        ite gt
3460*9880d681SAndroid Build Coastguard Worker        uqasxgt r4, r7, r9
3461*9880d681SAndroid Build Coastguard Worker        uqsaxle r8, r1, r2
3462*9880d681SAndroid Build Coastguard Worker
3463*9880d681SAndroid Build Coastguard Worker        uqaddsubx r1, r2, r3
3464*9880d681SAndroid Build Coastguard Worker        uqsubaddx r3, r4, r8
3465*9880d681SAndroid Build Coastguard Worker        ite gt
3466*9880d681SAndroid Build Coastguard Worker        uqaddsubxgt r4, r7, r9
3467*9880d681SAndroid Build Coastguard Worker        uqsubaddxle r8, r1, r2
3468*9880d681SAndroid Build Coastguard Worker
3469*9880d681SAndroid Build Coastguard Worker@ CHECK: uqasx	r1, r2, r3              @ encoding: [0xa2,0xfa,0x53,0xf1]
3470*9880d681SAndroid Build Coastguard Worker@ CHECK: uqsax	r3, r4, r8              @ encoding: [0xe4,0xfa,0x58,0xf3]
3471*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
3472*9880d681SAndroid Build Coastguard Worker@ CHECK: uqasxgt r4, r7, r9             @ encoding: [0xa7,0xfa,0x59,0xf4]
3473*9880d681SAndroid Build Coastguard Worker@ CHECK: uqsaxle r8, r1, r2             @ encoding: [0xe1,0xfa,0x52,0xf8]
3474*9880d681SAndroid Build Coastguard Worker
3475*9880d681SAndroid Build Coastguard Worker@ CHECK: uqasx	r1, r2, r3              @ encoding: [0xa2,0xfa,0x53,0xf1]
3476*9880d681SAndroid Build Coastguard Worker@ CHECK: uqsax	r3, r4, r8              @ encoding: [0xe4,0xfa,0x58,0xf3]
3477*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
3478*9880d681SAndroid Build Coastguard Worker@ CHECK: uqasxgt r4, r7, r9             @ encoding: [0xa7,0xfa,0x59,0xf4]
3479*9880d681SAndroid Build Coastguard Worker@ CHECK: uqsaxle r8, r1, r2             @ encoding: [0xe1,0xfa,0x52,0xf8]
3480*9880d681SAndroid Build Coastguard Worker
3481*9880d681SAndroid Build Coastguard Worker
3482*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3483*9880d681SAndroid Build Coastguard Worker@ UQSUB16/UQSUB8
3484*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3485*9880d681SAndroid Build Coastguard Worker        uqsub8 r8, r2, r9
3486*9880d681SAndroid Build Coastguard Worker        uqsub16 r1, r9, r7
3487*9880d681SAndroid Build Coastguard Worker        ite gt
3488*9880d681SAndroid Build Coastguard Worker        uqsub8gt r3, r1, r6
3489*9880d681SAndroid Build Coastguard Worker        uqsub16le r4, r6, r4
3490*9880d681SAndroid Build Coastguard Worker
3491*9880d681SAndroid Build Coastguard Worker@ CHECK: uqsub8	r8, r2, r9              @ encoding: [0xc2,0xfa,0x59,0xf8]
3492*9880d681SAndroid Build Coastguard Worker@ CHECK: uqsub16 r1, r9, r7             @ encoding: [0xd9,0xfa,0x57,0xf1]
3493*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
3494*9880d681SAndroid Build Coastguard Worker@ CHECK: uqsub8gt	r3, r1, r6      @ encoding: [0xc1,0xfa,0x56,0xf3]
3495*9880d681SAndroid Build Coastguard Worker@ CHECK: uqsub16le	r4, r6, r4      @ encoding: [0xd6,0xfa,0x54,0xf4]
3496*9880d681SAndroid Build Coastguard Worker
3497*9880d681SAndroid Build Coastguard Worker
3498*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3499*9880d681SAndroid Build Coastguard Worker@ UQSUB16/UQSUB8
3500*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3501*9880d681SAndroid Build Coastguard Worker        usad8 r1, r9, r7
3502*9880d681SAndroid Build Coastguard Worker        usada8 r8, r2, r9, r12
3503*9880d681SAndroid Build Coastguard Worker        ite gt
3504*9880d681SAndroid Build Coastguard Worker        usada8gt r3, r1, r6, r9
3505*9880d681SAndroid Build Coastguard Worker        usad8le r4, r6, r4
3506*9880d681SAndroid Build Coastguard Worker
3507*9880d681SAndroid Build Coastguard Worker@ CHECK: usad8	r1, r9, r7              @ encoding: [0x79,0xfb,0x07,0xf1]
3508*9880d681SAndroid Build Coastguard Worker@ CHECK: usada8	r8, r2, r9, r12         @ encoding: [0x72,0xfb,0x09,0xc8]
3509*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	gt                      @ encoding: [0xcc,0xbf]
3510*9880d681SAndroid Build Coastguard Worker@ CHECK: usada8gt	r3, r1, r6, r9  @ encoding: [0x71,0xfb,0x06,0x93]
3511*9880d681SAndroid Build Coastguard Worker@ CHECK: usad8le	r4, r6, r4      @ encoding: [0x76,0xfb,0x04,0xf4]
3512*9880d681SAndroid Build Coastguard Worker
3513*9880d681SAndroid Build Coastguard Worker
3514*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3515*9880d681SAndroid Build Coastguard Worker@ USAT
3516*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3517*9880d681SAndroid Build Coastguard Worker        usat	r8, #1, r10
3518*9880d681SAndroid Build Coastguard Worker        usat	r8, #4, r10, lsl #0
3519*9880d681SAndroid Build Coastguard Worker        usat	r8, #5, r10, lsl #31
3520*9880d681SAndroid Build Coastguard Worker        usat	r8, #16, r10, asr #1
3521*9880d681SAndroid Build Coastguard Worker
3522*9880d681SAndroid Build Coastguard Worker@ CHECK: usat	r8, #1, r10             @ encoding: [0x8a,0xf3,0x01,0x08]
3523*9880d681SAndroid Build Coastguard Worker@ CHECK: usat	r8, #4, r10             @ encoding: [0x8a,0xf3,0x04,0x08]
3524*9880d681SAndroid Build Coastguard Worker@ CHECK: usat	r8, #5, r10, lsl #31    @ encoding: [0x8a,0xf3,0xc5,0x78]
3525*9880d681SAndroid Build Coastguard Worker@ CHECK: usat	r8, #16, r10, asr #1    @ encoding: [0xaa,0xf3,0x50,0x08]
3526*9880d681SAndroid Build Coastguard Worker
3527*9880d681SAndroid Build Coastguard Worker
3528*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3529*9880d681SAndroid Build Coastguard Worker@ USAT16
3530*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3531*9880d681SAndroid Build Coastguard Worker        usat16	r2, #2, r7
3532*9880d681SAndroid Build Coastguard Worker        usat16	r3, #15, r5
3533*9880d681SAndroid Build Coastguard Worker
3534*9880d681SAndroid Build Coastguard Worker@ CHECK: usat16	r2, #2, r7              @ encoding: [0xa7,0xf3,0x02,0x02]
3535*9880d681SAndroid Build Coastguard Worker@ CHECK: usat16	r3, #15, r5             @ encoding: [0xa5,0xf3,0x0f,0x03]
3536*9880d681SAndroid Build Coastguard Worker
3537*9880d681SAndroid Build Coastguard Worker
3538*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3539*9880d681SAndroid Build Coastguard Worker@ USAX
3540*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3541*9880d681SAndroid Build Coastguard Worker        usax r2, r3, r4
3542*9880d681SAndroid Build Coastguard Worker        it ne
3543*9880d681SAndroid Build Coastguard Worker        usaxne r6, r1, r9
3544*9880d681SAndroid Build Coastguard Worker        usubaddx r2, r3, r4
3545*9880d681SAndroid Build Coastguard Worker        it ne
3546*9880d681SAndroid Build Coastguard Worker        usubaddxne r6, r1, r9
3547*9880d681SAndroid Build Coastguard Worker
3548*9880d681SAndroid Build Coastguard Worker@ CHECK: usax	r2, r3, r4              @ encoding: [0xe3,0xfa,0x44,0xf2]
3549*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ne                      @ encoding: [0x18,0xbf]
3550*9880d681SAndroid Build Coastguard Worker@ CHECK: usaxne	r6, r1, r9              @ encoding: [0xe1,0xfa,0x49,0xf6]
3551*9880d681SAndroid Build Coastguard Worker@ CHECK: usax	r2, r3, r4              @ encoding: [0xe3,0xfa,0x44,0xf2]
3552*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ne                      @ encoding: [0x18,0xbf]
3553*9880d681SAndroid Build Coastguard Worker@ CHECK: usaxne	r6, r1, r9              @ encoding: [0xe1,0xfa,0x49,0xf6]
3554*9880d681SAndroid Build Coastguard Worker
3555*9880d681SAndroid Build Coastguard Worker
3556*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3557*9880d681SAndroid Build Coastguard Worker@ USUB16/USUB8
3558*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3559*9880d681SAndroid Build Coastguard Worker        usub16 r4, r2, r7
3560*9880d681SAndroid Build Coastguard Worker        usub8 r1, r8, r5
3561*9880d681SAndroid Build Coastguard Worker        ite hi
3562*9880d681SAndroid Build Coastguard Worker        usub16hi r1, r1, r3
3563*9880d681SAndroid Build Coastguard Worker        usub8ls r9, r2, r3
3564*9880d681SAndroid Build Coastguard Worker
3565*9880d681SAndroid Build Coastguard Worker@ CHECK: usub16	r4, r2, r7              @ encoding: [0xd2,0xfa,0x47,0xf4]
3566*9880d681SAndroid Build Coastguard Worker@ CHECK: usub8	r1, r8, r5              @ encoding: [0xc8,0xfa,0x45,0xf1]
3567*9880d681SAndroid Build Coastguard Worker@ CHECK: ite	hi                      @ encoding: [0x8c,0xbf]
3568*9880d681SAndroid Build Coastguard Worker@ CHECK: usub16hi	r1, r1, r3      @ encoding: [0xd1,0xfa,0x43,0xf1]
3569*9880d681SAndroid Build Coastguard Worker@ CHECK: usub8ls	r9, r2, r3      @ encoding: [0xc2,0xfa,0x43,0xf9]
3570*9880d681SAndroid Build Coastguard Worker
3571*9880d681SAndroid Build Coastguard Worker
3572*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3573*9880d681SAndroid Build Coastguard Worker@ UXTAB
3574*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3575*9880d681SAndroid Build Coastguard Worker        uxtab r2, r3, r4
3576*9880d681SAndroid Build Coastguard Worker        uxtab r4, r5, r6, ror #0
3577*9880d681SAndroid Build Coastguard Worker        it lt
3578*9880d681SAndroid Build Coastguard Worker        uxtablt r6, r2, r9, ror #8
3579*9880d681SAndroid Build Coastguard Worker        uxtab r5, r1, r4, ror #16
3580*9880d681SAndroid Build Coastguard Worker        uxtab r7, r8, r3, ror #24
3581*9880d681SAndroid Build Coastguard Worker
3582*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtab	r2, r3, r4              @ encoding: [0x53,0xfa,0x84,0xf2]
3583*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtab	r4, r5, r6              @ encoding: [0x55,0xfa,0x86,0xf4]
3584*9880d681SAndroid Build Coastguard Worker@ CHECK: it	lt                      @ encoding: [0xb8,0xbf]
3585*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtablt r6, r2, r9, ror #8     @ encoding: [0x52,0xfa,0x99,0xf6]
3586*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtab	r5, r1, r4, ror #16     @ encoding: [0x51,0xfa,0xa4,0xf5]
3587*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtab	r7, r8, r3, ror #24     @ encoding: [0x58,0xfa,0xb3,0xf7]
3588*9880d681SAndroid Build Coastguard Worker
3589*9880d681SAndroid Build Coastguard Worker
3590*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3591*9880d681SAndroid Build Coastguard Worker@ UXTAB16
3592*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3593*9880d681SAndroid Build Coastguard Worker        it ge
3594*9880d681SAndroid Build Coastguard Worker        uxtab16ge r0, r1, r4
3595*9880d681SAndroid Build Coastguard Worker        uxtab16 r6, r2, r7, ror #0
3596*9880d681SAndroid Build Coastguard Worker        uxtab16 r3, r5, r8, ror #8
3597*9880d681SAndroid Build Coastguard Worker        uxtab16 r3, r2, r1, ror #16
3598*9880d681SAndroid Build Coastguard Worker        it eq
3599*9880d681SAndroid Build Coastguard Worker        uxtab16eq r1, r2, r3, ror #24
3600*9880d681SAndroid Build Coastguard Worker
3601*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ge                      @ encoding: [0xa8,0xbf]
3602*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtab16ge	r0, r1, r4      @ encoding: [0x31,0xfa,0x84,0xf0]
3603*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtab16 r6, r2, r7             @ encoding: [0x32,0xfa,0x87,0xf6]
3604*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtab16 r3, r5, r8, ror #8     @ encoding: [0x35,0xfa,0x98,0xf3]
3605*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtab16 r3, r2, r1, ror #16    @ encoding: [0x32,0xfa,0xa1,0xf3]
3606*9880d681SAndroid Build Coastguard Worker@ CHECK: it	eq                      @ encoding: [0x08,0xbf]
3607*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtab16eq r1, r2, r3, ror #24  @ encoding: [0x32,0xfa,0xb3,0xf1]
3608*9880d681SAndroid Build Coastguard Worker
3609*9880d681SAndroid Build Coastguard Worker
3610*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3611*9880d681SAndroid Build Coastguard Worker@ UXTAH
3612*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3613*9880d681SAndroid Build Coastguard Worker        uxtah r1, r3, r9
3614*9880d681SAndroid Build Coastguard Worker        it hi
3615*9880d681SAndroid Build Coastguard Worker        uxtahhi r6, r1, r6, ror #0
3616*9880d681SAndroid Build Coastguard Worker        uxtah r3, r8, r3, ror #8
3617*9880d681SAndroid Build Coastguard Worker        it lo
3618*9880d681SAndroid Build Coastguard Worker        uxtahlo r2, r2, r4, ror #16
3619*9880d681SAndroid Build Coastguard Worker        uxtah r9, r3, r3, ror #24
3620*9880d681SAndroid Build Coastguard Worker
3621*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtah	r1, r3, r9              @ encoding: [0x13,0xfa,0x89,0xf1]
3622*9880d681SAndroid Build Coastguard Worker@ CHECK: it	hi                      @ encoding: [0x88,0xbf]
3623*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtahhi r6, r1, r6             @ encoding: [0x11,0xfa,0x86,0xf6]
3624*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtah	r3, r8, r3, ror #8      @ encoding: [0x18,0xfa,0x93,0xf3]
3625*9880d681SAndroid Build Coastguard Worker@ CHECK: it	lo                      @ encoding: [0x38,0xbf]
3626*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtahlo r2, r2, r4, ror #16    @ encoding: [0x12,0xfa,0xa4,0xf2]
3627*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtah	r9, r3, r3, ror #24     @ encoding: [0x13,0xfa,0xb3,0xf9]
3628*9880d681SAndroid Build Coastguard Worker
3629*9880d681SAndroid Build Coastguard Worker
3630*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3631*9880d681SAndroid Build Coastguard Worker@ UXTB
3632*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3633*9880d681SAndroid Build Coastguard Worker        it ge
3634*9880d681SAndroid Build Coastguard Worker        uxtbge r2, r4
3635*9880d681SAndroid Build Coastguard Worker        uxtb r5, r6, ror #0
3636*9880d681SAndroid Build Coastguard Worker        uxtb r6, r9, ror #8
3637*9880d681SAndroid Build Coastguard Worker        it cc
3638*9880d681SAndroid Build Coastguard Worker        uxtbcc r5, r1, ror #16
3639*9880d681SAndroid Build Coastguard Worker        uxtb r8, r3, ror #24
3640*9880d681SAndroid Build Coastguard Worker        uxtb.w  r7, r8
3641*9880d681SAndroid Build Coastguard Worker
3642*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ge                      @ encoding: [0xa8,0xbf]
3643*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtbge	r2, r4                  @ encoding: [0xe2,0xb2]
3644*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtb	r5, r6                  @ encoding: [0xf5,0xb2]
3645*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtb.w	r6, r9, ror #8          @ encoding: [0x5f,0xfa,0x99,0xf6]
3646*9880d681SAndroid Build Coastguard Worker@ CHECK: it	lo                      @ encoding: [0x38,0xbf]
3647*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtblo.w	r5, r1, ror #16 @ encoding: [0x5f,0xfa,0xa1,0xf5]
3648*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtb.w	r8, r3, ror #24         @ encoding: [0x5f,0xfa,0xb3,0xf8]
3649*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtb.w	r7, r8                  @ encoding: [0x5f,0xfa,0x88,0xf7]
3650*9880d681SAndroid Build Coastguard Worker
3651*9880d681SAndroid Build Coastguard Worker
3652*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3653*9880d681SAndroid Build Coastguard Worker@ UXTB16
3654*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3655*9880d681SAndroid Build Coastguard Worker        uxtb16 r1, r4
3656*9880d681SAndroid Build Coastguard Worker        uxtb16 r6, r7, ror #0
3657*9880d681SAndroid Build Coastguard Worker        it cs
3658*9880d681SAndroid Build Coastguard Worker        uxtb16cs r3, r5, ror #8
3659*9880d681SAndroid Build Coastguard Worker        uxtb16 r3, r1, ror #16
3660*9880d681SAndroid Build Coastguard Worker        it ge
3661*9880d681SAndroid Build Coastguard Worker        uxtb16ge r2, r3, ror #24
3662*9880d681SAndroid Build Coastguard Worker
3663*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtb16	r1, r4                  @ encoding: [0x3f,0xfa,0x84,0xf1]
3664*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtb16	r6, r7                  @ encoding: [0x3f,0xfa,0x87,0xf6]
3665*9880d681SAndroid Build Coastguard Worker@ CHECK: it	hs                      @ encoding: [0x28,0xbf]
3666*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtb16hs	r3, r5, ror #8  @ encoding: [0x3f,0xfa,0x95,0xf3]
3667*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtb16	r3, r1, ror #16         @ encoding: [0x3f,0xfa,0xa1,0xf3]
3668*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ge                      @ encoding: [0xa8,0xbf]
3669*9880d681SAndroid Build Coastguard Worker@ CHECK: uxtb16ge	r2, r3, ror #24 @ encoding: [0x3f,0xfa,0xb3,0xf2]
3670*9880d681SAndroid Build Coastguard Worker
3671*9880d681SAndroid Build Coastguard Worker
3672*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3673*9880d681SAndroid Build Coastguard Worker@ UXTH
3674*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3675*9880d681SAndroid Build Coastguard Worker        it ne
3676*9880d681SAndroid Build Coastguard Worker        uxthne r3, r9
3677*9880d681SAndroid Build Coastguard Worker        uxth r1, r6, ror #0
3678*9880d681SAndroid Build Coastguard Worker        uxth r3, r8, ror #8
3679*9880d681SAndroid Build Coastguard Worker        it le
3680*9880d681SAndroid Build Coastguard Worker        uxthle r2, r2, ror #16
3681*9880d681SAndroid Build Coastguard Worker        uxth r9, r3, ror #24
3682*9880d681SAndroid Build Coastguard Worker        uxth.w  r7, r8
3683*9880d681SAndroid Build Coastguard Worker
3684*9880d681SAndroid Build Coastguard Worker@ CHECK: it	ne                      @ encoding: [0x18,0xbf]
3685*9880d681SAndroid Build Coastguard Worker@ CHECK: uxthne.w	r3, r9          @ encoding: [0x1f,0xfa,0x89,0xf3]
3686*9880d681SAndroid Build Coastguard Worker@ CHECK: uxth	r1, r6                  @ encoding: [0xb1,0xb2]
3687*9880d681SAndroid Build Coastguard Worker@ CHECK: uxth.w	r3, r8, ror #8          @ encoding: [0x1f,0xfa,0x98,0xf3]
3688*9880d681SAndroid Build Coastguard Worker@ CHECK: it	le                      @ encoding: [0xd8,0xbf]
3689*9880d681SAndroid Build Coastguard Worker@ CHECK: uxthle.w	r2, r2, ror #16 @ encoding: [0x1f,0xfa,0xa2,0xf2]
3690*9880d681SAndroid Build Coastguard Worker@ CHECK: uxth.w	r9, r3, ror #24         @ encoding: [0x1f,0xfa,0xb3,0xf9]
3691*9880d681SAndroid Build Coastguard Worker@ CHECK: uxth.w	r7, r8                  @ encoding: [0x1f,0xfa,0x88,0xf7]
3692*9880d681SAndroid Build Coastguard Worker
3693*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3694*9880d681SAndroid Build Coastguard Worker@ WFE/WFI/YIELD/HINT
3695*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3696*9880d681SAndroid Build Coastguard Worker        wfe
3697*9880d681SAndroid Build Coastguard Worker        wfi
3698*9880d681SAndroid Build Coastguard Worker        yield
3699*9880d681SAndroid Build Coastguard Worker        itet lt
3700*9880d681SAndroid Build Coastguard Worker        wfelt
3701*9880d681SAndroid Build Coastguard Worker        wfige
3702*9880d681SAndroid Build Coastguard Worker        yieldlt
3703*9880d681SAndroid Build Coastguard Worker        hint.w #4
3704*9880d681SAndroid Build Coastguard Worker        hint.w #3
3705*9880d681SAndroid Build Coastguard Worker        hint.w #2
3706*9880d681SAndroid Build Coastguard Worker        hint.w #1
3707*9880d681SAndroid Build Coastguard Worker        hint.w #0
3708*9880d681SAndroid Build Coastguard Worker        hint #4
3709*9880d681SAndroid Build Coastguard Worker        hint #3
3710*9880d681SAndroid Build Coastguard Worker        hint #2
3711*9880d681SAndroid Build Coastguard Worker        hint #1
3712*9880d681SAndroid Build Coastguard Worker        hint #0
3713*9880d681SAndroid Build Coastguard Worker
3714*9880d681SAndroid Build Coastguard Worker        itet lt
3715*9880d681SAndroid Build Coastguard Worker        hintlt #15
3716*9880d681SAndroid Build Coastguard Worker        hintge #16
3717*9880d681SAndroid Build Coastguard Worker        hintlt #239
3718*9880d681SAndroid Build Coastguard Worker
3719*9880d681SAndroid Build Coastguard Worker@ CHECK: wfe                            @ encoding: [0x20,0xbf]
3720*9880d681SAndroid Build Coastguard Worker@ CHECK: wfi                            @ encoding: [0x30,0xbf]
3721*9880d681SAndroid Build Coastguard Worker@ CHECK: yield                          @ encoding: [0x10,0xbf]
3722*9880d681SAndroid Build Coastguard Worker@ CHECK: itet	lt                      @ encoding: [0xb6,0xbf]
3723*9880d681SAndroid Build Coastguard Worker@ CHECK: wfelt                          @ encoding: [0x20,0xbf]
3724*9880d681SAndroid Build Coastguard Worker@ CHECK: wfige                          @ encoding: [0x30,0xbf]
3725*9880d681SAndroid Build Coastguard Worker@ CHECK: yieldlt                        @ encoding: [0x10,0xbf]
3726*9880d681SAndroid Build Coastguard Worker@ CHECK: sev.w                          @ encoding: [0xaf,0xf3,0x04,0x80]
3727*9880d681SAndroid Build Coastguard Worker@ CHECK: wfi.w                          @ encoding: [0xaf,0xf3,0x03,0x80]
3728*9880d681SAndroid Build Coastguard Worker@ CHECK: wfe.w                          @ encoding: [0xaf,0xf3,0x02,0x80]
3729*9880d681SAndroid Build Coastguard Worker@ CHECK: yield.w                        @ encoding: [0xaf,0xf3,0x01,0x80]
3730*9880d681SAndroid Build Coastguard Worker@ CHECK: nop.w                          @ encoding: [0xaf,0xf3,0x00,0x80]
3731*9880d681SAndroid Build Coastguard Worker@ CHECK: sev                            @ encoding: [0x40,0xbf]
3732*9880d681SAndroid Build Coastguard Worker@ CHECK: wfi                            @ encoding: [0x30,0xbf]
3733*9880d681SAndroid Build Coastguard Worker@ CHECK: wfe                            @ encoding: [0x20,0xbf]
3734*9880d681SAndroid Build Coastguard Worker@ CHECK: yield                          @ encoding: [0x10,0xbf]
3735*9880d681SAndroid Build Coastguard Worker@ CHECK: nop                            @ encoding: [0x00,0xbf]
3736*9880d681SAndroid Build Coastguard Worker
3737*9880d681SAndroid Build Coastguard Worker@ CHECK: itet	lt                      @ encoding: [0xb6,0xbf]
3738*9880d681SAndroid Build Coastguard Worker@ CHECK: hintlt #15                     @ encoding: [0xf0,0xbf]
3739*9880d681SAndroid Build Coastguard Worker@ CHECK: hintge.w #16                   @ encoding: [0xaf,0xf3,0x10,0x80]
3740*9880d681SAndroid Build Coastguard Worker@ CHECK: hintlt.w #239                  @ encoding: [0xaf,0xf3,0xef,0x80]
3741*9880d681SAndroid Build Coastguard Worker
3742*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3743*9880d681SAndroid Build Coastguard Worker@ Unallocated wide/narrow hints
3744*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3745*9880d681SAndroid Build Coastguard Worker        hint #7
3746*9880d681SAndroid Build Coastguard Worker        hint.w #7
3747*9880d681SAndroid Build Coastguard Worker@ CHECK: hint #7                        @ encoding: [0x70,0xbf]
3748*9880d681SAndroid Build Coastguard Worker@ CHECK: hint.w #7                      @ encoding: [0xaf,0xf3,0x07,0x80]
3749*9880d681SAndroid Build Coastguard Worker
3750*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3751*9880d681SAndroid Build Coastguard Worker@ Alternate syntax for LDR*(literal) encodings
3752*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
3753*9880d681SAndroid Build Coastguard Worker        ldrb r11, [pc, #22]
3754*9880d681SAndroid Build Coastguard Worker        ldrh r11, [pc, #22]
3755*9880d681SAndroid Build Coastguard Worker        ldrsb r11, [pc, #22]
3756*9880d681SAndroid Build Coastguard Worker        ldrsh r11, [pc, #22]
3757*9880d681SAndroid Build Coastguard Worker        ldr.w r11, [pc, #22]
3758*9880d681SAndroid Build Coastguard Worker        ldrb.w r11, [pc, #22]
3759*9880d681SAndroid Build Coastguard Worker        ldrh.w r11, [pc, #22]
3760*9880d681SAndroid Build Coastguard Worker        ldrsb.w r11, [pc, #22]
3761*9880d681SAndroid Build Coastguard Worker        ldrsh.w r11, [pc, #22]
3762*9880d681SAndroid Build Coastguard Worker
3763*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w r11, [pc, #22]        @ encoding: [0x9f,0xf8,0x16,0xb0]
3764*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w r11, [pc, #22]        @ encoding: [0xbf,0xf8,0x16,0xb0]
3765*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r11, [pc, #22]       @ encoding: [0x9f,0xf9,0x16,0xb0]
3766*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r11, [pc, #22]       @ encoding: [0xbf,0xf9,0x16,0xb0]
3767*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w r11, [pc, #22]         @ encoding: [0xdf,0xf8,0x16,0xb0]
3768*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w r11, [pc, #22]        @ encoding: [0x9f,0xf8,0x16,0xb0]
3769*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w r11, [pc, #22]        @ encoding: [0xbf,0xf8,0x16,0xb0]
3770*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r11, [pc, #22]       @ encoding: [0x9f,0xf9,0x16,0xb0]
3771*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r11, [pc, #22]       @ encoding: [0xbf,0xf9,0x16,0xb0]
3772*9880d681SAndroid Build Coastguard Worker
3773*9880d681SAndroid Build Coastguard Worker        ldr r11, [pc, #-22]
3774*9880d681SAndroid Build Coastguard Worker        ldrb r11, [pc, #-22]
3775*9880d681SAndroid Build Coastguard Worker        ldrh r11, [pc, #-22]
3776*9880d681SAndroid Build Coastguard Worker        ldrsb r11, [pc, #-22]
3777*9880d681SAndroid Build Coastguard Worker        ldrsh r11, [pc, #-22]
3778*9880d681SAndroid Build Coastguard Worker        ldr.w r11, [pc, #-22]
3779*9880d681SAndroid Build Coastguard Worker        ldrb.w r11, [pc, #-22]
3780*9880d681SAndroid Build Coastguard Worker        ldrh.w r11, [pc, #-22]
3781*9880d681SAndroid Build Coastguard Worker        ldrsb.w r11, [pc, #-22]
3782*9880d681SAndroid Build Coastguard Worker        ldrsh.w r11, [pc, #-22]
3783*9880d681SAndroid Build Coastguard Worker
3784*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r11, [pc, #-22]         @ encoding: [0x5f,0xf8,0x16,0xb0]
3785*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	r11, [pc, #-22]         @ encoding: [0x1f,0xf8,0x16,0xb0]
3786*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	r11, [pc, #-22]         @ encoding: [0x3f,0xf8,0x16,0xb0]
3787*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r11, [pc, #-22]        @ encoding: [0x1f,0xf9,0x16,0xb0]
3788*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r11, [pc, #-22]        @ encoding: [0x3f,0xf9,0x16,0xb0]
3789*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr.w	r11, [pc, #-22]         @ encoding: [0x5f,0xf8,0x16,0xb0]
3790*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrb.w	r11, [pc, #-22]         @ encoding: [0x1f,0xf8,0x16,0xb0]
3791*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrh.w	r11, [pc, #-22]         @ encoding: [0x3f,0xf8,0x16,0xb0]
3792*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsb.w r11, [pc, #-22]        @ encoding: [0x1f,0xf9,0x16,0xb0]
3793*9880d681SAndroid Build Coastguard Worker@ CHECK: ldrsh.w r11, [pc, #-22]        @ encoding: [0x3f,0xf9,0x16,0xb0]
3794*9880d681SAndroid Build Coastguard Worker
3795*9880d681SAndroid Build Coastguard Worker@ rdar://12596361
3796*9880d681SAndroid Build Coastguard Worker         ldr r1, [pc, #12]
3797*9880d681SAndroid Build Coastguard Worker@ CHECK: ldr r1, [pc, #12]              @ encoding: [0x03,0x49]
3798*9880d681SAndroid Build Coastguard Worker
3799*9880d681SAndroid Build Coastguard Worker@ rdar://14214063
3800*9880d681SAndroid Build Coastguard Worker         subs pc, lr, #4
3801*9880d681SAndroid Build Coastguard Worker@ CHECK: subs pc, lr, #4                @ encoding: [0xde,0xf3,0x04,0x8f]
3802