xref: /aosp_15_r20/external/llvm/test/MC/ARM/diagnostics.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc -triple=armv7-apple-darwin < %s 2> %t
2*9880d681SAndroid Build Coastguard Worker@ RUN: FileCheck --check-prefix=CHECK-ERRORS --check-prefix=CHECK-ERRORS-V7 < %t %s
3*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc -triple=armv8 < %s 2> %t
4*9880d681SAndroid Build Coastguard Worker@ RUN: FileCheck --check-prefix=CHECK-ERRORS --check-prefix=CHECK-ERRORS-V8 < %t %s
5*9880d681SAndroid Build Coastguard Worker
6*9880d681SAndroid Build Coastguard Worker@ Check for various assembly diagnostic messages on invalid input.
7*9880d681SAndroid Build Coastguard Worker
8*9880d681SAndroid Build Coastguard Worker@ 's' bit on an instruction that can't accept it.
9*9880d681SAndroid Build Coastguard Worker        mlss r1, r2, r3, r4
10*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'mls' can not set flags,
11*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: but 's' suffix specified
12*9880d681SAndroid Build Coastguard Worker
13*9880d681SAndroid Build Coastguard Worker
14*9880d681SAndroid Build Coastguard Worker        @ Out of range shift immediate values.
15*9880d681SAndroid Build Coastguard Worker        adc r1, r2, r3, lsl #invalid
16*9880d681SAndroid Build Coastguard Worker        adc r4, r5, r6, lsl #-1
17*9880d681SAndroid Build Coastguard Worker        adc r4, r5, r6, lsl #32
18*9880d681SAndroid Build Coastguard Worker        adc r4, r5, r6, lsr #-1
19*9880d681SAndroid Build Coastguard Worker        adc r4, r5, r6, lsr #33
20*9880d681SAndroid Build Coastguard Worker        adc r4, r5, r6, asr #-1
21*9880d681SAndroid Build Coastguard Worker        adc r4, r5, r6, asr #33
22*9880d681SAndroid Build Coastguard Worker        adc r4, r5, r6, ror #-1
23*9880d681SAndroid Build Coastguard Worker        adc r4, r5, r6, ror #32
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid immediate shift value
26*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         adc r1, r2, r3, lsl #invalid
27*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
28*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
29*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         adc r4, r5, r6, lsl #-1
30*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
31*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
32*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         adc r4, r5, r6, lsl #32
33*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
34*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
35*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         adc r4, r5, r6, lsr #-1
36*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
37*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
38*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         adc r4, r5, r6, lsr #33
39*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
40*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
41*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         adc r4, r5, r6, asr #-1
42*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
43*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
44*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         adc r4, r5, r6, asr #33
45*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
46*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
47*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         adc r4, r5, r6, ror #-1
48*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
49*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
50*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         adc r4, r5, r6, ror #32
51*9880d681SAndroid Build Coastguard Worker
52*9880d681SAndroid Build Coastguard Worker        @ Out of range shift immediate values for load/store.
53*9880d681SAndroid Build Coastguard Worker        str r1, [r2, r3, lsl #invalid]
54*9880d681SAndroid Build Coastguard Worker        ldr r4, [r5], r6, lsl #-1
55*9880d681SAndroid Build Coastguard Worker        pld r4, [r5, r6, lsl #32]
56*9880d681SAndroid Build Coastguard Worker        str r4, [r5], r6, lsr #-1
57*9880d681SAndroid Build Coastguard Worker        ldr r4, [r5, r6, lsr #33]
58*9880d681SAndroid Build Coastguard Worker        pld r4, [r5, r6, asr #-1]
59*9880d681SAndroid Build Coastguard Worker        str r4, [r5, r6, asr #33]
60*9880d681SAndroid Build Coastguard Worker        ldr r4, [r5, r6, ror #-1]
61*9880d681SAndroid Build Coastguard Worker        pld r4, [r5, r6, ror #32]
62*9880d681SAndroid Build Coastguard Worker        pld r4, [r5, r6, rrx #0]
63*9880d681SAndroid Build Coastguard Worker
64*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: shift amount must be an immediate
65*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         str r1, [r2, r3, lsl #invalid]
66*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
67*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
68*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ldr r4, [r5], r6, lsl #-1
69*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
70*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
71*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         pld r4, [r5, r6, lsl #32]
72*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
73*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
74*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         str r4, [r5], r6, lsr #-1
75*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
76*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
77*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ldr r4, [r5, r6, lsr #33]
78*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
79*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
80*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         pld r4, [r5, r6, asr #-1]
81*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
82*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
83*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         str r4, [r5, r6, asr #33]
84*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
85*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
86*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ldr r4, [r5, r6, ror #-1]
87*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
88*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate shift value out of range
89*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         pld r4, [r5, r6, ror #32]
90*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: ']' expected
91*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         pld r4, [r5, r6, rrx #0]
92*9880d681SAndroid Build Coastguard Worker
93*9880d681SAndroid Build Coastguard Worker        @ Out of range 16-bit immediate on BKPT
94*9880d681SAndroid Build Coastguard Worker        bkpt #65536
95*9880d681SAndroid Build Coastguard Worker
96*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
97*9880d681SAndroid Build Coastguard Worker
98*9880d681SAndroid Build Coastguard Worker        @ Out of range immediates for v8 HLT instruction.
99*9880d681SAndroid Build Coastguard Worker        hlt #65536
100*9880d681SAndroid Build Coastguard Worker        hlt #-1
101*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS: error: invalid operand for instruction
102*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS:         hlt #65536
103*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS:              ^
104*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS: error: invalid operand for instruction
105*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS:         hlt #-1
106*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS:              ^
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Worker        @ Illegal condition code for v8 HLT instruction.
109*9880d681SAndroid Build Coastguard Worker        hlteq #2
110*9880d681SAndroid Build Coastguard Worker        hltlt #23
111*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS: error: instruction 'hlt' is not predicable, but condition code specified
112*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS:        hlteq #2
113*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS:        ^
114*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS: error: instruction 'hlt' is not predicable, but condition code specified
115*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS:        hltlt #23
116*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS:        ^
117*9880d681SAndroid Build Coastguard Worker
118*9880d681SAndroid Build Coastguard Worker        @ Out of range 4 and 3 bit immediates on CDP[2]
119*9880d681SAndroid Build Coastguard Worker
120*9880d681SAndroid Build Coastguard Worker        @ Out of range immediates for CDP/CDP2
121*9880d681SAndroid Build Coastguard Worker        cdp  p7, #2, c1, c1, c1, #8
122*9880d681SAndroid Build Coastguard Worker        cdp  p7, #1, c1, c1, c1, #8
123*9880d681SAndroid Build Coastguard Worker        cdp2  p7, #2, c1, c1, c1, #8
124*9880d681SAndroid Build Coastguard Worker        cdp2  p7, #1, c1, c1, c1, #8
125*9880d681SAndroid Build Coastguard Worker
126*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
127*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
128*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
129*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
130*9880d681SAndroid Build Coastguard Worker
131*9880d681SAndroid Build Coastguard Worker        @ Out of range immediates for DBG
132*9880d681SAndroid Build Coastguard Worker        dbg #-1
133*9880d681SAndroid Build Coastguard Worker        dbg #16
134*9880d681SAndroid Build Coastguard Worker
135*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must be in the range [0,15]
136*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must be in the range [0,15]
137*9880d681SAndroid Build Coastguard Worker@  Double-check that we're synced up with the right diagnostics.
138*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: dbg #16
139*9880d681SAndroid Build Coastguard Worker
140*9880d681SAndroid Build Coastguard Worker        @ Out of range immediate for MCR/MCR2/MCRR/MCRR2
141*9880d681SAndroid Build Coastguard Worker        mcr  p7, #8, r5, c1, c1, #4
142*9880d681SAndroid Build Coastguard Worker        mcr  p7, #2, r5, c1, c1, #8
143*9880d681SAndroid Build Coastguard Worker        mcr2  p7, #8, r5, c1, c1, #4
144*9880d681SAndroid Build Coastguard Worker        mcr2  p7, #1, r5, c1, c1, #8
145*9880d681SAndroid Build Coastguard Worker        mcrr  p7, #16, r5, r4, c1
146*9880d681SAndroid Build Coastguard Worker        mcrr2  p7, #16, r5, r4, c1
147*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
148*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
149*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
150*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
151*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must be in the range [0,15]
152*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7: error: immediate operand must be in the range [0,15]
153*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: error: invalid operand for instruction
154*9880d681SAndroid Build Coastguard Worker
155*9880d681SAndroid Build Coastguard Worker        @ p10 and p11 are reserved for NEON
156*9880d681SAndroid Build Coastguard Worker        mcr p10, #2, r5, c1, c1, #4
157*9880d681SAndroid Build Coastguard Worker        mcrr p11, #8, r5, r4, c1
158*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
159*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
160*9880d681SAndroid Build Coastguard Worker
161*9880d681SAndroid Build Coastguard Worker        @ Out of range immediate for MOV
162*9880d681SAndroid Build Coastguard Worker        movw r9, 0x10000
163*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
164*9880d681SAndroid Build Coastguard Worker
165*9880d681SAndroid Build Coastguard Worker        @ Invalid 's' bit usage for MOVW
166*9880d681SAndroid Build Coastguard Worker        movs r6, #0xffff
167*9880d681SAndroid Build Coastguard Worker        movwseq r9, #0xffff
168*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
169*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'movw' can not set flags, but 's' suffix specified
170*9880d681SAndroid Build Coastguard Worker
171*9880d681SAndroid Build Coastguard Worker        @ Out of range immediate for MOVT
172*9880d681SAndroid Build Coastguard Worker        movt r9, 0x10000
173*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
174*9880d681SAndroid Build Coastguard Worker
175*9880d681SAndroid Build Coastguard Worker        @ Out of range immediates for MRC/MRC2/MRRC/MRRC2
176*9880d681SAndroid Build Coastguard Worker        mrc  p14, #8, r1, c1, c2, #4
177*9880d681SAndroid Build Coastguard Worker        mrc  p14, #1, r1, c1, c2, #8
178*9880d681SAndroid Build Coastguard Worker        mrc2  p14, #8, r1, c1, c2, #4
179*9880d681SAndroid Build Coastguard Worker        mrc2  p14, #0, r1, c1, c2, #9
180*9880d681SAndroid Build Coastguard Worker        mrrc  p7, #16, r5, r4, c1
181*9880d681SAndroid Build Coastguard Worker        mrrc2  p7, #17, r5, r4, c1
182*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
183*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
184*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
185*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
186*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must be in the range [0,15]
187*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7: error: immediate operand must be in the range [0,15]
188*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: error: invalid operand for instruction
189*9880d681SAndroid Build Coastguard Worker
190*9880d681SAndroid Build Coastguard Worker        @ Shifter operand validation for PKH instructions.
191*9880d681SAndroid Build Coastguard Worker        pkhbt r2, r2, r3, lsl #-1
192*9880d681SAndroid Build Coastguard Worker        pkhbt r2, r2, r3, lsl #32
193*9880d681SAndroid Build Coastguard Worker        pkhtb r2, r2, r3, asr #0
194*9880d681SAndroid Build Coastguard Worker        pkhtb r2, r2, r3, asr #33
195*9880d681SAndroid Build Coastguard Worker        pkhbt r2, r2, r3, asr #3
196*9880d681SAndroid Build Coastguard Worker        pkhtb r2, r2, r3, lsl #3
197*9880d681SAndroid Build Coastguard Worker
198*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate value out of range
199*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         pkhbt r2, r2, r3, lsl #-1
200*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                                ^
201*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate value out of range
202*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         pkhbt r2, r2, r3, lsl #32
203*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                                ^
204*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate value out of range
205*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         pkhtb r2, r2, r3, asr #0
206*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                                ^
207*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate value out of range
208*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         pkhtb r2, r2, r3, asr #33
209*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                                ^
210*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: lsl operand expected.
211*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         pkhbt r2, r2, r3, asr #3
212*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                           ^
213*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: asr operand expected.
214*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         pkhtb r2, r2, r3, lsl #3
215*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                           ^
216*9880d681SAndroid Build Coastguard Worker
217*9880d681SAndroid Build Coastguard Worker
218*9880d681SAndroid Build Coastguard Worker        @ bad values for SETEND
219*9880d681SAndroid Build Coastguard Worker        setendne be
220*9880d681SAndroid Build Coastguard Worker        setend me
221*9880d681SAndroid Build Coastguard Worker        setend 1
222*9880d681SAndroid Build Coastguard Worker
223*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'setend' is not predicable, but condition code specified
224*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         setendne be
225*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
226*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: 'be' or 'le' operand expected
227*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         setend me
228*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                  ^
229*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: 'be' or 'le' operand expected
230*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         setend 1
231*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                ^
232*9880d681SAndroid Build Coastguard Worker
233*9880d681SAndroid Build Coastguard Worker
234*9880d681SAndroid Build Coastguard Worker        @ Out of range immediates and bad shift types for SSAT
235*9880d681SAndroid Build Coastguard Worker	ssat	r8, #0, r10, lsl #8
236*9880d681SAndroid Build Coastguard Worker	ssat	r8, #33, r10, lsl #8
237*9880d681SAndroid Build Coastguard Worker	ssat	r8, #1, r10, lsl #-1
238*9880d681SAndroid Build Coastguard Worker	ssat	r8, #1, r10, lsl #32
239*9880d681SAndroid Build Coastguard Worker	ssat	r8, #1, r10, asr #0
240*9880d681SAndroid Build Coastguard Worker	ssat	r8, #1, r10, asr #33
241*9880d681SAndroid Build Coastguard Worker        ssat    r8, #1, r10, lsr #5
242*9880d681SAndroid Build Coastguard Worker        ssat    r8, #1, r10, lsl fred
243*9880d681SAndroid Build Coastguard Worker        ssat    r8, #1, r10, lsl #fred
244*9880d681SAndroid Build Coastguard Worker
245*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
246*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	ssat	r8, #0, r10, lsl #8
247*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	    	    ^
248*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
249*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	ssat	r8, #33, r10, lsl #8
250*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	    	    ^
251*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: 'lsr' shift amount must be in range [0,31]
252*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	ssat	r8, #1, r10, lsl #-1
253*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	    	                  ^
254*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: 'lsr' shift amount must be in range [0,31]
255*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	ssat	r8, #1, r10, lsl #32
256*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	    	                  ^
257*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: 'asr' shift amount must be in range [1,32]
258*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	ssat	r8, #1, r10, asr #0
259*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	    	                  ^
260*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: 'asr' shift amount must be in range [1,32]
261*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	ssat	r8, #1, r10, asr #33
262*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	    	                  ^
263*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: shift operator 'asr' or 'lsl' expected
264*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ssat    r8, #1, r10, lsr #5
265*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
266*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: '#' expected
267*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ssat    r8, #1, r10, lsl fred
268*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                                  ^
269*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: shift amount must be an immediate
270*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ssat    r8, #1, r10, lsl #fred
271*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                                   ^
272*9880d681SAndroid Build Coastguard Worker
273*9880d681SAndroid Build Coastguard Worker        @ Out of range immediates for SSAT16
274*9880d681SAndroid Build Coastguard Worker	ssat16	r2, #0, r7
275*9880d681SAndroid Build Coastguard Worker	ssat16	r3, #17, r5
276*9880d681SAndroid Build Coastguard Worker
277*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
278*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	ssat16	r2, #0, r7
279*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	      	    ^
280*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
281*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	ssat16	r3, #17, r5
282*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: 	      	    ^
283*9880d681SAndroid Build Coastguard Worker
284*9880d681SAndroid Build Coastguard Worker
285*9880d681SAndroid Build Coastguard Worker        @ Out of order STM registers
286*9880d681SAndroid Build Coastguard Worker        stmda sp!, {r5, r2}
287*9880d681SAndroid Build Coastguard Worker
288*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: warning: register list not in ascending order
289*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         stmda     sp!, {r5, r2}
290*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                            ^
291*9880d681SAndroid Build Coastguard Worker
292*9880d681SAndroid Build Coastguard Worker
293*9880d681SAndroid Build Coastguard Worker        @ Out of range immediate on SVC
294*9880d681SAndroid Build Coastguard Worker        svc #0x1000000
295*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
296*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:   svc #0x1000000
297*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:       ^
298*9880d681SAndroid Build Coastguard Worker
299*9880d681SAndroid Build Coastguard Worker
300*9880d681SAndroid Build Coastguard Worker        @ Out of order Rt/Rt2 operands for ldrexd/strexd
301*9880d681SAndroid Build Coastguard Worker        ldrexd  r4, r3, [r8]
302*9880d681SAndroid Build Coastguard Worker        strexd  r6, r5, r3, [r8]
303*9880d681SAndroid Build Coastguard Worker
304*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination operands must be sequential
305*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ldrexd  r4, r3, [r8]
306*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                     ^
307*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source operands must be sequential
308*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         strexd  r6, r5, r3, [r8]
309*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                         ^
310*9880d681SAndroid Build Coastguard Worker
311*9880d681SAndroid Build Coastguard Worker        @ Illegal rotate operators for extend instructions
312*9880d681SAndroid Build Coastguard Worker        sxtb r8, r3, #8
313*9880d681SAndroid Build Coastguard Worker        sxtb r8, r3, ror 24
314*9880d681SAndroid Build Coastguard Worker        sxtb r8, r3, ror #8 -
315*9880d681SAndroid Build Coastguard Worker        sxtab r3, r8, r3, ror #(fred - wilma)
316*9880d681SAndroid Build Coastguard Worker        sxtab r7, r8, r3, ror #25
317*9880d681SAndroid Build Coastguard Worker        sxtah r9, r3, r3, ror #-8
318*9880d681SAndroid Build Coastguard Worker        sxtb16ge r2, r3, lsr #24
319*9880d681SAndroid Build Coastguard Worker
320*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
321*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         sxtb r8, r3, #8
322*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                      ^
323*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: '#' expected
324*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         sxtb r8, r3, ror 24
325*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                          ^
326*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: unknown token in expression
327*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         sxtb r8, r3, ror #8 -
328*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                              ^
329*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: malformed rotate expression
330*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         sxtb r8, r3, ror #8 -
331*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                           ^
332*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: rotate amount must be an immediate
333*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         sxtab r3, r8, r3, ror #(fred - wilma)
334*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                                ^
335*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: 'ror' rotate amount must be 8, 16, or 24
336*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         sxtab r7, r8, r3, ror #25
337*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                                ^
338*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: 'ror' rotate amount must be 8, 16, or 24
339*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         sxtah r9, r3, r3, ror #-8
340*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                                ^
341*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
342*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         sxtb16ge r2, r3, lsr #24
343*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                          ^
344*9880d681SAndroid Build Coastguard Worker
345*9880d681SAndroid Build Coastguard Worker        @ Out of range width for SBFX/UBFX
346*9880d681SAndroid Build Coastguard Worker        sbfx r4, r5, #31, #2
347*9880d681SAndroid Build Coastguard Worker        ubfxgt r4, r5, #16, #17
348*9880d681SAndroid Build Coastguard Worker
349*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: bitfield width must be in range [1,32-lsb]
350*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         sbfx r4, r5, #31, #2
351*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                           ^
352*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: bitfield width must be in range [1,32-lsb]
353*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ubfxgt r4, r5, #16, #17
354*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                             ^
355*9880d681SAndroid Build Coastguard Worker
356*9880d681SAndroid Build Coastguard Worker        @ Using pc for SBFX/UBFX
357*9880d681SAndroid Build Coastguard Worker        sbfx pc, r2, #1, #3
358*9880d681SAndroid Build Coastguard Worker        sbfx sp, pc, #4, #5
359*9880d681SAndroid Build Coastguard Worker        ubfx pc, r0, #0, #31
360*9880d681SAndroid Build Coastguard Worker        ubfx r14, pc, #1, #2
361*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
362*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         sbfx pc, r2, #1, #3
363*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:              ^
364*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
365*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         sbfx sp, pc, #4, #5
366*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                  ^
367*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
368*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ubfx pc, r0, #0, #31
369*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:              ^
370*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
371*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ubfx r14, pc, #1, #2
372*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                   ^
373*9880d681SAndroid Build Coastguard Worker
374*9880d681SAndroid Build Coastguard Worker        @ Out of order Rt/Rt2 operands for ldrd
375*9880d681SAndroid Build Coastguard Worker        ldrd  r4, r3, [r8]
376*9880d681SAndroid Build Coastguard Worker        ldrd  r4, r3, [r8, #8]!
377*9880d681SAndroid Build Coastguard Worker        ldrd  r4, r3, [r8], #8
378*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination operands must be sequential
379*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ldrd  r4, r3, [r8]
380*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                   ^
381*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination operands must be sequential
382*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ldrd  r4, r3, [r8, #8]!
383*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                   ^
384*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination operands must be sequential
385*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ldrd  r4, r3, [r8], #8
386*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                   ^
387*9880d681SAndroid Build Coastguard Worker
388*9880d681SAndroid Build Coastguard Worker
389*9880d681SAndroid Build Coastguard Worker        @ Bad register lists for VFP.
390*9880d681SAndroid Build Coastguard Worker        vpush {s0, s3}
391*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: non-contiguous register range
392*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         vpush {s0, s3}
393*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                    ^
394*9880d681SAndroid Build Coastguard Worker
395*9880d681SAndroid Build Coastguard Worker        @ Out of range coprocessor option immediate.
396*9880d681SAndroid Build Coastguard Worker        ldc2 p2, c8, [r1], { 256 }
397*9880d681SAndroid Build Coastguard Worker        ldc2 p2, c8, [r1], { -1 }
398*9880d681SAndroid Build Coastguard Worker
399*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7: error: coprocessor option must be an immediate in range [0, 255]
400*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7:         ldc2 p2, c8, [r1], { 256 }
401*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7:                              ^
402*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: error: register expected
403*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7: error: coprocessor option must be an immediate in range [0, 255]
404*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7:         ldc2 p2, c8, [r1], { -1 }
405*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7:                              ^
406*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: error: register expected
407*9880d681SAndroid Build Coastguard Worker
408*9880d681SAndroid Build Coastguard Worker        @ Bad CPS instruction format.
409*9880d681SAndroid Build Coastguard Worker        cps f,#1
410*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
411*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         cps f,#1
412*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:               ^
413*9880d681SAndroid Build Coastguard Worker
414*9880d681SAndroid Build Coastguard Worker        @ Bad operands for msr
415*9880d681SAndroid Build Coastguard Worker        msr #0, #0
416*9880d681SAndroid Build Coastguard Worker        msr foo, #0
417*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
418*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         msr #0, #0
419*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:             ^
420*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
421*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         msr foo, #0
422*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:             ^
423*9880d681SAndroid Build Coastguard Worker
424*9880d681SAndroid Build Coastguard Worker        isb #-1
425*9880d681SAndroid Build Coastguard Worker        isb #16
426*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate value out of range
427*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate value out of range
428*9880d681SAndroid Build Coastguard Worker
429*9880d681SAndroid Build Coastguard Worker        nop.n
430*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction with .n (narrow) qualifier not allowed in arm mode
431*9880d681SAndroid Build Coastguard Worker
432*9880d681SAndroid Build Coastguard Worker	dmbeq #5
433*9880d681SAndroid Build Coastguard Worker	dsble #15
434*9880d681SAndroid Build Coastguard Worker	isblo #7
435*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'dmb' is not predicable, but condition code specified
436*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'dsb' is not predicable, but condition code specified
437*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'isb' is not predicable, but condition code specified
438*9880d681SAndroid Build Coastguard Worker
439*9880d681SAndroid Build Coastguard Worker	dmblt
440*9880d681SAndroid Build Coastguard Worker	dsbne
441*9880d681SAndroid Build Coastguard Worker	isbeq
442*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'dmb' is not predicable, but condition code specified
443*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'dsb' is not predicable, but condition code specified
444*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'isb' is not predicable, but condition code specified
445*9880d681SAndroid Build Coastguard Worker
446*9880d681SAndroid Build Coastguard Worker        mcr2le  p7, #1, r5, c1, c1, #4
447*9880d681SAndroid Build Coastguard Worker        mcrr2ne p7, #15, r5, r4, c1
448*9880d681SAndroid Build Coastguard Worker        mrc2lo  p14, #0, r1, c1, c2, #4
449*9880d681SAndroid Build Coastguard Worker        mrrc2lo  p7, #1, r5, r4, c1
450*9880d681SAndroid Build Coastguard Worker        cdp2hi   p10, #0, c6, c12, c0, #7
451*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'mcr2' is not predicable, but condition code specified
452*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'mcrr2' is not predicable, but condition code specified
453*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'mrc2' is not predicable, but condition code specified
454*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'mrrc2' is not predicable, but condition code specified
455*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'cdp2' is not predicable, but condition code specified
456*9880d681SAndroid Build Coastguard Worker
457*9880d681SAndroid Build Coastguard Worker        bkpteq #7
458*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction 'bkpt' is not predicable, but condition code specified
459*9880d681SAndroid Build Coastguard Worker
460*9880d681SAndroid Build Coastguard Worker        ldm r2!, {r2, r3}
461*9880d681SAndroid Build Coastguard Worker        ldmdb r2!, {r2, r3}
462*9880d681SAndroid Build Coastguard Worker        ldmda r2!, {r2, r3}
463*9880d681SAndroid Build Coastguard Worker        popeq {sp}
464*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: writeback register not allowed in register list
465*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: writeback register not allowed in register list
466*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: writeback register not allowed in register list
467*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: writeback register not allowed in register list
468*9880d681SAndroid Build Coastguard Worker
469*9880d681SAndroid Build Coastguard Worker        vrintz.f32.f32 s0, s1
470*9880d681SAndroid Build Coastguard Worker        vrintr.f32 s0, s1
471*9880d681SAndroid Build Coastguard Worker        vrintx.f64.f64 d2, d5
472*9880d681SAndroid Build Coastguard Worker        vrintz.f64 d10, d9
473*9880d681SAndroid Build Coastguard Worker        vrinta.f32.f32 s6, s7
474*9880d681SAndroid Build Coastguard Worker        vrintn.f32 s8, s9
475*9880d681SAndroid Build Coastguard Worker        vrintp.f64.f64 d10, d11
476*9880d681SAndroid Build Coastguard Worker        vrintm.f64 d12, d13
477*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7: error: instruction requires: FPARMv8
478*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7: error: instruction requires: FPARMv8
479*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7: error: instruction requires: FPARMv8
480*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7: error: instruction requires: FPARMv8
481*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7: error: instruction requires: FPARMv8
482*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7: error: instruction requires: FPARMv8
483*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7: error: instruction requires: FPARMv8
484*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7: error: instruction requires: FPARMv8
485*9880d681SAndroid Build Coastguard Worker
486*9880d681SAndroid Build Coastguard Worker        stm sp!, {r0, pc}^
487*9880d681SAndroid Build Coastguard Worker        ldm sp!, {r0}^
488*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: system STM cannot have writeback register
489*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: writeback register only allowed on system LDM if PC in register-list
490*9880d681SAndroid Build Coastguard Worker
491*9880d681SAndroid Build Coastguard Workerfoo2:
492*9880d681SAndroid Build Coastguard Worker        mov r0, foo2
493*9880d681SAndroid Build Coastguard Worker        movw r0, foo2
494*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate expression for mov requires :lower16: or :upper16
495*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                 ^
496*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate expression for mov requires :lower16: or :upper16
497*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                  ^
498*9880d681SAndroid Build Coastguard Worker
499*9880d681SAndroid Build Coastguard Worker        str r0, [r0, #4]!
500*9880d681SAndroid Build Coastguard Worker        str r0, [r0, r1]!
501*9880d681SAndroid Build Coastguard Worker        str r0, [r0], #4
502*9880d681SAndroid Build Coastguard Worker        str r0, [r0], r1
503*9880d681SAndroid Build Coastguard Worker        strh r0, [r0, #2]!
504*9880d681SAndroid Build Coastguard Worker        strh r0, [r0, r1]!
505*9880d681SAndroid Build Coastguard Worker        strh r0, [r0], #2
506*9880d681SAndroid Build Coastguard Worker        strh r0, [r0], r1
507*9880d681SAndroid Build Coastguard Worker        strb r0, [r0, #1]!
508*9880d681SAndroid Build Coastguard Worker        strb r0, [r0, r1]!
509*9880d681SAndroid Build Coastguard Worker        strb r0, [r0], #1
510*9880d681SAndroid Build Coastguard Worker        strb r0, [r0], r1
511*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register and base register can't be identical
512*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: str r0, [r0, #4]!
513*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
514*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register and base register can't be identical
515*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: str r0, [r0, r1]!
516*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
517*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register and base register can't be identical
518*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: str r0, [r0], #4
519*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
520*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register and base register can't be identical
521*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: str r0, [r0], r1
522*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
523*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register and base register can't be identical
524*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: strh r0, [r0, #2]!
525*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
526*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register and base register can't be identical
527*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: strh r0, [r0, r1]!
528*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
529*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register and base register can't be identical
530*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: strh r0, [r0], #2
531*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
532*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register and base register can't be identical
533*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: strh r0, [r0], r1
534*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
535*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register and base register can't be identical
536*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: strb r0, [r0, #1]!
537*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
538*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register and base register can't be identical
539*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: strb r0, [r0, r1]!
540*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
541*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register and base register can't be identical
542*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: strb r0, [r0], #1
543*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
544*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register and base register can't be identical
545*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: strb r0, [r0], r1
546*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
547*9880d681SAndroid Build Coastguard Worker
548*9880d681SAndroid Build Coastguard Worker        ldr r0, [r0, #4]!
549*9880d681SAndroid Build Coastguard Worker        ldr r0, [r0, r1]!
550*9880d681SAndroid Build Coastguard Worker        ldr r0, [r0], #4
551*9880d681SAndroid Build Coastguard Worker        ldr r0, [r0], r1
552*9880d681SAndroid Build Coastguard Worker        ldrh r0, [r0, #2]!
553*9880d681SAndroid Build Coastguard Worker        ldrh r0, [r0, r1]!
554*9880d681SAndroid Build Coastguard Worker        ldrh r0, [r0], #2
555*9880d681SAndroid Build Coastguard Worker        ldrh r0, [r0], r1
556*9880d681SAndroid Build Coastguard Worker        ldrsh r0, [r0, #2]!
557*9880d681SAndroid Build Coastguard Worker        ldrsh r0, [r0, r1]!
558*9880d681SAndroid Build Coastguard Worker        ldrsh r0, [r0], #2
559*9880d681SAndroid Build Coastguard Worker        ldrsh r0, [r0], r1
560*9880d681SAndroid Build Coastguard Worker        ldrb r0, [r0, #1]!
561*9880d681SAndroid Build Coastguard Worker        ldrb r0, [r0, r1]!
562*9880d681SAndroid Build Coastguard Worker        ldrb r0, [r0], #1
563*9880d681SAndroid Build Coastguard Worker        ldrb r0, [r0], r1
564*9880d681SAndroid Build Coastguard Worker        ldrsb r0, [r0, #1]!
565*9880d681SAndroid Build Coastguard Worker        ldrsb r0, [r0, r1]!
566*9880d681SAndroid Build Coastguard Worker        ldrsb r0, [r0], #1
567*9880d681SAndroid Build Coastguard Worker        ldrsb r0, [r0], r1
568*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
569*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldr r0, [r0, #4]!
570*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
571*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
572*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldr r0, [r0, r1]!
573*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
574*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
575*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldr r0, [r0], #4
576*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
577*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
578*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldr r0, [r0], r1
579*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
580*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
581*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrh r0, [r0, #2]!
582*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
583*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
584*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrh r0, [r0, r1]!
585*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
586*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
587*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrh r0, [r0], #2
588*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
589*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
590*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrh r0, [r0], r1
591*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
592*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
593*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrsh r0, [r0, #2]!
594*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:           ^
595*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
596*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrsh r0, [r0, r1]!
597*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:           ^
598*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
599*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrsh r0, [r0], #2
600*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:           ^
601*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
602*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrsh r0, [r0], r1
603*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:           ^
604*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
605*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrb r0, [r0, #1]!
606*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
607*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
608*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrb r0, [r0, r1]!
609*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
610*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
611*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrb r0, [r0], #1
612*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
613*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
614*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrb r0, [r0], r1
615*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:          ^
616*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
617*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrsb r0, [r0, #1]!
618*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:           ^
619*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
620*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrsb r0, [r0, r1]!
621*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:           ^
622*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
623*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrsb r0, [r0], #1
624*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:           ^
625*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register and base register can't be identical
626*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ldrsb r0, [r0], r1
627*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:           ^
628*9880d681SAndroid Build Coastguard Worker
629*9880d681SAndroid Build Coastguard Worker        @ Out of range modified immediate values
630*9880d681SAndroid Build Coastguard Worker        mov  r5, #-256, #6
631*9880d681SAndroid Build Coastguard Worker        mov  r6, #42, #7
632*9880d681SAndroid Build Coastguard Worker        mvn  r5, #256, #6
633*9880d681SAndroid Build Coastguard Worker        mvn  r6, #42, #298
634*9880d681SAndroid Build Coastguard Worker        cmp  r5, #65535, #6
635*9880d681SAndroid Build Coastguard Worker        cmp  r6, #42, #31
636*9880d681SAndroid Build Coastguard Worker        cmn  r5, #-1, #6
637*9880d681SAndroid Build Coastguard Worker        cmn  r6, #42, #32
638*9880d681SAndroid Build Coastguard Worker	msr  APSR_nzcvq, #-128, #2
639*9880d681SAndroid Build Coastguard Worker	msr  apsr_nzcvqg, #0, #1
640*9880d681SAndroid Build Coastguard Worker        adc  r7, r8, #-256, #2
641*9880d681SAndroid Build Coastguard Worker        adc  r7, r8, #128, #1
642*9880d681SAndroid Build Coastguard Worker        sbc  r7, r8, #-256, #2
643*9880d681SAndroid Build Coastguard Worker        sbc  r7, r8, #128, #1
644*9880d681SAndroid Build Coastguard Worker        add  r7, r8, #-2149, #0
645*9880d681SAndroid Build Coastguard Worker        add  r7, r8, #100, #1
646*9880d681SAndroid Build Coastguard Worker        sub  r7, r8, #-2149, #0
647*9880d681SAndroid Build Coastguard Worker        sub  r7, r8, #100, #1
648*9880d681SAndroid Build Coastguard Worker        and  r7, r8, #-2149, #0
649*9880d681SAndroid Build Coastguard Worker        and  r7, r8, #100, #1
650*9880d681SAndroid Build Coastguard Worker        orr  r7, r8, #-2149, #0
651*9880d681SAndroid Build Coastguard Worker        orr  r7, r8, #100, #1
652*9880d681SAndroid Build Coastguard Worker        eor  r7, r8, #-2149, #0
653*9880d681SAndroid Build Coastguard Worker        eor  r7, r8, #100, #1
654*9880d681SAndroid Build Coastguard Worker        bic  r7, r8, #-2149, #0
655*9880d681SAndroid Build Coastguard Worker        bic  r7, r8, #100, #1
656*9880d681SAndroid Build Coastguard Worker        rsb  r7, r8, #-2149, #0
657*9880d681SAndroid Build Coastguard Worker        rsb  r7, r8, #100, #1
658*9880d681SAndroid Build Coastguard Worker        adds r7, r8, #-2149, #0
659*9880d681SAndroid Build Coastguard Worker        adds r7, r8, #100, #1
660*9880d681SAndroid Build Coastguard Worker        subs r7, r8, #-2149, #0
661*9880d681SAndroid Build Coastguard Worker        subs r7, r8, #100, #1
662*9880d681SAndroid Build Coastguard Worker        rsbs r7, r8, #-2149, #0
663*9880d681SAndroid Build Coastguard Worker        rsbs r7, r8, #100, #1
664*9880d681SAndroid Build Coastguard Worker        rsc r7, r8, #-2149, #0
665*9880d681SAndroid Build Coastguard Worker        rsc r7, r8, #100, #1
666*9880d681SAndroid Build Coastguard Worker        TST r7, #-2149, #0
667*9880d681SAndroid Build Coastguard Worker        TST r7, #100, #1
668*9880d681SAndroid Build Coastguard Worker        TEQ r7, #-2149, #0
669*9880d681SAndroid Build Coastguard Worker        TEQ r7, #100, #1
670*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
671*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
672*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
673*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
674*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
675*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
676*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
677*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
678*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
679*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
680*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
681*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
682*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
683*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
684*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
685*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
686*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
687*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
688*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
689*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
690*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
691*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
692*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
693*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
694*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
695*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
696*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
697*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
698*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
699*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
700*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
701*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
702*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
703*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
704*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
705*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
706*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must a number in the range [0, 255]
707*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: immediate operand must an even number in the range [0, 30]
708