[InstCombine] Signed saturation tests. NFC
[llvm-complete.git] / test / MC / Disassembler / ARM / basic-arm-instructions.txt
blobdc2247a1e36439e28a91d6e6e0d09af72e4e5718
1 # RUN: llvm-mc -triple=armv7-apple-darwin -mcpu=cortex-a8 -disassemble < %s | FileCheck %s
3 #------------------------------------------------------------------------------
4 # ADC (immediate)
5 #------------------------------------------------------------------------------
6 # CHECK: adc r1, r2, #15
7 # CHECK: adc r1, r2, #240
8 # CHECK: adc r1, r2, #3840
9 # CHECK: adc r1, r2, #61440
10 # CHECK: adc r1, r2, #983040
11 # CHECK: adc r1, r2, #15728640
12 # CHECK: adc r1, r2, #251658240
13 # CHECK: adc r1, r2, #-268435456
14 # CHECK: adc r1, r2, #-268435441
15 # CHECK: adc r7, r8, #-2147483638
16 # CHECK: adc r7, r8, #40, #2
17 # CHECK: adcs r1, r2, #3840
18 # CHECK: adcs r7, r8, #40, #2
19 # CHECK: adcseq r1, r2, #3840
20 # CHECK: adceq r1, r2, #3840
22 0x0f 0x10 0xa2 0xe2
23 0xf0 0x10 0xa2 0xe2
24 0x0f 0x1c 0xa2 0xe2
25 0x0f 0x1a 0xa2 0xe2
26 0x0f 0x18 0xa2 0xe2
27 0x0f 0x16 0xa2 0xe2
28 0x0f 0x14 0xa2 0xe2
29 0x0f 0x12 0xa2 0xe2
30 0xff 0x12 0xa2 0xe2
31 0x2a 0x71 0xa8 0xe2
32 0x28 0x71 0xa8 0xe2
34 0x0f 0x1c 0xb2 0xe2
35 0x28 0x71 0xb8 0xe2
36 0x0f 0x1c 0xb2 0x02
37 0x0f 0x1c 0xa2 0x02
39 #------------------------------------------------------------------------------
40 # ADC (register)
41 # ADC (shifted register)
42 #------------------------------------------------------------------------------
43 # CHECK: adc r4, r5, r6
45 # CHECK: adc r4, r5, r6, lsl #1
46 # CHECK: adc r4, r5, r6, lsl #31
47 # CHECK: adc r4, r5, r6, lsr #1
48 # CHECK: adc r4, r5, r6, lsr #31
49 # CHECK: adc r4, r5, r6, lsr #32
50 # CHECK: adc r4, r5, r6, asr #1
51 # CHECK: adc r4, r5, r6, asr #31
52 # CHECK: adc r4, r5, r6, asr #32
53 # CHECK: adc r4, r5, r6, ror #1
54 # CHECK: adc r4, r5, r6, ror #31
56 # CHECK: adc r6, r7, r8, lsl r9
57 # CHECK: adc r6, r7, r8, lsr r9
58 # CHECK: adc r6, r7, r8, asr r9
59 # CHECK: adc r6, r7, r8, ror r9
60 # CHECK: adc r4, r5, r6, rrx
62 # CHECK: adc r5, r5, r6
63 # CHECK: adc r4, r4, r5, lsl #1
64 # CHECK: adc r4, r4, r5, lsl #31
65 # CHECK: adc r4, r4, r5, lsr #1
66 # CHECK: adc r4, r4, r5, lsr #31
67 # CHECK: adc r4, r4, r5, lsr #32
68 # CHECK: adc r4, r4, r5, asr #1
69 # CHECK: adc r4, r4, r5, asr #31
70 # CHECK: adc r4, r4, r5, asr #32
71 # CHECK: adc r4, r4, r5, ror #1
72 # CHECK: adc r4, r4, r5, ror #31
73 # CHECK: adc r4, r4, r5, rrx
74 # CHECK: adc r6, r6, r7, lsl r9
75 # CHECK: adc r6, r6, r7, lsr r9
76 # CHECK: adc r6, r6, r7, asr r9
77 # CHECK: adc r6, r6, r7, ror r9
78 # CHECK: adc r4, r4, r5, rrx
80 0x06 0x40 0xa5 0xe0
82 0x86 0x40 0xa5 0xe0
83 0x86 0x4f 0xa5 0xe0
84 0xa6 0x40 0xa5 0xe0
85 0xa6 0x4f 0xa5 0xe0
86 0x26 0x40 0xa5 0xe0
87 0xc6 0x40 0xa5 0xe0
88 0xc6 0x4f 0xa5 0xe0
89 0x46 0x40 0xa5 0xe0
90 0xe6 0x40 0xa5 0xe0
91 0xe6 0x4f 0xa5 0xe0
93 0x18 0x69 0xa7 0xe0
94 0x38 0x69 0xa7 0xe0
95 0x58 0x69 0xa7 0xe0
96 0x78 0x69 0xa7 0xe0
97 0x66 0x40 0xa5 0xe0
99 0x06 0x50 0xa5 0xe0
100 0x85 0x40 0xa4 0xe0
101 0x85 0x4f 0xa4 0xe0
102 0xa5 0x40 0xa4 0xe0
103 0xa5 0x4f 0xa4 0xe0
104 0x25 0x40 0xa4 0xe0
105 0xc5 0x40 0xa4 0xe0
106 0xc5 0x4f 0xa4 0xe0
107 0x45 0x40 0xa4 0xe0
108 0xe5 0x40 0xa4 0xe0
109 0xe5 0x4f 0xa4 0xe0
110 0x65 0x40 0xa4 0xe0
111 0x17 0x69 0xa6 0xe0
112 0x37 0x69 0xa6 0xe0
113 0x57 0x69 0xa6 0xe0
114 0x77 0x69 0xa6 0xe0
115 0x65 0x40 0xa4 0xe0
117 #------------------------------------------------------------------------------
118 # ADD
119 #------------------------------------------------------------------------------
120 # CHECK: add r4, r5, #61440
121 # CHECK: add r7, r8, #-2147483638
122 # CHECK: add r7, r8, #40, #2
123 # CHECK: add r4, r5, r6
124 # CHECK: add r4, r5, r6, lsl #5
125 # CHECK: add r4, r5, r6, lsr #5
126 # CHECK: add r4, r5, r6, lsr #5
127 # CHECK: add r4, r5, r6, asr #5
128 # CHECK: add r4, r5, r6, ror #5
129 # CHECK: add r6, r7, r8, lsl r9
130 # CHECK: add r6, r7, r8, lsr r9
131 # CHECK: add r6, r7, r8, asr r9
132 # CHECK: add r6, r7, r8, ror r9
133 # CHECK: add r4, r5, r6, rrx
135 # CHECK: add r5, r5, #61440
136 # CHECK: add r4, r4, r5
137 # CHECK: add r4, r4, r5, lsl #5
138 # CHECK: add r4, r4, r5, lsr #5
139 # CHECK: add r4, r4, r5, lsr #5
140 # CHECK: add r4, r4, r5, asr #5
141 # CHECK: add r4, r4, r5, ror #5
142 # CHECK: add r6, r6, r7, lsl r9
143 # CHECK: add r6, r6, r7, lsr r9
144 # CHECK: add r6, r6, r7, asr r9
145 # CHECK: add r6, r6, r7, ror r9
146 # CHECK: add r4, r4, r5, rrx
148 0x0f 0x4a 0x85 0xe2
149 0x2a 0x71 0x88 0xe2
150 0x28 0x71 0x88 0xe2
151 0x06 0x40 0x85 0xe0
152 0x86 0x42 0x85 0xe0
153 0xa6 0x42 0x85 0xe0
154 0xa6 0x42 0x85 0xe0
155 0xc6 0x42 0x85 0xe0
156 0xe6 0x42 0x85 0xe0
157 0x18 0x69 0x87 0xe0
158 0x38 0x69 0x87 0xe0
159 0x58 0x69 0x87 0xe0
160 0x78 0x69 0x87 0xe0
161 0x66 0x40 0x85 0xe0
164 0x0f 0x5a 0x85 0xe2
165 0x05 0x40 0x84 0xe0
166 0x85 0x42 0x84 0xe0
167 0xa5 0x42 0x84 0xe0
168 0xa5 0x42 0x84 0xe0
169 0xc5 0x42 0x84 0xe0
170 0xe5 0x42 0x84 0xe0
171 0x17 0x69 0x86 0xe0
172 0x37 0x69 0x86 0xe0
173 0x57 0x69 0x86 0xe0
174 0x77 0x69 0x86 0xe0
175 0x65 0x40 0x84 0xe0
177 #------------------------------------------------------------------------------
178 # ADDS
179 #------------------------------------------------------------------------------
180 # CHECK: adds   r7, r8, #-2147483638
181 # CHECK: adds   r7, r8, #40, #2
183 0x2a 0x71 0x98 0xe2
184 0x28 0x71 0x98 0xe2
186 #------------------------------------------------------------------------------
187 # ADR
188 #------------------------------------------------------------------------------
189 # CHECK: add    r2, pc, #3
190 # CHECK: sub    r2, pc, #3
191 # CHECK: sub    r1, pc, #0
192 # CHECK: sub    r1, pc, #301989888
193 # CHECK: add    r1, pc, #301989888
195 0x03 0x20 0x8f 0xe2
196 0x03 0x20 0x4f 0xe2
197 0x00 0x10 0x4f 0xe2
198 0x12 0x14 0x4f 0xe2
199 0x12 0x14 0x8f 0xe2
201 #------------------------------------------------------------------------------
202 # AND
203 #------------------------------------------------------------------------------
204 # CHECK: and r10, r1, #15
205 # CHECK: and r7, r8, #-2147483638
206 # CHECK: and r7, r8, #40, #2
207 # CHECK: and r10, r1, r6
208 # CHECK: and r10, r1, r6, lsl #10
209 # CHECK: and r10, r1, r6, lsr #10
210 # CHECK: and r10, r1, r6, lsr #10
211 # CHECK: and r10, r1, r6, asr #10
212 # CHECK: and r10, r1, r6, ror #10
213 # CHECK: and r6, r7, r8, lsl r2
214 # CHECK: and r6, r7, r8, lsr r2
215 # CHECK: and r6, r7, r8, asr r2
216 # CHECK: and r6, r7, r8, ror r2
217 # CHECK: and r10, r1, r6, rrx
219 # CHECK: and r1, r1, #15
220 # CHECK: and r10, r10, r1
221 # CHECK: and r10, r10, r1, lsl #10
222 # CHECK: and r10, r10, r1, lsr #10
223 # CHECK: and r10, r10, r1, lsr #10
224 # CHECK: and r10, r10, r1, asr #10
225 # CHECK: and r10, r10, r1, ror #10
226 # CHECK: and r6, r6, r7, lsl r2
227 # CHECK: and r6, r6, r7, lsr r2
228 # CHECK: and r6, r6, r7, asr r2
229 # CHECK: and r6, r6, r7, ror r2
230 # CHECK: and r10, r10, r1, rrx
232 0x0f 0xa0 0x01 0xe2
233 0x2a 0x71 0x08 0xe2
234 0x28 0x71 0x08 0xe2
235 0x06 0xa0 0x01 0xe0
236 0x06 0xa5 0x01 0xe0
237 0x26 0xa5 0x01 0xe0
238 0x26 0xa5 0x01 0xe0
239 0x46 0xa5 0x01 0xe0
240 0x66 0xa5 0x01 0xe0
241 0x18 0x62 0x07 0xe0
242 0x38 0x62 0x07 0xe0
243 0x58 0x62 0x07 0xe0
244 0x78 0x62 0x07 0xe0
245 0x66 0xa0 0x01 0xe0
247 0x0f 0x10 0x01 0xe2
248 0x01 0xa0 0x0a 0xe0
249 0x01 0xa5 0x0a 0xe0
250 0x21 0xa5 0x0a 0xe0
251 0x21 0xa5 0x0a 0xe0
252 0x41 0xa5 0x0a 0xe0
253 0x61 0xa5 0x0a 0xe0
254 0x17 0x62 0x06 0xe0
255 0x37 0x62 0x06 0xe0
256 0x57 0x62 0x06 0xe0
257 0x77 0x62 0x06 0xe0
258 0x61 0xa0 0x0a 0xe0
260 #------------------------------------------------------------------------------
261 # FIXME: ASR
262 #------------------------------------------------------------------------------
264 #------------------------------------------------------------------------------
265 # BFC
266 #------------------------------------------------------------------------------
267 # CHECK: bfc r5, #3, #17
268 # CHECK: bfclo r5, #3, #17
270 0x9f 0x51 0xd3 0xe7
271 0x9f 0x51 0xd3 0x37
274 #------------------------------------------------------------------------------
275 # BFI
276 #------------------------------------------------------------------------------
277 # CHECK: bfi r5, r2, #3, #17
278 # CHECK: bfine r5, r2, #3, #17
280 0x92 0x51 0xd3 0xe7
281 0x92 0x51 0xd3 0x17
284 #------------------------------------------------------------------------------
285 # BIC
286 #------------------------------------------------------------------------------
287 # CHECK: bic r10, r1, #15
288 # CHECK: bic r7, r8, #-2147483638
289 # CHECK: bic r7, r8, #40, #2
290 # CHECK: bic r10, r1, r6
291 # CHECK: bic r10, r1, r6, lsl #10
292 # CHECK: bic r10, r1, r6, lsr #10
293 # CHECK: bic r10, r1, r6, lsr #10
294 # CHECK: bic r10, r1, r6, asr #10
295 # CHECK: bic r10, r1, r6, ror #10
296 # CHECK: bic r6, r7, r8, lsl r2
297 # CHECK: bic r6, r7, r8, lsr r2
298 # CHECK: bic r6, r7, r8, asr r2
299 # CHECK: bic r6, r7, r8, ror r2
300 # CHECK: bic r10, r1, r6, rrx
302 # CHECK: bic r1, r1, #15
303 # CHECK: bic r10, r10, r1
304 # CHECK: bic r10, r10, r1, lsl #10
305 # CHECK: bic r10, r10, r1, lsr #10
306 # CHECK: bic r10, r10, r1, lsr #10
307 # CHECK: bic r10, r10, r1, asr #10
308 # CHECK: bic r10, r10, r1, ror #10
309 # CHECK: bic r6, r6, r7, lsl r2
310 # CHECK: bic r6, r6, r7, lsr r2
311 # CHECK: bic r6, r6, r7, asr r2
312 # CHECK: bic r6, r6, r7, ror r2
313 # CHECK: bic r10, r10, r1, rrx
315 0x0f 0xa0 0xc1 0xe3
316 0x2a 0x71 0xc8 0xe3
317 0x28 0x71 0xc8 0xe3
318 0x06 0xa0 0xc1 0xe1
319 0x06 0xa5 0xc1 0xe1
320 0x26 0xa5 0xc1 0xe1
321 0x26 0xa5 0xc1 0xe1
322 0x46 0xa5 0xc1 0xe1
323 0x66 0xa5 0xc1 0xe1
324 0x18 0x62 0xc7 0xe1
325 0x38 0x62 0xc7 0xe1
326 0x58 0x62 0xc7 0xe1
327 0x78 0x62 0xc7 0xe1
328 0x66 0xa0 0xc1 0xe1
331 0x0f 0x10 0xc1 0xe3
332 0x01 0xa0 0xca 0xe1
333 0x01 0xa5 0xca 0xe1
334 0x21 0xa5 0xca 0xe1
335 0x21 0xa5 0xca 0xe1
336 0x41 0xa5 0xca 0xe1
337 0x61 0xa5 0xca 0xe1
338 0x17 0x62 0xc6 0xe1
339 0x37 0x62 0xc6 0xe1
340 0x57 0x62 0xc6 0xe1
341 0x77 0x62 0xc6 0xe1
342 0x61 0xa0 0xca 0xe1
344 #------------------------------------------------------------------------------
345 # BKPT
346 #------------------------------------------------------------------------------
347 # CHECK: bkpt #10
348 # CHECK: bkpt #65535
350 0x7a 0x00 0x20 0xe1
351 0x7f 0xff 0x2f 0xe1
353 #------------------------------------------------------------------------------
354 # BLX (register)
355 #------------------------------------------------------------------------------
356 # CHECK: blx r2
357 # CHECK: blxne r2
359 0x32 0xff 0x2f 0xe1
360 0x32 0xff 0x2f 0x11
362 #------------------------------------------------------------------------------
363 # BLX (immediate)
364 #------------------------------------------------------------------------------
365 # CHECK: blx    #32424576
366 # CHECK: blx    #16212288
368 0xa0 0xb0 0x7b 0xfa
369 0x50 0xd8 0x3d 0xfa
371 #------------------------------------------------------------------------------
372 # BX
373 #------------------------------------------------------------------------------
375 # CHECK: bx r2
376 # CHECK: bxne r2
378 0x12 0xff 0x2f 0xe1
379 0x12 0xff 0x2f 0x11
381 #------------------------------------------------------------------------------
382 # BXJ
383 #------------------------------------------------------------------------------
385 # CHECK: bxj r2
386 # CHECK: bxjne r2
388 0x22 0xff 0x2f 0xe1
389 0x22 0xff 0x2f 0x11
392 #------------------------------------------------------------------------------
393 # CDP/CDP2
394 #------------------------------------------------------------------------------
395 # CHECK: cdp  p7, #1, c1, c1, c1, #4
396 # CHECK: cdp2  p7, #1, c1, c1, c1, #4
398 0x81 0x17 0x11 0xee
399 0x81 0x17 0x11 0xfe
402 #------------------------------------------------------------------------------
403 # CLREX
404 #------------------------------------------------------------------------------
405 # CHECK: clrex
407 0x1f 0xf0 0x7f 0xf5
410 #------------------------------------------------------------------------------
411 # CLZ
412 #------------------------------------------------------------------------------
413 # CHECK: clz r1, r2
414 # CHECK: clzeq r1, r2
416 0x12 0x1f 0x6f 0xe1
417 0x12 0x1f 0x6f 0x01
419 #------------------------------------------------------------------------------
420 # CMN
421 #------------------------------------------------------------------------------
422 # CHECK: cmn r1, #15
423 # CHECK: cmn r7, #40, #2
424 # CHECK: cmn r7, #-2147483638
425 # CHECK: cmn r1, r6
426 # CHECK: cmn r1, r6, lsl #10
427 # CHECK: cmn r1, r6, lsr #10
428 # CHECK: cmn sp, r6, lsr #10
429 # CHECK: cmn r1, r6, asr #10
430 # CHECK: cmn r1, r6, ror #10
431 # CHECK: cmn r7, r8, lsl r2
432 # CHECK: cmn sp, r8, lsr r2
433 # CHECK: cmn r7, r8, asr r2
434 # CHECK: cmn r7, r8, ror r2
435 # CHECK: cmn r1, r6, rrx
437 0x0f 0x00 0x71 0xe3
438 0x28 0x01 0x77 0xe3
439 0x2a 0x01 0x77 0xe3
440 0x06 0x00 0x71 0xe1
441 0x06 0x05 0x71 0xe1
442 0x26 0x05 0x71 0xe1
443 0x26 0x05 0x7d 0xe1
444 0x46 0x05 0x71 0xe1
445 0x66 0x05 0x71 0xe1
446 0x18 0x02 0x77 0xe1
447 0x38 0x02 0x7d 0xe1
448 0x58 0x02 0x77 0xe1
449 0x78 0x02 0x77 0xe1
450 0x66 0x00 0x71 0xe1
452 #------------------------------------------------------------------------------
453 # CMP
454 #------------------------------------------------------------------------------
455 # CHECK: cmp r1, #15
456 # CHECK: cmp r7, #40, #2
457 # CHECK: cmp r7, #-2147483638
458 # CHECK: cmp r1, r6
459 # CHECK: cmp r1, r6, lsl #10
460 # CHECK: cmp r1, r6, lsr #10
461 # CHECK: cmp sp, r6, lsr #10
462 # CHECK: cmp r1, r6, asr #10
463 # CHECK: cmp r1, r6, ror #10
464 # CHECK: cmp r7, r8, lsl r2
465 # CHECK: cmp sp, r8, lsr r2
466 # CHECK: cmp r7, r8, asr r2
467 # CHECK: cmp r7, r8, ror r2
468 # CHECK: cmp r1, r6, rrx
470 0x0f 0x00 0x51 0xe3
471 0x28 0x01 0x57 0xe3
472 0x2a 0x01 0x57 0xe3
473 0x06 0x00 0x51 0xe1
474 0x06 0x05 0x51 0xe1
475 0x26 0x05 0x51 0xe1
476 0x26 0x05 0x5d 0xe1
477 0x46 0x05 0x51 0xe1
478 0x66 0x05 0x51 0xe1
479 0x18 0x02 0x57 0xe1
480 0x38 0x02 0x5d 0xe1
481 0x58 0x02 0x57 0xe1
482 0x78 0x02 0x57 0xe1
483 0x66 0x00 0x51 0xe1
486 #------------------------------------------------------------------------------
487 # CPS
488 #------------------------------------------------------------------------------
489 # CHECK: cpsie  aif
490 # CHECK: cps  #15
491 # CHECK: cpsid  if, #10
492 # CHECK: cpsid  af, #17
493 # CHECK: cpsie  f, #26
495 0xc0 0x01 0x08 0xf1
496 0x0f 0x00 0x02 0xf1
497 0xca 0x00 0x0e 0xf1
498 0x51 0x01 0x0e 0xf1
499 0x5a 0x00 0x0a 0xf1
502 #------------------------------------------------------------------------------
503 # DBG
504 #------------------------------------------------------------------------------
505 # CHECK: dbg #0
506 # CHECK: dbg #5
507 # CHECK: dbg #15
509 0xf0 0xf0 0x20 0xe3
510 0xf5 0xf0 0x20 0xe3
511 0xff 0xf0 0x20 0xe3
514 #------------------------------------------------------------------------------
515 # DMB
516 #------------------------------------------------------------------------------
518 # CHECK: dmb #0x0
519 # CHECK: dmb #0x1
520 # CHECK: dmb oshst
521 # CHECK: dmb osh
522 # CHECK: dmb #0x4
523 # CHECK: dmb #0x5
524 # CHECK: dmb nshst
525 # CHECK: dmb nsh
526 # CHECK: dmb #0x8
527 # CHECK: dmb #0x9
528 # CHECK: dmb ishst
529 # CHECK: dmb ish
530 # CHECK: dmb #0xc
531 # CHECK: dmb #0xd
532 # CHECK: dmb st
533 # CHECK: dmb sy
535 0x50 0xf0 0x7f 0xf5
536 0x51 0xf0 0x7f 0xf5
537 0x52 0xf0 0x7f 0xf5
538 0x53 0xf0 0x7f 0xf5
539 0x54 0xf0 0x7f 0xf5
540 0x55 0xf0 0x7f 0xf5
541 0x56 0xf0 0x7f 0xf5
542 0x57 0xf0 0x7f 0xf5
543 0x58 0xf0 0x7f 0xf5
544 0x59 0xf0 0x7f 0xf5
545 0x5a 0xf0 0x7f 0xf5
546 0x5b 0xf0 0x7f 0xf5
547 0x5c 0xf0 0x7f 0xf5
548 0x5d 0xf0 0x7f 0xf5
549 0x5e 0xf0 0x7f 0xf5
550 0x5f 0xf0 0x7f 0xf5
552 #------------------------------------------------------------------------------
553 # DSB
554 #------------------------------------------------------------------------------
556 # CHECK: ssbb
557 # CHECK: dsb    #0x1
558 # CHECK: dsb    oshst
559 # CHECK: dsb    osh
560 # CHECK: pssbb
561 # CHECK: dsb    #0x5
562 # CHECK: dsb    nshst
563 # CHECK: dsb    nsh
564 # CHECK: dsb    #0x8
565 # CHECK: dsb    #0x9
566 # CHECK: dsb    ishst
567 # CHECK: dsb    ish
568 # CHECK: dsb    #0xc
569 # CHECK: dsb    #0xd
570 # CHECK: dsb    st
571 # CHECK: dsb    sy
573 0x40 0xf0 0x7f 0xf5
574 0x41 0xf0 0x7f 0xf5
575 0x42 0xf0 0x7f 0xf5
576 0x43 0xf0 0x7f 0xf5
577 0x44 0xf0 0x7f 0xf5
578 0x45 0xf0 0x7f 0xf5
579 0x46 0xf0 0x7f 0xf5
580 0x47 0xf0 0x7f 0xf5
581 0x48 0xf0 0x7f 0xf5
582 0x49 0xf0 0x7f 0xf5
583 0x4a 0xf0 0x7f 0xf5
584 0x4b 0xf0 0x7f 0xf5
585 0x4c 0xf0 0x7f 0xf5
586 0x4d 0xf0 0x7f 0xf5
587 0x4e 0xf0 0x7f 0xf5
588 0x4f 0xf0 0x7f 0xf5
590 #------------------------------------------------------------------------------
591 # EOR
592 #------------------------------------------------------------------------------
593 # CHECK: eor r4, r5, #61440
594 # CHECK: eor r7, r8, #-2147483638
595 # CHECK: eor r7, r8, #40, #2
596 # CHECK: eor r4, r5, r6
597 # CHECK: eor r4, r5, r6, lsl #5
598 # CHECK: eor r4, r5, r6, lsr #5
599 # CHECK: eor r4, r5, r6, lsr #5
600 # CHECK: eor r4, r5, r6, asr #5
601 # CHECK: eor r4, r5, r6, ror #5
602 # CHECK: eor r6, r7, r8, lsl r9
603 # CHECK: eor r6, r7, r8, lsr r9
604 # CHECK: eor r6, r7, r8, asr r9
605 # CHECK: eor r6, r7, r8, ror r9
606 # CHECK: eor r4, r5, r6, rrx
608 # CHECK: eor r5, r5, #61440
609 # CHECK: eor r4, r4, r5
610 # CHECK: eor r4, r4, r5, lsl #5
611 # CHECK: eor r4, r4, r5, lsr #5
612 # CHECK: eor r4, r4, r5, lsr #5
613 # CHECK: eor r4, r4, r5, asr #5
614 # CHECK: eor r4, r4, r5, ror #5
615 # CHECK: eor r6, r6, r7, lsl r9
616 # CHECK: eor r6, r6, r7, lsr r9
617 # CHECK: eor r6, r6, r7, asr r9
618 # CHECK: eor r6, r6, r7, ror r9
619 # CHECK: eor r4, r4, r5, rrx
621 0x0f 0x4a 0x25 0xe2
622 0x2a 0x71 0x28 0xe2
623 0x28 0x71 0x28 0xe2
624 0x06 0x40 0x25 0xe0
625 0x86 0x42 0x25 0xe0
626 0xa6 0x42 0x25 0xe0
627 0xa6 0x42 0x25 0xe0
628 0xc6 0x42 0x25 0xe0
629 0xe6 0x42 0x25 0xe0
630 0x18 0x69 0x27 0xe0
631 0x38 0x69 0x27 0xe0
632 0x58 0x69 0x27 0xe0
633 0x78 0x69 0x27 0xe0
634 0x66 0x40 0x25 0xe0
637 0x0f 0x5a 0x25 0xe2
638 0x05 0x40 0x24 0xe0
639 0x85 0x42 0x24 0xe0
640 0xa5 0x42 0x24 0xe0
641 0xa5 0x42 0x24 0xe0
642 0xc5 0x42 0x24 0xe0
643 0xe5 0x42 0x24 0xe0
644 0x17 0x69 0x26 0xe0
645 0x37 0x69 0x26 0xe0
646 0x57 0x69 0x26 0xe0
647 0x77 0x69 0x26 0xe0
648 0x65 0x40 0x24 0xe0
651 #------------------------------------------------------------------------------
652 # ISB
653 #------------------------------------------------------------------------------
654 # CHECK: isb sy
655 # CHECK: isb #0xa
657 0x6f 0xf0 0x7f 0xf5
658 0x6a 0xf0 0x7f 0xf5
662 #------------------------------------------------------------------------------
663 # LDM*
664 #------------------------------------------------------------------------------
665 # CHECK: ldm       r2, {r1, r3, r4, r5, r6, sp}
666 # CHECK: ldmib     r2, {r1, r3, r4, r5, r6, sp}
667 # CHECK: ldmda     r2, {r1, r3, r4, r5, r6, sp}
668 # CHECK: ldmdb     r2, {r1, r3, r4, r5, r6, sp}
671 # CHECK: ldm       r2!, {r1, r3, r4, r5, r6, sp}
672 # CHECK: ldmib     r2!, {r1, r3, r4, r5, r6, sp}
673 # CHECK: ldmda     r2!, {r1, r3, r4, r5, r6, sp}
674 # CHECK: ldmdb     r2!, {r1, r3, r4, r5, r6, sp}
676 0x7a 0x20 0x92 0xe8
677 0x7a 0x20 0x92 0xe9
678 0x7a 0x20 0x12 0xe8
679 0x7a 0x20 0x12 0xe9
681 0x7a 0x20 0xb2 0xe8
682 0x7a 0x20 0xb2 0xe9
683 0x7a 0x20 0x32 0xe8
684 0x7a 0x20 0x32 0xe9
687 #------------------------------------------------------------------------------
688 # LDREX/LDREXB/LDREXH/LDREXD
689 #------------------------------------------------------------------------------
690 # CHECK: ldrexb  r3, [r4]
691 # CHECK: ldrexh  r2, [r5]
692 # CHECK: ldrex  r1, [r7]
693 # CHECK: ldrexd  r6, r7, [r8]
695 0x9f 0x3f 0xd4 0xe1
696 0x9f 0x2f 0xf5 0xe1
697 0x9f 0x1f 0x97 0xe1
698 0x9f 0x6f 0xb8 0xe1
701 #------------------------------------------------------------------------------
702 # FIXME: LSL
703 #------------------------------------------------------------------------------
704 #------------------------------------------------------------------------------
705 # FIXME: LSR
706 #------------------------------------------------------------------------------
708 #------------------------------------------------------------------------------
709 # MCR/MCR2
710 #------------------------------------------------------------------------------
711 # CHECK: mcr  p7, #1, r5, c1, c1, #4
712 # CHECK: mcr2  p7, #1, r5, c1, c1, #4
714 0x91 0x57 0x21 0xee
715 0x91 0x57 0x21 0xfe
717 #------------------------------------------------------------------------------
718 # MCRR/MCRR2
719 #------------------------------------------------------------------------------
720 # CHECK: mcrr  p7, #15, r5, r4, c1
721 # CHECK: mcrr2  p7, #15, r5, r4, c1
723 0xf1 0x57 0x44 0xec
724 0xf1 0x57 0x44 0xfc
727 #------------------------------------------------------------------------------
728 # MLA
729 #------------------------------------------------------------------------------
730 # CHECK: mla  r1, r2, r3, r4
731 # CHECK: mlas r1, r2, r3, r4
732 # CHECK: mlane  r1, r2, r3, r4
733 # CHECK: mlasne r1, r2, r3, r4
735 0x92 0x43 0x21 0xe0
736 0x92 0x43 0x31 0xe0
737 0x92 0x43 0x21 0x10
738 0x92 0x43 0x31 0x10
740 #------------------------------------------------------------------------------
741 # MLS
742 #------------------------------------------------------------------------------
743 # CHECK: mls  r2, r5, r6, r3
744 # CHECK: mlsne  r2, r5, r6, r3
746 0x95 0x36 0x62 0xe0
747 0x95 0x36 0x62 0x10
749 #------------------------------------------------------------------------------
750 # MOV (immediate)
751 #------------------------------------------------------------------------------
752 # CHECK: mov r3, #7
753 # CHECK: mov r4, #4080
754 # CHECK: mov r5, #16711680
755 # CHECK: mov sp, #35
756 # CHECK: mov r9, #240, #30
757 # CHECK: mov r7, #-2147483638
758 # CHECK: mov pc, #2147483658
759 # CHECK: movw r6, #65535
760 # CHECK: movw r9, #65535
761 # CHECK: movw sp, #1193
762 # CHECK: movs r3, #7
763 # CHECK: movs r11, #99
764 # CHECK: movs r11, #240, #30
765 # CHECK: moveq r4, #4080
766 # CHECK: movseq r5, #16711680
768 0x07 0x30 0xa0 0xe3
769 0xff 0x4e 0xa0 0xe3
770 0xff 0x58 0xa0 0xe3
771 0x23 0xd0 0xa0 0xe3
772 0xf0 0x9f 0xa0 0xe3
773 0x2a 0x71 0xa0 0xe3
774 0x2a 0xf1 0xa0 0xe3
775 0xff 0x6f 0x0f 0xe3
776 0xff 0x9f 0x0f 0xe3
777 0xa9 0xd4 0x00 0xe3
778 0x07 0x30 0xb0 0xe3
779 0x63 0xb0 0xb0 0xe3
780 0xf0 0xbf 0xb0 0xe3
781 0xff 0x4e 0xa0 0x03
782 0xff 0x58 0xb0 0x03
784 #------------------------------------------------------------------------------
785 # MOV (register)
786 #------------------------------------------------------------------------------
787 # CHECK: mov r2, r3
788 # CHECK: movs r2, r3
789 # CHECK: moveq r2, r3
790 # CHECK: movseq r2, r3
792 0x03 0x20 0xa0 0xe1
793 0x03 0x20 0xb0 0xe1
794 0x03 0x20 0xa0 0x01
795 0x03 0x20 0xb0 0x01
797 #------------------------------------------------------------------------------
798 # MOVT
799 #------------------------------------------------------------------------------
800 # CHECK: movt r3, #7
801 # CHECK: movt r6, #65535
802 # CHECK: movt sp, #3397 
803 # CHECK: movteq r4, #4080
805 0x07 0x30 0x40 0xe3
806 0xff 0x6f 0x4f 0xe3
807 0x45 0xdd 0x40 0xe3
808 0xf0 0x4f 0x40 0x03
811 #------------------------------------------------------------------------------
812 # MRC/MRC2
813 #------------------------------------------------------------------------------
814 # CHECK: mrc  p14, #0, r1, c1, c2, #4
815 # CHECK: mrc  p15, #7, apsr_nzcv, c15, c6, #6
816 # CHECK: mrc2  p14, #0, r1, c1, c2, #4
817 # CHECK: mrc2  p9, #7, apsr_nzcv, c15, c0, #1
819 0x92 0x1e 0x11 0xee
820 0xd6 0xff 0xff 0xee
821 0x92 0x1e 0x11 0xfe
822 0x30 0xf9 0xff 0xfe
824 #------------------------------------------------------------------------------
825 # MRRC/MRRC2
826 #------------------------------------------------------------------------------
827 # CHECK: mrrc  p7, #1, r5, r4, c1
828 # CHECK: mrrc2  p7, #1, r5, r4, c1
830 0x11 0x57 0x54 0xec
831 0x11 0x57 0x54 0xfc
834 #------------------------------------------------------------------------------
835 # MRS
836 #------------------------------------------------------------------------------
837 # CHECK: mrs  r8, apsr
838 # CHECK: mrs  r8, spsr
839 0x00 0x80 0x0f 0xe1
840 0x00 0x80 0x4f 0xe1
844 #------------------------------------------------------------------------------
845 # MSR
846 #------------------------------------------------------------------------------
848 # CHECK: msr  CPSR_fc, #5
849 # CHECK: msr  APSR_g, #5
850 # CHECK: msr  APSR_nzcvq, #5
851 # CHECK: msr  APSR_nzcvq, #5
852 # CHECK: msr  APSR_nzcvqg, #5
853 # CHECK: msr  CPSR_fc, #5
854 # CHECK: msr  CPSR_c, #5
855 # CHECK: msr  CPSR_x, #5
856 # CHECK: msr  CPSR_fc, #5
857 # CHECK: msr  CPSR_fc, #5
858 # CHECK: msr  CPSR_fsx, #5
859 # CHECK: msr  SPSR_fc, #5
860 # CHECK: msr  SPSR_fsxc, #5
861 # CHECK: msr  CPSR_fsxc, #5
862 # CHECK: msr  APSR_nzcvq, #2147483658
863 # CHECK: msr  SPSR_fsxc, #40, #2
865 0x05 0xf0 0x29 0xe3
866 0x05 0xf0 0x24 0xe3
867 0x05 0xf0 0x28 0xe3
868 0x05 0xf0 0x28 0xe3
869 0x05 0xf0 0x2c 0xe3
870 0x05 0xf0 0x29 0xe3
871 0x05 0xf0 0x21 0xe3
872 0x05 0xf0 0x22 0xe3
873 0x05 0xf0 0x29 0xe3
874 0x05 0xf0 0x29 0xe3
875 0x05 0xf0 0x2e 0xe3
876 0x05 0xf0 0x69 0xe3
877 0x05 0xf0 0x6f 0xe3
878 0x05 0xf0 0x2f 0xe3
879 0x2a 0xf1 0x28 0xe3
880 0x28 0xf1 0x6f 0xe3
882 # CHECK: msr  CPSR_fc, r0
883 # CHECK: msr  APSR_g, r0
884 # CHECK: msr  APSR_nzcvq, r0
885 # CHECK: msr  APSR_nzcvq, r0
886 # CHECK: msr  APSR_nzcvqg, r0
887 # CHECK: msr  CPSR_fc, r0
888 # CHECK: msr  CPSR_c, r0
889 # CHECK: msr  CPSR_x, r0
890 # CHECK: msr  CPSR_fc, r0
891 # CHECK: msr  CPSR_fc, r0
892 # CHECK: msr  CPSR_fsx, r0
893 # CHECK: msr  SPSR_fc, r0
894 # CHECK: msr  SPSR_fsxc, r0
895 # CHECK: msr  CPSR_fsxc, r0
897 0x00 0xf0 0x29 0xe1
898 0x00 0xf0 0x24 0xe1
899 0x00 0xf0 0x28 0xe1
900 0x00 0xf0 0x28 0xe1
901 0x00 0xf0 0x2c 0xe1
902 0x00 0xf0 0x29 0xe1
903 0x00 0xf0 0x21 0xe1
904 0x00 0xf0 0x22 0xe1
905 0x00 0xf0 0x29 0xe1
906 0x00 0xf0 0x29 0xe1
907 0x00 0xf0 0x2e 0xe1
908 0x00 0xf0 0x69 0xe1
909 0x00 0xf0 0x6f 0xe1
910 0x00 0xf0 0x2f 0xe1
912 #------------------------------------------------------------------------------
913 # MUL
914 #------------------------------------------------------------------------------
916 # CHECK: mul r5, r6, r7
917 # CHECK: muls r5, r6, r7
918 # CHECK: mulgt r5, r6, r7
919 # CHECK: mulsle r5, r6, r7
921 0x96 0x07 0x05 0xe0
922 0x96 0x07 0x15 0xe0
923 0x96 0x07 0x05 0xc0
924 0x96 0x07 0x15 0xd0
927 #------------------------------------------------------------------------------
928 # MVN (immediate)
929 #------------------------------------------------------------------------------
930 # CHECK: mvn r3, #7
931 # CHECK: mvn r4, #4080
932 # CHECK: mvn r5, #16711680
933 # CHECK: mvn r7, #40, #2
934 # CHECK: mvn r7, #-2147483638
935 # CHECK: mvns r3, #7
936 # CHECK: mvns r11, #240, #30
937 # CHECK: mvns r11, #-2147483638
938 # CHECK: mvneq r4, #4080
939 # CHECK: mvnseq r5, #16711680
941 0x07 0x30 0xe0 0xe3
942 0xff 0x4e 0xe0 0xe3
943 0xff 0x58 0xe0 0xe3
944 0x28 0x71 0xe0 0xe3
945 0x2a 0x71 0xe0 0xe3
946 0x07 0x30 0xf0 0xe3
947 0xf0 0xbf 0xf0 0xe3
948 0x2a 0xb1 0xf0 0xe3
949 0xff 0x4e 0xe0 0x03
950 0xff 0x58 0xf0 0x03
953 #------------------------------------------------------------------------------
954 # MVN (register)
955 #------------------------------------------------------------------------------
956 # CHECK: mvn r2, r3
957 # CHECK: mvns r2, r3
958 # CHECK: mvn r5, r6, lsl #19
959 # CHECK: mvn r5, r6, lsr #9
960 # CHECK: mvn r5, r6, asr #4
961 # CHECK: mvn r5, r6, ror #6
962 # CHECK: mvn r5, r6, rrx
963 # CHECK: mvneq r2, r3
964 # CHECK: mvnseq r2, r3, lsl #10
966 0x03 0x20 0xe0 0xe1
967 0x03 0x20 0xf0 0xe1
968 0x86 0x59 0xe0 0xe1
969 0xa6 0x54 0xe0 0xe1
970 0x46 0x52 0xe0 0xe1
971 0x66 0x53 0xe0 0xe1
972 0x66 0x50 0xe0 0xe1
973 0x03 0x20 0xe0 0x01
974 0x03 0x25 0xf0 0x01
977 #------------------------------------------------------------------------------
978 # MVN (shifted register)
979 #------------------------------------------------------------------------------
980 # CHECK: mvn r5, r6, lsl r7
981 # CHECK: mvns r5, r6, lsr r7
982 # CHECK: mvngt r5, r6, asr r7
983 # CHECK: mvnslt r5, r6, ror r7
985 0x16 0x57 0xe0 0xe1
986 0x36 0x57 0xf0 0xe1
987 0x56 0x57 0xe0 0xc1
988 0x76 0x57 0xf0 0xb1
990 #------------------------------------------------------------------------------
991 # NOP
992 #------------------------------------------------------------------------------
993 # CHECK: nop
994 # CHECK: nopgt
996 0x00 0xf0 0x20 0xe3
997 0x00 0xf0 0x20 0xc3
1000 #------------------------------------------------------------------------------
1001 # ORR
1002 #------------------------------------------------------------------------------
1003 # CHECK: orr r4, r5, #61440
1004 # CHECK: orr r7, r8, #-2147483638
1005 # CHECK: orr r7, r8, #40, #2
1006 # CHECK: orr r4, r5, r6
1007 # CHECK: orr r4, r5, r6, lsl #5
1008 # CHECK: orr r4, r5, r6, lsr #5
1009 # CHECK: orr r4, r5, r6, lsr #5
1010 # CHECK: orr r4, r5, r6, asr #5
1011 # CHECK: orr r4, r5, r6, ror #5
1012 # CHECK: orr r6, r7, r8, lsl r9
1013 # CHECK: orr r6, r7, r8, lsr r9
1014 # CHECK: orr r6, r7, r8, asr r9
1015 # CHECK: orr r6, r7, r8, ror r9
1016 # CHECK: orr r4, r5, r6, rrx
1018 # CHECK: orr r5, r5, #61440
1019 # CHECK: orr r4, r4, r5
1020 # CHECK: orr r4, r4, r5, lsl #5
1021 # CHECK: orr r4, r4, r5, lsr #5
1022 # CHECK: orr r4, r4, r5, lsr #5
1023 # CHECK: orr r4, r4, r5, asr #5
1024 # CHECK: orr r4, r4, r5, ror #5
1025 # CHECK: orr r6, r6, r7, lsl r9
1026 # CHECK: orr r6, r6, r7, lsr r9
1027 # CHECK: orr r6, r6, r7, asr r9
1028 # CHECK: orr r6, r6, r7, ror r9
1029 # CHECK: orr r4, r4, r5, rrx
1031 0x0f 0x4a 0x85 0xe3
1032 0x2a 0x71 0x88 0xe3
1033 0x28 0x71 0x88 0xe3
1034 0x06 0x40 0x85 0xe1
1035 0x86 0x42 0x85 0xe1
1036 0xa6 0x42 0x85 0xe1
1037 0xa6 0x42 0x85 0xe1
1038 0xc6 0x42 0x85 0xe1
1039 0xe6 0x42 0x85 0xe1
1040 0x18 0x69 0x87 0xe1
1041 0x38 0x69 0x87 0xe1
1042 0x58 0x69 0x87 0xe1
1043 0x78 0x69 0x87 0xe1
1044 0x66 0x40 0x85 0xe1
1046 0x0f 0x5a 0x85 0xe3
1047 0x05 0x40 0x84 0xe1
1048 0x85 0x42 0x84 0xe1
1049 0xa5 0x42 0x84 0xe1
1050 0xa5 0x42 0x84 0xe1
1051 0xc5 0x42 0x84 0xe1
1052 0xe5 0x42 0x84 0xe1
1053 0x17 0x69 0x86 0xe1
1054 0x37 0x69 0x86 0xe1
1055 0x57 0x69 0x86 0xe1
1056 0x77 0x69 0x86 0xe1
1057 0x65 0x40 0x84 0xe1
1059 # CHECK: orrseq r4, r5, #61440
1060 # CHECK: orrne r4, r5, r6
1061 # CHECK: orrseq r4, r5, r6, lsl #5
1062 # CHECK: orrlo r6, r7, r8, ror r9
1063 # CHECK: orrshi r4, r5, r6, rrx
1064 # CHECK: orrhs r5, r5, #61440
1065 # CHECK: orrseq r4, r4, r5
1066 # CHECK: orrne r6, r6, r7, asr r9
1067 # CHECK: orrslt r6, r6, r7, ror r9
1068 # CHECK: orrsgt r4, r4, r5, rrx
1070 0x0f 0x4a 0x95 0x03
1071 0x06 0x40 0x85 0x11
1072 0x86 0x42 0x95 0x01
1073 0x78 0x69 0x87 0x31
1074 0x66 0x40 0x95 0x81
1075 0x0f 0x5a 0x85 0x23
1076 0x05 0x40 0x94 0x01
1077 0x57 0x69 0x86 0x11
1078 0x77 0x69 0x96 0xb1
1079 0x65 0x40 0x94 0xc1
1081 #------------------------------------------------------------------------------
1082 # PKH
1083 #------------------------------------------------------------------------------
1084 # CHECK: pkhbt r2, r2, r3
1085 # CHECK: pkhbt r2, r2, r3, lsl #31
1086 # CHECK: pkhbt r2, r2, r3
1087 # CHECK: pkhbt r2, r2, r3, lsl #15
1089 # CHECK: pkhbt r2, r2, r3
1090 # CHECK: pkhtb r2, r2, r3, asr #31
1091 # CHECK: pkhtb r2, r2, r3, asr #15
1093 0x13 0x20 0x82 0xe6
1094 0x93 0x2f 0x82 0xe6
1095 0x13 0x20 0x82 0xe6
1096 0x93 0x27 0x82 0xe6
1098 0x13 0x20 0x82 0xe6
1099 0xd3 0x2f 0x82 0xe6
1100 0xd3 0x27 0x82 0xe6
1102 #------------------------------------------------------------------------------
1103 # FIXME: PLD
1104 #------------------------------------------------------------------------------
1105 #------------------------------------------------------------------------------
1106 # FIXME: PLI
1107 #------------------------------------------------------------------------------
1110 #------------------------------------------------------------------------------
1111 # POP
1112 #------------------------------------------------------------------------------
1113 # CHECK: ldr r7, [sp], #4
1114 # CHECK: pop {r7, r8, r9, r10}
1116 0x04 0x70 0x9d 0xe4
1117 0x80 0x07 0xbd 0xe8
1120 #------------------------------------------------------------------------------
1121 # PUSH
1122 #------------------------------------------------------------------------------
1123 # CHECK: str r7, [sp, #-4]!
1124 # CHECK: push {r7, r8, r9, r10}
1126 0x04 0x70 0x2d 0xe5
1127 0x80 0x07 0x2d 0xe9
1130 #------------------------------------------------------------------------------
1131 # QADD/QADD16/QADD8
1132 #------------------------------------------------------------------------------
1133 # CHECK: qadd r1, r2, r3
1134 # CHECK: qaddne r1, r2, r3
1135 # CHECK: qadd16 r1, r2, r3
1136 # CHECK: qadd16gt r1, r2, r3
1137 # CHECK: qadd8 r1, r2, r3
1138 # CHECK: qadd8le r1, r2, r3
1140 0x52 0x10 0x03 0xe1
1141 0x52 0x10 0x03 0x11
1142 0x13 0x1f 0x22 0xe6
1143 0x13 0x1f 0x22 0xc6
1144 0x93 0x1f 0x22 0xe6
1145 0x93 0x1f 0x22 0xd6
1148 #------------------------------------------------------------------------------
1149 # QDADD/QDSUB
1150 #------------------------------------------------------------------------------
1151 # CHECK: qdadd r6, r7, r8
1152 # CHECK: qdaddhi r6, r7, r8
1153 # CHECK: qdsub r6, r7, r8
1154 # CHECK: qdsubhi r6, r7, r8
1156 0x57 0x60 0x48 0xe1
1157 0x57 0x60 0x48 0x81
1158 0x57 0x60 0x68 0xe1
1159 0x57 0x60 0x68 0x81
1162 #------------------------------------------------------------------------------
1163 # QSAX
1164 #------------------------------------------------------------------------------
1165 # CHECK: qsax r9, r12, r0
1166 # CHECK: qsaxeq r9, r12, r0
1168 0x50 0x9f 0x2c 0xe6
1169 0x50 0x9f 0x2c 0x06
1172 #------------------------------------------------------------------------------
1173 # QSUB/QSUB16/QSUB8
1174 #------------------------------------------------------------------------------
1175 # CHECK: qsub r1, r2, r3
1176 # CHECK: qsubne r1, r2, r3
1177 # CHECK: qsub16 r1, r2, r3
1178 # CHECK: qsub16gt r1, r2, r3
1179 # CHECK: qsub8 r1, r2, r3
1180 # CHECK: qsub8le r1, r2, r3
1182 0x52 0x10 0x23 0xe1
1183 0x52 0x10 0x23 0x11
1184 0x73 0x1f 0x22 0xe6
1185 0x73 0x1f 0x22 0xc6
1186 0xf3 0x1f 0x22 0xe6
1187 0xf3 0x1f 0x22 0xd6
1190 #------------------------------------------------------------------------------
1191 # RBIT
1192 #------------------------------------------------------------------------------
1193 # CHECK: rbit r1, r2
1194 # CHECK: rbitne r1, r2
1196 0x32 0x1f 0xff 0xe6
1197 0x32 0x1f 0xff 0x16
1200 #------------------------------------------------------------------------------
1201 # REV/REV16/REVSH
1202 #------------------------------------------------------------------------------
1203 # CHECK: rev r1, r9
1204 # CHECK: revne r1, r5
1205 # CHECK: rev16 r8, r3
1206 # CHECK: rev16ne r12, r4
1207 # CHECK: revsh r4, r9
1208 # CHECK: revshne r9, r1
1210 0x39 0x1f 0xbf 0xe6
1211 0x35 0x1f 0xbf 0x16
1212 0xb3 0x8f 0xbf 0xe6
1213 0xb4 0xcf 0xbf 0x16
1214 0xb9 0x4f 0xff 0xe6
1215 0xb1 0x9f 0xff 0x16
1218 #------------------------------------------------------------------------------
1219 # RFE
1220 #------------------------------------------------------------------------------
1221 # CHECK: rfeda r2
1222 # CHECK: rfedb r3
1223 # CHECK: rfeia r5
1224 # CHECK: rfeib r6
1226 # CHECK: rfeda r4!
1227 # CHECK: rfedb r7!
1228 # CHECK: rfeia r9!
1229 # CHECK: rfeib r8!
1231 # CHECK: rfeda r2
1232 # CHECK: rfedb r3
1233 # CHECK: rfeia r5
1234 # CHECK: rfeib r6
1236 # CHECK: rfeda r4!
1237 # CHECK: rfedb r7!
1238 # CHECK: rfeia r9!
1239 # CHECK: rfeib r8!
1241 # CHECK: rfeia r1
1242 # CHECK: rfeia r1!
1244 0x00 0x0a 0x12 0xf8
1245 0x00 0x0a 0x13 0xf9
1246 0x00 0x0a 0x95 0xf8
1247 0x00 0x0a 0x96 0xf9
1249 0x00 0x0a 0x34 0xf8
1250 0x00 0x0a 0x37 0xf9
1251 0x00 0x0a 0xb9 0xf8
1252 0x00 0x0a 0xb8 0xf9
1254 0x00 0x0a 0x12 0xf8
1255 0x00 0x0a 0x13 0xf9
1256 0x00 0x0a 0x95 0xf8
1257 0x00 0x0a 0x96 0xf9
1259 0x00 0x0a 0x34 0xf8
1260 0x00 0x0a 0x37 0xf9
1261 0x00 0x0a 0xb9 0xf8
1262 0x00 0x0a 0xb8 0xf9
1264 0x00 0x0a 0x91 0xf8
1265 0x00 0x0a 0xb1 0xf8
1268 #------------------------------------------------------------------------------
1269 # RSB
1270 #------------------------------------------------------------------------------
1271 # CHECK: rsb r4, r5, #61440
1272 # CHECK: rsb r7, r8, #-2147483638
1273 # CHECK: rsb r7, r8, #40, #2
1274 # CHECK: rsb r4, r5, r6
1275 # CHECK: rsb r4, r5, r6, lsl #5
1276 # CHECK: rsblo r4, r5, r6, lsr #5
1277 # CHECK: rsb r4, r5, r6, lsr #5
1278 # CHECK: rsb r4, r5, r6, asr #5
1279 # CHECK: rsb r4, r5, r6, ror #5
1280 # CHECK: rsb r6, r7, r8, lsl r9
1281 # CHECK: rsb r6, r7, r8, lsr r9
1282 # CHECK: rsb r6, r7, r8, asr r9
1283 # CHECK: rsble r6, r7, r8, ror r9
1284 # CHECK: rsb r4, r5, r6, rrx
1286 # CHECK: rsb r5, r5, #61440
1287 # CHECK: rsb r4, r4, r5
1288 # CHECK: rsb r4, r4, r5, lsl #5
1289 # CHECK: rsb r4, r4, r5, lsr #5
1290 # CHECK: rsbne r4, r4, r5, lsr #5
1291 # CHECK: rsb r4, r4, r5, asr #5
1292 # CHECK: rsb r4, r4, r5, ror #5
1293 # CHECK: rsbgt r6, r6, r7, lsl r9
1294 # CHECK: rsb r6, r6, r7, lsr r9
1295 # CHECK: rsb r6, r6, r7, asr r9
1296 # CHECK: rsb r6, r6, r7, ror r9
1297 # CHECK: rsb r4, r4, r5, rrx
1299 0x0f 0x4a 0x65 0xe2
1300 0x2a 0x71 0x68 0xe2
1301 0x28 0x71 0x68 0xe2
1302 0x06 0x40 0x65 0xe0
1303 0x86 0x42 0x65 0xe0
1304 0xa6 0x42 0x65 0x30
1305 0xa6 0x42 0x65 0xe0
1306 0xc6 0x42 0x65 0xe0
1307 0xe6 0x42 0x65 0xe0
1308 0x18 0x69 0x67 0xe0
1309 0x38 0x69 0x67 0xe0
1310 0x58 0x69 0x67 0xe0
1311 0x78 0x69 0x67 0xd0
1312 0x66 0x40 0x65 0xe0
1314 0x0f 0x5a 0x65 0xe2
1315 0x05 0x40 0x64 0xe0
1316 0x85 0x42 0x64 0xe0
1317 0xa5 0x42 0x64 0xe0
1318 0xa5 0x42 0x64 0x10
1319 0xc5 0x42 0x64 0xe0
1320 0xe5 0x42 0x64 0xe0
1321 0x17 0x69 0x66 0xc0
1322 0x37 0x69 0x66 0xe0
1323 0x57 0x69 0x66 0xe0
1324 0x77 0x69 0x66 0xe0
1325 0x65 0x40 0x64 0xe0
1327 #------------------------------------------------------------------------------
1328 # RSBS
1329 #------------------------------------------------------------------------------
1330 # CHECK: rsbs   r7, r8, #-2147483638
1331 # CHECK: rsbs   r7, r8, #40, #2
1333 0x2a 0x71 0x78 0xe2
1334 0x28 0x71 0x78 0xe2
1336 #------------------------------------------------------------------------------
1337 # RSC
1338 #------------------------------------------------------------------------------
1339 # CHECK: rsc r4, r5, #61440
1340 # CHECK: rsc r7, r8, #-2147483638
1341 # CHECK: rsc r7, r8, #40, #2
1342 # CHECK: rsc r4, r5, r6
1343 # CHECK: rsc r4, r5, r6, lsl #5
1344 # CHECK: rsclo r4, r5, r6, lsr #5
1345 # CHECK: rsc r4, r5, r6, lsr #5
1346 # CHECK: rsc r4, r5, r6, asr #5
1347 # CHECK: rsc r4, r5, r6, ror #5
1348 # CHECK: rsc r6, r7, r8, lsl r9
1349 # CHECK: rsc r6, r7, r8, lsr r9
1350 # CHECK: rsc r6, r7, r8, asr r9
1351 # CHECK: rscle r6, r7, r8, ror r9
1353 # CHECK: rsc r5, r5, #61440
1354 # CHECK: rsc r4, r4, r5
1355 # CHECK: rsc r4, r4, r5, lsl #5
1356 # CHECK: rsc r4, r4, r5, lsr #5
1357 # CHECK: rscne r4, r4, r5, lsr #5
1358 # CHECK: rsc r4, r4, r5, asr #5
1359 # CHECK: rsc r4, r4, r5, ror #5
1360 # CHECK: rscgt r6, r6, r7, lsl r9
1361 # CHECK: rsc r6, r6, r7, lsr r9
1362 # CHECK: rsc r6, r6, r7, asr r9
1363 # CHECK: rsc r6, r6, r7, ror r9
1365 0x0f 0x4a 0xe5 0xe2
1366 0x2a 0x71 0xe8 0xe2
1367 0x28 0x71 0xe8 0xe2
1368 0x06 0x40 0xe5 0xe0
1369 0x86 0x42 0xe5 0xe0
1370 0xa6 0x42 0xe5 0x30
1371 0xa6 0x42 0xe5 0xe0
1372 0xc6 0x42 0xe5 0xe0
1373 0xe6 0x42 0xe5 0xe0
1374 0x18 0x69 0xe7 0xe0
1375 0x38 0x69 0xe7 0xe0
1376 0x58 0x69 0xe7 0xe0
1377 0x78 0x69 0xe7 0xd0
1379 0x0f 0x5a 0xe5 0xe2
1380 0x05 0x40 0xe4 0xe0
1381 0x85 0x42 0xe4 0xe0
1382 0xa5 0x42 0xe4 0xe0
1383 0xa5 0x42 0xe4 0x10
1384 0xc5 0x42 0xe4 0xe0
1385 0xe5 0x42 0xe4 0xe0
1386 0x17 0x69 0xe6 0xc0
1387 0x37 0x69 0xe6 0xe0
1388 0x57 0x69 0xe6 0xe0
1389 0x77 0x69 0xe6 0xe0
1391 #------------------------------------------------------------------------------
1392 # RRX/RRXS
1393 #------------------------------------------------------------------------------
1394 # CHECK: rrx    r0, r1
1395 # CHECK: rrx    sp, pc
1396 # CHECK: rrx    pc, lr
1397 # CHECK: rrx    lr, sp
1399 0x61 0x00 0xa0 0xe1
1400 0x6f 0xd0 0xa0 0xe1
1401 0x6e 0xf0 0xa0 0xe1
1402 0x6d 0xe0 0xa0 0xe1
1404 # CHECK: rrxs   r0, r1
1405 # CHECK: rrxs   sp, pc
1406 # CHECK: rrxs   pc, lr
1407 # CHECK: rrxs   lr, sp
1409 0x61 0x00 0xb0 0xe1
1410 0x6f 0xd0 0xb0 0xe1
1411 0x6e 0xf0 0xb0 0xe1
1412 0x6d 0xe0 0xb0 0xe1
1414 #------------------------------------------------------------------------------
1415 # SADD16/SADD8
1416 #------------------------------------------------------------------------------
1417 # CHECK: sadd16 r1, r2, r3
1418 # CHECK: sadd16gt r1, r2, r3
1419 # CHECK: sadd8 r1, r2, r3
1420 # CHECK: sadd8le r1, r2, r3
1422 0x13 0x1f 0x12 0xe6
1423 0x13 0x1f 0x12 0xc6
1424 0x93 0x1f 0x12 0xe6
1425 0x93 0x1f 0x12 0xd6
1428 #------------------------------------------------------------------------------
1429 # SASX
1430 #------------------------------------------------------------------------------
1431 # CHECK: sasx r9, r12, r0
1432 # CHECK: sasxeq r9, r12, r0
1434 0x30 0x9f 0x1c 0xe6
1435 0x30 0x9f 0x1c 0x06
1438 #------------------------------------------------------------------------------
1439 # SBC
1440 #------------------------------------------------------------------------------
1441 # CHECK: sbc r4, r5, #61440
1442 # CHECK: sbc r7, r8, #-2147483638
1443 # CHECK: sbc r7, r8, #40, #2
1444 # CHECK: sbc r4, r5, r6
1445 # CHECK: sbc r4, r5, r6, lsl #5
1446 # CHECK: sbc r4, r5, r6, lsr #5
1447 # CHECK: sbc r4, r5, r6, lsr #5
1448 # CHECK: sbc r4, r5, r6, asr #5
1449 # CHECK: sbc r4, r5, r6, ror #5
1450 # CHECK: sbc r6, r7, r8, lsl r9
1451 # CHECK: sbc r6, r7, r8, lsr r9
1452 # CHECK: sbc r6, r7, r8, asr r9
1453 # CHECK: sbc r6, r7, r8, ror r9
1455 # CHECK: sbc r5, r5, #61440
1456 # CHECK: sbc r4, r4, r5
1457 # CHECK: sbc r4, r4, r5, lsl #5
1458 # CHECK: sbc r4, r4, r5, lsr #5
1459 # CHECK: sbc r4, r4, r5, lsr #5
1460 # CHECK: sbc r4, r4, r5, asr #5
1461 # CHECK: sbc r4, r4, r5, ror #5
1462 # CHECK: sbc r6, r6, r7, lsl r9
1463 # CHECK: sbc r6, r6, r7, lsr r9
1464 # CHECK: sbc r6, r6, r7, asr r9
1465 # CHECK: sbc r6, r6, r7, ror r9
1467 0x0f 0x4a 0xc5 0xe2
1468 0x2a 0x71 0xc8 0xe2
1469 0x28 0x71 0xc8 0xe2
1470 0x06 0x40 0xc5 0xe0
1471 0x86 0x42 0xc5 0xe0
1472 0xa6 0x42 0xc5 0xe0
1473 0xa6 0x42 0xc5 0xe0
1474 0xc6 0x42 0xc5 0xe0
1475 0xe6 0x42 0xc5 0xe0
1476 0x18 0x69 0xc7 0xe0
1477 0x38 0x69 0xc7 0xe0
1478 0x58 0x69 0xc7 0xe0
1479 0x78 0x69 0xc7 0xe0
1481 0x0f 0x5a 0xc5 0xe2
1482 0x05 0x40 0xc4 0xe0
1483 0x85 0x42 0xc4 0xe0
1484 0xa5 0x42 0xc4 0xe0
1485 0xa5 0x42 0xc4 0xe0
1486 0xc5 0x42 0xc4 0xe0
1487 0xe5 0x42 0xc4 0xe0
1488 0x17 0x69 0xc6 0xe0
1489 0x37 0x69 0xc6 0xe0
1490 0x57 0x69 0xc6 0xe0
1491 0x77 0x69 0xc6 0xe0
1494 #------------------------------------------------------------------------------
1495 # SBFX
1496 #------------------------------------------------------------------------------
1497 # CHECK: sbfx r4, r5, #16, #1
1498 # CHECK: sbfxgt r4, r5, #16, #16
1500 0x55 0x48 0xa0 0xe7
1501 0x55 0x48 0xaf 0xc7
1504 #------------------------------------------------------------------------------
1505 # SEL
1506 #------------------------------------------------------------------------------
1507 # CHECK: sel r9, r2, r1
1508 # CHECK: selne r9, r2, r1
1510 0xb1 0x9f 0x82 0xe6
1511 0xb1 0x9f 0x82 0x16
1514 #------------------------------------------------------------------------------
1515 # SETEND
1516 #------------------------------------------------------------------------------
1517 # CHECK: setend be
1518 # CHECK: setend le
1520 0x00 0x02 0x01 0xf1
1521 0x00 0x00 0x01 0xf1
1523 #------------------------------------------------------------------------------
1524 # SEV
1525 #------------------------------------------------------------------------------
1526 # CHECK: sev
1527 # CHECK: seveq
1529 0x04 0xf0 0x20 0xe3
1530 0x04 0xf0 0x20 0x03
1532 #------------------------------------------------------------------------------
1533 # SHADD16/SHADD8
1534 #------------------------------------------------------------------------------
1535 # CHECK: shadd16 r4, r8, r2
1536 # CHECK: shadd16gt r4, r8, r2
1537 # CHECK: shadd8 r4, r8, r2
1538 # CHECK: shadd8gt r4, r8, r2
1540 0x12 0x4f 0x38 0xe6
1541 0x12 0x4f 0x38 0xc6
1542 0x92 0x4f 0x38 0xe6
1543 0x92 0x4f 0x38 0xc6
1546 #------------------------------------------------------------------------------
1547 # SHASX
1548 #------------------------------------------------------------------------------
1549 # CHECK: shasx r4, r8, r2
1550 # CHECK: shasxgt r4, r8, r2
1552 0x32 0x4f 0x38 0xe6
1553 0x32 0x4f 0x38 0xc6
1556 #------------------------------------------------------------------------------
1557 # SHSUB16/SHSUB8
1558 #------------------------------------------------------------------------------
1559 # CHECK: shsub16 r4, r8, r2
1560 # CHECK: shsub16gt r4, r8, r2
1561 # CHECK: shsub8 r4, r8, r2
1562 # CHECK: shsub8gt r4, r8, r2
1564 0x72 0x4f 0x38 0xe6
1565 0x72 0x4f 0x38 0xc6
1566 0xf2 0x4f 0x38 0xe6
1567 0xf2 0x4f 0x38 0xc6
1569 #------------------------------------------------------------------------------
1570 # SMLABB/SMLABT/SMLATB/SMLATT
1571 #------------------------------------------------------------------------------
1572 # CHECK: smlabb r3, r1, r9, r0
1573 # CHECK: smlabt r5, r6, r4, r1
1574 # CHECK: smlatb r4, r2, r3, r2
1575 # CHECK: smlatt r8, r3, r8, r4
1576 # CHECK: smlabbge r3, r1, r9, r0
1577 # CHECK: smlabtle r5, r6, r4, r1
1578 # CHECK: smlatbne r4, r2, r3, r2
1579 # CHECK: smlatteq r8, r3, r8, r4
1581 0x81 0x09 0x03 0xe1
1582 0xc6 0x14 0x05 0xe1
1583 0xa2 0x23 0x04 0xe1
1584 0xe3 0x48 0x08 0xe1
1585 0x81 0x09 0x03 0xa1
1586 0xc6 0x14 0x05 0xd1
1587 0xa2 0x23 0x04 0x11
1588 0xe3 0x48 0x08 0x01
1590 #------------------------------------------------------------------------------
1591 # SMLAD/SMLADX
1592 #------------------------------------------------------------------------------
1593 # CHECK: smlad r2, r3, r5, r8
1594 # CHECK: smladx r2, r3, r5, r8
1595 # CHECK: smladeq r2, r3, r5, r8
1596 # CHECK: smladxhi r2, r3, r5, r8
1598 0x13 0x85 0x02 0xe7
1599 0x33 0x85 0x02 0xe7
1600 0x13 0x85 0x02 0x07
1601 0x33 0x85 0x02 0x87
1604 #------------------------------------------------------------------------------
1605 # SMLAL
1606 #------------------------------------------------------------------------------
1607 # CHECK: smlal r2, r3, r5, r8
1608 # CHECK: smlals r2, r3, r5, r8
1609 # CHECK: smlaleq r2, r3, r5, r8
1610 # CHECK: smlalshi r2, r3, r5, r8
1612 0x95 0x28 0xe3 0xe0
1613 0x95 0x28 0xf3 0xe0
1614 0x95 0x28 0xe3 0x00
1615 0x95 0x28 0xf3 0x80
1618 #------------------------------------------------------------------------------
1619 # SMLALBB/SMLALBT/SMLALTB/SMLALTT
1620 #------------------------------------------------------------------------------
1621 # CHECK: smlalbb r3, r1, r9, r0
1622 # CHECK: smlalbt r5, r6, r4, r1
1623 # CHECK: smlaltb r4, r2, r3, r2
1624 # CHECK: smlaltt r8, r3, r8, r4
1625 # CHECK: smlalbbge r3, r1, r9, r0
1626 # CHECK: smlalbtle r5, r6, r4, r1
1627 # CHECK: smlaltbne r4, r2, r3, r2
1628 # CHECK: smlaltteq r8, r3, r8, r4
1630 0x89 0x30 0x41 0xe1
1631 0xc4 0x51 0x46 0xe1
1632 0xa3 0x42 0x42 0xe1
1633 0xe8 0x84 0x43 0xe1
1634 0x89 0x30 0x41 0xa1
1635 0xc4 0x51 0x46 0xd1
1636 0xa3 0x42 0x42 0x11
1637 0xe8 0x84 0x43 0x01
1640 #------------------------------------------------------------------------------
1641 # SMLALD/SMLALDX
1642 #------------------------------------------------------------------------------
1643 # CHECK: smlald r2, r3, r5, r8
1644 # CHECK: smlaldx r2, r3, r5, r8
1645 # CHECK: smlaldeq r2, r3, r5, r8
1646 # CHECK: smlaldxhi r2, r3, r5, r8
1648 0x15 0x28 0x43 0xe7
1649 0x35 0x28 0x43 0xe7
1650 0x15 0x28 0x43 0x07
1651 0x35 0x28 0x43 0x87
1654 #------------------------------------------------------------------------------
1655 # SMLAWB/SMLAWT
1656 #------------------------------------------------------------------------------
1657 # CHECK: smlawb r2, r3, r10, r8
1658 # CHECK: smlawt r8, r3, r5, r9
1659 # CHECK: smlawbeq r2, r7, r5, r8
1660 # CHECK: smlawthi r1, r3, r0, r8
1662 0x83 0x8a 0x22 0xe1
1663 0xc3 0x95 0x28 0xe1
1664 0x87 0x85 0x22 0x01
1665 0xc3 0x80 0x21 0x81
1668 #------------------------------------------------------------------------------
1669 # SMLSD/SMLSDX
1670 #------------------------------------------------------------------------------
1671 # CHECK: smlsd r2, r3, r5, r8
1672 # CHECK: smlsdx r2, r3, r5, r8
1673 # CHECK: smlsdeq r2, r3, r5, r8
1674 # CHECK: smlsdxhi r2, r3, r5, r8
1676 0x53 0x85 0x02 0xe7
1677 0x73 0x85 0x02 0xe7
1678 0x53 0x85 0x02 0x07
1679 0x73 0x85 0x02 0x87
1682 #------------------------------------------------------------------------------
1683 # SMLSLD/SMLSLDX
1684 #------------------------------------------------------------------------------
1685 # CHECK: smlsld r2, r9, r5, r1
1686 # CHECK: smlsldx r4, r11, r2, r8
1687 # CHECK: smlsldeq r8, r2, r5, r6
1688 # CHECK: smlsldxhi r1, r0, r3, r8
1690 0x55 0x21 0x49 0xe7
1691 0x72 0x48 0x4b 0xe7
1692 0x55 0x86 0x42 0x07
1693 0x73 0x18 0x40 0x87
1696 #------------------------------------------------------------------------------
1697 # SMMLA/SMMLAR
1698 #------------------------------------------------------------------------------
1699 # CHECK: smmla r1, r2, r3, r4
1700 # CHECK: smmlar r4, r3, r2, r1
1701 # CHECK: smmlalo r1, r2, r3, r4
1702 # CHECK: smmlarhs r4, r3, r2, r1
1704 0x12 0x43 0x51 0xe7
1705 0x33 0x12 0x54 0xe7
1706 0x12 0x43 0x51 0x37
1707 0x33 0x12 0x54 0x27
1710 #------------------------------------------------------------------------------
1711 # SMMLS/SMMLSR
1712 #------------------------------------------------------------------------------
1713 # CHECK: smmls r1, r2, r3, r4
1714 # CHECK: smmlsr r4, r3, r2, r1
1715 # CHECK: smmlslo r1, r2, r3, r4
1716 # CHECK: smmlsrhs r4, r3, r2, r1
1718 0xd2 0x43 0x51 0xe7
1719 0xf3 0x12 0x54 0xe7
1720 0xd2 0x43 0x51 0x37
1721 0xf3 0x12 0x54 0x27
1724 #------------------------------------------------------------------------------
1725 # SMMUL/SMMULR
1726 #------------------------------------------------------------------------------
1727 # CHECK: smmul r2, r3, r4
1728 # CHECK: smmulr r3, r2, r1
1729 # CHECK: smmullo r2, r3, r4
1730 # CHECK: smmulrhs r3, r2, r1
1732 0x13 0xf4 0x52 0xe7
1733 0x32 0xf1 0x53 0xe7
1734 0x13 0xf4 0x52 0x37
1735 0x32 0xf1 0x53 0x27
1738 #------------------------------------------------------------------------------
1739 # SMUAD/SMUADX
1740 #------------------------------------------------------------------------------
1741 # CHECK: smuad r2, r3, r4
1742 # CHECK: smuadx r3, r2, r1
1743 # CHECK: smuadlt r2, r3, r4
1744 # CHECK: smuadxge r3, r2, r1
1746 0x13 0xf4 0x02 0xe7
1747 0x32 0xf1 0x03 0xe7
1748 0x13 0xf4 0x02 0xb7
1749 0x32 0xf1 0x03 0xa7
1752 #------------------------------------------------------------------------------
1753 # SMULBB/SMLALBT/SMLALTB/SMLALTT
1754 #------------------------------------------------------------------------------
1755 # CHECK: smulbb r3, r9, r0
1756 # CHECK: smulbt r5, r4, r1
1757 # CHECK: smultb r4, r2, r2
1758 # CHECK: smultt r8, r3, r4
1759 # CHECK: smulbbge r1, r9, r0
1760 # CHECK: smulbtle r5, r6, r4
1761 # CHECK: smultbne r2, r3, r2
1762 # CHECK: smultteq r8, r3, r4
1764 0x89 0x00 0x63 0xe1
1765 0xc4 0x01 0x65 0xe1
1766 0xa2 0x02 0x64 0xe1
1767 0xe3 0x04 0x68 0xe1
1768 0x89 0x00 0x61 0xa1
1769 0xc6 0x04 0x65 0xd1
1770 0xa3 0x02 0x62 0x11
1771 0xe3 0x04 0x68 0x01
1774 #------------------------------------------------------------------------------
1775 # SMULL
1776 #------------------------------------------------------------------------------
1777 # CHECK: smull r3, r9, r0, r1
1778 # CHECK: smulls r3, r9, r0, r2
1779 # CHECK: smulleq r8, r3, r4, r5
1780 # CHECK: smullseq r8, r3, r4, r3
1782 0x90 0x31 0xc9 0xe0
1783 0x90 0x32 0xd9 0xe0
1784 0x94 0x85 0xc3 0x00
1785 0x94 0x83 0xd3 0x00
1788 #------------------------------------------------------------------------------
1789 # SMULWB/SMULWT
1790 #------------------------------------------------------------------------------
1791 # CHECK: smulwb r3, r9, r0
1792 # CHECK: smulwt r3, r9, r2
1794 0xa9 0x00 0x23 0xe1
1795 0xe9 0x02 0x23 0xe1
1798 #------------------------------------------------------------------------------
1799 # SMUSD/SMUSDX
1800 #------------------------------------------------------------------------------
1801 # CHECK: smusd r3, r0, r1
1802 # CHECK: smusdx r3, r9, r2
1803 # CHECK: smusdeq r8, r3, r2
1804 # CHECK: smusdxne r7, r4, r3
1806 0x50 0xf1 0x03 0xe7
1807 0x79 0xf2 0x03 0xe7
1808 0x53 0xf2 0x08 0x07
1809 0x74 0xf3 0x07 0x17
1812 #------------------------------------------------------------------------------
1813 # SRS
1814 #------------------------------------------------------------------------------
1815 # CHECK: srsda sp, #5
1816 # CHECK: srsdb sp, #1
1817 # CHECK: srsia sp, #0
1818 # CHECK: srsib sp, #15
1820 # CHECK: srsda sp!, #31
1821 # CHECK: srsdb sp!, #19
1822 # CHECK: srsia sp!, #2
1823 # CHECK: srsib sp!, #14
1825 # CHECK: srsda sp, #11
1826 # CHECK: srsdb sp, #10
1827 # CHECK: srsia sp, #9
1828 # CHECK: srsib sp, #5
1830 # CHECK: srsda sp!, #5
1831 # CHECK: srsdb sp!, #5
1832 # CHECK: srsia sp!, #5
1833 # CHECK: srsib sp!, #5
1835 # CHECK: srsia sp, #5
1836 # CHECK: srsia sp!, #5
1838 0x05 0x05 0x4d 0xf8
1839 0x01 0x05 0x4d 0xf9
1840 0x00 0x05 0xcd 0xf8
1841 0x0f 0x05 0xcd 0xf9
1843 0x1f 0x05 0x6d 0xf8
1844 0x13 0x05 0x6d 0xf9
1845 0x02 0x05 0xed 0xf8
1846 0x0e 0x05 0xed 0xf9
1848 0x0b 0x05 0x4d 0xf8
1849 0x0a 0x05 0x4d 0xf9
1850 0x09 0x05 0xcd 0xf8
1851 0x05 0x05 0xcd 0xf9
1853 0x05 0x05 0x6d 0xf8
1854 0x05 0x05 0x6d 0xf9
1855 0x05 0x05 0xed 0xf8
1856 0x05 0x05 0xed 0xf9
1858 0x05 0x05 0xcd 0xf8
1859 0x05 0x05 0xed 0xf8
1862 #------------------------------------------------------------------------------
1863 # SSAT
1864 #------------------------------------------------------------------------------
1865 # CHECK: ssat   r8, #1, r10
1866 # CHECK: ssat   r8, #1, r10, lsl #31
1867 # CHECK: ssat   r8, #1, r10, asr #32
1868 # CHECK: ssat   r8, #1, r10, asr #1
1870 0x1a 0x80 0xa0 0xe6
1871 0x9a 0x8f 0xa0 0xe6
1872 0x5a 0x80 0xa0 0xe6
1873 0xda 0x80 0xa0 0xe6
1876 #------------------------------------------------------------------------------
1877 # SSAT16
1878 #------------------------------------------------------------------------------
1879 # CHECK: ssat16 r2, #1, r7
1880 # CHECK: ssat16 r3, #16, r5
1882 0x37 0x2f 0xa0 0xe6
1883 0x35 0x3f 0xaf 0xe6
1886 #------------------------------------------------------------------------------
1887 # SSAX
1888 #------------------------------------------------------------------------------
1889 # CHECK: ssax r2, r3, r4
1890 # CHECK: ssaxlt r2, r3, r4
1892 0x54 0x2f 0x13 0xe6
1893 0x54 0x2f 0x13 0xb6
1895 #------------------------------------------------------------------------------
1896 # SSUB16/SSUB8
1897 #------------------------------------------------------------------------------
1898 # CHECK: ssub16 r1, r0, r6
1899 # CHECK: ssub16ne r5, r3, r2
1900 # CHECK: ssub8 r9, r2, r4
1901 # CHECK: ssub8eq r5, r1, r2
1903 0x76 0x1f 0x10 0xe6
1904 0x72 0x5f 0x13 0x16
1905 0xf4 0x9f 0x12 0xe6
1906 0xf2 0x5f 0x11 0x06
1909 #------------------------------------------------------------------------------
1910 # STM*
1911 #------------------------------------------------------------------------------
1912 # CHECK: stm r2, {r1, r3, r4, r5, r6, sp}
1913 # CHECK: stm r3, {r1, r3, r4, r5, r6, lr}
1914 # CHECK: stmib     r4, {r1, r3, r4, r5, r6, sp}
1915 # CHECK: stmda     r5, {r1, r3, r4, r5, r6, sp}
1916 # CHECK: stmdb     r6, {r1, r3, r4, r5, r6, r8}
1917 # CHECK: stmdb     sp, {r1, r3, r4, r5, r6, sp}
1920 # CHECK: stm       r8!, {r1, r3, r4, r5, r6, sp}
1921 # CHECK: stmib     r9!, {r1, r3, r4, r5, r6, sp}
1922 # CHECK: stmda     sp!, {r1, r3, r4, r5, r6}
1923 # CHECK: stmdb     r0!, {r1, r5, r7, sp}
1925 0x7a 0x20 0x82 0xe8
1926 0x7a 0x40 0x83 0xe8
1927 0x7a 0x20 0x84 0xe9
1928 0x7a 0x20 0x05 0xe8
1929 0x7a 0x01 0x06 0xe9
1930 0x7a 0x20 0x0d 0xe9
1932 0x7a 0x20 0xa8 0xe8
1933 0x7a 0x20 0xa9 0xe9
1934 0x7a 0x00 0x2d 0xe8
1935 0xa2 0x20 0x20 0xe9
1938 #------------------------------------------------------------------------------
1939 # STREX/STREXB/STREXH/STREXD
1940 #------------------------------------------------------------------------------
1941 # CHECK: strexb  r1, r3, [r4
1942 # CHECK: strexh  r4, r2, [r5
1943 # CHECK: strex  r2, r1, [r7
1944 # CHECK: strexd  r6, r2, r3, [r8
1945 # CHECK: strexd  sp, r0, r1, [r0]
1947 0x93 0x1f 0xc4 0xe1
1948 0x92 0x4f 0xe5 0xe1
1949 0x91 0x2f 0x87 0xe1
1950 0x92 0x6f 0xa8 0xe1
1951 0x90 0xdf 0xa0 0xe1
1953 #------------------------------------------------------------------------------
1954 # SUB
1955 #------------------------------------------------------------------------------
1956 # CHECK: sub r4, r5, #61440
1957 # CHECK: sub r7, r8, #-2147483638
1958 # CHECK: sub r7, r8, #40, #2
1959 # CHECK: sub r4, r5, r6
1960 # CHECK: sub r4, r5, r6, lsl #5
1961 # CHECK: sub r4, r5, r6, lsr #5
1962 # CHECK: sub r4, r5, r6, lsr #5
1963 # CHECK: sub r4, r5, r6, asr #5
1964 # CHECK: sub r4, r5, r6, ror #5
1965 # CHECK: sub r6, r7, r8, lsl r9
1966 # CHECK: sub r6, r7, r8, lsr r9
1967 # CHECK: sub r6, r7, r8, asr r9
1968 # CHECK: sub r6, r7, r8, ror r9
1970 # CHECK: sub r5, r5, #61440
1971 # CHECK: sub r4, r4, r5
1972 # CHECK: sub r4, r4, r5, lsl #5
1973 # CHECK: sub r4, r4, r5, lsr #5
1974 # CHECK: sub r4, r4, r5, lsr #5
1975 # CHECK: sub r4, r4, r5, asr #5
1976 # CHECK: sub r4, r4, r5, ror #5
1977 # CHECK: sub r6, r6, r7, lsl r9
1978 # CHECK: sub r6, r6, r7, lsr r9
1979 # CHECK: sub r6, r6, r7, asr r9
1980 # CHECK: sub r6, r6, r7, ror r9
1982 0x0f 0x4a 0x45 0xe2
1983 0x2a 0x71 0x48 0xe2
1984 0x28 0x71 0x48 0xe2
1985 0x06 0x40 0x45 0xe0
1986 0x86 0x42 0x45 0xe0
1987 0xa6 0x42 0x45 0xe0
1988 0xa6 0x42 0x45 0xe0
1989 0xc6 0x42 0x45 0xe0
1990 0xe6 0x42 0x45 0xe0
1991 0x18 0x69 0x47 0xe0
1992 0x38 0x69 0x47 0xe0
1993 0x58 0x69 0x47 0xe0
1994 0x78 0x69 0x47 0xe0
1997 0x0f 0x5a 0x45 0xe2
1998 0x05 0x40 0x44 0xe0
1999 0x85 0x42 0x44 0xe0
2000 0xa5 0x42 0x44 0xe0
2001 0xa5 0x42 0x44 0xe0
2002 0xc5 0x42 0x44 0xe0
2003 0xe5 0x42 0x44 0xe0
2004 0x17 0x69 0x46 0xe0
2005 0x37 0x69 0x46 0xe0
2006 0x57 0x69 0x46 0xe0
2007 0x77 0x69 0x46 0xe0
2009 #------------------------------------------------------------------------------
2010 # SUBS
2011 #------------------------------------------------------------------------------
2012 # CHECK: subs   r7, r8, #-2147483638
2013 # CHECK: subs   r7, r8, #40, #2
2015 0x2a 0x71 0x58 0xe2
2016 0x28 0x71 0x58 0xe2
2018 #------------------------------------------------------------------------------
2019 # SVC
2020 #------------------------------------------------------------------------------
2021 # CHECK: svc #16
2022 # CHECK: svc #0
2023 # CHECK: svc #16777215
2025 0x10 0x00 0x00 0xef
2026 0x00 0x00 0x00 0xef
2027 0xff 0xff 0xff 0xef
2030 #------------------------------------------------------------------------------
2031 # SWP/SWPB
2032 #------------------------------------------------------------------------------
2033 # CHECK: swp r1, r2, [r3
2034 # CHECK: swp r4, r4, [r6
2035 # CHECK: swpb r5, r1, [r9
2037 0x92 0x10 0x03 0xe1
2038 0x94 0x40 0x06 0xe1
2039 0x91 0x50 0x49 0xe1
2042 #------------------------------------------------------------------------------
2043 # SXTAB
2044 #------------------------------------------------------------------------------
2045 # CHECK: sxtab r2, r3, r4
2046 # CHECK: sxtab r4, r5, r6
2047 # CHECK: sxtablt r6, r2, r9, ror #8
2048 # CHECK: sxtab r5, r1, r4, ror #16
2049 # CHECK: sxtab r7, r8, r3, ror #24
2051 0x74 0x20 0xa3 0xe6
2052 0x76 0x40 0xa5 0xe6
2053 0x79 0x64 0xa2 0xb6
2054 0x74 0x58 0xa1 0xe6
2055 0x73 0x7c 0xa8 0xe6
2058 #------------------------------------------------------------------------------
2059 # SXTAB16
2060 #------------------------------------------------------------------------------
2061 # CHECK: sxtab16ge r0, r1, r4
2062 # CHECK: sxtab16 r6, r2, r7
2063 # CHECK: sxtab16 r3, r5, r8, ror #8
2064 # CHECK: sxtab16 r3, r2, r1, ror #16
2065 # CHECK: sxtab16eq r1, r2, r3, ror #24
2067 0x74 0x00 0x81 0xa6
2068 0x77 0x60 0x82 0xe6
2069 0x78 0x34 0x85 0xe6
2070 0x71 0x38 0x82 0xe6
2071 0x73 0x1c 0x82 0x06
2073 #------------------------------------------------------------------------------
2074 # SXTAH
2075 #------------------------------------------------------------------------------
2076 # CHECK: sxtah r1, r3, r9
2077 # CHECK: sxtahhi r6, r1, r6
2078 # CHECK: sxtah r3, r8, r3, ror #8
2079 # CHECK: sxtahlo r2, r2, r4, ror #16
2080 # CHECK: sxtah r9, r3, r3, ror #24
2082 0x79 0x10 0xb3 0xe6
2083 0x76 0x60 0xb1 0x86
2084 0x73 0x34 0xb8 0xe6
2085 0x74 0x28 0xb2 0x36
2086 0x73 0x9c 0xb3 0xe6
2088 #------------------------------------------------------------------------------
2089 # SXTB
2090 #------------------------------------------------------------------------------
2091 # CHECK: sxtbge r2, r4
2092 # CHECK: sxtb r5, r6
2093 # CHECK: sxtb r6, r9, ror #8
2094 # CHECK: sxtblo r5, r1, ror #16
2095 # CHECK: sxtb r8, r3, ror #24
2097 0x74 0x20 0xaf 0xa6
2098 0x76 0x50 0xaf 0xe6
2099 0x79 0x64 0xaf 0xe6
2100 0x71 0x58 0xaf 0x36
2101 0x73 0x8c 0xaf 0xe6
2104 #------------------------------------------------------------------------------
2105 # SXTB16
2106 #------------------------------------------------------------------------------
2107 # CHECK: sxtb16 r1, r4
2108 # CHECK: sxtb16 r6, r7
2109 # CHECK: sxtb16hs r3, r5, ror #8
2110 # CHECK: sxtb16 r3, r1, ror #16
2111 # CHECK: sxtb16ge r2, r3, ror #24
2113 0x74 0x10 0x8f 0xe6
2114 0x77 0x60 0x8f 0xe6
2115 0x75 0x34 0x8f 0x26
2116 0x71 0x38 0x8f 0xe6
2117 0x73 0x2c 0x8f 0xa6
2120 #------------------------------------------------------------------------------
2121 # SXTH
2122 #------------------------------------------------------------------------------
2123 # CHECK: sxthne r3, r9
2124 # CHECK: sxth r1, r6
2125 # CHECK: sxth r3, r8, ror #8
2126 # CHECK: sxthle r2, r2, ror #16
2127 # CHECK: sxth r9, r3, ror #24
2129 0x79 0x30 0xbf 0x16
2130 0x76 0x10 0xbf 0xe6
2131 0x78 0x34 0xbf 0xe6
2132 0x72 0x28 0xbf 0xd6
2133 0x73 0x9c 0xbf 0xe6
2136 #------------------------------------------------------------------------------
2137 # FIXME: TBB/TBH
2138 #------------------------------------------------------------------------------
2141 #------------------------------------------------------------------------------
2142 # TEQ
2143 #------------------------------------------------------------------------------
2144 # CHECK: teq r5, #61440
2145 # CHECK: teq r7, #-2147483638
2146 # CHECK: teq r7, #40, #2
2147 # CHECK: teq r4, r5
2148 # CHECK: teq r4, r5, lsl #5
2149 # CHECK: teq r4, r5, lsr #5
2150 # CHECK: teq r4, r5, lsr #5
2151 # CHECK: teq r4, r5, asr #5
2152 # CHECK: teq r4, r5, ror #5
2153 # CHECK: teq r6, r7, lsl r9
2154 # CHECK: teq r6, r7, lsr r9
2155 # CHECK: teq r6, r7, asr r9
2156 # CHECK: teq r6, r7, ror r9
2158 0x0f 0x0a 0x35 0xe3
2159 0x2a 0x01 0x37 0xe3
2160 0x28 0x01 0x37 0xe3
2161 0x05 0x00 0x34 0xe1
2162 0x85 0x02 0x34 0xe1
2163 0xa5 0x02 0x34 0xe1
2164 0xa5 0x02 0x34 0xe1
2165 0xc5 0x02 0x34 0xe1
2166 0xe5 0x02 0x34 0xe1
2167 0x17 0x09 0x36 0xe1
2168 0x37 0x09 0x36 0xe1
2169 0x57 0x09 0x36 0xe1
2170 0x77 0x09 0x36 0xe1
2173 #------------------------------------------------------------------------------
2174 # TST
2175 #------------------------------------------------------------------------------
2176 # CHECK: tst r5, #61440
2177 # CHECK: tst r7, #-2147483638
2178 # CHECK: tst r7, #40, #2
2179 # CHECK: tst r4, r5
2180 # CHECK: tst r4, r5, lsl #5
2181 # CHECK: tst r4, r5, lsr #5
2182 # CHECK: tst r4, r5, lsr #5
2183 # CHECK: tst r4, r5, asr #5
2184 # CHECK: tst r4, r5, ror #5
2185 # CHECK: tst r6, r7, lsl r9
2186 # CHECK: tst r6, r7, lsr r9
2187 # CHECK: tst r6, r7, asr r9
2188 # CHECK: tst r6, r7, ror r9
2190 0x0f 0x0a 0x15 0xe3
2191 0x2a 0x01 0x17 0xe3
2192 0x28 0x01 0x17 0xe3
2193 0x05 0x00 0x14 0xe1
2194 0x85 0x02 0x14 0xe1
2195 0xa5 0x02 0x14 0xe1
2196 0xa5 0x02 0x14 0xe1
2197 0xc5 0x02 0x14 0xe1
2198 0xe5 0x02 0x14 0xe1
2199 0x17 0x09 0x16 0xe1
2200 0x37 0x09 0x16 0xe1
2201 0x57 0x09 0x16 0xe1
2202 0x77 0x09 0x16 0xe1
2205 #------------------------------------------------------------------------------
2206 # UADD16/UADD8
2207 #------------------------------------------------------------------------------
2208 # CHECK: uadd16 r1, r2, r3
2209 # CHECK: uadd16gt r1, r2, r3
2210 # CHECK: uadd8 r1, r2, r3
2211 # CHECK: uadd8le r1, r2, r3
2213 0x13 0x1f 0x52 0xe6
2214 0x13 0x1f 0x52 0xc6
2215 0x93 0x1f 0x52 0xe6
2216 0x93 0x1f 0x52 0xd6
2219 #------------------------------------------------------------------------------
2220 # UASX
2221 #------------------------------------------------------------------------------
2222 # CHECK: uasx r9, r12, r0
2223 # CHECK: uasxeq r9, r12, r0
2225 0x30 0x9f 0x5c 0xe6
2226 0x30 0x9f 0x5c 0x06
2229 #------------------------------------------------------------------------------
2230 # UBFX
2231 #------------------------------------------------------------------------------
2232 # CHECK: ubfx r4, r5, #16, #1
2233 # CHECK: ubfxgt r4, r5, #16, #16
2235 0x55 0x48 0xe0 0xe7
2236 0x55 0x48 0xef 0xc7
2239 #------------------------------------------------------------------------------
2240 # UHADD16/UHADD8
2241 #------------------------------------------------------------------------------
2242 # CHECK: uhadd16 r4, r8, r2
2243 # CHECK: uhadd16gt r4, r8, r2
2244 # CHECK: uhadd8 r4, r8, r2
2245 # CHECK: uhadd8gt r4, r8, r2
2247 0x12 0x4f 0x78 0xe6
2248 0x12 0x4f 0x78 0xc6
2249 0x92 0x4f 0x78 0xe6
2250 0x92 0x4f 0x78 0xc6
2253 #------------------------------------------------------------------------------
2254 # UHASX
2255 #------------------------------------------------------------------------------
2256 # CHECK: uhasx r4, r8, r2
2257 # CHECK: uhasxgt r4, r8, r2
2259 0x32 0x4f 0x78 0xe6
2260 0x32 0x4f 0x78 0xc6
2263 #------------------------------------------------------------------------------
2264 # UHSUB16/UHSUB8
2265 #------------------------------------------------------------------------------
2266 # CHECK: uhsub16 r4, r8, r2
2267 # CHECK: uhsub16gt r4, r8, r2
2268 # CHECK: uhsub8 r4, r8, r2
2269 # CHECK: uhsub8gt r4, r8, r2
2271 0x72 0x4f 0x78 0xe6
2272 0x72 0x4f 0x78 0xc6
2273 0xf2 0x4f 0x78 0xe6
2274 0xf2 0x4f 0x78 0xc6
2277 #------------------------------------------------------------------------------
2278 # UMAAL
2279 #------------------------------------------------------------------------------
2280 # CHECK: umaal r3, r4, r5, r6
2281 # CHECK: umaallt r3, r4, r5, r6
2283 0x95 0x36 0x44 0xe0
2284 0x95 0x36 0x44 0xb0
2287 #------------------------------------------------------------------------------
2288 # UMLAL
2289 #------------------------------------------------------------------------------
2290 # CHECK: umlal r2, r4, r6, r8
2291 # CHECK: umlalgt r6, r1, r2, r6
2292 # CHECK: umlals r2, r9, r2, r3
2293 # CHECK: umlalseq r3, r5, r1, r2
2295 0x96 0x28 0xa4 0xe0
2296 0x92 0x66 0xa1 0xc0
2297 0x92 0x23 0xb9 0xe0
2298 0x91 0x32 0xb5 0x00
2301 #------------------------------------------------------------------------------
2302 # UMULL
2303 #------------------------------------------------------------------------------
2304 # CHECK: umull r2, r4, r6, r8
2305 # CHECK: umullgt r6, r1, r2, r6
2306 # CHECK: umulls r2, r9, r2, r3
2307 # CHECK: umullseq r3, r5, r1, r2
2309 0x96 0x28 0x84 0xe0
2310 0x92 0x66 0x81 0xc0
2311 0x92 0x23 0x99 0xe0
2312 0x91 0x32 0x95 0x00
2315 #------------------------------------------------------------------------------
2316 # UQADD16/UQADD8
2317 #------------------------------------------------------------------------------
2318 # CHECK: uqadd16 r1, r2, r3
2319 # CHECK: uqadd16gt r4, r7, r9
2320 # CHECK: uqadd8 r3, r4, r8
2321 # CHECK: uqadd8le r8, r1, r2
2324 0x13 0x1f 0x62 0xe6
2325 0x19 0x4f 0x67 0xc6
2326 0x98 0x3f 0x64 0xe6
2327 0x92 0x8f 0x61 0xd6
2330 #------------------------------------------------------------------------------
2331 # UQASX
2332 #------------------------------------------------------------------------------
2333 # CHECK: uqasx r2, r4, r1
2334 # CHECK: uqasxhi r5, r2, r9
2336 0x31 0x2f 0x64 0xe6
2337 0x39 0x5f 0x62 0x86
2340 #------------------------------------------------------------------------------
2341 # UQSAX
2342 #------------------------------------------------------------------------------
2343 # CHECK: uqsax r1, r3, r7
2344 # CHECK: uqsax r3, r6, r2
2346 0x57 0x1f 0x63 0xe6
2347 0x52 0x3f 0x66 0xe6
2350 #------------------------------------------------------------------------------
2351 # UQSUB16/UQSUB8
2352 #------------------------------------------------------------------------------
2353 # CHECK: uqsub16 r1, r5, r3
2354 # CHECK: uqsub16gt r3, r2, r5
2355 # CHECK: uqsub8 r2, r1, r4
2356 # CHECK: uqsub8le r4, r6, r9
2358 0x73 0x1f 0x65 0xe6
2359 0x75 0x3f 0x62 0xc6
2360 0xf4 0x2f 0x61 0xe6
2361 0xf9 0x4f 0x66 0xd6
2364 #------------------------------------------------------------------------------
2365 # USADA8/USAD8
2366 #------------------------------------------------------------------------------
2367 # CHECK: usad8 r2, r1, r4
2368 # CHECK: usad8le r4, r6, r9
2369 # CHECK: usada8 r1, r5, r3, r7
2370 # CHECK: usada8gt r3, r2, r5, r1
2372 0x11 0xf4 0x82 0xe7
2373 0x16 0xf9 0x84 0xd7
2374 0x15 0x73 0x81 0xe7
2375 0x12 0x15 0x83 0xc7
2378 #------------------------------------------------------------------------------
2379 # USAT
2380 #------------------------------------------------------------------------------
2382 # CHECK: usat   r8, #1, r10
2383 # CHECK: usat   r8, #4, r10
2384 # CHECK: usat   r8, #5, r10, lsl #31
2385 # CHECK: usat   r8, #31, r10, asr #32
2386 # CHECK: usat   r8, #16, r10, asr #1
2388 0x1a 0x80 0xe1 0xe6
2389 0x1a 0x80 0xe4 0xe6
2390 0x9a 0x8f 0xe5 0xe6
2391 0x5a 0x80 0xff 0xe6
2392 0xda 0x80 0xf0 0xe6
2394 #------------------------------------------------------------------------------
2395 # USAT16
2396 #------------------------------------------------------------------------------
2397 # CHECK: usat16 r2, #2, r7
2398 # CHECK: usat16 r3, #15, r5
2400 0x37 0x2f 0xe2 0xe6
2401 0x35 0x3f 0xef 0xe6
2404 #------------------------------------------------------------------------------
2405 # USAX
2406 #------------------------------------------------------------------------------
2407 # CHECK: usax r2, r3, r4
2408 # CHECK: usaxne r2, r3, r4
2410 0x54 0x2f 0x53 0xe6
2411 0x54 0x2f 0x53 0x16
2413 #------------------------------------------------------------------------------
2414 # USUB16/USUB8
2415 #------------------------------------------------------------------------------
2416 # CHECK: usub16 r4, r2, r7
2417 # CHECK: usub16hi r1, r1, r3
2418 # CHECK: usub8 r1, r8, r5
2419 # CHECK: usub8le r9, r2, r3
2421 0x77 0x4f 0x52 0xe6
2422 0x73 0x1f 0x51 0x86
2423 0xf5 0x1f 0x58 0xe6
2424 0xf3 0x9f 0x52 0xd6
2427 #------------------------------------------------------------------------------
2428 # UXTAB
2429 #------------------------------------------------------------------------------
2430 # CHECK: uxtab r2, r3, r4
2431 # CHECK: uxtab r4, r5, r6
2432 # CHECK: uxtablt r6, r2, r9, ror #8
2433 # CHECK: uxtab r5, r1, r4, ror #16
2434 # CHECK: uxtab r7, r8, r3, ror #24
2436 0x74 0x20 0xe3 0xe6
2437 0x76 0x40 0xe5 0xe6
2438 0x79 0x64 0xe2 0xb6
2439 0x74 0x58 0xe1 0xe6
2440 0x73 0x7c 0xe8 0xe6
2443 #------------------------------------------------------------------------------
2444 # UXTAB16
2445 #------------------------------------------------------------------------------
2446 # CHECK: uxtab16ge r0, r1, r4
2447 # CHECK: uxtab16 r6, r2, r7
2448 # CHECK: uxtab16 r3, r5, r8, ror #8
2449 # CHECK: uxtab16 r3, r2, r1, ror #16
2450 # CHECK: uxtab16eq r1, r2, r3, ror #24
2452 0x74 0x00 0xc1 0xa6
2453 0x77 0x60 0xc2 0xe6
2454 0x78 0x34 0xc5 0xe6
2455 0x71 0x38 0xc2 0xe6
2456 0x73 0x1c 0xc2 0x06
2458 #------------------------------------------------------------------------------
2459 # UXTAH
2460 #------------------------------------------------------------------------------
2461 # CHECK: uxtah r1, r3, r9
2462 # CHECK: uxtahhi r6, r1, r6
2463 # CHECK: uxtah r3, r8, r3, ror #8
2464 # CHECK: uxtahlo r2, r2, r4, ror #16
2465 # CHECK: uxtah r9, r3, r3, ror #24
2467 0x79 0x10 0xf3 0xe6
2468 0x76 0x60 0xf1 0x86
2469 0x73 0x34 0xf8 0xe6
2470 0x74 0x28 0xf2 0x36
2471 0x73 0x9c 0xf3 0xe6
2473 #------------------------------------------------------------------------------
2474 # UXTB
2475 #------------------------------------------------------------------------------
2476 # CHECK: uxtbge r2, r4
2477 # CHECK: uxtb r5, r6
2478 # CHECK: uxtb r6, r9, ror #8
2479 # CHECK: uxtblo r5, r1, ror #16
2480 # CHECK: uxtb r8, r3, ror #24
2482 0x74 0x20 0xef 0xa6
2483 0x76 0x50 0xef 0xe6
2484 0x79 0x64 0xef 0xe6
2485 0x71 0x58 0xef 0x36
2486 0x73 0x8c 0xef 0xe6
2489 #------------------------------------------------------------------------------
2490 # UXTB16
2491 #------------------------------------------------------------------------------
2492 # CHECK: uxtb16 r1, r4
2493 # CHECK: uxtb16 r6, r7
2494 # CHECK: uxtb16hs r3, r5, ror #8
2495 # CHECK: uxtb16 r3, r1, ror #16
2496 # CHECK: uxtb16ge r2, r3, ror #24
2498 0x74 0x10 0xcf 0xe6
2499 0x77 0x60 0xcf 0xe6
2500 0x75 0x34 0xcf 0x26
2501 0x71 0x38 0xcf 0xe6
2502 0x73 0x2c 0xcf 0xa6
2505 #------------------------------------------------------------------------------
2506 # UXTH
2507 #------------------------------------------------------------------------------
2508 # CHECK: uxthne r3, r9
2509 # CHECK: uxth r1, r6
2510 # CHECK: uxth r3, r8, ror #8
2511 # CHECK: uxthle r2, r2, ror #16
2512 # CHECK: uxth r9, r3, ror #24
2514 0x79 0x30 0xff 0x16
2515 0x76 0x10 0xff 0xe6
2516 0x78 0x34 0xff 0xe6
2517 0x72 0x28 0xff 0xd6
2518 0x73 0x9c 0xff 0xe6
2520 #------------------------------------------------------------------------------
2521 # WFE/WFI/YIELD
2522 #------------------------------------------------------------------------------
2523 # CHECK: wfe
2524 # CHECK: wfehi
2525 # CHECK: wfi
2526 # CHECK: wfilt
2527 # CHECK: yield
2528 # CHECK: yieldne
2529 # CHECK: hint #5
2531 0x02 0xf0 0x20 0xe3
2532 0x02 0xf0 0x20 0x83
2533 0x03 0xf0 0x20 0xe3
2534 0x03 0xf0 0x20 0xb3
2535 0x01 0xf0 0x20 0xe3
2536 0x01 0xf0 0x20 0x13
2537 0x05 0xf0 0x20 0xe3