xref: /aosp_15_r20/external/llvm/test/MC/ARM/thumb-diagnostics.s (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc -triple=thumbv6-apple-darwin -o /dev/null < %s 2>&1 \
2*9880d681SAndroid Build Coastguard Worker@ RUN:     | FileCheck --check-prefix=CHECK-ERRORS %s
3*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc -triple=thumbv5-apple-darwin -o /dev/null < %s 2>&1 \
4*9880d681SAndroid Build Coastguard Worker@ RUN:     | FileCheck --check-prefix=CHECK-ERRORS-V5 %s
5*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc -triple=thumbv7m -o /dev/null < %s 2>&1 \
6*9880d681SAndroid Build Coastguard Worker@ RUN:     | FileCheck --check-prefix=CHECK-ERRORS-V7M %s
7*9880d681SAndroid Build Coastguard Worker@ RUN: not llvm-mc -triple=thumbv8 -o /dev/null < %s 2>&1 \
8*9880d681SAndroid Build Coastguard Worker@ RUN:     | FileCheck --check-prefix=CHECK-ERRORS-V8 %s
9*9880d681SAndroid Build Coastguard Worker
10*9880d681SAndroid Build Coastguard Worker@ Check for various assembly diagnostic messages on invalid input.
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Worker@ ADD instruction w/o 'S' suffix.
13*9880d681SAndroid Build Coastguard Worker        add r1, r2, r3
14*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid instruction
15*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         add r1, r2, r3
16*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
17*9880d681SAndroid Build Coastguard Worker
18*9880d681SAndroid Build Coastguard Worker@ Instructions which require v6+ for both registers to be low regs.
19*9880d681SAndroid Build Coastguard Worker        add r2, r3
20*9880d681SAndroid Build Coastguard Worker        mov r2, r3
21*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction variant requires Thumb2
22*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         add r2, r3
23*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
24*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V5: error: instruction variant requires ARMv6 or later
25*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V5:         mov r2, r3
26*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V5:         ^
27*9880d681SAndroid Build Coastguard Worker
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Worker@ Out of range immediates for ASR instruction.
30*9880d681SAndroid Build Coastguard Worker        asrs r2, r3, #33
31*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
32*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         asrs r2, r3, #33
33*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                      ^
34*9880d681SAndroid Build Coastguard Worker
35*9880d681SAndroid Build Coastguard Worker@ Out of range immediates for BKPT instruction.
36*9880d681SAndroid Build Coastguard Worker        bkpt #256
37*9880d681SAndroid Build Coastguard Worker        bkpt #-1
38*9880d681SAndroid Build Coastguard Workererror: invalid operand for instruction
39*9880d681SAndroid Build Coastguard Worker        bkpt #256
40*9880d681SAndroid Build Coastguard Worker             ^
41*9880d681SAndroid Build Coastguard Workererror: invalid operand for instruction
42*9880d681SAndroid Build Coastguard Worker        bkpt #-1
43*9880d681SAndroid Build Coastguard Worker             ^
44*9880d681SAndroid Build Coastguard Worker
45*9880d681SAndroid Build Coastguard Worker@ Out of range immediates for v8 HLT instruction.
46*9880d681SAndroid Build Coastguard Worker        hlt #64
47*9880d681SAndroid Build Coastguard Worker        hlt #-1
48*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS: error: instruction requires: armv8 arm-mode
49*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS:        hlt #64
50*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS:        ^
51*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS-V8: error: instruction requires: arm-mode
52*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS-V8:         hlt #64
53*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS-V8:              ^
54*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS: error: invalid operand for instruction
55*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS:         hlt #-1
56*9880d681SAndroid Build Coastguard Worker@CHECK-ERRORS:              ^
57*9880d681SAndroid Build Coastguard Worker
58*9880d681SAndroid Build Coastguard Worker@ Invalid writeback and register lists for LDM
59*9880d681SAndroid Build Coastguard Worker        ldm r2!, {r5, r8}
60*9880d681SAndroid Build Coastguard Worker        ldm r2, {r5, r7}
61*9880d681SAndroid Build Coastguard Worker        ldm r2!, {r2, r3, r4}
62*9880d681SAndroid Build Coastguard Worker        ldm r2!, {r2, r3, r4, r10}
63*9880d681SAndroid Build Coastguard Worker        ldmdb r2!, {r2, r3, r4}
64*9880d681SAndroid Build Coastguard Worker        ldm r0, {r2, sp}
65*9880d681SAndroid Build Coastguard Worker        ldmia r0, {r2-r3, sp}
66*9880d681SAndroid Build Coastguard Worker        ldmia r0!, {r2-r3, sp}
67*9880d681SAndroid Build Coastguard Worker        ldmfd r2, {r1, r3-r6, sp}
68*9880d681SAndroid Build Coastguard Worker        ldmfd r2!, {r1, r3-r6, sp}
69*9880d681SAndroid Build Coastguard Worker        ldmdb r1, {r2, r3, sp}
70*9880d681SAndroid Build Coastguard Worker        ldmdb r1!, {r2, r3, sp}
71*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: registers must be in range r0-r7
72*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ldm r2!, {r5, r8}
73*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                  ^
74*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: writeback operator '!' expected
75*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ldm r2, {r5, r7}
76*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:             ^
77*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: writeback operator '!' not allowed when base register in register list
78*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ldm r2!, {r2, r3, r4}
79*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:               ^
80*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: error: writeback operator '!' not allowed when base register in register list
81*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8:         ldm r2!, {r2, r3, r4, r10}
82*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8:               ^
83*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: error: writeback register not allowed in register list
84*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8:         ldmdb r2!, {r2, r3, r4}
85*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8:                 ^
86*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list
87*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:         ldm r0, {r2, sp}
88*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:                 ^
89*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list
90*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:         ldmia r0, {r2-r3, sp}
91*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:                   ^
92*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list
93*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:         ldmia r0!, {r2-r3, sp}
94*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:                    ^
95*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list
96*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:         ldmfd r2, {r1, r3-r6, sp}
97*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:                   ^
98*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list
99*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:         ldmfd r2!, {r1, r3-r6, sp}
100*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:                    ^
101*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list
102*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:         ldmdb r1, {r2, r3, sp}
103*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:                   ^
104*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list
105*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:         ldmdb r1!, {r2, r3, sp}
106*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:                    ^
107*9880d681SAndroid Build Coastguard Worker
108*9880d681SAndroid Build Coastguard Worker@ Invalid writeback and register lists for PUSH/POP
109*9880d681SAndroid Build Coastguard Worker        pop {r1, r2, r10}
110*9880d681SAndroid Build Coastguard Worker        push {r8, r9}
111*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: registers must be in range r0-r7 or pc
112*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         pop {r1, r2, r10}
113*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:             ^
114*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: registers must be in range r0-r7 or lr
115*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         push {r8, r9}
116*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:              ^
117*9880d681SAndroid Build Coastguard Worker
118*9880d681SAndroid Build Coastguard Worker
119*9880d681SAndroid Build Coastguard Worker@ Invalid writeback and register lists for STM
120*9880d681SAndroid Build Coastguard Worker        stm r1, {r2, r6}
121*9880d681SAndroid Build Coastguard Worker        stm r1!, {r2, r9}
122*9880d681SAndroid Build Coastguard Worker        stm r2!, {r2, r9}
123*9880d681SAndroid Build Coastguard Worker        stmdb r2!, {r0, r2}
124*9880d681SAndroid Build Coastguard Worker        stm r1!, {r2, sp}
125*9880d681SAndroid Build Coastguard Worker        stmia r4!, {r0-r3, sp}
126*9880d681SAndroid Build Coastguard Worker        stmdb r1, {r2, r3, sp}
127*9880d681SAndroid Build Coastguard Worker        stmdb r1!, {r2, r3, sp}
128*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2
129*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         stm r1, {r2, r6}
130*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
131*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: registers must be in range r0-r7
132*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         stm r1!, {r2, r9}
133*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                  ^
134*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: error: writeback operator '!' not allowed when base register in register list
135*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8:         stm r2!, {r2, r9}
136*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8:                  ^
137*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8: error: writeback register not allowed in register list
138*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8:         stmdb r2!, {r0, r2}
139*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V8:                  ^
140*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list
141*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:         stm r1!, {r2, sp}
142*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:                  ^
143*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list
144*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:         stmia r4!, {r0-r3, sp}
145*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:                    ^
146*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list
147*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:         stmdb r1, {r2, r3, sp}
148*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:                   ^
149*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M: error: SP may not be in the register list
150*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:         stmdb r1!, {r2, r3, sp}
151*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS-V7M:                    ^
152*9880d681SAndroid Build Coastguard Worker
153*9880d681SAndroid Build Coastguard Worker@ Out of range immediates for LSL instruction.
154*9880d681SAndroid Build Coastguard Worker        lsls r4, r5, #-1
155*9880d681SAndroid Build Coastguard Worker        lsls r4, r5, #32
156*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
157*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         lsls r4, r5, #-1
158*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                      ^
159*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
160*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         lsls r4, r5, #32
161*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                      ^
162*9880d681SAndroid Build Coastguard Worker
163*9880d681SAndroid Build Coastguard Worker@ Mismatched source/destination operands for MUL instruction.
164*9880d681SAndroid Build Coastguard Worker        muls r1, r2, r3
165*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: destination register must match source register
166*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         muls r1, r2, r3
167*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:              ^
168*9880d681SAndroid Build Coastguard Worker
169*9880d681SAndroid Build Coastguard Worker
170*9880d681SAndroid Build Coastguard Worker@ Out of range immediates for STR instruction.
171*9880d681SAndroid Build Coastguard Worker        str r2, [r7, #-1]
172*9880d681SAndroid Build Coastguard Worker        str r5, [r1, #3]
173*9880d681SAndroid Build Coastguard Worker        str r3, [r7, #128]
174*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2
175*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         str r2, [r7, #-1]
176*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
177*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2
178*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         str r5, [r1, #3]
179*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
180*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2
181*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         str r3, [r7, #128]
182*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
183*9880d681SAndroid Build Coastguard Worker
184*9880d681SAndroid Build Coastguard Worker@ Out of range immediate for SVC instruction.
185*9880d681SAndroid Build Coastguard Worker        svc #-1
186*9880d681SAndroid Build Coastguard Worker        svc #256
187*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
188*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         svc #-1
189*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:             ^
190*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: arm-mode
191*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         svc #256
192*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
193*9880d681SAndroid Build Coastguard Worker
194*9880d681SAndroid Build Coastguard Worker
195*9880d681SAndroid Build Coastguard Worker@ Out of range immediate for ADD SP instructions
196*9880d681SAndroid Build Coastguard Worker        add sp, #-1
197*9880d681SAndroid Build Coastguard Worker        add sp, #3
198*9880d681SAndroid Build Coastguard Worker        add sp, sp, #512
199*9880d681SAndroid Build Coastguard Worker        add r2, sp, #1024
200*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2
201*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         add sp, #-1
202*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                 ^
203*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2
204*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         add sp, #3
205*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                 ^
206*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2
207*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         add sp, sp, #512
208*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                     ^
209*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2
210*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         add r2, sp, #1024
211*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         ^
212*9880d681SAndroid Build Coastguard Worker
213*9880d681SAndroid Build Coastguard Worker        add r2, sp, ip
214*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: source register must be the same as destination
215*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:         add r2, sp, ip
216*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS:                     ^
217*9880d681SAndroid Build Coastguard Worker
218*9880d681SAndroid Build Coastguard Worker
219*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
220*9880d681SAndroid Build Coastguard Worker@ B/Bcc - out of range immediates for Thumb1 branches
221*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
222*9880d681SAndroid Build Coastguard Worker
223*9880d681SAndroid Build Coastguard Worker        beq    #-258
224*9880d681SAndroid Build Coastguard Worker        bne    #256
225*9880d681SAndroid Build Coastguard Worker        bgt    #13
226*9880d681SAndroid Build Coastguard Worker        b      #-1048578
227*9880d681SAndroid Build Coastguard Worker        b      #1048576
228*9880d681SAndroid Build Coastguard Worker        b      #10323
229*9880d681SAndroid Build Coastguard Worker
230*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: branch target out of range
231*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: branch target out of range
232*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: branch target out of range
233*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: branch target out of range
234*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: branch target out of range
235*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: branch target out of range
236*9880d681SAndroid Build Coastguard Worker
237*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
238*9880d681SAndroid Build Coastguard Worker@ SEV/WFE/WFI/YIELD - are not supported pre v6M or v6T2
239*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
240*9880d681SAndroid Build Coastguard Worker        sev
241*9880d681SAndroid Build Coastguard Worker        wfe
242*9880d681SAndroid Build Coastguard Worker        wfi
243*9880d681SAndroid Build Coastguard Worker        yield
244*9880d681SAndroid Build Coastguard Worker
245*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: armv6m or armv6t2
246*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: sev
247*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^
248*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: armv6m or armv6t2
249*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: wfe
250*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^
251*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: armv6m or armv6t2
252*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: wfi
253*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^
254*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: armv6m or armv6t2
255*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: yield
256*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: ^
257*9880d681SAndroid Build Coastguard Worker
258*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
259*9880d681SAndroid Build Coastguard Worker@ PLDW required mp-extensions
260*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
261*9880d681SAndroid Build Coastguard Worker        pldw [r0, #4]
262*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: mp-extensions
263*9880d681SAndroid Build Coastguard Worker
264*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
265*9880d681SAndroid Build Coastguard Worker@ LDR(lit) - invalid offsets
266*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
267*9880d681SAndroid Build Coastguard Worker
268*9880d681SAndroid Build Coastguard Worker        ldr r4, [pc, #-12]
269*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: instruction requires: thumb2
270*9880d681SAndroid Build Coastguard Worker
271*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
272*9880d681SAndroid Build Coastguard Worker@ STC2{L}/LDC2{L} - requires thumb2
273*9880d681SAndroid Build Coastguard Worker@------------------------------------------------------------------------------
274*9880d681SAndroid Build Coastguard Worker        stc2 p0, c8, [r1, #4]
275*9880d681SAndroid Build Coastguard Worker        stc2l p6, c2, [r7, #4]
276*9880d681SAndroid Build Coastguard Worker        ldc2 p0, c8, [r1, #4]
277*9880d681SAndroid Build Coastguard Worker        ldc2l p6, c2, [r7, #4]
278*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
279*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
280*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
281*9880d681SAndroid Build Coastguard Worker@ CHECK-ERRORS: error: invalid operand for instruction
282