3 gcc -O -g -Wall -mcpu=cortex-a8 -o testarmv6int testarmv6int.c
8 /* test macros to generate and output the result of a single instruction */
9 #define TESTINST2(instruction, RMval, RD, RM, carryin) \
16 "msrne cpsr_fs,#(1<<29);" \
19 /* set #RD to 0x55555555 so we can see which parts get overwritten */ \
20 "mov " #RD ", #0x55" "\n\t" \
21 "orr " #RD "," #RD "," #RD ", LSL #8" "\n\t" \
22 "orr " #RD "," #RD "," #RD ", LSL #16" "\n\t" \
26 : "=&r" (out), "=&r" (cpsr) \
27 : "r" (RMval), "r" (carryin) \
28 : #RD, #RM, "cc", "memory" \
30 printf("%s :: rd 0x%08x rm 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c\n", \
31 instruction, out, RMval, \
34 ((1<<31) & cpsr) ? 'N' : ' ', \
35 ((1<<30) & cpsr) ? 'Z' : ' ', \
36 ((1<<29) & cpsr) ? 'C' : ' ', \
37 ((1<<28) & cpsr) ? 'V' : ' ' \
41 #define TESTINST3(instruction, RMval, RNval, RD, RM, RN, carryin) \
48 "msrne cpsr_fs,#(1<<29);" \
55 : "=&r" (out), "=&r" (cpsr) \
56 : "r" (RMval), "r" (RNval), "r" (carryin) \
57 : #RD, #RM, #RN, "cc", "memory" \
59 printf("%s :: rd 0x%08x rm 0x%08x, rn 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c\n", \
60 instruction, out, RMval, RNval, \
63 ((1<<31) & cpsr) ? 'N' : ' ', \
64 ((1<<30) & cpsr) ? 'Z' : ' ', \
65 ((1<<29) & cpsr) ? 'C' : ' ', \
66 ((1<<28) & cpsr) ? 'V' : ' ' \
70 #define TESTINST4(instruction, RMval, RNval, RSval, RD, RM, RN, RS, carryin) \
77 "msrne cpsr_fs,#(1<<29);" \
85 : "=&r" (out), "=&r" (cpsr) \
86 : "r" (RMval), "r" (RNval), "r" (RSval), "r" (carryin) \
87 : #RD, #RM, #RN, #RS, "cc", "memory" \
89 printf("%s :: rd 0x%08x rm 0x%08x, rn 0x%08x rs 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c\n", \
90 instruction, out, RMval, RNval, RSval, \
93 ((1<<31) & cpsr) ? 'N' : ' ', \
94 ((1<<30) & cpsr) ? 'Z' : ' ', \
95 ((1<<29) & cpsr) ? 'C' : ' ', \
96 ((1<<28) & cpsr) ? 'V' : ' ' \
100 #define TESTINST4_2OUT(instruction, RDval, RD2val, RMval, RSval, RD, RD2, RM, RS, carryin) \
108 "msrne cpsr_fs,#(1<<29);" \
109 "msreq cpsr_fs,#0;" \
118 : "=&r" (out), "=&r" (out2), "=&r" (cpsr) \
119 : "r" (RDval), "r" (RD2val), "r" (RMval), "r" (RSval), "r" (carryin) \
120 : #RD, #RD2, #RM, #RS, "cc", "memory" \
122 printf("%s :: rd 0x%08x rd2 0x%08x, rm 0x%08x rs 0x%08x, carryin %d, cpsr 0x%08x %c%c%c%c\n", \
123 instruction, out, out2, RMval, RSval, \
126 ((1<<31) & cpsr) ? 'N' : ' ', \
127 ((1<<30) & cpsr) ? 'Z' : ' ', \
128 ((1<<29) & cpsr) ? 'C' : ' ', \
129 ((1<<28) & cpsr) ? 'V' : ' ' \
134 #define TESTCARRY { int c = 0; for (c = 0; c < 2; c++) {
135 #define TESTCARRYEND }}
140 int main(int argc
, char **argv
)
144 TESTINST2("mov r0, r1", 1, r0
, r1
, 0);
145 TESTINST2("cpy r0, r1", 1, r0
, r1
, 0);
146 TESTINST2("mov r0, #0", 0, r0
, r1
, 0);
147 TESTINST2("mov r0, #1", 0, r0
, r1
, 0);
149 TESTINST2("movs r0, r1", 1, r0
, r1
, c
);
150 TESTINST2("movs r0, r1", 0, r0
, r1
, c
);
151 TESTINST2("movs r0, r1", 0x80000000, r0
, r1
, c
);
152 TESTINST2("movs r0, #0", 0, r0
, r1
, c
);
153 TESTINST2("movs r0, #1", 0, r0
, r1
, c
);
157 TESTINST2("mvn r0, r1", 1, r0
, r1
, 0);
159 TESTINST2("mvns r0, r1", 1, r0
, r1
, c
);
160 TESTINST2("mvns r0, r1", 0, r0
, r1
, c
);
161 TESTINST2("mvns r0, r1", 0x80000000, r0
, r1
, c
);
165 TESTINST3("adds r0, r1, r2", 0, 0, r0
, r1
, r2
, 0);
166 TESTINST3("adds r0, r1, r2", 0, 1, r0
, r1
, r2
, 0);
167 TESTINST3("adds r0, r1, r2", 1, 0, r0
, r1
, r2
, 0);
168 TESTINST3("adds r0, r1, r2", 1, 1, r0
, r1
, r2
, 0);
169 TESTINST3("adds r0, r1, r2", 0, -1, r0
, r1
, r2
, 0);
170 TESTINST3("adds r0, r1, r2", 1, -1, r0
, r1
, r2
, 0);
171 TESTINST3("adds r0, r1, r2", 0x7fffffff, 1, r0
, r1
, r2
, 0);
172 TESTINST3("adds r0, r1, r2", 0x80000000, -1, r0
, r1
, r2
, 0);
173 TESTINST3("adds r0, r1, r2", 0x80000000, 0, r0
, r1
, r2
, 0);
176 TESTINST3("adcs r0, r1, r2", 0, 0, r0
, r1
, r2
, 0);
177 TESTINST3("adcs r0, r1, r2", 0, 0, r0
, r1
, r2
, 1);
180 TESTINST3("lsl r0, r1, r2", 0xffffffff, 0, r0
, r1
, r2
, 0);
181 TESTINST3("lsl r0, r1, r2", 0xffffffff, 1, r0
, r1
, r2
, 0);
182 TESTINST3("lsl r0, r1, r2", 0xffffffff, 2, r0
, r1
, r2
, 0);
183 TESTINST3("lsl r0, r1, r2", 0xffffffff, 31, r0
, r1
, r2
, 0);
184 TESTINST3("lsl r0, r1, r2", 0xffffffff, 32, r0
, r1
, r2
, 0);
185 TESTINST3("lsl r0, r1, r2", 0xffffffff, 33, r0
, r1
, r2
, 0);
186 TESTINST3("lsl r0, r1, r2", 0xffffffff, 63, r0
, r1
, r2
, 0);
187 TESTINST3("lsl r0, r1, r2", 0xffffffff, 64, r0
, r1
, r2
, 0);
188 TESTINST3("lsl r0, r1, r2", 0xffffffff, 255, r0
, r1
, r2
, 0);
189 TESTINST3("lsl r0, r1, r2", 0xffffffff, 256, r0
, r1
, r2
, 0);
191 TESTINST3("lsl r0, r1, r2", 0x1, 0, r0
, r1
, r2
, 0);
192 TESTINST3("lsl r0, r1, r2", 0x1, 1, r0
, r1
, r2
, 0);
193 TESTINST3("lsl r0, r1, r2", 0x1, 31, r0
, r1
, r2
, 0);
194 TESTINST3("lsl r0, r1, r2", 0x2, 31, r0
, r1
, r2
, 0);
198 TESTINST3("lsls r0, r1, r2", 0xffffffff, 0, r0
, r1
, r2
, c
);
199 TESTINST3("lsls r0, r1, r2", 0xffffffff, 1, r0
, r1
, r2
, c
);
200 TESTINST3("lsls r0, r1, r2", 0xffffffff, 2, r0
, r1
, r2
, c
);
201 TESTINST3("lsls r0, r1, r2", 0xffffffff, 31, r0
, r1
, r2
, c
);
202 TESTINST3("lsls r0, r1, r2", 0xffffffff, 32, r0
, r1
, r2
, c
);
203 TESTINST3("lsls r0, r1, r2", 0xffffffff, 33, r0
, r1
, r2
, c
);
204 TESTINST3("lsls r0, r1, r2", 0xffffffff, 63, r0
, r1
, r2
, c
);
205 TESTINST3("lsls r0, r1, r2", 0xffffffff, 64, r0
, r1
, r2
, c
);
206 TESTINST3("lsls r0, r1, r2", 0xffffffff, 255, r0
, r1
, r2
, c
);
207 TESTINST3("lsls r0, r1, r2", 0xffffffff, 256, r0
, r1
, r2
, c
);
208 TESTINST3("lsls r0, r1, r2", 0x1, 0, r0
, r1
, r2
, c
);
209 TESTINST3("lsls r0, r1, r2", 0x1, 1, r0
, r1
, r2
, c
);
210 TESTINST3("lsls r0, r1, r2", 0x1, 31, r0
, r1
, r2
, c
);
211 TESTINST3("lsls r0, r1, r2", 0x2, 31, r0
, r1
, r2
, c
);
214 printf("LSL immediate\n");
216 TESTINST2("lsl r0, r1, #0", 0xffffffff, r0
, r1
, c
);
217 TESTINST2("lsl r0, r1, #1", 0xffffffff, r0
, r1
, c
);
218 TESTINST2("lsl r0, r1, #31", 0xffffffff, r0
, r1
, c
);
219 TESTINST2("lsl r0, r1, #0", 0x1, r0
, r1
, c
);
220 TESTINST2("lsl r0, r1, #1", 0x1, r0
, r1
, c
);
221 TESTINST2("lsl r0, r1, #31", 0x1, r0
, r1
, c
);
222 TESTINST2("lsl r0, r1, #31", 0x2, r0
, r1
, c
);
225 printf("LSLS immediate\n");
227 TESTINST2("lsls r0, r1, #0", 0xffffffff, r0
, r1
, c
);
228 TESTINST2("lsls r0, r1, #1", 0xffffffff, r0
, r1
, c
);
229 TESTINST2("lsls r0, r1, #31", 0xffffffff, r0
, r1
, c
);
230 TESTINST2("lsls r0, r1, #0", 0x1, r0
, r1
, c
);
231 TESTINST2("lsls r0, r1, #1", 0x1, r0
, r1
, c
);
232 TESTINST2("lsls r0, r1, #31", 0x1, r0
, r1
, c
);
233 TESTINST2("lsls r0, r1, #31", 0x2, r0
, r1
, c
);
237 TESTINST3("lsr r0, r1, r2", 0xffffffff, 0, r0
, r1
, r2
, 0);
238 TESTINST3("lsr r0, r1, r2", 0xffffffff, 1, r0
, r1
, r2
, 0);
239 TESTINST3("lsr r0, r1, r2", 0xffffffff, 2, r0
, r1
, r2
, 0);
240 TESTINST3("lsr r0, r1, r2", 0xffffffff, 31, r0
, r1
, r2
, 0);
241 TESTINST3("lsr r0, r1, r2", 0xffffffff, 32, r0
, r1
, r2
, 0);
242 TESTINST3("lsr r0, r1, r2", 0xffffffff, 33, r0
, r1
, r2
, 0);
243 TESTINST3("lsr r0, r1, r2", 0xffffffff, 63, r0
, r1
, r2
, 0);
244 TESTINST3("lsr r0, r1, r2", 0xffffffff, 64, r0
, r1
, r2
, 0);
245 TESTINST3("lsr r0, r1, r2", 0xffffffff, 255, r0
, r1
, r2
, 0);
246 TESTINST3("lsr r0, r1, r2", 0xffffffff, 256, r0
, r1
, r2
, 0);
250 TESTINST3("lsrs r0, r1, r2", 0xffffffff, 0, r0
, r1
, r2
, c
);
251 TESTINST3("lsrs r0, r1, r2", 0xffffffff, 1, r0
, r1
, r2
, c
);
252 TESTINST3("lsrs r0, r1, r2", 0xffffffff, 2, r0
, r1
, r2
, c
);
253 TESTINST3("lsrs r0, r1, r2", 0xffffffff, 31, r0
, r1
, r2
, c
);
254 TESTINST3("lsrs r0, r1, r2", 0xffffffff, 32, r0
, r1
, r2
, c
);
255 TESTINST3("lsrs r0, r1, r2", 0xffffffff, 33, r0
, r1
, r2
, c
);
256 TESTINST3("lsrs r0, r1, r2", 0xffffffff, 63, r0
, r1
, r2
, c
);
257 TESTINST3("lsrs r0, r1, r2", 0xffffffff, 64, r0
, r1
, r2
, c
);
258 TESTINST3("lsrs r0, r1, r2", 0xffffffff, 255, r0
, r1
, r2
, c
);
261 printf("LSR immediate\n");
262 TESTINST2("lsr r0, r1, #0", 0xffffffff, r0
, r1
, 0);
263 TESTINST2("lsr r0, r1, #1", 0xffffffff, r0
, r1
, 0);
264 TESTINST2("lsr r0, r1, #31", 0xffffffff, r0
, r1
, 0);
265 TESTINST2("lsr r0, r1, #32", 0xffffffff, r0
, r1
, 0);
266 TESTINST2("lsr r0, r1, #16", 0x00010000, r0
, r1
, 0);
267 TESTINST2("lsr r0, r1, #17", 0x00010000, r0
, r1
, 0);
268 TESTINST2("lsr r0, r1, #18", 0x00010000, r0
, r1
, 0);
270 printf("LSRS immediate\n");
272 TESTINST2("lsrs r0, r1, #0", 0xffffffff, r0
, r1
, c
);
273 TESTINST2("lsrs r0, r1, #1", 0xffffffff, r0
, r1
, c
);
274 TESTINST2("lsrs r0, r1, #31", 0xffffffff, r0
, r1
, c
);
275 TESTINST2("lsrs r0, r1, #32", 0xffffffff, r0
, r1
, c
);
276 TESTINST2("lsrs r0, r1, #16", 0x00010000, r0
, r1
, c
);
277 TESTINST2("lsrs r0, r1, #17", 0x00010000, r0
, r1
, c
);
278 TESTINST2("lsrs r0, r1, #18", 0x00010000, r0
, r1
, c
);
283 TESTINST3("asr r0, r1, r2", 0xffffffff, 0, r0
, r1
, r2
, c
);
284 TESTINST3("asr r0, r1, r2", 0xffffffff, 1, r0
, r1
, r2
, c
);
285 TESTINST3("asr r0, r1, r2", 0xffffffff, 2, r0
, r1
, r2
, c
);
286 TESTINST3("asr r0, r1, r2", 0xffffffff, 31, r0
, r1
, r2
, c
);
287 TESTINST3("asr r0, r1, r2", 0xffffffff, 32, r0
, r1
, r2
, c
);
288 TESTINST3("asr r0, r1, r2", 0xffffffff, 33, r0
, r1
, r2
, c
);
289 TESTINST3("asr r0, r1, r2", 0xffffffff, 63, r0
, r1
, r2
, c
);
290 TESTINST3("asr r0, r1, r2", 0xffffffff, 64, r0
, r1
, r2
, c
);
291 TESTINST3("asr r0, r1, r2", 0xffffffff, 255, r0
, r1
, r2
, c
);
292 TESTINST3("asr r0, r1, r2", 0xffffffff, 256, r0
, r1
, r2
, c
);
293 TESTINST3("asr r0, r1, r2", 0x7fffffff, 0, r0
, r1
, r2
, c
);
294 TESTINST3("asr r0, r1, r2", 0x7fffffff, 1, r0
, r1
, r2
, c
);
295 TESTINST3("asr r0, r1, r2", 0x7fffffff, 2, r0
, r1
, r2
, c
);
296 TESTINST3("asr r0, r1, r2", 0x7fffffff, 31, r0
, r1
, r2
, c
);
297 TESTINST3("asr r0, r1, r2", 0x7fffffff, 32, r0
, r1
, r2
, c
);
298 TESTINST3("asr r0, r1, r2", 0x7fffffff, 33, r0
, r1
, r2
, c
);
299 TESTINST3("asr r0, r1, r2", 0x7fffffff, 63, r0
, r1
, r2
, c
);
300 TESTINST3("asr r0, r1, r2", 0x7fffffff, 64, r0
, r1
, r2
, c
);
301 TESTINST3("asr r0, r1, r2", 0x7fffffff, 255, r0
, r1
, r2
, c
);
302 TESTINST3("asr r0, r1, r2", 0x7fffffff, 256, r0
, r1
, r2
, c
);
307 TESTINST3("asrs r0, r1, r2", 0xffffffff, 0, r0
, r1
, r2
, c
);
308 TESTINST3("asrs r0, r1, r2", 0xffffffff, 1, r0
, r1
, r2
, c
);
309 TESTINST3("asrs r0, r1, r2", 0xffffffff, 2, r0
, r1
, r2
, c
);
310 TESTINST3("asrs r0, r1, r2", 0xffffffff, 31, r0
, r1
, r2
, c
);
311 TESTINST3("asrs r0, r1, r2", 0xffffffff, 32, r0
, r1
, r2
, c
);
312 TESTINST3("asrs r0, r1, r2", 0xffffffff, 33, r0
, r1
, r2
, c
);
313 TESTINST3("asrs r0, r1, r2", 0xffffffff, 63, r0
, r1
, r2
, c
);
314 TESTINST3("asrs r0, r1, r2", 0xffffffff, 64, r0
, r1
, r2
, c
);
315 TESTINST3("asrs r0, r1, r2", 0xffffffff, 255, r0
, r1
, r2
, c
);
316 TESTINST3("asrs r0, r1, r2", 0xffffffff, 256, r0
, r1
, r2
, c
);
317 TESTINST3("asrs r0, r1, r2", 0x7fffffff, 0, r0
, r1
, r2
, c
);
318 TESTINST3("asrs r0, r1, r2", 0x7fffffff, 1, r0
, r1
, r2
, c
);
319 TESTINST3("asrs r0, r1, r2", 0x7fffffff, 2, r0
, r1
, r2
, c
);
320 TESTINST3("asrs r0, r1, r2", 0x7fffffff, 31, r0
, r1
, r2
, c
);
321 TESTINST3("asrs r0, r1, r2", 0x7fffffff, 32, r0
, r1
, r2
, c
);
322 TESTINST3("asrs r0, r1, r2", 0x7fffffff, 33, r0
, r1
, r2
, c
);
323 TESTINST3("asrs r0, r1, r2", 0x7fffffff, 63, r0
, r1
, r2
, c
);
324 TESTINST3("asrs r0, r1, r2", 0x7fffffff, 64, r0
, r1
, r2
, c
);
325 TESTINST3("asrs r0, r1, r2", 0x7fffffff, 255, r0
, r1
, r2
, c
);
326 TESTINST3("asrs r0, r1, r2", 0x7fffffff, 256, r0
, r1
, r2
, c
);
330 TESTINST3("asrs r0, r1, r2", 0x8, 0, r0
, r1
, r2
, c
);
331 TESTINST3("asrs r0, r1, r2", 0x8, 1, r0
, r1
, r2
, c
);
332 TESTINST3("asrs r0, r1, r2", 0x8, 2, r0
, r1
, r2
, c
);
333 TESTINST3("asrs r0, r1, r2", 0x8, 3, r0
, r1
, r2
, c
);
334 TESTINST3("asrs r0, r1, r2", 0x8, 4, r0
, r1
, r2
, c
);
335 TESTINST3("asrs r0, r1, r2", 0x8, 5, r0
, r1
, r2
, c
);
338 TESTINST3("asrs r0, r1, r2", 0x80000001, 1, r0
, r1
, r2
, 0);
339 TESTINST3("asrs r0, r1, r2", 0x80000001, 2, r0
, r1
, r2
, 0);
341 printf("ASR immediate\n");
342 TESTINST2("asr r0, r1, #0", 0xffffffff, r0
, r1
, 0);
343 TESTINST2("asr r0, r1, #1", 0xffffffff, r0
, r1
, 0);
344 TESTINST2("asr r0, r1, #31", 0xffffffff, r0
, r1
, 0);
345 TESTINST2("asr r0, r1, #32", 0xffffffff, r0
, r1
, 0);
346 TESTINST2("asr r0, r1, #0", 0x7fffffff, r0
, r1
, 0);
347 TESTINST2("asr r0, r1, #1", 0x7fffffff, r0
, r1
, 0);
348 TESTINST2("asr r0, r1, #31", 0x7fffffff, r0
, r1
, 0);
349 TESTINST2("asr r0, r1, #32", 0x7fffffff, r0
, r1
, 0);
350 TESTINST2("asr r0, r1, #16", 0x00010000, r0
, r1
, 0);
351 TESTINST2("asr r0, r1, #17", 0x00010000, r0
, r1
, 0);
352 TESTINST2("asr r0, r1, #18", 0x00010000, r0
, r1
, 0);
354 printf("ASRS immediate\n");
356 TESTINST2("asrs r0, r1, #0", 0xffffffff, r0
, r1
, c
);
357 TESTINST2("asrs r0, r1, #1", 0xffffffff, r0
, r1
, c
);
358 TESTINST2("asrs r0, r1, #31", 0xffffffff, r0
, r1
, c
);
359 TESTINST2("asrs r0, r1, #32", 0xffffffff, r0
, r1
, c
);
360 TESTINST2("asrs r0, r1, #0", 0x7fffffff, r0
, r1
, c
);
361 TESTINST2("asrs r0, r1, #1", 0x7fffffff, r0
, r1
, c
);
362 TESTINST2("asrs r0, r1, #31", 0x7fffffff, r0
, r1
, c
);
363 TESTINST2("asrs r0, r1, #32", 0x7fffffff, r0
, r1
, c
);
364 TESTINST2("asrs r0, r1, #16", 0x00010000, r0
, r1
, c
);
365 TESTINST2("asrs r0, r1, #17", 0x00010000, r0
, r1
, c
);
366 TESTINST2("asrs r0, r1, #18", 0x00010000, r0
, r1
, c
);
371 TESTINST3("ror r0, r1, r2", 0x00088000, 0, r0
, r1
, r2
, c
);
372 TESTINST3("ror r0, r1, r2", 0x80088000, 1, r0
, r1
, r2
, c
);
373 TESTINST3("ror r0, r1, r2", 0x00088000, 1, r0
, r1
, r2
, c
);
374 TESTINST3("ror r0, r1, r2", 0x00088000, 2, r0
, r1
, r2
, c
);
375 TESTINST3("ror r0, r1, r2", 0x00088000, 31, r0
, r1
, r2
, c
);
376 TESTINST3("ror r0, r1, r2", 0x00088000, 32, r0
, r1
, r2
, c
);
377 TESTINST3("ror r0, r1, r2", 0x00088000, 33, r0
, r1
, r2
, c
);
378 TESTINST3("ror r0, r1, r2", 0x00088000, 63, r0
, r1
, r2
, c
);
379 TESTINST3("ror r0, r1, r2", 0x00088000, 64, r0
, r1
, r2
, c
);
380 TESTINST3("ror r0, r1, r2", 0x00088000, 255, r0
, r1
, r2
, c
);
381 TESTINST3("ror r0, r1, r2", 0x00088000, 256, r0
, r1
, r2
, c
);
382 TESTINST3("ror r0, r1, r2", 0x80088000, 256, r0
, r1
, r2
, c
);
383 TESTINST3("ror r0, r1, r2", 0x00088000, 257, r0
, r1
, r2
, c
);
388 TESTINST3("rors r0, r1, r2", 0x00088000, 0, r0
, r1
, r2
, c
);
389 TESTINST3("rors r0, r1, r2", 0x80088000, 0, r0
, r1
, r2
, c
);
390 TESTINST3("rors r0, r1, r2", 0x00088000, 1, r0
, r1
, r2
, c
);
391 TESTINST3("rors r0, r1, r2", 0x00088000, 2, r0
, r1
, r2
, c
);
392 TESTINST3("rors r0, r1, r2", 0x00088000, 31, r0
, r1
, r2
, c
);
393 TESTINST3("rors r0, r1, r2", 0x00088000, 32, r0
, r1
, r2
, c
);
394 TESTINST3("rors r0, r1, r2", 0x00088000, 33, r0
, r1
, r2
, c
);
395 TESTINST3("rors r0, r1, r2", 0x00088000, 63, r0
, r1
, r2
, c
);
396 TESTINST3("rors r0, r1, r2", 0x00088000, 64, r0
, r1
, r2
, c
);
397 TESTINST3("rors r0, r1, r2", 0x00088000, 255, r0
, r1
, r2
, c
);
398 TESTINST3("rors r0, r1, r2", 0x00088000, 256, r0
, r1
, r2
, c
);
399 TESTINST3("rors r0, r1, r2", 0x80088000, 256, r0
, r1
, r2
, c
);
400 TESTINST3("rors r0, r1, r2", 0x00088000, 257, r0
, r1
, r2
, c
);
403 printf("ROR immediate\n");
405 TESTINST2("ror r0, r1, #0", 0x00088000, r0
, r1
, c
);
406 TESTINST2("ror r0, r1, #1", 0x00088000, r0
, r1
, c
);
407 TESTINST2("ror r0, r1, #31", 0x00088000, r0
, r1
, c
);
408 TESTINST2("ror r0, r1, #16", 0x00010000, r0
, r1
, c
);
409 TESTINST2("ror r0, r1, #17", 0x00010000, r0
, r1
, c
);
410 TESTINST2("ror r0, r1, #18", 0x00010000, r0
, r1
, c
);
413 printf("RORS immediate\n");
415 TESTINST2("rors r0, r1, #0", 0x00088000, r0
, r1
, c
);
416 TESTINST2("rors r0, r1, #1", 0x00088000, r0
, r1
, c
);
417 TESTINST2("rors r0, r1, #31", 0x00088000, r0
, r1
, c
);
418 TESTINST2("rors r0, r1, #16", 0x00010000, r0
, r1
, c
);
419 TESTINST2("rors r0, r1, #17", 0x00010000, r0
, r1
, c
);
420 TESTINST2("rors r0, r1, #18", 0x00010000, r0
, r1
, c
);
423 printf("shift with barrel shifter\n");
425 TESTINST4("add r0, r1, r2, lsl r3", 0, 0xffffffff, 0, r0
, r1
, r2
, r3
, c
);
426 TESTINST4("add r0, r1, r2, lsl r3", 0, 0xffffffff, 1, r0
, r1
, r2
, r3
, c
);
427 TESTINST4("add r0, r1, r2, lsl r3", 0, 0xffffffff, 31, r0
, r1
, r2
, r3
, c
);
428 TESTINST4("add r0, r1, r2, lsl r3", 0, 0xffffffff, 32, r0
, r1
, r2
, r3
, c
);
429 TESTINST4("add r0, r1, r2, lsl r3", 0, 0xffffffff, 255, r0
, r1
, r2
, r3
, c
);
430 TESTINST4("add r0, r1, r2, lsl r3", 0, 0xffffffff, 256, r0
, r1
, r2
, r3
, c
);
431 TESTINST4("add r0, r1, r2, lsr r3", 0, 0xffffffff, 0, r0
, r1
, r2
, r3
, c
);
432 TESTINST4("add r0, r1, r2, lsr r3", 0, 0xffffffff, 1, r0
, r1
, r2
, r3
, c
);
433 TESTINST4("add r0, r1, r2, lsr r3", 0, 0xffffffff, 31, r0
, r1
, r2
, r3
, c
);
434 TESTINST4("add r0, r1, r2, lsr r3", 0, 0xffffffff, 32, r0
, r1
, r2
, r3
, c
);
435 TESTINST4("add r0, r1, r2, lsr r3", 0, 0xffffffff, 255, r0
, r1
, r2
, r3
, c
);
436 TESTINST4("add r0, r1, r2, lsr r3", 0, 0xffffffff, 256, r0
, r1
, r2
, r3
, c
);
437 TESTINST4("add r0, r1, r2, asr r3", 0, 0x7fffffff, 0, r0
, r1
, r2
, r3
, c
);
438 TESTINST4("add r0, r1, r2, asr r3", 0, 0x7fffffff, 1, r0
, r1
, r2
, r3
, c
);
439 TESTINST4("add r0, r1, r2, asr r3", 0, 0x7fffffff, 31, r0
, r1
, r2
, r3
, c
);
440 TESTINST4("add r0, r1, r2, asr r3", 0, 0x7fffffff, 32, r0
, r1
, r2
, r3
, c
);
441 TESTINST4("add r0, r1, r2, asr r3", 0, 0x7fffffff, 255, r0
, r1
, r2
, r3
, c
);
442 TESTINST4("add r0, r1, r2, asr r3", 0, 0x7fffffff, 256, r0
, r1
, r2
, r3
, c
);
443 TESTINST4("add r0, r1, r2, lsr r3", 0, 0xffffffff, 256, r0
, r1
, r2
, r3
, c
);
447 TESTINST4("add r0, r1, r2, asr r3", 0, 0x8, 0, r0
, r1
, r2
, r3
, c
);
448 TESTINST4("add r0, r1, r2, asr r3", 0, 0x8, 1, r0
, r1
, r2
, r3
, c
);
449 TESTINST4("add r0, r1, r2, asr r3", 0, 0x8, 2, r0
, r1
, r2
, r3
, c
);
450 TESTINST4("add r0, r1, r2, asr r3", 0, 0x8, 3, r0
, r1
, r2
, r3
, c
);
451 TESTINST4("add r0, r1, r2, asr r3", 0, 0x8, 4, r0
, r1
, r2
, r3
, c
);
452 TESTINST4("add r0, r1, r2, asr r3", 0, 0x8, 5, r0
, r1
, r2
, r3
, c
);
456 TESTINST4("add r0, r1, r2, ror r3", 0, 0x00088000, 0, r0
, r1
, r2
, r3
, c
);
457 TESTINST4("add r0, r1, r2, ror r3", 0, 0x80088000, 0, r0
, r1
, r2
, r3
, c
);
458 TESTINST4("add r0, r1, r2, ror r3", 0, 0x00088000, 1, r0
, r1
, r2
, r3
, c
);
459 TESTINST4("add r0, r1, r2, ror r3", 0, 0x00088000, 31, r0
, r1
, r2
, r3
, c
);
460 TESTINST4("add r0, r1, r2, ror r3", 0, 0x00088000, 32, r0
, r1
, r2
, r3
, c
);
461 TESTINST4("add r0, r1, r2, ror r3", 0, 0x00088000, 255, r0
, r1
, r2
, r3
, c
);
462 TESTINST4("add r0, r1, r2, ror r3", 0, 0x00088000, 256, r0
, r1
, r2
, r3
, c
);
463 TESTINST4("add r0, r1, r2, ror r3", 0, 0x80088000, 256, r0
, r1
, r2
, r3
, c
);
464 TESTINST4("add r0, r1, r2, ror r3", 0, 0x00088000, 257, r0
, r1
, r2
, r3
, c
);
468 TESTINST4("adds r0, r1, r2, lsl r3", 0, 0xffffffff, 0, r0
, r1
, r2
, r3
, c
);
469 TESTINST4("adds r0, r1, r2, lsl r3", 0, 0xffffffff, 1, r0
, r1
, r2
, r3
, c
);
470 TESTINST4("adds r0, r1, r2, lsl r3", 0, 0xffffffff, 31, r0
, r1
, r2
, r3
, c
);
471 TESTINST4("adds r0, r1, r2, lsl r3", 0, 0xffffffff, 32, r0
, r1
, r2
, r3
, c
);
472 TESTINST4("adds r0, r1, r2, lsl r3", 0, 0xffffffff, 255, r0
, r1
, r2
, r3
, c
);
473 TESTINST4("adds r0, r1, r2, lsl r3", 0, 0xffffffff, 256, r0
, r1
, r2
, r3
, c
);
474 TESTINST4("adds r0, r1, r2, lsr r3", 0, 0xffffffff, 0, r0
, r1
, r2
, r3
, c
);
475 TESTINST4("adds r0, r1, r2, lsr r3", 0, 0xffffffff, 1, r0
, r1
, r2
, r3
, c
);
476 TESTINST4("adds r0, r1, r2, lsr r3", 0, 0xffffffff, 31, r0
, r1
, r2
, r3
, c
);
477 TESTINST4("adds r0, r1, r2, lsr r3", 0, 0xffffffff, 32, r0
, r1
, r2
, r3
, c
);
478 TESTINST4("adds r0, r1, r2, lsr r3", 0, 0xffffffff, 255, r0
, r1
, r2
, r3
, c
);
479 TESTINST4("adds r0, r1, r2, lsr r3", 0, 0xffffffff, 256, r0
, r1
, r2
, r3
, c
);
481 TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 0, r0
, r1
, r2
, r3
, c
);
482 TESTINST4("adds r0, r1, r2, ror r3", 0, 0x80088000, 0, r0
, r1
, r2
, r3
, c
);
483 TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 1, r0
, r1
, r2
, r3
, c
);
484 TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 31, r0
, r1
, r2
, r3
, c
);
485 TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 32, r0
, r1
, r2
, r3
, c
);
486 TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 255, r0
, r1
, r2
, r3
, c
);
487 TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 256, r0
, r1
, r2
, r3
, c
);
488 TESTINST4("adds r0, r1, r2, ror r3", 0, 0x80088000, 256, r0
, r1
, r2
, r3
, c
);
489 TESTINST4("adds r0, r1, r2, ror r3", 0, 0x00088000, 257, r0
, r1
, r2
, r3
, c
);
493 TESTINST4("adcs r0, r1, r2, lsl r3", 0, 0xffffffff, 0, r0
, r1
, r2
, r3
, c
);
494 TESTINST4("adcs r0, r1, r2, lsr r3", 0, 0xffffffff, 0, r0
, r1
, r2
, r3
, c
);
495 TESTINST4("adcs r0, r1, r2, lsl r3", 0, 0xffffffff, 1, r0
, r1
, r2
, r3
, c
);
496 TESTINST4("adcs r0, r1, r2, lsr r3", 0, 0xffffffff, 1, r0
, r1
, r2
, r3
, c
);
500 TESTINST3("mul r0, r1, r2", 0, 0, r0
, r1
, r2
, 0);
501 TESTINST3("mul r0, r1, r2", 0xffffffff, 0, r0
, r1
, r2
, 0);
502 TESTINST3("mul r0, r1, r2", 0, 0xffffffff, r0
, r1
, r2
, 0);
503 TESTINST3("mul r0, r1, r2", 0xffffffff, 0xffffffff, r0
, r1
, r2
, 0);
504 TESTINST3("mul r0, r1, r2", 0x7fffffff, 0x7fffffff, r0
, r1
, r2
, 0);
505 TESTINST3("mul r0, r1, r2", 0x0000ffff, 0x0000ffff, r0
, r1
, r2
, 0);
508 TESTINST3("muls r0, r1, r2", 0, 0, r0
, r1
, r2
, 0);
509 TESTINST3("muls r0, r1, r2", 0xffffffff, 0, r0
, r1
, r2
, 0);
510 TESTINST3("muls r0, r1, r2", 0, 0xffffffff, r0
, r1
, r2
, 0);
511 TESTINST3("muls r0, r1, r2", 0xffffffff, 0xffffffff, r0
, r1
, r2
, 0);
512 TESTINST3("muls r0, r1, r2", 0x7fffffff, 0x7fffffff, r0
, r1
, r2
, 0);
513 TESTINST3("muls r0, r1, r2", 0x0000ffff, 0x0000ffff, r0
, r1
, r2
, 0);
516 TESTINST4("mla r0, r1, r2, r3", 0, 0, 1, r0
, r1
, r2
, r3
, 0);
517 TESTINST4("mla r0, r1, r2, r3", 0xffffffff, 0, 1, r0
, r1
, r2
, r3
, 0);
518 TESTINST4("mla r0, r1, r2, r3", 0, 0xffffffff, 1, r0
, r1
, r2
, r3
, 0);
519 TESTINST4("mla r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0
, r1
, r2
, r3
, 0);
520 TESTINST4("mla r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0
, r1
, r2
, r3
, 0);
521 TESTINST4("mla r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0
, r1
, r2
, r3
, 0);
524 TESTINST4("mlas r0, r1, r2, r3", 0, 0, 1, r0
, r1
, r2
, r3
, 0);
525 TESTINST4("mlas r0, r1, r2, r3", 0xffffffff, 0, 1, r0
, r1
, r2
, r3
, 0);
526 TESTINST4("mlas r0, r1, r2, r3", 0, 0xffffffff, 1, r0
, r1
, r2
, r3
, 0);
527 TESTINST4("mlas r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0
, r1
, r2
, r3
, 0);
528 TESTINST4("mlas r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0
, r1
, r2
, r3
, 0);
529 TESTINST4("mlas r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0
, r1
, r2
, r3
, 0);
532 TESTINST4("mls r0, r1, r2, r3", 0, 0, 1, r0
, r1
, r2
, r3
, 0);
533 TESTINST4("mls r0, r1, r2, r3", 0xffffffff, 0, 1, r0
, r1
, r2
, r3
, 0);
534 TESTINST4("mls r0, r1, r2, r3", 0, 0xffffffff, 1, r0
, r1
, r2
, r3
, 0);
535 TESTINST4("mls r0, r1, r2, r3", 0xffffffff, 0xffffffff, 1, r0
, r1
, r2
, r3
, 0);
536 TESTINST4("mls r0, r1, r2, r3", 0x7fffffff, 0x7fffffff, 1, r0
, r1
, r2
, r3
, 0);
537 TESTINST4("mls r0, r1, r2, r3", 0x0000ffff, 0x0000ffff, 1, r0
, r1
, r2
, r3
, 0);
540 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
541 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
542 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
543 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
544 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
545 TESTINST4_2OUT("umull r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
546 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
547 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
548 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
549 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
550 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
551 TESTINST4_2OUT("umulls r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
554 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
555 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
556 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
557 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
558 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
559 TESTINST4_2OUT("smull r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
560 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
561 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
562 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
563 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
564 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
565 TESTINST4_2OUT("smulls r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
568 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
569 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
570 TESTINST4_2OUT("umlal r0, r1, r2, r3", 1, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
571 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0
, r1
, r2
, r3
, 0);
572 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
573 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
574 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
575 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
576 TESTINST4_2OUT("umlal r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
577 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
578 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
579 TESTINST4_2OUT("umlals r0, r1, r2, r3", 1, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
580 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0
, r1
, r2
, r3
, 0);
581 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
582 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
583 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
584 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
585 TESTINST4_2OUT("umlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
588 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
589 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
590 TESTINST4_2OUT("smlal r0, r1, r2, r3", 1, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
591 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0
, r1
, r2
, r3
, 0);
592 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
593 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
594 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
595 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
596 TESTINST4_2OUT("smlal r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
597 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
598 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
599 TESTINST4_2OUT("smlals r0, r1, r2, r3", 1, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
600 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0
, r1
, r2
, r3
, 0);
601 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
602 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
603 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
604 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
605 TESTINST4_2OUT("smlals r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
608 TESTINST4_2OUT("smlald r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
609 TESTINST4_2OUT("smlald r0, r1, r2, r3", 0, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
610 TESTINST4_2OUT("smlald r0, r1, r2, r3", 1, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
611 TESTINST4_2OUT("smlald r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0
, r1
, r2
, r3
, 0);
612 TESTINST4_2OUT("smlald r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
613 TESTINST4_2OUT("smlald r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
614 TESTINST4_2OUT("smlald r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
615 TESTINST4_2OUT("smlald r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
616 TESTINST4_2OUT("smlald r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
617 TESTINST4_2OUT("smlald r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0
, r1
, r2
, r3
, 0);
618 TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
619 TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
620 TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 1, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
621 TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0
, r1
, r2
, r3
, 0);
622 TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
623 TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
624 TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
625 TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
626 TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
627 TESTINST4_2OUT("smlaldx r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0
, r1
, r2
, r3
, 0);
630 TESTINST4_2OUT("smlsld r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
631 TESTINST4_2OUT("smlsld r0, r1, r2, r3", 0, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
632 TESTINST4_2OUT("smlsld r0, r1, r2, r3", 1, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
633 TESTINST4_2OUT("smlsld r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0
, r1
, r2
, r3
, 0);
634 TESTINST4_2OUT("smlsld r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
635 TESTINST4_2OUT("smlsld r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
636 TESTINST4_2OUT("smlsld r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
637 TESTINST4_2OUT("smlsld r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
638 TESTINST4_2OUT("smlsld r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
639 TESTINST4_2OUT("smlsld r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0
, r1
, r2
, r3
, 0);
640 TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
641 TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
642 TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 1, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
643 TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0
, r1
, r2
, r3
, 0);
644 TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
645 TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
646 TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
647 TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
648 TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
649 TESTINST4_2OUT("smlsldx r0, r1, r2, r3", 0xfff4ffff, 0xff8fff3f, 0xfffff6ff, 0xfff9ffff, r0
, r1
, r2
, r3
, 0);
653 TESTINST2("clz r0, r1", 0, r0
, r1
, c
);
654 TESTINST2("clz r0, r1", 1, r0
, r1
, c
);
655 TESTINST2("clz r0, r1", 0x10, r0
, r1
, c
);
656 TESTINST2("clz r0, r1", 0xffffffff, r0
, r1
, c
);
659 printf("extend instructions\n");
660 TESTINST2("uxtb r0, r1", 0, r0
, r1
, 0);
661 TESTINST2("uxtb r0, r1", 1, r0
, r1
, 0);
662 TESTINST2("uxtb r0, r1", 0xff, r0
, r1
, 0);
663 TESTINST2("uxtb r0, r1", 0xffffffff, r0
, r1
, 0);
664 TESTINST2("sxtb r0, r1", 0, r0
, r1
, 0);
665 TESTINST2("sxtb r0, r1", 1, r0
, r1
, 0);
666 TESTINST2("sxtb r0, r1", 0xff, r0
, r1
, 0);
667 TESTINST2("sxtb r0, r1", 0xffffffff, r0
, r1
, 0);
669 TESTINST2("uxth r0, r1", 0, r0
, r1
, 0);
670 TESTINST2("uxth r0, r1", 1, r0
, r1
, 0);
671 TESTINST2("uxth r0, r1", 0xffff, r0
, r1
, 0);
672 TESTINST2("uxth r0, r1", 0xffffffff, r0
, r1
, 0);
673 TESTINST2("sxth r0, r1", 0, r0
, r1
, 0);
674 TESTINST2("sxth r0, r1", 1, r0
, r1
, 0);
675 TESTINST2("sxth r0, r1", 0x7fff, r0
, r1
, 0);
676 TESTINST2("sxth r0, r1", 0xffff, r0
, r1
, 0);
677 TESTINST2("sxth r0, r1", 0x10ffff, r0
, r1
, 0);
678 TESTINST2("sxth r0, r1", 0x107fff, r0
, r1
, 0);
679 TESTINST2("sxth r0, r1", 0xffffffff, r0
, r1
, 0);
681 TESTINST2("uxtb r0, r1, ror #0", 0x000000ff, r0
, r1
, 0);
682 TESTINST2("uxtb r0, r1, ror #8", 0x000000ff, r0
, r1
, 0);
683 TESTINST2("uxtb r0, r1, ror #8", 0x0000ff00, r0
, r1
, 0);
684 TESTINST2("uxtb r0, r1, ror #16", 0x00ff0000, r0
, r1
, 0);
685 TESTINST2("uxtb r0, r1, ror #24", 0xff000000, r0
, r1
, 0);
687 TESTINST2("uxtb16 r0, r1", 0xffffffff, r0
, r1
, 0);
688 TESTINST2("uxtb16 r0, r1, ror #16", 0x0000ffff, r0
, r1
, 0);
689 TESTINST2("sxtb16 r0, r1", 0xffffffff, r0
, r1
, 0);
690 TESTINST2("sxtb16 r0, r1", 0x00ff00ff, r0
, r1
, 0);
691 TESTINST2("sxtb16 r0, r1", 0x007f007f, r0
, r1
, 0);
693 printf("------------ BFI ------------\n");
695 /* bfi rDst, rSrc, #lsb-in-dst, #number-of-bits-to-copy */
696 TESTINST2("bfi r0, r1, #0, #11", 0xAAAAAAAA, r0
, r1
, 0);
697 TESTINST2("bfi r0, r1, #1, #11", 0xAAAAAAAA, r0
, r1
, 0);
698 TESTINST2("bfi r0, r1, #2, #11", 0xAAAAAAAA, r0
, r1
, 0);
700 TESTINST2("bfi r0, r1, #19, #11", 0xFFFFFFFF, r0
, r1
, 0);
701 TESTINST2("bfi r0, r1, #20, #11", 0xFFFFFFFF, r0
, r1
, 0);
702 TESTINST2("bfi r0, r1, #21, #11", 0xFFFFFFFF, r0
, r1
, 0);
704 TESTINST2("bfi r0, r1, #0, #32", 0xFFFFFFFF, r0
, r1
, 0);
705 TESTINST2("bfi r0, r1, #1, #31", 0xFFFFFFFF, r0
, r1
, 0);
707 TESTINST2("bfi r0, r1, #29, #3", 0xFFFFFFFF, r0
, r1
, 0);
708 TESTINST2("bfi r0, r1, #30, #2", 0xFFFFFFFF, r0
, r1
, 0);
709 TESTINST2("bfi r0, r1, #31, #1", 0xFFFFFFFF, r0
, r1
, 0);
711 printf("------------ BFC ------------\n");
713 /* bfi rDst, #lsb-in-dst, #number-of-bits-to-copy */
714 TESTINST2("bfc r0, #0, #11", 0xAAAAAAAA, r0
, r1
, 0);
715 TESTINST2("bfc r0, #1, #11", 0xAAAAAAAA, r0
, r1
, 0);
716 TESTINST2("bfc r0, #2, #11", 0xAAAAAAAA, r0
, r1
, 0);
718 TESTINST2("bfc r0, #19, #11", 0xFFFFFFFF, r0
, r1
, 0);
719 TESTINST2("bfc r0, #20, #11", 0xFFFFFFFF, r0
, r1
, 0);
720 TESTINST2("bfc r0, #21, #11", 0xFFFFFFFF, r0
, r1
, 0);
722 TESTINST2("bfc r0, #0, #32", 0xFFFFFFFF, r0
, r1
, 0);
723 TESTINST2("bfc r0, #1, #31", 0xFFFFFFFF, r0
, r1
, 0);
725 TESTINST2("bfc r0, #29, #3", 0xFFFFFFFF, r0
, r1
, 0);
726 TESTINST2("bfc r0, #30, #2", 0xFFFFFFFF, r0
, r1
, 0);
727 TESTINST2("bfc r0, #31, #1", 0xFFFFFFFF, r0
, r1
, 0);
729 printf("------------ SBFX ------------\n");
731 /* sbfx rDst, rSrc, #lsb, #width */
732 TESTINST2("sbfx r0, r1, #0, #1", 0x00000000, r0
, r1
, 0);
733 TESTINST2("sbfx r0, r1, #0, #1", 0x00000001, r0
, r1
, 0);
734 TESTINST2("sbfx r0, r1, #1, #1", 0x00000000, r0
, r1
, 0);
735 TESTINST2("sbfx r0, r1, #1, #1", 0x00000001, r0
, r1
, 0);
736 TESTINST2("sbfx r0, r1, #1, #1", 0x00000002, r0
, r1
, 0);
737 TESTINST2("sbfx r0, r1, #1, #1", 0x00000003, r0
, r1
, 0);
739 TESTINST2("sbfx r0, r1, #0, #2", 0x00000000, r0
, r1
, 0);
740 TESTINST2("sbfx r0, r1, #0, #2", 0x00000001, r0
, r1
, 0);
741 TESTINST2("sbfx r0, r1, #1, #2", 0x00000000, r0
, r1
, 0);
742 TESTINST2("sbfx r0, r1, #1, #2", 0x00000001, r0
, r1
, 0);
743 TESTINST2("sbfx r0, r1, #1, #2", 0x00000002, r0
, r1
, 0);
744 TESTINST2("sbfx r0, r1, #1, #2", 0x00000003, r0
, r1
, 0);
746 TESTINST2("sbfx r0, r1, #0, #11", 0xAAAAAAAA, r0
, r1
, 0);
747 TESTINST2("sbfx r0, r1, #1, #11", 0xAAAAAAAA, r0
, r1
, 0);
748 TESTINST2("sbfx r0, r1, #2, #11", 0xAAAAAAAA, r0
, r1
, 0);
750 TESTINST2("sbfx r0, r1, #2, #11", 0xAAAAAAAA, r0
, r1
, 0);
752 TESTINST2("sbfx r0, r1, #31, #1", 0xAAAAAAAA, r0
, r1
, 0);
753 TESTINST2("sbfx r0, r1, #30, #2", 0xAAAAAAAA, r0
, r1
, 0);
755 printf("------------ UBFX ------------\n");
757 /* ubfx rDst, rSrc, #lsb, #width */
758 TESTINST2("ubfx r0, r1, #0, #1", 0x00000000, r0
, r1
, 0);
759 TESTINST2("ubfx r0, r1, #0, #1", 0x00000001, r0
, r1
, 0);
760 TESTINST2("ubfx r0, r1, #1, #1", 0x00000000, r0
, r1
, 0);
761 TESTINST2("ubfx r0, r1, #1, #1", 0x00000001, r0
, r1
, 0);
762 TESTINST2("ubfx r0, r1, #1, #1", 0x00000002, r0
, r1
, 0);
763 TESTINST2("ubfx r0, r1, #1, #1", 0x00000003, r0
, r1
, 0);
765 TESTINST2("ubfx r0, r1, #0, #2", 0x00000000, r0
, r1
, 0);
766 TESTINST2("ubfx r0, r1, #0, #2", 0x00000001, r0
, r1
, 0);
767 TESTINST2("ubfx r0, r1, #1, #2", 0x00000000, r0
, r1
, 0);
768 TESTINST2("ubfx r0, r1, #1, #2", 0x00000001, r0
, r1
, 0);
769 TESTINST2("ubfx r0, r1, #1, #2", 0x00000002, r0
, r1
, 0);
770 TESTINST2("ubfx r0, r1, #1, #2", 0x00000003, r0
, r1
, 0);
772 TESTINST2("ubfx r0, r1, #0, #11", 0xAAAAAAAA, r0
, r1
, 0);
773 TESTINST2("ubfx r0, r1, #1, #11", 0xAAAAAAAA, r0
, r1
, 0);
774 TESTINST2("ubfx r0, r1, #2, #11", 0xAAAAAAAA, r0
, r1
, 0);
776 TESTINST2("ubfx r0, r1, #2, #11", 0xAAAAAAAA, r0
, r1
, 0);
778 TESTINST2("ubfx r0, r1, #31, #1", 0xAAAAAAAA, r0
, r1
, 0);
779 TESTINST2("ubfx r0, r1, #30, #2", 0xAAAAAAAA, r0
, r1
, 0);
781 printf("------------ SMULL{B,T}{B,T} ------------\n");
782 /* SMULxx rD, rN, rM */
784 TESTINST3("smulbb r0, r1, r2", 0x00030000, 0x00040000, r0
, r1
, r2
, 0);
785 TESTINST3("smulbb r0, r1, r2", 0x00030001, 0x00040002, r0
, r1
, r2
, 0);
786 TESTINST3("smulbb r0, r1, r2", 0x00038001, 0x00047fff, r0
, r1
, r2
, 0);
787 TESTINST3("smulbb r0, r1, r2", 0x00037fff, 0x00047fff, r0
, r1
, r2
, 0);
788 TESTINST3("smulbb r0, r1, r2", 0x0003ffff, 0x0004ffff, r0
, r1
, r2
, 0);
790 printf("------------ SXTAB ------------\n");
791 TESTINST3("sxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182819,
793 TESTINST3("sxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182819,
795 TESTINST3("sxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182819,
797 TESTINST3("sxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182819,
800 TESTINST3("sxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182899,
802 TESTINST3("sxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182899,
804 TESTINST3("sxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182899,
806 TESTINST3("sxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182899,
809 printf("------------ UXTAB ------------\n");
810 TESTINST3("uxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182819,
812 TESTINST3("uxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182819,
814 TESTINST3("uxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182819,
816 TESTINST3("uxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182819,
819 TESTINST3("uxtab r0, r1, r2, ROR #24", 0x31415927, 0x27182899,
821 TESTINST3("uxtab r0, r1, r2, ROR #16", 0x31415927, 0x27182899,
823 TESTINST3("uxtab r0, r1, r2, ROR #8", 0x31415927, 0x27182899,
825 TESTINST3("uxtab r0, r1, r2, ROR #0", 0x31415927, 0x27182899,
828 printf("------------ SXTAH ------------\n");
829 TESTINST3("sxtah r0, r1, r2, ROR #24", 0x31415927, 0x27182819,
831 TESTINST3("sxtah r0, r1, r2, ROR #16", 0x31415927, 0x27182819,
833 TESTINST3("sxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27182819,
835 TESTINST3("sxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27182819,
838 TESTINST3("sxtah r0, r1, r2, ROR #24", 0x31415927, 0x27189819,
840 TESTINST3("sxtah r0, r1, r2, ROR #16", 0x31415927, 0x27189819,
842 TESTINST3("sxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27189819,
844 TESTINST3("sxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27189819,
847 printf("------------ UXTAH ------------\n");
848 TESTINST3("uxtah r0, r1, r2, ROR #24", 0x31415927, 0x27182819,
850 TESTINST3("uxtah r0, r1, r2, ROR #16", 0x31415927, 0x27182819,
852 TESTINST3("uxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27182819,
854 TESTINST3("uxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27182819,
857 TESTINST3("uxtah r0, r1, r2, ROR #24", 0x31415927, 0x27189819,
859 TESTINST3("uxtah r0, r1, r2, ROR #16", 0x31415927, 0x27189819,
861 TESTINST3("uxtah r0, r1, r2, ROR #8 ", 0x31415927, 0x27189819,
863 TESTINST3("uxtah r0, r1, r2, ROR #0 ", 0x31415927, 0x27189819,
866 printf("------------ PLD/PLDW (begin) ------------\n");
867 /* These don't have any effect on the architected state, so,
868 uh, there's no result values to check. Just _do_ some of
869 them and check Valgrind's instruction decoder eats them up
870 without complaining. */
872 printf("pld reg +/- imm12 cases\n");
873 __asm__
__volatile__( "pld [%0, #128]" : :/*in*/"r"(&alocal
) );
874 __asm__
__volatile__( "pld [%0, #-128]" : :/*in*/"r"(&alocal
) );
875 __asm__
__volatile__( "pld [r15, #-128]" : :/*in*/"r"(&alocal
) );
877 // apparently pldw is v7 only
878 //__asm__ __volatile__( "pldw [%0, #128]" : :/*in*/"r"(&alocal) );
879 //__asm__ __volatile__( "pldw [%0, #-128]" : :/*in*/"r"(&alocal) );
880 //__asm__ __volatile__( "pldw [r15, #128]" : :/*in*/"r"(&alocal) );
882 printf("pld reg +/- shifted reg cases\n");
883 __asm__
__volatile__( "pld [%0, %1]" : : /*in*/"r"(&alocal
), "r"(0) );
884 __asm__
__volatile__( "pld [%0, %1, LSL #1]" : : /*in*/"r"(&alocal
), "r"(0) );
885 __asm__
__volatile__( "pld [%0, %1, LSR #1]" : : /*in*/"r"(&alocal
), "r"(0) );
886 __asm__
__volatile__( "pld [%0, %1, ASR #1]" : : /*in*/"r"(&alocal
), "r"(0) );
887 __asm__
__volatile__( "pld [%0, %1, ROR #1]" : : /*in*/"r"(&alocal
), "r"(0) );
888 __asm__
__volatile__( "pld [%0, %1, RRX]" : : /*in*/"r"(&alocal
), "r"(0) );
890 printf("------------ PLD/PLDW (done) ------------\n");
892 printf("------------ RBIT ------------\n");
893 TESTINST2("rbit r0, r1", 0x00000000, r0
, r1
, 0);
894 TESTINST2("rbit r0, r1", 0xFFFFFFFF, r0
, r1
, 0);
895 TESTINST2("rbit r0, r1", 0x80000000, r0
, r1
, 0);
896 TESTINST2("rbit r0, r1", 0x00000001, r0
, r1
, 0);
897 TESTINST2("rbit r0, r1", 0x31415927, r0
, r1
, 0);
898 TESTINST2("rbit r0, r1", 0x14141562, r0
, r1
, 0);
899 TESTINST2("rbit r0, r1", 0xabe8391f, r0
, r1
, 0);
900 TESTINST2("rbit r0, r1", 0x9028aa80, r0
, r1
, 0);
901 TESTINST2("rbit r0, r1", 0xead1fc6d, r0
, r1
, 0);
902 TESTINST2("rbit r0, r1", 0x35c98c55, r0
, r1
, 0);
903 TESTINST2("rbit r0, r1", 0x534af1eb, r0
, r1
, 0);
904 TESTINST2("rbit r0, r1", 0x45511b08, r0
, r1
, 0);
905 TESTINST2("rbit r0, r1", 0x90077f71, r0
, r1
, 0);
906 TESTINST2("rbit r0, r1", 0xde8ca84b, r0
, r1
, 0);
907 TESTINST2("rbit r0, r1", 0xe37a0dda, r0
, r1
, 0);
908 TESTINST2("rbit r0, r1", 0xe5b83d4b, r0
, r1
, 0);
909 TESTINST2("rbit r0, r1", 0xbb6d14ec, r0
, r1
, 0);
910 TESTINST2("rbit r0, r1", 0x68983cc9, r0
, r1
, 0);
912 printf("------------ REV ------------\n");
913 TESTINST2("rev r0, r1", 0x00000000, r0
, r1
, 0);
914 TESTINST2("rev r0, r1", 0xFFFFFFFF, r0
, r1
, 0);
915 TESTINST2("rev r0, r1", 0x80000000, r0
, r1
, 0);
916 TESTINST2("rev r0, r1", 0x00000001, r0
, r1
, 0);
917 TESTINST2("rev r0, r1", 0x31415927, r0
, r1
, 0);
918 TESTINST2("rev r0, r1", 0x14141562, r0
, r1
, 0);
919 TESTINST2("rev r0, r1", 0xabe8391f, r0
, r1
, 0);
920 TESTINST2("rev r0, r1", 0x9028aa80, r0
, r1
, 0);
921 TESTINST2("rev r0, r1", 0xead1fc6d, r0
, r1
, 0);
922 TESTINST2("rev r0, r1", 0x35c98c55, r0
, r1
, 0);
923 TESTINST2("rev r0, r1", 0x534af1eb, r0
, r1
, 0);
924 TESTINST2("rev r0, r1", 0x45511b08, r0
, r1
, 0);
925 TESTINST2("rev r0, r1", 0x90077f71, r0
, r1
, 0);
926 TESTINST2("rev r0, r1", 0xde8ca84b, r0
, r1
, 0);
927 TESTINST2("rev r0, r1", 0xe37a0dda, r0
, r1
, 0);
928 TESTINST2("rev r0, r1", 0xe5b83d4b, r0
, r1
, 0);
929 TESTINST2("rev r0, r1", 0xbb6d14ec, r0
, r1
, 0);
930 TESTINST2("rev r0, r1", 0x68983cc9, r0
, r1
, 0);
932 printf("------------ REV16 ------------\n");
933 TESTINST2("rev16 r0, r1", 0x00000000, r0
, r1
, 0);
934 TESTINST2("rev16 r0, r1", 0xFFFFFFFF, r0
, r1
, 0);
935 TESTINST2("rev16 r0, r1", 0x80000000, r0
, r1
, 0);
936 TESTINST2("rev16 r0, r1", 0x00000001, r0
, r1
, 0);
937 TESTINST2("rev16 r0, r1", 0x31415927, r0
, r1
, 0);
938 TESTINST2("rev16 r0, r1", 0x14141562, r0
, r1
, 0);
939 TESTINST2("rev16 r0, r1", 0xabe8391f, r0
, r1
, 0);
940 TESTINST2("rev16 r0, r1", 0x9028aa80, r0
, r1
, 0);
941 TESTINST2("rev16 r0, r1", 0xead1fc6d, r0
, r1
, 0);
942 TESTINST2("rev16 r0, r1", 0x35c98c55, r0
, r1
, 0);
943 TESTINST2("rev16 r0, r1", 0x534af1eb, r0
, r1
, 0);
944 TESTINST2("rev16 r0, r1", 0x45511b08, r0
, r1
, 0);
945 TESTINST2("rev16 r0, r1", 0x90077f71, r0
, r1
, 0);
946 TESTINST2("rev16 r0, r1", 0xde8ca84b, r0
, r1
, 0);
947 TESTINST2("rev16 r0, r1", 0xe37a0dda, r0
, r1
, 0);
948 TESTINST2("rev16 r0, r1", 0xe5b83d4b, r0
, r1
, 0);
949 TESTINST2("rev16 r0, r1", 0xbb6d14ec, r0
, r1
, 0);
950 TESTINST2("rev16 r0, r1", 0x68983cc9, r0
, r1
, 0);
952 printf("------------ REVSH ------------\n");
953 TESTINST2("revsh r0, r1", 0x00000000, r0
, r1
, 0);
954 TESTINST2("revsh r0, r1", 0xFFFFFFFF, r0
, r1
, 0);
955 TESTINST2("revsh r0, r1", 0x80000000, r0
, r1
, 0);
956 TESTINST2("revsh r0, r1", 0x00000001, r0
, r1
, 0);
957 TESTINST2("revsh r0, r1", 0x31415927, r0
, r1
, 0);
958 TESTINST2("revsh r0, r1", 0x14141562, r0
, r1
, 0);
959 TESTINST2("revsh r0, r1", 0xabe8391f, r0
, r1
, 0);
960 TESTINST2("revsh r0, r1", 0x9028aa80, r0
, r1
, 0);
961 TESTINST2("revsh r0, r1", 0xead1fc6d, r0
, r1
, 0);
962 TESTINST2("revsh r0, r1", 0x35c98c55, r0
, r1
, 0);
963 TESTINST2("revsh r0, r1", 0x534af1eb, r0
, r1
, 0);
964 TESTINST2("revsh r0, r1", 0x45511b08, r0
, r1
, 0);
965 TESTINST2("revsh r0, r1", 0x90077f71, r0
, r1
, 0);
966 TESTINST2("revsh r0, r1", 0xde8ca84b, r0
, r1
, 0);
967 TESTINST2("revsh r0, r1", 0xe37a0dda, r0
, r1
, 0);
968 TESTINST2("revsh r0, r1", 0xe5b83d4b, r0
, r1
, 0);
969 TESTINST2("revsh r0, r1", 0xbb6d14ec, r0
, r1
, 0);
970 TESTINST2("revsh r0, r1", 0x68983cc9, r0
, r1
, 0);
972 printf("------------ NOP (begin) ------------\n");
974 __asm__
__volatile__("nop" ::: "memory","cc");
976 __asm__
__volatile__("nopeq" ::: "memory","cc");
978 __asm__
__volatile__("nopne" ::: "memory","cc");
979 printf("------------ NOP (end) ------------\n");
981 printf("------------ SMMUL ------------\n");
982 TESTINST3("smmul r0, r1, r2", 0, 0, r0
, r1
, r2
, 0);
983 TESTINST3("smmul r0, r1, r2", 0xffffffff, 0, r0
, r1
, r2
, 0);
984 TESTINST3("smmul r0, r1, r2", 0, 0xffffffff, r0
, r1
, r2
, 0);
985 TESTINST3("smmul r0, r1, r2", 0xffffffff, 0xffffffff, r0
, r1
, r2
, 0);
986 TESTINST3("smmul r0, r1, r2", 0x7fffffff, 0x7fffffff, r0
, r1
, r2
, 0);
987 TESTINST3("smmul r0, r1, r2", 0x0000ffff, 0x0000ffff, r0
, r1
, r2
, 0);
988 TESTINST3("smmul r0, r1, r2", 0xe444dc25, 0xd5eef620, r0
, r1
, r2
, 0);
989 TESTINST3("smmul r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0
, r1
, r2
, 0);
990 TESTINST3("smmul r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0
, r1
, r2
, 0);
991 TESTINST3("smmul r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0
, r1
, r2
, 0);
992 TESTINST3("smmul r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0
, r1
, r2
, 0);
994 TESTINST3("smmulr r0, r1, r2", 0, 0, r0
, r1
, r2
, 0);
995 TESTINST3("smmulr r0, r1, r2", 0xffffffff, 0, r0
, r1
, r2
, 0);
996 TESTINST3("smmulr r0, r1, r2", 0, 0xffffffff, r0
, r1
, r2
, 0);
997 TESTINST3("smmulr r0, r1, r2", 0xffffffff, 0xffffffff, r0
, r1
, r2
, 0);
998 TESTINST3("smmulr r0, r1, r2", 0x7fffffff, 0x7fffffff, r0
, r1
, r2
, 0);
999 TESTINST3("smmulr r0, r1, r2", 0x0000ffff, 0x0000ffff, r0
, r1
, r2
, 0);
1000 TESTINST3("smmulr r0, r1, r2", 0xe444dc25, 0xd5eef620, r0
, r1
, r2
, 0);
1001 TESTINST3("smmulr r0, r1, r2", 0x06ea9b2a, 0xa2108661, r0
, r1
, r2
, 0);
1002 TESTINST3("smmulr r0, r1, r2", 0x448f3a5f, 0x17aecf57, r0
, r1
, r2
, 0);
1003 TESTINST3("smmulr r0, r1, r2", 0x4b0c2337, 0xffa63d6c, r0
, r1
, r2
, 0);
1004 TESTINST3("smmulr r0, r1, r2", 0xf91d5f56, 0x088bc0f9, r0
, r1
, r2
, 0);
1006 printf("------------ UMAAL ------------\n");
1007 TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0, 0, r0
, r1
, r2
, r3
, 0);
1008 TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
1009 TESTINST4_2OUT("umaal r0, r1, r2, r3", 1, 1, 0, 0, r0
, r1
, r2
, r3
, 0);
1010 TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0xffffffff, 1, 1, r0
, r1
, r2
, r3
, 0);
1011 TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0, 1, r0
, r1
, r2
, r3
, 0);
1012 TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 1, 0, r0
, r1
, r2
, r3
, 0);
1013 TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 1, 1, r0
, r1
, r2
, r3
, 0);
1014 TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0xffff, 0xffff, r0
, r1
, r2
, r3
, 0);
1015 TESTINST4_2OUT("umaal r0, r1, r2, r3", 0, 0, 0xffffffff, 0xffffffff, r0
, r1
, r2
, r3
, 0);
1017 TESTINST4_2OUT("umaal r0, r1, r2, r3", 0x27182846, 0x31415927, 0x14141356, 0x1773250A,
1019 TESTINST4_2OUT("umaal r0, r1, r2, r3", 0x01415927, 0x74141356, 0x5773250A, 0xA7182846,
1022 printf("----------------- SMMLA{R} ----------------- \n");
1023 TESTINST4("smmla r0, r1, r2, r3",
1024 0x80008000, 0x80008000, 0x00000000, r0
, r1
, r2
, r3
, 0);
1025 TESTINST4("smmla r0, r1, r2, r3",
1026 0x7fff7fff, 0x00000000, 0x00000000, r0
, r1
, r2
, r3
, 0);
1027 TESTINST4("smmla r0, r1, r2, r3",
1028 0x7fff7fff, 0x00010001, 0x00000001, r0
, r1
, r2
, r3
, 0);
1029 TESTINST4("smmla r0, r1, r2, r3",
1030 0x80008000, 0xffffffff, 0x0000001f, r0
, r1
, r2
, r3
, 0);
1031 TESTINST4("smmla r0, r1, r2, r3",
1032 0x00640064, 0x00030003, 0x00000020, r0
, r1
, r2
, r3
, 0);
1033 TESTINST4("smmla r0, r1, r2, r3",
1034 0xffffffff, 0xfffc0001, 0x000000ff, r0
, r1
, r2
, r3
, 0);
1035 TESTINST4("smmla r0, r1, r2, r3",
1036 0xfff70fff, 0x00030003, 0x00000100, r0
, r1
, r2
, r3
, 0);
1037 TESTINST4("smmla r0, r1, r2, r3",
1038 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0
, r1
, r2
, r3
, 0);
1039 TESTINST4("smmla r0, r1, r2, r3",
1040 0x35232047, 0x146275d8, 0xaae3433f, r0
, r1
, r2
, r3
, 0);
1041 TESTINST4("smmla r0, r1, r2, r3",
1042 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0
, r1
, r2
, r3
, 0);
1043 TESTINST4("smmla r0, r1, r2, r3",
1044 0x32fa0095, 0x36f26261, 0x89d2ef86, r0
, r1
, r2
, r3
, 0);
1045 TESTINST4("smmla r0, r1, r2, r3",
1046 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0
, r1
, r2
, r3
, 0);
1047 TESTINST4("smmla r0, r1, r2, r3",
1048 0xc53aaba9, 0x29300837, 0x0b02c58a, r0
, r1
, r2
, r3
, 0);
1049 TESTINST4("smmla r0, r1, r2, r3",
1050 0x216158cb, 0x57a50a01, 0xb0d20777, r0
, r1
, r2
, r3
, 0);
1051 TESTINST4("smmla r0, r1, r2, r3",
1052 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0
, r1
, r2
, r3
, 0);
1053 TESTINST4("smmla r0, r1, r2, r3",
1054 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0
, r1
, r2
, r3
, 0);
1055 TESTINST4("smmla r0, r1, r2, r3",
1056 0xf87b961e, 0x1d66879f, 0xf2b64835, r0
, r1
, r2
, r3
, 0);
1057 TESTINST4("smmla r0, r1, r2, r3",
1058 0xd65db979, 0xc61b323b, 0xae930a1a, r0
, r1
, r2
, r3
, 0);
1059 TESTINST4("smmla r0, r1, r2, r3",
1060 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0
, r1
, r2
, r3
, 0);
1061 TESTINST4("smmla r0, r1, r2, r3",
1062 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0
, r1
, r2
, r3
, 0);
1063 TESTINST4("smmla r0, r1, r2, r3",
1064 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0
, r1
, r2
, r3
, 0);
1065 TESTINST4("smmla r0, r1, r2, r3",
1066 0xeaa652c7, 0x137741f4, 0x3dba1164, r0
, r1
, r2
, r3
, 0);
1067 TESTINST4("smmla r0, r1, r2, r3",
1068 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0
, r1
, r2
, r3
, 0);
1069 TESTINST4("smmla r0, r1, r2, r3",
1070 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0
, r1
, r2
, r3
, 0);
1071 TESTINST4("smmla r0, r1, r2, r3",
1072 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0
, r1
, r2
, r3
, 0);
1073 TESTINST4("smmla r0, r1, r2, r3",
1074 0xe1bb8606, 0x58293969, 0x81616d13, r0
, r1
, r2
, r3
, 0);
1075 TESTINST4("smmla r0, r1, r2, r3",
1076 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0
, r1
, r2
, r3
, 0);
1077 TESTINST4("smmla r0, r1, r2, r3",
1078 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0
, r1
, r2
, r3
, 0);
1079 TESTINST4("smmla r0, r1, r2, r3",
1080 0x17913309, 0xf1e03d7e, 0x91edc21d, r0
, r1
, r2
, r3
, 0);
1081 TESTINST4("smmla r0, r1, r2, r3",
1082 0x5388b5cd, 0x86582032, 0x6034078d, r0
, r1
, r2
, r3
, 0);
1083 TESTINST4("smmla r0, r1, r2, r3",
1084 0x181c436b, 0x5de41558, 0xccfa1c7e, r0
, r1
, r2
, r3
, 0);
1085 TESTINST4("smmla r0, r1, r2, r3",
1086 0x23ba1b46, 0x4437983c, 0x48d06549, r0
, r1
, r2
, r3
, 0);
1087 TESTINST4("smmla r0, r1, r2, r3",
1088 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0
, r1
, r2
, r3
, 0);
1089 TESTINST4("smmla r0, r1, r2, r3",
1090 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0
, r1
, r2
, r3
, 0);
1091 TESTINST4("smmla r0, r1, r2, r3",
1092 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0
, r1
, r2
, r3
, 0);
1093 TESTINST4("smmla r0, r1, r2, r3",
1094 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0
, r1
, r2
, r3
, 0);
1095 TESTINST4("smmla r0, r1, r2, r3",
1096 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0
, r1
, r2
, r3
, 0);
1097 TESTINST4("smmla r0, r1, r2, r3",
1098 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0
, r1
, r2
, r3
, 0);
1099 TESTINST4("smmla r0, r1, r2, r3",
1100 0xd7ce1909, 0x3e435701, 0x85fbf196, r0
, r1
, r2
, r3
, 0);
1101 TESTINST4("smmla r0, r1, r2, r3",
1102 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0
, r1
, r2
, r3
, 0);
1103 TESTINST4("smmla r0, r1, r2, r3",
1104 0x44858efc, 0x9002bc30, 0x390d2c2f, r0
, r1
, r2
, r3
, 0);
1105 TESTINST4("smmla r0, r1, r2, r3",
1106 0xbea121ab, 0x953ff6ec, 0x80657c40, r0
, r1
, r2
, r3
, 0);
1107 TESTINST4("smmla r0, r1, r2, r3",
1108 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0
, r1
, r2
, r3
, 0);
1109 TESTINST4("smmla r0, r1, r2, r3",
1110 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0
, r1
, r2
, r3
, 0);
1111 TESTINST4("smmla r0, r1, r2, r3",
1112 0xec0c2f30, 0x5736ed46, 0x231348c0, r0
, r1
, r2
, r3
, 0);
1113 TESTINST4("smmla r0, r1, r2, r3",
1114 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0
, r1
, r2
, r3
, 0);
1115 TESTINST4("smmla r0, r1, r2, r3",
1116 0xc1553709, 0x0112b30a, 0x69ec0212, r0
, r1
, r2
, r3
, 0);
1117 TESTINST4("smmla r0, r1, r2, r3",
1118 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0
, r1
, r2
, r3
, 0);
1119 TESTINST4("smmla r0, r1, r2, r3",
1120 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0
, r1
, r2
, r3
, 0);
1121 TESTINST4("smmla r0, r1, r2, r3",
1122 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0
, r1
, r2
, r3
, 0);
1123 TESTINST4("smmla r0, r1, r2, r3",
1124 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0
, r1
, r2
, r3
, 0);
1125 TESTINST4("smmla r0, r1, r2, r3",
1126 0x299da970, 0xe8108f1b, 0xf5818cfb, r0
, r1
, r2
, r3
, 0);
1127 TESTINST4("smmla r0, r1, r2, r3",
1128 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0
, r1
, r2
, r3
, 0);
1129 TESTINST4("smmla r0, r1, r2, r3",
1130 0xe60743c3, 0x7acb4de3, 0x73c29060, r0
, r1
, r2
, r3
, 0);
1131 TESTINST4("smmla r0, r1, r2, r3",
1132 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0
, r1
, r2
, r3
, 0);
1133 TESTINST4("smmla r0, r1, r2, r3",
1134 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0
, r1
, r2
, r3
, 0);
1135 TESTINST4("smmla r0, r1, r2, r3",
1136 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0
, r1
, r2
, r3
, 0);
1137 TESTINST4("smmla r0, r1, r2, r3",
1138 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0
, r1
, r2
, r3
, 0);
1140 TESTINST4("smmlar r0, r1, r2, r3",
1141 0x80008000, 0x80008000, 0x00000000, r0
, r1
, r2
, r3
, 0);
1142 TESTINST4("smmlar r0, r1, r2, r3",
1143 0x7fff7fff, 0x00000000, 0x00000000, r0
, r1
, r2
, r3
, 0);
1144 TESTINST4("smmlar r0, r1, r2, r3",
1145 0x7fff7fff, 0x00010001, 0x00000001, r0
, r1
, r2
, r3
, 0);
1146 TESTINST4("smmlar r0, r1, r2, r3",
1147 0x80008000, 0xffffffff, 0x0000001f, r0
, r1
, r2
, r3
, 0);
1148 TESTINST4("smmlar r0, r1, r2, r3",
1149 0x00640064, 0x00030003, 0x00000020, r0
, r1
, r2
, r3
, 0);
1150 TESTINST4("smmlar r0, r1, r2, r3",
1151 0xffffffff, 0xfffc0001, 0x000000ff, r0
, r1
, r2
, r3
, 0);
1152 TESTINST4("smmlar r0, r1, r2, r3",
1153 0xfff70fff, 0x00030003, 0x00000100, r0
, r1
, r2
, r3
, 0);
1154 TESTINST4("smmlar r0, r1, r2, r3",
1155 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0
, r1
, r2
, r3
, 0);
1156 TESTINST4("smmlar r0, r1, r2, r3",
1157 0x35232047, 0x146275d8, 0xaae3433f, r0
, r1
, r2
, r3
, 0);
1158 TESTINST4("smmlar r0, r1, r2, r3",
1159 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0
, r1
, r2
, r3
, 0);
1160 TESTINST4("smmlar r0, r1, r2, r3",
1161 0x32fa0095, 0x36f26261, 0x89d2ef86, r0
, r1
, r2
, r3
, 0);
1162 TESTINST4("smmlar r0, r1, r2, r3",
1163 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0
, r1
, r2
, r3
, 0);
1164 TESTINST4("smmlar r0, r1, r2, r3",
1165 0xc53aaba9, 0x29300837, 0x0b02c58a, r0
, r1
, r2
, r3
, 0);
1166 TESTINST4("smmlar r0, r1, r2, r3",
1167 0x216158cb, 0x57a50a01, 0xb0d20777, r0
, r1
, r2
, r3
, 0);
1168 TESTINST4("smmlar r0, r1, r2, r3",
1169 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0
, r1
, r2
, r3
, 0);
1170 TESTINST4("smmlar r0, r1, r2, r3",
1171 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0
, r1
, r2
, r3
, 0);
1172 TESTINST4("smmlar r0, r1, r2, r3",
1173 0xf87b961e, 0x1d66879f, 0xf2b64835, r0
, r1
, r2
, r3
, 0);
1174 TESTINST4("smmlar r0, r1, r2, r3",
1175 0xd65db979, 0xc61b323b, 0xae930a1a, r0
, r1
, r2
, r3
, 0);
1176 TESTINST4("smmlar r0, r1, r2, r3",
1177 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0
, r1
, r2
, r3
, 0);
1178 TESTINST4("smmlar r0, r1, r2, r3",
1179 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0
, r1
, r2
, r3
, 0);
1180 TESTINST4("smmlar r0, r1, r2, r3",
1181 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0
, r1
, r2
, r3
, 0);
1182 TESTINST4("smmlar r0, r1, r2, r3",
1183 0xeaa652c7, 0x137741f4, 0x3dba1164, r0
, r1
, r2
, r3
, 0);
1184 TESTINST4("smmlar r0, r1, r2, r3",
1185 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0
, r1
, r2
, r3
, 0);
1186 TESTINST4("smmlar r0, r1, r2, r3",
1187 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0
, r1
, r2
, r3
, 0);
1188 TESTINST4("smmlar r0, r1, r2, r3",
1189 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0
, r1
, r2
, r3
, 0);
1190 TESTINST4("smmlar r0, r1, r2, r3",
1191 0xe1bb8606, 0x58293969, 0x81616d13, r0
, r1
, r2
, r3
, 0);
1192 TESTINST4("smmlar r0, r1, r2, r3",
1193 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0
, r1
, r2
, r3
, 0);
1194 TESTINST4("smmlar r0, r1, r2, r3",
1195 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0
, r1
, r2
, r3
, 0);
1196 TESTINST4("smmlar r0, r1, r2, r3",
1197 0x17913309, 0xf1e03d7e, 0x91edc21d, r0
, r1
, r2
, r3
, 0);
1198 TESTINST4("smmlar r0, r1, r2, r3",
1199 0x5388b5cd, 0x86582032, 0x6034078d, r0
, r1
, r2
, r3
, 0);
1200 TESTINST4("smmlar r0, r1, r2, r3",
1201 0x181c436b, 0x5de41558, 0xccfa1c7e, r0
, r1
, r2
, r3
, 0);
1202 TESTINST4("smmlar r0, r1, r2, r3",
1203 0x23ba1b46, 0x4437983c, 0x48d06549, r0
, r1
, r2
, r3
, 0);
1204 TESTINST4("smmlar r0, r1, r2, r3",
1205 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0
, r1
, r2
, r3
, 0);
1206 TESTINST4("smmlar r0, r1, r2, r3",
1207 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0
, r1
, r2
, r3
, 0);
1208 TESTINST4("smmlar r0, r1, r2, r3",
1209 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0
, r1
, r2
, r3
, 0);
1210 TESTINST4("smmlar r0, r1, r2, r3",
1211 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0
, r1
, r2
, r3
, 0);
1212 TESTINST4("smmlar r0, r1, r2, r3",
1213 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0
, r1
, r2
, r3
, 0);
1214 TESTINST4("smmlar r0, r1, r2, r3",
1215 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0
, r1
, r2
, r3
, 0);
1216 TESTINST4("smmlar r0, r1, r2, r3",
1217 0xd7ce1909, 0x3e435701, 0x85fbf196, r0
, r1
, r2
, r3
, 0);
1218 TESTINST4("smmlar r0, r1, r2, r3",
1219 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0
, r1
, r2
, r3
, 0);
1220 TESTINST4("smmlar r0, r1, r2, r3",
1221 0x44858efc, 0x9002bc30, 0x390d2c2f, r0
, r1
, r2
, r3
, 0);
1222 TESTINST4("smmlar r0, r1, r2, r3",
1223 0xbea121ab, 0x953ff6ec, 0x80657c40, r0
, r1
, r2
, r3
, 0);
1224 TESTINST4("smmlar r0, r1, r2, r3",
1225 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0
, r1
, r2
, r3
, 0);
1226 TESTINST4("smmlar r0, r1, r2, r3",
1227 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0
, r1
, r2
, r3
, 0);
1228 TESTINST4("smmlar r0, r1, r2, r3",
1229 0xec0c2f30, 0x5736ed46, 0x231348c0, r0
, r1
, r2
, r3
, 0);
1230 TESTINST4("smmlar r0, r1, r2, r3",
1231 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0
, r1
, r2
, r3
, 0);
1232 TESTINST4("smmlar r0, r1, r2, r3",
1233 0xc1553709, 0x0112b30a, 0x69ec0212, r0
, r1
, r2
, r3
, 0);
1234 TESTINST4("smmlar r0, r1, r2, r3",
1235 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0
, r1
, r2
, r3
, 0);
1236 TESTINST4("smmlar r0, r1, r2, r3",
1237 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0
, r1
, r2
, r3
, 0);
1238 TESTINST4("smmlar r0, r1, r2, r3",
1239 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0
, r1
, r2
, r3
, 0);
1240 TESTINST4("smmlar r0, r1, r2, r3",
1241 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0
, r1
, r2
, r3
, 0);
1242 TESTINST4("smmlar r0, r1, r2, r3",
1243 0x299da970, 0xe8108f1b, 0xf5818cfb, r0
, r1
, r2
, r3
, 0);
1244 TESTINST4("smmlar r0, r1, r2, r3",
1245 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0
, r1
, r2
, r3
, 0);
1246 TESTINST4("smmlar r0, r1, r2, r3",
1247 0xe60743c3, 0x7acb4de3, 0x73c29060, r0
, r1
, r2
, r3
, 0);
1248 TESTINST4("smmlar r0, r1, r2, r3",
1249 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0
, r1
, r2
, r3
, 0);
1250 TESTINST4("smmlar r0, r1, r2, r3",
1251 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0
, r1
, r2
, r3
, 0);
1252 TESTINST4("smmlar r0, r1, r2, r3",
1253 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0
, r1
, r2
, r3
, 0);
1254 TESTINST4("smmlar r0, r1, r2, r3",
1255 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0
, r1
, r2
, r3
, 0);
1257 printf("----------------- SMMLS{R} ----------------- \n");
1258 TESTINST4("smmls r0, r1, r2, r3",
1259 0x80008000, 0x80008000, 0x00000000, r0
, r1
, r2
, r3
, 0);
1260 TESTINST4("smmls r0, r1, r2, r3",
1261 0x7fff7fff, 0x00000000, 0x00000000, r0
, r1
, r2
, r3
, 0);
1262 TESTINST4("smmls r0, r1, r2, r3",
1263 0x7fff7fff, 0x00010001, 0x00000001, r0
, r1
, r2
, r3
, 0);
1264 TESTINST4("smmls r0, r1, r2, r3",
1265 0x80008000, 0xffffffff, 0x0000001f, r0
, r1
, r2
, r3
, 0);
1266 TESTINST4("smmls r0, r1, r2, r3",
1267 0x00640064, 0x00030003, 0x00000020, r0
, r1
, r2
, r3
, 0);
1268 TESTINST4("smmls r0, r1, r2, r3",
1269 0xffffffff, 0xfffc0001, 0x000000ff, r0
, r1
, r2
, r3
, 0);
1270 TESTINST4("smmls r0, r1, r2, r3",
1271 0xfff70fff, 0x00030003, 0x00000100, r0
, r1
, r2
, r3
, 0);
1272 TESTINST4("smmls r0, r1, r2, r3",
1273 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0
, r1
, r2
, r3
, 0);
1274 TESTINST4("smmls r0, r1, r2, r3",
1275 0x35232047, 0x146275d8, 0xaae3433f, r0
, r1
, r2
, r3
, 0);
1276 TESTINST4("smmls r0, r1, r2, r3",
1277 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0
, r1
, r2
, r3
, 0);
1278 TESTINST4("smmls r0, r1, r2, r3",
1279 0x32fa0095, 0x36f26261, 0x89d2ef86, r0
, r1
, r2
, r3
, 0);
1280 TESTINST4("smmls r0, r1, r2, r3",
1281 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0
, r1
, r2
, r3
, 0);
1282 TESTINST4("smmls r0, r1, r2, r3",
1283 0xc53aaba9, 0x29300837, 0x0b02c58a, r0
, r1
, r2
, r3
, 0);
1284 TESTINST4("smmls r0, r1, r2, r3",
1285 0x216158cb, 0x57a50a01, 0xb0d20777, r0
, r1
, r2
, r3
, 0);
1286 TESTINST4("smmls r0, r1, r2, r3",
1287 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0
, r1
, r2
, r3
, 0);
1288 TESTINST4("smmls r0, r1, r2, r3",
1289 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0
, r1
, r2
, r3
, 0);
1290 TESTINST4("smmls r0, r1, r2, r3",
1291 0xf87b961e, 0x1d66879f, 0xf2b64835, r0
, r1
, r2
, r3
, 0);
1292 TESTINST4("smmls r0, r1, r2, r3",
1293 0xd65db979, 0xc61b323b, 0xae930a1a, r0
, r1
, r2
, r3
, 0);
1294 TESTINST4("smmls r0, r1, r2, r3",
1295 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0
, r1
, r2
, r3
, 0);
1296 TESTINST4("smmls r0, r1, r2, r3",
1297 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0
, r1
, r2
, r3
, 0);
1298 TESTINST4("smmls r0, r1, r2, r3",
1299 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0
, r1
, r2
, r3
, 0);
1300 TESTINST4("smmls r0, r1, r2, r3",
1301 0xeaa652c7, 0x137741f4, 0x3dba1164, r0
, r1
, r2
, r3
, 0);
1302 TESTINST4("smmls r0, r1, r2, r3",
1303 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0
, r1
, r2
, r3
, 0);
1304 TESTINST4("smmls r0, r1, r2, r3",
1305 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0
, r1
, r2
, r3
, 0);
1306 TESTINST4("smmls r0, r1, r2, r3",
1307 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0
, r1
, r2
, r3
, 0);
1308 TESTINST4("smmls r0, r1, r2, r3",
1309 0xe1bb8606, 0x58293969, 0x81616d13, r0
, r1
, r2
, r3
, 0);
1310 TESTINST4("smmls r0, r1, r2, r3",
1311 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0
, r1
, r2
, r3
, 0);
1312 TESTINST4("smmls r0, r1, r2, r3",
1313 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0
, r1
, r2
, r3
, 0);
1314 TESTINST4("smmls r0, r1, r2, r3",
1315 0x17913309, 0xf1e03d7e, 0x91edc21d, r0
, r1
, r2
, r3
, 0);
1316 TESTINST4("smmls r0, r1, r2, r3",
1317 0x5388b5cd, 0x86582032, 0x6034078d, r0
, r1
, r2
, r3
, 0);
1318 TESTINST4("smmls r0, r1, r2, r3",
1319 0x181c436b, 0x5de41558, 0xccfa1c7e, r0
, r1
, r2
, r3
, 0);
1320 TESTINST4("smmls r0, r1, r2, r3",
1321 0x23ba1b46, 0x4437983c, 0x48d06549, r0
, r1
, r2
, r3
, 0);
1322 TESTINST4("smmls r0, r1, r2, r3",
1323 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0
, r1
, r2
, r3
, 0);
1324 TESTINST4("smmls r0, r1, r2, r3",
1325 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0
, r1
, r2
, r3
, 0);
1326 TESTINST4("smmls r0, r1, r2, r3",
1327 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0
, r1
, r2
, r3
, 0);
1328 TESTINST4("smmls r0, r1, r2, r3",
1329 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0
, r1
, r2
, r3
, 0);
1330 TESTINST4("smmls r0, r1, r2, r3",
1331 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0
, r1
, r2
, r3
, 0);
1332 TESTINST4("smmls r0, r1, r2, r3",
1333 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0
, r1
, r2
, r3
, 0);
1334 TESTINST4("smmls r0, r1, r2, r3",
1335 0xd7ce1909, 0x3e435701, 0x85fbf196, r0
, r1
, r2
, r3
, 0);
1336 TESTINST4("smmls r0, r1, r2, r3",
1337 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0
, r1
, r2
, r3
, 0);
1338 TESTINST4("smmls r0, r1, r2, r3",
1339 0x44858efc, 0x9002bc30, 0x390d2c2f, r0
, r1
, r2
, r3
, 0);
1340 TESTINST4("smmls r0, r1, r2, r3",
1341 0xbea121ab, 0x953ff6ec, 0x80657c40, r0
, r1
, r2
, r3
, 0);
1342 TESTINST4("smmls r0, r1, r2, r3",
1343 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0
, r1
, r2
, r3
, 0);
1344 TESTINST4("smmls r0, r1, r2, r3",
1345 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0
, r1
, r2
, r3
, 0);
1346 TESTINST4("smmls r0, r1, r2, r3",
1347 0xec0c2f30, 0x5736ed46, 0x231348c0, r0
, r1
, r2
, r3
, 0);
1348 TESTINST4("smmls r0, r1, r2, r3",
1349 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0
, r1
, r2
, r3
, 0);
1350 TESTINST4("smmls r0, r1, r2, r3",
1351 0xc1553709, 0x0112b30a, 0x69ec0212, r0
, r1
, r2
, r3
, 0);
1352 TESTINST4("smmls r0, r1, r2, r3",
1353 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0
, r1
, r2
, r3
, 0);
1354 TESTINST4("smmls r0, r1, r2, r3",
1355 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0
, r1
, r2
, r3
, 0);
1356 TESTINST4("smmls r0, r1, r2, r3",
1357 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0
, r1
, r2
, r3
, 0);
1358 TESTINST4("smmls r0, r1, r2, r3",
1359 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0
, r1
, r2
, r3
, 0);
1360 TESTINST4("smmls r0, r1, r2, r3",
1361 0x299da970, 0xe8108f1b, 0xf5818cfb, r0
, r1
, r2
, r3
, 0);
1362 TESTINST4("smmls r0, r1, r2, r3",
1363 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0
, r1
, r2
, r3
, 0);
1364 TESTINST4("smmls r0, r1, r2, r3",
1365 0xe60743c3, 0x7acb4de3, 0x73c29060, r0
, r1
, r2
, r3
, 0);
1366 TESTINST4("smmls r0, r1, r2, r3",
1367 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0
, r1
, r2
, r3
, 0);
1368 TESTINST4("smmls r0, r1, r2, r3",
1369 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0
, r1
, r2
, r3
, 0);
1370 TESTINST4("smmls r0, r1, r2, r3",
1371 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0
, r1
, r2
, r3
, 0);
1372 TESTINST4("smmls r0, r1, r2, r3",
1373 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0
, r1
, r2
, r3
, 0);
1375 TESTINST4("smmlsr r0, r1, r2, r3",
1376 0x80008000, 0x80008000, 0x00000000, r0
, r1
, r2
, r3
, 0);
1377 TESTINST4("smmlsr r0, r1, r2, r3",
1378 0x7fff7fff, 0x00000000, 0x00000000, r0
, r1
, r2
, r3
, 0);
1379 TESTINST4("smmlsr r0, r1, r2, r3",
1380 0x7fff7fff, 0x00010001, 0x00000001, r0
, r1
, r2
, r3
, 0);
1381 TESTINST4("smmlsr r0, r1, r2, r3",
1382 0x80008000, 0xffffffff, 0x0000001f, r0
, r1
, r2
, r3
, 0);
1383 TESTINST4("smmlsr r0, r1, r2, r3",
1384 0x00640064, 0x00030003, 0x00000020, r0
, r1
, r2
, r3
, 0);
1385 TESTINST4("smmlsr r0, r1, r2, r3",
1386 0xffffffff, 0xfffc0001, 0x000000ff, r0
, r1
, r2
, r3
, 0);
1387 TESTINST4("smmlsr r0, r1, r2, r3",
1388 0xfff70fff, 0x00030003, 0x00000100, r0
, r1
, r2
, r3
, 0);
1389 TESTINST4("smmlsr r0, r1, r2, r3",
1390 0xb8035b5b, 0xce0ce1ed, 0x5f986e68, r0
, r1
, r2
, r3
, 0);
1391 TESTINST4("smmlsr r0, r1, r2, r3",
1392 0x35232047, 0x146275d8, 0xaae3433f, r0
, r1
, r2
, r3
, 0);
1393 TESTINST4("smmlsr r0, r1, r2, r3",
1394 0xe7aa57b4, 0x1584bd74, 0x2c07a5b4, r0
, r1
, r2
, r3
, 0);
1395 TESTINST4("smmlsr r0, r1, r2, r3",
1396 0x32fa0095, 0x36f26261, 0x89d2ef86, r0
, r1
, r2
, r3
, 0);
1397 TESTINST4("smmlsr r0, r1, r2, r3",
1398 0x8ed8287c, 0x02c90120, 0xd4b64d54, r0
, r1
, r2
, r3
, 0);
1399 TESTINST4("smmlsr r0, r1, r2, r3",
1400 0xc53aaba9, 0x29300837, 0x0b02c58a, r0
, r1
, r2
, r3
, 0);
1401 TESTINST4("smmlsr r0, r1, r2, r3",
1402 0x216158cb, 0x57a50a01, 0xb0d20777, r0
, r1
, r2
, r3
, 0);
1403 TESTINST4("smmlsr r0, r1, r2, r3",
1404 0x3e2e1bd7, 0x3cd6cd94, 0x7e376198, r0
, r1
, r2
, r3
, 0);
1405 TESTINST4("smmlsr r0, r1, r2, r3",
1406 0xd5fe2dc4, 0xdd914bf7, 0xd5dc5407, r0
, r1
, r2
, r3
, 0);
1407 TESTINST4("smmlsr r0, r1, r2, r3",
1408 0xf87b961e, 0x1d66879f, 0xf2b64835, r0
, r1
, r2
, r3
, 0);
1409 TESTINST4("smmlsr r0, r1, r2, r3",
1410 0xd65db979, 0xc61b323b, 0xae930a1a, r0
, r1
, r2
, r3
, 0);
1411 TESTINST4("smmlsr r0, r1, r2, r3",
1412 0x5ef1f1a8, 0xbf73f0a5, 0x2fb714c9, r0
, r1
, r2
, r3
, 0);
1413 TESTINST4("smmlsr r0, r1, r2, r3",
1414 0x1ffe53d9, 0x815bb75b, 0xa3268abe, r0
, r1
, r2
, r3
, 0);
1415 TESTINST4("smmlsr r0, r1, r2, r3",
1416 0xed2cbf78, 0xc6ffabb6, 0xef9e9fd9, r0
, r1
, r2
, r3
, 0);
1417 TESTINST4("smmlsr r0, r1, r2, r3",
1418 0xeaa652c7, 0x137741f4, 0x3dba1164, r0
, r1
, r2
, r3
, 0);
1419 TESTINST4("smmlsr r0, r1, r2, r3",
1420 0x3ada0280, 0x71fbde8b, 0xdba5bd25, r0
, r1
, r2
, r3
, 0);
1421 TESTINST4("smmlsr r0, r1, r2, r3",
1422 0xda4ba05b, 0x90f9833d, 0x884c0ad8, r0
, r1
, r2
, r3
, 0);
1423 TESTINST4("smmlsr r0, r1, r2, r3",
1424 0xc00b821a, 0x7fa1d5a6, 0x9a4ff1b8, r0
, r1
, r2
, r3
, 0);
1425 TESTINST4("smmlsr r0, r1, r2, r3",
1426 0xe1bb8606, 0x58293969, 0x81616d13, r0
, r1
, r2
, r3
, 0);
1427 TESTINST4("smmlsr r0, r1, r2, r3",
1428 0x51f31d95, 0xa3cfd624, 0x6077fb1f, r0
, r1
, r2
, r3
, 0);
1429 TESTINST4("smmlsr r0, r1, r2, r3",
1430 0x0849a0c2, 0x0872f25a, 0x40b094e2, r0
, r1
, r2
, r3
, 0);
1431 TESTINST4("smmlsr r0, r1, r2, r3",
1432 0x17913309, 0xf1e03d7e, 0x91edc21d, r0
, r1
, r2
, r3
, 0);
1433 TESTINST4("smmlsr r0, r1, r2, r3",
1434 0x5388b5cd, 0x86582032, 0x6034078d, r0
, r1
, r2
, r3
, 0);
1435 TESTINST4("smmlsr r0, r1, r2, r3",
1436 0x181c436b, 0x5de41558, 0xccfa1c7e, r0
, r1
, r2
, r3
, 0);
1437 TESTINST4("smmlsr r0, r1, r2, r3",
1438 0x23ba1b46, 0x4437983c, 0x48d06549, r0
, r1
, r2
, r3
, 0);
1439 TESTINST4("smmlsr r0, r1, r2, r3",
1440 0xa9085781, 0xc6b4ac58, 0xb2aead21, r0
, r1
, r2
, r3
, 0);
1441 TESTINST4("smmlsr r0, r1, r2, r3",
1442 0xc2bdf597, 0xdde1e6a4, 0x852e3a72, r0
, r1
, r2
, r3
, 0);
1443 TESTINST4("smmlsr r0, r1, r2, r3",
1444 0x157b0dea, 0xf0d5ff94, 0xe7b87e39, r0
, r1
, r2
, r3
, 0);
1445 TESTINST4("smmlsr r0, r1, r2, r3",
1446 0x3edad6b6, 0x82aceb7a, 0x0557c6fc, r0
, r1
, r2
, r3
, 0);
1447 TESTINST4("smmlsr r0, r1, r2, r3",
1448 0x6cc9bfa8, 0x7f808c15, 0x81874a02, r0
, r1
, r2
, r3
, 0);
1449 TESTINST4("smmlsr r0, r1, r2, r3",
1450 0x6b1422c7, 0x33921b00, 0x3ccad3f7, r0
, r1
, r2
, r3
, 0);
1451 TESTINST4("smmlsr r0, r1, r2, r3",
1452 0xd7ce1909, 0x3e435701, 0x85fbf196, r0
, r1
, r2
, r3
, 0);
1453 TESTINST4("smmlsr r0, r1, r2, r3",
1454 0xb4e16b6e, 0x6e13680a, 0x89436f88, r0
, r1
, r2
, r3
, 0);
1455 TESTINST4("smmlsr r0, r1, r2, r3",
1456 0x44858efc, 0x9002bc30, 0x390d2c2f, r0
, r1
, r2
, r3
, 0);
1457 TESTINST4("smmlsr r0, r1, r2, r3",
1458 0xbea121ab, 0x953ff6ec, 0x80657c40, r0
, r1
, r2
, r3
, 0);
1459 TESTINST4("smmlsr r0, r1, r2, r3",
1460 0x6ffed89f, 0x3e8c49b7, 0x11bd07d1, r0
, r1
, r2
, r3
, 0);
1461 TESTINST4("smmlsr r0, r1, r2, r3",
1462 0x7795635d, 0x5e6e32dd, 0xe4999bf2, r0
, r1
, r2
, r3
, 0);
1463 TESTINST4("smmlsr r0, r1, r2, r3",
1464 0xec0c2f30, 0x5736ed46, 0x231348c0, r0
, r1
, r2
, r3
, 0);
1465 TESTINST4("smmlsr r0, r1, r2, r3",
1466 0x4f9ddd1b, 0x95bca5d8, 0x5765b203, r0
, r1
, r2
, r3
, 0);
1467 TESTINST4("smmlsr r0, r1, r2, r3",
1468 0xc1553709, 0x0112b30a, 0x69ec0212, r0
, r1
, r2
, r3
, 0);
1469 TESTINST4("smmlsr r0, r1, r2, r3",
1470 0x74bd0223, 0x03fa9bb5, 0x899d9192, r0
, r1
, r2
, r3
, 0);
1471 TESTINST4("smmlsr r0, r1, r2, r3",
1472 0xf52e9fbf, 0xb4c510a7, 0x7fcbe5a9, r0
, r1
, r2
, r3
, 0);
1473 TESTINST4("smmlsr r0, r1, r2, r3",
1474 0x64a365ef, 0x2dd01366, 0xf7b0b13e, r0
, r1
, r2
, r3
, 0);
1475 TESTINST4("smmlsr r0, r1, r2, r3",
1476 0x5e4b1cbf, 0x44de5ca9, 0x464a21cc, r0
, r1
, r2
, r3
, 0);
1477 TESTINST4("smmlsr r0, r1, r2, r3",
1478 0x299da970, 0xe8108f1b, 0xf5818cfb, r0
, r1
, r2
, r3
, 0);
1479 TESTINST4("smmlsr r0, r1, r2, r3",
1480 0xcd90d604, 0xaa5e9444, 0x8217b7df, r0
, r1
, r2
, r3
, 0);
1481 TESTINST4("smmlsr r0, r1, r2, r3",
1482 0xe60743c3, 0x7acb4de3, 0x73c29060, r0
, r1
, r2
, r3
, 0);
1483 TESTINST4("smmlsr r0, r1, r2, r3",
1484 0x868e7c7d, 0x5f77532e, 0x1d133d3d, r0
, r1
, r2
, r3
, 0);
1485 TESTINST4("smmlsr r0, r1, r2, r3",
1486 0x4e5e0760, 0x8f6d3264, 0x21ba2fb3, r0
, r1
, r2
, r3
, 0);
1487 TESTINST4("smmlsr r0, r1, r2, r3",
1488 0xde99ac2f, 0x0be36f70, 0xeda5110c, r0
, r1
, r2
, r3
, 0);
1489 TESTINST4("smmlsr r0, r1, r2, r3",
1490 0xc57243b7, 0xcf1e4487, 0xf20fb90f, r0
, r1
, r2
, r3
, 0);