1 // Copyright 2017 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 TEXT errors(SB),$0
6 MOVW (F0), R1 // ERROR "illegal base register"
7 MOVB (F0), R1 // ERROR "illegal base register"
8 MOVH (F0), R1 // ERROR "illegal base register"
9 MOVF (F0), F1 // ERROR "illegal base register"
10 MOVD (F0), F1 // ERROR "illegal base register"
11 MOVW R1, (F0) // ERROR "illegal base register"
12 MOVB R2, (F0) // ERROR "illegal base register"
13 MOVH R3, (F0) // ERROR "illegal base register"
14 MOVF F4, (F0) // ERROR "illegal base register"
15 MOVD F5, (F0) // ERROR "illegal base register"
16 MOVM.IA (F1), [R0-R4] // ERROR "illegal base register"
17 MOVM.DA (F1), [R0-R4] // ERROR "illegal base register"
18 MOVM.IB (F1), [R0-R4] // ERROR "illegal base register"
19 MOVM.DB (F1), [R0-R4] // ERROR "illegal base register"
20 MOVM.IA [R0-R4], (F1) // ERROR "illegal base register"
21 MOVM.DA [R0-R4], (F1) // ERROR "illegal base register"
22 MOVM.IB [R0-R4], (F1) // ERROR "illegal base register"
23 MOVM.DB [R0-R4], (F1) // ERROR "illegal base register"
24 MOVW R0<<0(F1), R1 // ERROR "illegal base register"
25 MOVB R0<<0(F1), R1 // ERROR "illegal base register"
26 MOVW R1, R0<<0(F1) // ERROR "illegal base register"
27 MOVB R2, R0<<0(F1) // ERROR "illegal base register"
28 MOVF 0x00ffffff(F2), F1 // ERROR "illegal base register"
29 MOVD 0x00ffffff(F2), F1 // ERROR "illegal base register"
30 MOVF F2, 0x00ffffff(F2) // ERROR "illegal base register"
31 MOVD F2, 0x00ffffff(F2) // ERROR "illegal base register"
32 MULS.S R1, R2, R3, R4 // ERROR "invalid .S suffix"
33 ADD.P R1, R2, R3 // ERROR "invalid .P suffix"
34 SUB.W R2, R3 // ERROR "invalid .W suffix"
35 BL 4(R4) // ERROR "non-zero offset"
36 ADDF F0, R1, F2 // ERROR "illegal combination"
37 SWI (R0) // ERROR "illegal combination"
38 MULAD F0, F1 // ERROR "illegal combination"
39 MULAF F0, F1 // ERROR "illegal combination"
40 MULSD F0, F1 // ERROR "illegal combination"
41 MULSF F0, F1 // ERROR "illegal combination"
42 NMULAD F0, F1 // ERROR "illegal combination"
43 NMULAF F0, F1 // ERROR "illegal combination"
44 NMULSD F0, F1 // ERROR "illegal combination"
45 NMULSF F0, F1 // ERROR "illegal combination"
46 FMULAD F0, F1 // ERROR "illegal combination"
47 FMULAF F0, F1 // ERROR "illegal combination"
48 FMULSD F0, F1 // ERROR "illegal combination"
49 FMULSF F0, F1 // ERROR "illegal combination"
50 FNMULAD F0, F1 // ERROR "illegal combination"
51 FNMULAF F0, F1 // ERROR "illegal combination"
52 FNMULSD F0, F1 // ERROR "illegal combination"
53 FNMULSF F0, F1 // ERROR "illegal combination"
54 NEGF F0, F1, F2 // ERROR "illegal combination"
55 NEGD F0, F1, F2 // ERROR "illegal combination"
56 ABSF F0, F1, F2 // ERROR "illegal combination"
57 ABSD F0, F1, F2 // ERROR "illegal combination"
58 SQRTF F0, F1, F2 // ERROR "illegal combination"
59 SQRTD F0, F1, F2 // ERROR "illegal combination"
60 MOVF F0, F1, F2 // ERROR "illegal combination"
61 MOVD F0, F1, F2 // ERROR "illegal combination"
62 MOVDF F0, F1, F2 // ERROR "illegal combination"
63 MOVFD F0, F1, F2 // ERROR "illegal combination"
64 MOVM.IA 4(R1), [R0-R4] // ERROR "offset must be zero"
65 MOVM.DA 4(R1), [R0-R4] // ERROR "offset must be zero"
66 MOVM.IB 4(R1), [R0-R4] // ERROR "offset must be zero"
67 MOVM.DB 4(R1), [R0-R4] // ERROR "offset must be zero"
68 MOVM.IA [R0-R4], 4(R1) // ERROR "offset must be zero"
69 MOVM.DA [R0-R4], 4(R1) // ERROR "offset must be zero"
70 MOVM.IB [R0-R4], 4(R1) // ERROR "offset must be zero"
71 MOVM.DB [R0-R4], 4(R1) // ERROR "offset must be zero"
72 MOVW CPSR, FPSR // ERROR "illegal combination"
73 MOVW FPSR, CPSR // ERROR "illegal combination"
74 MOVW CPSR, errors(SB) // ERROR "illegal combination"
75 MOVW errors(SB), CPSR // ERROR "illegal combination"
76 MOVW FPSR, errors(SB) // ERROR "illegal combination"
77 MOVW errors(SB), FPSR // ERROR "illegal combination"
78 MOVW F0, errors(SB) // ERROR "illegal combination"
79 MOVW errors(SB), F0 // ERROR "illegal combination"
80 MOVW $20, errors(SB) // ERROR "illegal combination"
81 MOVW errors(SB), $20 // ERROR "illegal combination"
82 MOVW (R1), [R0-R4] // ERROR "illegal combination"
83 MOVW [R0-R4], (R1) // ERROR "illegal combination"
84 MOVB $245, R1 // ERROR "illegal combination"
85 MOVH $245, R1 // ERROR "illegal combination"
86 MOVB $0xff000000, R1 // ERROR "illegal combination"
87 MOVH $0xff000000, R1 // ERROR "illegal combination"
88 MOVB $0x00ffffff, R1 // ERROR "illegal combination"
89 MOVH $0x00ffffff, R1 // ERROR "illegal combination"
90 MOVB FPSR, g // ERROR "illegal combination"
91 MOVH FPSR, g // ERROR "illegal combination"
92 MOVB g, FPSR // ERROR "illegal combination"
93 MOVH g, FPSR // ERROR "illegal combination"
94 MOVB CPSR, g // ERROR "illegal combination"
95 MOVH CPSR, g // ERROR "illegal combination"
96 MOVB g, CPSR // ERROR "illegal combination"
97 MOVH g, CPSR // ERROR "illegal combination"
98 MOVB $0xff000000, CPSR // ERROR "illegal combination"
99 MOVH $0xff000000, CPSR // ERROR "illegal combination"
100 MOVB $0xff000000, FPSR // ERROR "illegal combination"
101 MOVH $0xff000000, FPSR // ERROR "illegal combination"
102 MOVB $0xffffff00, CPSR // ERROR "illegal combination"
103 MOVH $0xffffff00, CPSR // ERROR "illegal combination"
104 MOVB $0xfffffff0, FPSR // ERROR "illegal combination"
105 MOVH $0xfffffff0, FPSR // ERROR "illegal combination"
106 MOVB (R1), [R0-R4] // ERROR "illegal combination"
107 MOVB [R0-R4], (R1) // ERROR "illegal combination"
108 MOVH (R1), [R0-R4] // ERROR "illegal combination"
109 MOVH [R0-R4], (R1) // ERROR "illegal combination"
110 MOVB $0xff(R0), R1 // ERROR "illegal combination"
111 MOVH $0xff(R0), R1 // ERROR "illegal combination"
112 MOVB $errors(SB), R2 // ERROR "illegal combination"
113 MOVH $errors(SB), R2 // ERROR "illegal combination"
114 MOVB F0, R0 // ERROR "illegal combination"
115 MOVH F0, R0 // ERROR "illegal combination"
116 MOVB R0, F0 // ERROR "illegal combination"
117 MOVH R0, F0 // ERROR "illegal combination"
118 MOVB R0>>0(R1), R2 // ERROR "bad shift"
119 MOVB R0->0(R1), R2 // ERROR "bad shift"
120 MOVB R0@>0(R1), R2 // ERROR "bad shift"
121 MOVBS R0>>0(R1), R2 // ERROR "bad shift"
122 MOVBS R0->0(R1), R2 // ERROR "bad shift"
123 MOVBS R0@>0(R1), R2 // ERROR "bad shift"
124 MOVF CPSR, F1 // ERROR "illegal combination"
125 MOVD R1, CPSR // ERROR "illegal combination"
126 MOVW F1, F2 // ERROR "illegal combination"
127 MOVB F1, F2 // ERROR "illegal combination"
128 MOVH F1, F2 // ERROR "illegal combination"
129 MOVF R1, F2 // ERROR "illegal combination"
130 MOVD R1, F2 // ERROR "illegal combination"
131 MOVF R1, R1 // ERROR "illegal combination"
132 MOVD R1, R2 // ERROR "illegal combination"
133 MOVFW R1, R2 // ERROR "illegal combination"
134 MOVDW R1, R2 // ERROR "illegal combination"
135 MOVWF R1, R2 // ERROR "illegal combination"
136 MOVWD R1, R2 // ERROR "illegal combination"
137 MOVWD CPSR, R2 // ERROR "illegal combination"
138 MOVWF CPSR, R2 // ERROR "illegal combination"
139 MOVWD R1, CPSR // ERROR "illegal combination"
140 MOVWF R1, CPSR // ERROR "illegal combination"
141 MOVDW CPSR, R2 // ERROR "illegal combination"
142 MOVFW CPSR, R2 // ERROR "illegal combination"
143 MOVDW R1, CPSR // ERROR "illegal combination"
144 MOVFW R1, CPSR // ERROR "illegal combination"
145 BFX $12, $41, R2, R3 // ERROR "wrong width or LSB"
146 BFX $12, $-2, R2 // ERROR "wrong width or LSB"
147 BFXU $40, $4, R2, R3 // ERROR "wrong width or LSB"
148 BFXU $-40, $4, R2 // ERROR "wrong width or LSB"
149 BFX $-2, $4, R2, R3 // ERROR "wrong width or LSB"
150 BFXU $4, R2, R5, R2 // ERROR "missing or wrong LSB"
151 BFXU $4, R2, R5 // ERROR "missing or wrong LSB"
152 BFC $12, $8, R2, R3 // ERROR "illegal combination"
153 MOVB R0>>8, R2 // ERROR "illegal shift"
154 MOVH R0<<16, R2 // ERROR "illegal shift"
155 MOVBS R0->8, R2 // ERROR "illegal shift"
156 MOVHS R0<<24, R2 // ERROR "illegal shift"
157 MOVBU R0->24, R2 // ERROR "illegal shift"
158 MOVHU R0@>1, R2 // ERROR "illegal shift"
159 XTAB R0>>8, R2 // ERROR "illegal shift"
160 XTAH R0<<16, R2 // ERROR "illegal shift"
161 XTABU R0->24, R2 // ERROR "illegal shift"
162 XTAHU R0@>1, R2 // ERROR "illegal shift"
163 XTAB R0>>8, R5, R2 // ERROR "illegal shift"
164 XTAH R0<<16, R5, R2 // ERROR "illegal shift"
165 XTABU R0->24, R5, R2 // ERROR "illegal shift"
166 XTAHU R0@>1, R5, R2 // ERROR "illegal shift"
167 AND.W R0, R1 // ERROR "invalid .W suffix"
168 ORR.P R2, R3, R4 // ERROR "invalid .P suffix"
169 CMP.S R1, R2 // ERROR "invalid .S suffix"
170 BIC.P $124, R1, R2 // ERROR "invalid .P suffix"
171 MOVW.S $124, R1 // ERROR "invalid .S suffix"
172 MVN.S $123, g // ERROR "invalid .S suffix"
173 RSB.U $0, R9 // ERROR "invalid .U suffix"
174 CMP.S $29, g // ERROR "invalid .S suffix"
175 ADD.W R1<<R2, R3 // ERROR "invalid .W suffix"
176 SUB.U R1<<R2, R3, R9 // ERROR "invalid .U suffix"
177 CMN.S R5->R2, R1 // ERROR "invalid .S suffix"
178 SLL.P R1, R2, R3 // ERROR "invalid .P suffix"
179 SRA.U R2, R8 // ERROR "invalid .U suffix"
180 SWI.S // ERROR "invalid .S suffix"
181 SWI.P $0 // ERROR "invalid .P suffix"
182 MOVW.S $0xaaaaaaaa, R7 // ERROR "invalid .S suffix"
183 MOVW.P $0xffffff44, R1 // ERROR "invalid .P suffix"
184 MOVW.S $0xffffff77, R1 // ERROR "invalid .S suffix"
185 MVN.S $0xffffffaa, R8 // ERROR "invalid .S suffix"
186 MVN.S $0xaaaaaaaa, R8 // ERROR "invalid .S suffix"
187 ADD.U $0xaaaaaaaa, R4 // ERROR "invalid .U suffix"
188 ORR.P $0x555555, R7, R3 // ERROR "invalid .P suffix"
189 TST.S $0xabcd1234, R2 // ERROR "invalid .S suffix"
190 MOVB.S R1, R2 // ERROR "invalid .S suffix"
191 MOVBU.P R1, R2 // ERROR "invalid .P suffix"
192 MOVBS.U R1, R2 // ERROR "invalid .U suffix"
193 MOVH.S R1, R2 // ERROR "invalid .S suffix"
194 MOVHU.P R1, R2 // ERROR "invalid .P suffix"
195 MOVHS.U R1, R2 // ERROR "invalid .U suffix"
196 MUL.P R0, R1, R2 // ERROR "invalid .P suffix"
197 MULU.W R1, R2 // ERROR "invalid .W suffix"
198 DIVHW.S R0, R1, R2 // ERROR "invalid .S suffix"
199 DIVHW.W R1, R2 // ERROR "invalid .W suffix"
200 MULL.W R2, R0, (R5, R8) // ERROR "invalid .W suffix"
201 MULLU.U R2, R0, (R5, R8) // ERROR "invalid .U suffix"
202 BFX.S $2, $4, R3 // ERROR "invalid .S suffix"
203 BFXU.W $2, $4, R3, R0 // ERROR "invalid .W suffix"
204 MOVB.S R1, 4(R2) // ERROR "invalid .S suffix"
205 MOVHU.S R1, 4(R2) // ERROR "invalid .S suffix"
206 MOVW.S R1, 4(R2) // ERROR "invalid .S suffix"
207 MOVBU.S 4(R2), R3 // ERROR "invalid .S suffix"
208 MOVH.S 4(R2), R3 // ERROR "invalid .S suffix"
209 MOVW.S 4(R2), R3 // ERROR "invalid .S suffix"
210 XTAB.S R0@>0, R2 // ERROR "invalid .S suffix"
211 XTAB.W R0@>8, R2, R9 // ERROR "invalid .W suffix"
212 MOVBU.S R0@>24, R1 // ERROR "invalid .S suffix"
213 MOVHS.S R0@>16, R1 // ERROR "invalid .S suffix"
214 MOVB.S R1, 0xaaaa(R2) // ERROR "invalid .S suffix"
215 MOVHU.S R1, 0xaaaa(R2) // ERROR "invalid .S suffix"
216 MOVW.S R1, 0xaaaa(R2) // ERROR "invalid .S suffix"
217 MOVBU.S 0xaaaa(R2), R3 // ERROR "invalid .S suffix"
218 MOVH.S 0xaaaa(R2), R3 // ERROR "invalid .S suffix"
219 MOVW.S 0xaaaa(R2), R3 // ERROR "invalid .S suffix"
220 MOVW.S CPSR, R1 // ERROR "invalid .S suffix"
221 MOVW.S R3, CPSR // ERROR "invalid .S suffix"
222 MOVW.S $0, CPSR // ERROR "invalid .S suffix"
223 MOVM.S (R0), [R2-R4] // ERROR "invalid .S suffix"
224 MOVM.S [R1-R6], (R9) // ERROR "invalid .S suffix"
225 SWPW.S R1, (R2), R3 // ERROR "invalid .S suffix"
226 MOVF.S (R0), F1 // ERROR "invalid .S suffix"
227 MOVF.S F9, (R4) // ERROR "invalid .S suffix"
228 MOVF.S 0xfff0(R0), F1 // ERROR "invalid .S suffix"
229 MOVF.S F9, 0xfff0(R4) // ERROR "invalid .S suffix"
230 ADDF.S F1, F2, F3 // ERROR "invalid .S suffix"
231 SUBD.U F1, F2 // ERROR "invalid .U suffix"
232 NEGF.W F9, F10 // ERROR "invalid .W suffix"
233 ABSD.P F9, F10 // ERROR "invalid .P suffix"
234 MOVW.S FPSR, R0 // ERROR "invalid .S suffix"
235 MOVW.P g, FPSR // ERROR "invalid .P suffix"
236 MOVW.S R1->4(R6), R2 // ERROR "invalid .S suffix"
237 MOVB.S R9, R2<<8(R4) // ERROR "invalid .S suffix"
238 MOVHU.S R9, R2<<0(R4) // ERROR "invalid .S suffix"
239 STREX.S R0, (R1), R2 // ERROR "invalid .S suffix"
240 LDREX.S (R2), R8 // ERROR "invalid .S suffix"
241 MOVF.S $0.0, F3 // ERROR "invalid .S suffix"
242 CMPF.S F1, F2 // ERROR "invalid .S suffix"
243 MOVFW.S F0, F9 // ERROR "invalid .S suffix"
244 MOVWF.W F3, F1 // ERROR "invalid .W suffix"
245 MOVFW.P F0, R9 // ERROR "invalid .P suffix"
246 MOVWF.W R3, F1 // ERROR "invalid .W suffix"
247 MOVW.S F0, R9 // ERROR "invalid .S suffix"
248 MOVW.U R3, F1 // ERROR "invalid .U suffix"
249 PLD.S 4(R1) // ERROR "invalid .S suffix"
250 CLZ.S R1, R2 // ERROR "invalid .S suffix"
251 MULBB.S R0, R1, R2 // ERROR "invalid .S suffix"
252 MULA.W R9, R6, R1, g // ERROR "invalid .W suffix"
253 MULS.S R2, R3, R4, g // ERROR "invalid .S suffix"
254
255 STREX R1, (R0) // ERROR "illegal combination"
256 STREX (R1), R0 // ERROR "illegal combination"
257 STREX R1, (R0), R1 // ERROR "cannot use same register as both source and destination"
258 STREX R1, (R0), R0 // ERROR "cannot use same register as both source and destination"
259 STREXD R0, (R2), R0 // ERROR "cannot use same register as both source and destination"
260 STREXD R0, (R2), R1 // ERROR "cannot use same register as both source and destination"
261 STREXD R0, (R2), R2 // ERROR "cannot use same register as both source and destination"
262 STREXD R1, (R4), R7 // ERROR "must be even"
263
264 END
265
View as plain text