b2c6fb88fcf69272350ca45060aef5b97c92fefa
[oota-llvm.git] / test / MC / Disassembler / ARM / thumb2.txt
1 # RUN: llvm-mc -triple=thumbv7-apple-darwin -mcpu=cortex-a8 -disassemble < %s | FileCheck %s
2
3 #------------------------------------------------------------------------------
4 # ADC (immediate)
5 #------------------------------------------------------------------------------
6 # CHECK: adc r0, r1, #4
7 # CHECK: adcs r0, r1, #0
8 # CHECK: adc r1, r2, #255
9 # CHECK: adc r3, r7, #5570645
10 # CHECK: adc r8, r12, #2852170240
11 # CHECK: adc r9, r7, #2779096485
12 # CHECK: adc r5, r3, #2264924160
13 # CHECK: adc r4, r2, #2139095040
14 # CHECK: adc r4, r2, #1664
15
16 0x41 0xf1 0x04 0x00
17 0x51 0xf1 0x00 0x00
18 0x42 0xf1 0xff 0x01
19 0x47 0xf1 0x55 0x13
20 0x4c 0xf1 0xaa 0x28
21 0x47 0xf1 0xa5 0x39
22 0x43 0xf1 0x07 0x45
23 0x42 0xf1 0xff 0x44
24 0x42 0xf5 0xd0 0x64
25
26 #------------------------------------------------------------------------------
27 # ADC (register)
28 #------------------------------------------------------------------------------
29 # CHECK: adc.w r4, r5, r6
30 # CHECK: adcs.w r4, r5, r6
31 # CHECK: adc.w r9, r1, r3
32 # CHECK: adcs.w r9, r1, r3
33 # CHECK: adc.w r0, r1, r3, ror #4
34 # CHECK: adcs.w  r0, r1, r3, lsl #7
35 # CHECK: adc.w r0, r1, r3, lsr #31
36 # CHECK: adcs.w  r0, r1, r3, asr #32
37
38 0x45 0xeb 0x06 0x04
39 0x55 0xeb 0x06 0x04
40 0x41 0xeb 0x03 0x09
41 0x51 0xeb 0x03 0x09
42 0x41 0xeb 0x33 0x10
43 0x51 0xeb 0xc3 0x10
44 0x41 0xeb 0xd3 0x70
45 0x51 0xeb 0x23 0x00
46
47
48 #------------------------------------------------------------------------------
49 # ADD (immediate)
50 #------------------------------------------------------------------------------
51 # CHECK: itet eq
52 # CHECK: addeq r1, r2, #4
53 # CHECK: addwne r5, r3, #1023
54 # CHECK: addweq r4, r5, #293
55 # CHECK: add.w r2, sp, #1024
56 # CHECK: add.w r2, r8, #65280
57 # CHECK: addw r2, r3, #257
58 # CHECK: add.w r12, r6, #256
59 # CHECK: addw r12, r6, #256
60 # CHECK: adds.w r1, r2, #496
61
62 0x0a 0xbf
63 0x11 0x1d
64 0x03 0xf2 0xff 0x35
65 0x05 0xf2 0x25 0x14
66 0x0d 0xf5 0x80 0x62
67 0x08 0xf5 0x7f 0x42
68 0x03 0xf2 0x01 0x12
69 0x06 0xf5 0x80 0x7c
70 0x06 0xf2 0x00 0x1c
71 0x12 0xf5 0xf8 0x71
72
73
74 #------------------------------------------------------------------------------
75 # ADD (register)
76 #------------------------------------------------------------------------------
77 # CHECK: add.w r1, r2, r8
78 # CHECK: add.w r5, r9, r2, asr #32
79 # CHECK: adds.w r7, r3, r1, lsl #31
80 # CHECK: adds.w r0, r3, r6, lsr #25
81 # CHECK: add.w r4, r8, r1, ror #12
82
83 0x02 0xeb 0x08 0x01
84 0x09 0xeb 0x22 0x05
85 0x13 0xeb 0xc1 0x77
86 0x13 0xeb 0x56 0x60
87 0x08 0xeb 0x31 0x34
88
89
90 #------------------------------------------------------------------------------
91 # ADR
92 #------------------------------------------------------------------------------
93 # CHECK: subw r11, pc, #3270
94 # CHECK: subw r11, pc, #826
95 # CHECK: subw r1, pc, #0
96
97 0xaf 0xf6 0xc6 0x4b
98 0xaf 0xf2 0x3a 0x3b
99 0xaf 0xf2 0x00 0x01
100
101 #------------------------------------------------------------------------------
102 # AND (immediate)
103 #------------------------------------------------------------------------------
104 # CHECK: and r2, r5, #1044480
105 # CHECK: ands r3, r12, #15
106 # CHECK: and r1, r1, #255
107
108 0x05 0xf4 0x7f 0x22
109 0x1c 0xf0 0x0f 0x03
110 0x01 0xf0 0xff 0x01
111
112
113 #------------------------------------------------------------------------------
114 # AND (register)
115 #------------------------------------------------------------------------------
116 # CHECK: and.w r4, r9, r8
117 # CHECK: and.w r1, r4, r8, asr #3
118 # CHECK: ands.w r2, r1, r7, lsl #1
119 # CHECK: ands.w r4, r5, r2, lsr #20
120 # CHECK: and.w r9, r12, r1, ror #17
121
122 0x09 0xea 0x08 0x04
123 0x04 0xea 0xe8 0x01
124 0x11 0xea 0x47 0x02
125 0x15 0xea 0x12 0x54
126 0x0c 0xea 0x71 0x49
127
128 #------------------------------------------------------------------------------
129 # ASR (immediate)
130 #------------------------------------------------------------------------------
131 # CHECK: asr.w r2, r3, #12
132 # CHECK: asrs.w r8, r3, #32
133 # CHECK: asrs.w r2, r3, #1
134 # CHECK: asr.w r2, r3, #4
135 # CHECK: asrs.w r2, r12, #15
136
137 # CHECK: asr.w r3, r3, #19
138 # CHECK: asrs.w r8, r8, #2
139 # CHECK: asrs.w r7, r7, #5
140 # CHECK: asr.w r12, r12, #21
141
142 0x4f 0xea 0x23 0x32
143 0x5f 0xea 0x23 0x08
144 0x5f 0xea 0x63 0x02
145 0x4f 0xea 0x23 0x12
146 0x5f 0xea 0xec 0x32
147
148 0x4f 0xea 0xe3 0x43
149 0x5f 0xea 0xa8 0x08
150 0x5f 0xea 0x67 0x17
151 0x4f 0xea 0x6c 0x5c
152
153
154 #------------------------------------------------------------------------------
155 # ASR (register)
156 #------------------------------------------------------------------------------
157 # CHECK: asr.w r3, r4, r2
158 # CHECK: asr.w r1, r1, r2
159 # CHECK: asrs.w r3, r4, r8
160
161 0x44 0xfa 0x02 0xf3
162 0x41 0xfa 0x02 0xf1
163 0x54 0xfa 0x08 0xf3
164
165 #------------------------------------------------------------------------------
166 # B
167 #------------------------------------------------------------------------------
168 # CHECK: bmi.w   #-183396
169
170 0x13 0xf5 0xce 0xa9
171
172 # CHECK: b.w   #208962
173 # CHECK: b.w   #-16777216
174
175 0x33 0xf0 0x21 0xb8 # rdar://12585795
176 0x00 0xf4 0x00 0x90
177
178 #------------------------------------------------------------------------------
179 # BFC
180 #------------------------------------------------------------------------------
181 # CHECK: bfc r5, #3, #17
182 # CHECK: it lo
183 # CHECK: bfclo r5, #3, #17
184
185 0x6f 0xf3 0xd3 0x05
186 0x38 0xbf
187 0x6f 0xf3 0xd3 0x05
188
189
190 #------------------------------------------------------------------------------
191 # BFI
192 #------------------------------------------------------------------------------
193 # CHECK: bfi r5, r2, #3, #17
194 # CHECK: it ne
195 # CHECK: bfine r5, r2, #3, #17
196 # CHECK: bfi r6, r0, #0, #32
197 # CHECK: bfi r6, r0, #31, #1
198
199 0x62 0xf3 0xd3 0x05
200 0x18 0xbf
201 0x62 0xf3 0xd3 0x05
202 0x60 0xf3 0x1f 0x06
203 0x60 0xf3 0xdf 0x76
204
205
206 #------------------------------------------------------------------------------
207 # BIC
208 #------------------------------------------------------------------------------
209 # CHECK: bic r10, r1, #15
210 # CHECK: bic.w r12, r3, r6
211 # CHECK: bic.w r11, r2, r6, lsl #12
212 # CHECK: bic.w r8, r4, r1, lsr #11
213 # CHECK: bic.w r7, r5, r7, lsr #15
214 # CHECK: bic.w r6, r7, r9, asr #32
215 # CHECK: bic.w r5, r6, r8, ror #1
216
217 # CHECK: bic r1, r1, #15
218 # CHECK: bic.w r1, r1, r1
219 # CHECK: bic.w r4, r4, r2, lsl #31
220 # CHECK: bic.w r6, r6, r3, lsr #12
221 # CHECK: bic.w r7, r7, r4, lsr #7
222 # CHECK: bic.w r8, r8, r5, asr #15
223 # CHECK: bic.w r12, r12, r6, ror #29
224
225 0x21 0xf0 0x0f 0x0a
226 0x23 0xea 0x06 0x0c
227 0x22 0xea 0x06 0x3b
228 0x24 0xea 0xd1 0x28
229 0x25 0xea 0xd7 0x37
230 0x27 0xea 0x29 0x06
231 0x26 0xea 0x78 0x05
232
233 0x21 0xf0 0x0f 0x01
234 0x21 0xea 0x01 0x01
235 0x24 0xea 0xc2 0x74
236 0x26 0xea 0x13 0x36
237 0x27 0xea 0xd4 0x17
238 0x28 0xea 0xe5 0x38
239 0x2c 0xea 0x76 0x7c
240
241
242 #------------------------------------------------------------------------------
243 # BXJ
244 #------------------------------------------------------------------------------
245 # CHECK: bxj r5
246 # CHECK: it ne
247 # CHECK: bxjne r7
248
249 0xc5 0xf3 0x00 0x8f
250 0x18 0xbf
251 0xc7 0xf3 0x00 0x8f
252
253
254 #------------------------------------------------------------------------------
255 # CBZ/CBNZ
256 #------------------------------------------------------------------------------
257 # CHECK: cbnz    r7, #6
258 # CHECK: cbnz    r7, #12
259 # CHECK: cbz     r4, #64
260
261 0x1f 0xb9
262 0x37 0xb9
263 0x04 0xb3
264
265
266 #------------------------------------------------------------------------------
267 # CDP/CDP2
268 #------------------------------------------------------------------------------
269 # CHECK: cdp  p7, #1, c1, c1, c1, #4
270 # CHECK: cdp2  p7, #1, c1, c1, c1, #4
271
272 0x11 0xee 0x81 0x17
273 0x11 0xfe 0x81 0x17
274
275
276 #------------------------------------------------------------------------------
277 # CLREX
278 #------------------------------------------------------------------------------
279 #CHECK: clrex
280 #CHECK: it ne
281 #CHECK: clrexne
282
283 0xbf 0xf3 0x2f 0x8f
284 0x18 0xbf
285 0xbf 0xf3 0x2f 0x8f
286
287
288 #------------------------------------------------------------------------------
289 # CLZ
290 #------------------------------------------------------------------------------
291 #CHECK: clz r1, r2
292 #CHECK: it eq
293 #CHECK: clzeq r1, r2
294
295 0xb2 0xfa 0x82 0xf1
296 0x08 0xbf
297 0xb2 0xfa 0x82 0xf1
298
299
300 #------------------------------------------------------------------------------
301 # CMN
302 #------------------------------------------------------------------------------
303 #CHECK: cmn.w r1, #15
304 #CHECK: cmn.w r8, r6
305 #CHECK: cmn.w r1, r6, lsl #10
306 #CHECK: cmn.w r1, r6, lsr #10
307 #CHECK: cmn.w sp, r6, lsr #10
308 #CHECK: cmn.w r1, r6, asr #10
309 #CHECK: cmn.w r1, r6, ror #10
310
311 0x11 0xf1 0x0f 0x0f
312 0x18 0xeb 0x06 0x0f
313 0x11 0xeb 0x86 0x2f
314 0x11 0xeb 0x96 0x2f
315 0x1d 0xeb 0x96 0x2f
316 0x11 0xeb 0xa6 0x2f
317 0x11 0xeb 0xb6 0x2f
318
319
320 #------------------------------------------------------------------------------
321 # CMP
322 #------------------------------------------------------------------------------
323 #CHECK: cmp.w r5, #65280
324 #CHECK: cmp.w r4, r12
325 #CHECK: cmp.w r9, r6, lsl #12
326 #CHECK: cmp.w r3, r7, lsr #31
327 #CHECK: cmp.w sp, r6, lsr #1
328 #CHECK: cmp.w r2, r5, asr #24
329 #CHECK: cmp.w r1, r4, ror #15
330
331 0xb5 0xf5 0x7f 0x4f
332 0xb4 0xeb 0x0c 0x0f
333 0xb9 0xeb 0x06 0x3f
334 0xb3 0xeb 0xd7 0x7f
335 0xbd 0xeb 0x56 0x0f
336 0xb2 0xeb 0x25 0x6f
337 0xb1 0xeb 0xf4 0x3f
338
339
340 #------------------------------------------------------------------------------
341 # DBG
342 #------------------------------------------------------------------------------
343 #CHECK: dbg #5
344 #CHECK: dbg #0
345 #CHECK: dbg #15
346
347 0xaf 0xf3 0xf5 0x80
348 0xaf 0xf3 0xf0 0x80
349 0xaf 0xf3 0xff 0x80
350
351
352 #------------------------------------------------------------------------------
353 # DMB
354 #------------------------------------------------------------------------------
355 #CHECK: dmb sy
356 #CHECK: dmb st
357 #CHECK: dmb #0xd
358 #CHECK: dmb #0xc
359 #CHECK: dmb ish
360 #CHECK: dmb ishst
361 #CHECK: dmb #0x9
362 #CHECK: dmb #0x8
363 #CHECK: dmb nsh
364 #CHECK: dmb nshst
365 #CHECK: dmb #0x5
366 #CHECK: dmb #0x4
367 #CHECK: dmb osh
368 #CHECK: dmb oshst
369 #CHECK: dmb #0x1
370 #CHECK: dmb #0x0
371
372 0xbf 0xf3 0x5f 0x8f
373 0xbf 0xf3 0x5e 0x8f
374 0xbf 0xf3 0x5d 0x8f
375 0xbf 0xf3 0x5c 0x8f
376 0xbf 0xf3 0x5b 0x8f
377 0xbf 0xf3 0x5a 0x8f
378 0xbf 0xf3 0x59 0x8f
379 0xbf 0xf3 0x58 0x8f
380 0xbf 0xf3 0x57 0x8f
381 0xbf 0xf3 0x56 0x8f
382 0xbf 0xf3 0x55 0x8f
383 0xbf 0xf3 0x54 0x8f
384 0xbf 0xf3 0x53 0x8f
385 0xbf 0xf3 0x52 0x8f
386 0xbf 0xf3 0x51 0x8f
387 0xbf 0xf3 0x50 0x8f
388
389
390 #------------------------------------------------------------------------------
391 # DSB
392 #------------------------------------------------------------------------------
393 #CHECK: dsb sy
394 #CHECK: dsb st
395 #CHECK: dsb #0xd
396 #CHECK: dsb #0xc
397 #CHECK: dsb ish
398 #CHECK: dsb ishst
399 #CHECK: dsb #0x9
400 #CHECK: dsb #0x8
401 #CHECK: dsb nsh
402 #CHECK: dsb nshst
403 #CHECK: dsb #0x5
404 #CHECK: dsb #0x4
405 #CHECK: dsb osh
406 #CHECK: dsb oshst
407 #CHECK: dsb #0x1
408 #CHECK: dsb #0x0
409
410 0xbf 0xf3 0x4f 0x8f
411 0xbf 0xf3 0x4e 0x8f
412 0xbf 0xf3 0x4d 0x8f
413 0xbf 0xf3 0x4c 0x8f
414 0xbf 0xf3 0x4b 0x8f
415 0xbf 0xf3 0x4a 0x8f
416 0xbf 0xf3 0x49 0x8f
417 0xbf 0xf3 0x48 0x8f
418 0xbf 0xf3 0x47 0x8f
419 0xbf 0xf3 0x46 0x8f
420 0xbf 0xf3 0x45 0x8f
421 0xbf 0xf3 0x44 0x8f
422 0xbf 0xf3 0x43 0x8f
423 0xbf 0xf3 0x42 0x8f
424 0xbf 0xf3 0x41 0x8f
425 0xbf 0xf3 0x40 0x8f
426
427
428 #------------------------------------------------------------------------------
429 # EOR
430 #------------------------------------------------------------------------------
431 #CHECK: eor r4, r5, #61440
432 #CHECK: eor.w r4, r5, r6
433 #CHECK: eor.w r4, r5, r6, lsl #5
434 #CHECK: eor.w r4, r5, r6, lsr #5
435 #CHECK: eor.w r4, r5, r6, lsr #5
436 #CHECK: eor.w r4, r5, r6, asr #5
437 #CHECK: eor.w r4, r5, r6, ror #5
438
439 0x85 0xf4 0x70 0x44
440 0x85 0xea 0x06 0x04
441 0x85 0xea 0x46 0x14
442 0x85 0xea 0x56 0x14
443 0x85 0xea 0x56 0x14
444 0x85 0xea 0x66 0x14
445 0x85 0xea 0x76 0x14
446
447
448 #------------------------------------------------------------------------------
449 # ISB
450 #------------------------------------------------------------------------------
451 #CHECK: isb sy
452 #CHECK: isb #0xa
453
454 0xbf 0xf3 0x6f 0x8f
455 0xbf 0xf3 0x6a 0x8f
456
457 #------------------------------------------------------------------------------
458 # IT
459 #------------------------------------------------------------------------------
460 # Test encodings of a few full IT blocks, not just the IT instruction
461
462 # CHECK: iteet eq
463 # CHECK: addeq r0, r1, r2
464 # CHECK: nopne
465 # CHECK: subne r5, r6, r7
466 # CHECK: addeq r1, r2, #4
467
468 0x0d 0xbf
469 0x88 0x18
470 0x00 0xbf
471 0xf5 0x1b
472 0x11 0x1d
473
474 # CHECK: ittee ls
475 # CHECK: addls r0, r1, r2
476 # CHECK: nopls
477 # CHECK: subhi r5, r6, r7
478 # CHECK: addhi r1, r2, #4
479
480 0x99 0xbf
481 0x88 0x18
482 0x00 0xbf
483 0xf5 0x1b
484 0x11 0x1d
485
486
487 #------------------------------------------------------------------------------
488 # LDMIA
489 #------------------------------------------------------------------------------
490 # CHECK: ldm.w r4, {r4, r5, r8, r9}
491 # CHECK: ldm.w r4, {r5, r6}
492 # CHECK: ldm.w r5!, {r3, r8}
493 # CHECK: ldm.w r4, {r4, r5, r8, r9}
494 # CHECK: ldm.w r4, {r5, r6}
495 # CHECK: ldm.w r5!, {r3, r8}
496 # CHECK: ldm.w r5!, {r1, r2}
497 # CHECK: ldm.w r2, {r1, r2}
498
499 # CHECK: ldm.w r4, {r4, r5, r8, r9}
500 # CHECK: ldm.w r4, {r5, r6}
501 # CHECK: ldm.w r5!, {r3, r8}
502 # CHECK: ldm.w r4, {r4, r5, r8, r9}
503 # CHECK: ldm.w r4, {r5, r6}
504 # CHECK: ldm.w r5!, {r3, r8}
505 # CHECK: ldm.w r5!, {r3, r8}
506
507 0x94 0xe8 0x30 0x03
508 0x94 0xe8 0x60 0x00
509 0xb5 0xe8 0x08 0x01
510 0x94 0xe8 0x30 0x03
511 0x94 0xe8 0x60 0x00
512 0xb5 0xe8 0x08 0x01
513 0xb5 0xe8 0x06 0x00
514 0x92 0xe8 0x06 0x00
515
516 0x94 0xe8 0x30 0x03
517 0x94 0xe8 0x60 0x00
518 0xb5 0xe8 0x08 0x01
519 0x94 0xe8 0x30 0x03
520 0x94 0xe8 0x60 0x00
521 0xb5 0xe8 0x08 0x01
522 0xb5 0xe8 0x08 0x01
523
524
525 #------------------------------------------------------------------------------
526 # LDMDB
527 #------------------------------------------------------------------------------
528 # CHECK: ldmdb r4, {r4, r5, r8, r9}
529 # CHECK: ldmdb r4, {r5, r6}
530 # CHECK: ldmdb r5!, {r3, r8}
531 # CHECK: ldmdb r5!, {r3, r8}
532
533 0x14 0xe9 0x30 0x03
534 0x14 0xe9 0x60 0x00
535 0x35 0xe9 0x08 0x01
536 0x35 0xe9 0x08 0x01
537
538
539 #------------------------------------------------------------------------------
540 # LDR(immediate)
541 #------------------------------------------------------------------------------
542 # CHECK: ldr r5, [r5, #-4]
543 # CHECK: ldr r5, [r6, #32]
544 # CHECK: ldr.w r5, [r6, #33]
545 # CHECK: ldr.w r5, [r6, #257]
546 # CHECK: ldr.w pc, [r7, #257]
547
548 0x55 0xf8 0x04 0x5c
549 0x35 0x6a
550 0xd6 0xf8 0x21 0x50
551 0xd6 0xf8 0x01 0x51
552 0xd7 0xf8 0x01 0xf1
553
554
555 #------------------------------------------------------------------------------
556 # LDR(literal)
557 #------------------------------------------------------------------------------
558 # CHECK: ldr.w r4, [pc, #-0]
559 # CHECK: ldr.w r2, [pc, #-40]
560 # CHECK: ldr.w r1, [pc, #1024]
561 0x5f 0xf8 0x00 0x40
562 0x5f 0xf8 0x28 0x20
563 0xdf 0xf8 0x00 0x14
564
565
566 #------------------------------------------------------------------------------
567 # LDR(register)
568 #------------------------------------------------------------------------------
569 # CHECK: ldr.w r1, [r8, r1]
570 # CHECK: ldr.w r4, [r5, r2]
571 # CHECK: ldr.w r6, [r0, r2, lsl #3]
572 # CHECK: ldr.w r8, [r8, r2, lsl #2]
573 # CHECK: ldr.w r7, [sp, r2, lsl #1]
574 # CHECK: ldr.w r7, [sp, r2]
575 # CHECK: ldr pc, [sp], #12
576 # CHECK: ldr r2, [r4, #255]!
577 # CHECK: ldr r8, [sp, #4]!
578 # CHECK: ldr lr, [sp, #-4]!
579 # CHECK: ldr lr, [sp, #0]!
580 # CHECK: ldr r2, [r4], #255
581 # CHECK: ldr r8, [sp], #4
582 # CHECK: ldr lr, [sp], #-4
583
584 0x58 0xf8 0x01 0x10
585 0x55 0xf8 0x02 0x40
586 0x50 0xf8 0x32 0x60
587 0x58 0xf8 0x22 0x80
588 0x5d 0xf8 0x12 0x70
589 0x5d 0xf8 0x02 0x70
590 0x5d 0xf8 0x0c 0xfb
591 0x54 0xf8 0xff 0x2f
592 0x5d 0xf8 0x04 0x8f
593 0x5d 0xf8 0x04 0xed
594 0x5d 0xf8 0x00 0xef
595 0x54 0xf8 0xff 0x2b
596 0x5d 0xf8 0x04 0x8b
597 0x5d 0xf8 0x04 0xe9
598
599
600 #------------------------------------------------------------------------------
601 # LDRB(immediate)
602 #------------------------------------------------------------------------------
603 # CHECK: ldrb r5, [r5, #-4]
604 # CHECK: ldrb.w r5, [r6, #32]
605 # CHECK: ldrb.w r5, [r6, #33]
606 # CHECK: ldrb.w r5, [r6, #257]
607 # CHECK: ldrb.w lr, [r7, #257]
608
609 0x15 0xf8 0x04 0x5c
610 0x96 0xf8 0x20 0x50
611 0x96 0xf8 0x21 0x50
612 0x96 0xf8 0x01 0x51
613 0x97 0xf8 0x01 0xe1
614
615
616 #------------------------------------------------------------------------------
617 # LDRB(register)
618 #------------------------------------------------------------------------------
619 # CHECK: ldrb.w r1, [r8, r1]
620 # CHECK: ldrb.w r4, [r5, r2]
621 # CHECK: ldrb.w r6, [r0, r2, lsl #3]
622 # CHECK: ldrb.w r8, [r8, r2, lsl #2]
623 # CHECK: ldrb.w r7, [sp, r2, lsl #1]
624 # CHECK: ldrb.w r7, [sp, r2]
625 # CHECK: ldrb r5, [r8, #255]!
626 # CHECK: ldrb r2, [r5, #4]!
627 # CHECK: ldrb r1, [r4, #-4]!
628 # CHECK: ldrb r1, [r4, #0]!
629 # CHECK: ldrb lr, [r3], #255
630 # CHECK: ldrb r9, [r2], #4
631 # CHECK: ldrb r3, [sp], #-4
632
633 0x18 0xf8 0x01 0x10
634 0x15 0xf8 0x02 0x40
635 0x10 0xf8 0x32 0x60
636 0x18 0xf8 0x22 0x80
637 0x1d 0xf8 0x12 0x70
638 0x1d 0xf8 0x02 0x70
639 0x18 0xf8 0xff 0x5f
640 0x15 0xf8 0x04 0x2f
641 0x14 0xf8 0x04 0x1d
642 0x14 0xf8 0x00 0x1f
643 0x13 0xf8 0xff 0xeb
644 0x12 0xf8 0x04 0x9b
645 0x1d 0xf8 0x04 0x39
646
647
648 #------------------------------------------------------------------------------
649 # LDRB(literal)
650 #------------------------------------------------------------------------------
651 # CHECK: ldrb.w r6, [pc, #-0]
652 # CHECK: ldrb.w r10, [pc, #227]
653 # CHECK: ldrb.w r5, [pc, #0]
654 0x1f 0xf8 0x00 0x60
655 0x9f 0xf8 0xe3 0xa0
656 0x9f 0xf8 0x00 0x50
657
658
659 #------------------------------------------------------------------------------
660 # LDRBT
661 #------------------------------------------------------------------------------
662 # CHECK: ldrbt r1, [r2]
663 # CHECK: ldrbt r1, [r8]
664 # CHECK: ldrbt r1, [r8, #3]
665 # CHECK: ldrbt r1, [r8, #255]
666
667 0x12 0xf8 0x00 0x1e
668 0x18 0xf8 0x00 0x1e
669 0x18 0xf8 0x03 0x1e
670 0x18 0xf8 0xff 0x1e
671
672
673 #------------------------------------------------------------------------------
674 # LDRD(immediate)
675 #------------------------------------------------------------------------------
676 # CHECK: ldrd r3, r5, [r6, #24]
677 # CHECK: ldrd r3, r5, [r6, #24]!
678 # CHECK: ldrd r3, r5, [r6], #4
679 # CHECK: ldrd r3, r5, [r6], #-8
680 # CHECK: ldrd r3, r5, [r6]
681 # CHECK: ldrd r8, r1, [r3]
682 # CHECK: ldrd r0, r1, [r2], #-0
683 # CHECK: ldrd r0, r1, [r2, #-0]!
684 # CHECK: ldrd r0, r1, [r2, #0]!
685 # CHECK: ldrd r0, r1, [r2, #-0]
686
687 0xd6 0xe9 0x06 0x35
688 0xf6 0xe9 0x06 0x35
689 0xf6 0xe8 0x01 0x35
690 0x76 0xe8 0x02 0x35
691 0xd6 0xe9 0x00 0x35
692 0xd3 0xe9 0x00 0x81
693 0x72 0xe8 0x00 0x01
694 0x72 0xe9 0x00 0x01
695 0xf2 0xe9 0x00 0x01
696 0x52 0xe9 0x00 0x01
697
698
699 #------------------------------------------------------------------------------
700 # FIXME: LDRD(literal)
701 #------------------------------------------------------------------------------
702
703
704 #------------------------------------------------------------------------------
705 # LDREX/LDREXB/LDREXH/LDREXD
706 #------------------------------------------------------------------------------
707 # CHECK: ldrex r1, [r4]
708 # CHECK: ldrex r8, [r4]
709 # CHECK: ldrex r2, [sp, #128]
710 # CHECK: ldrexb r5, [r7]
711 # CHECK: ldrexh r9, [r12]
712 # CHECK: ldrexd r9, r3, [r4]
713
714 0x54 0xe8 0x00 0x1f
715 0x54 0xe8 0x00 0x8f
716 0x5d 0xe8 0x20 0x2f
717 0xd7 0xe8 0x4f 0x5f
718 0xdc 0xe8 0x5f 0x9f
719 0xd4 0xe8 0x7f 0x93
720
721
722 #------------------------------------------------------------------------------
723 # LDRH(immediate)
724 #------------------------------------------------------------------------------
725 # CHECK: ldrh r5, [r5, #-4]
726 # CHECK: ldrh r5, [r6, #32]
727 # CHECK: ldrh.w r5, [r6, #33]
728 # CHECK: ldrh.w r5, [r6, #257]
729 # CHECK: ldrh.w lr, [r7, #257]
730
731 0x35 0xf8 0x04 0x5c
732 0x35 0x8c
733 0xb6 0xf8 0x21 0x50
734 0xb6 0xf8 0x01 0x51
735 0xb7 0xf8 0x01 0xe1
736
737
738 #------------------------------------------------------------------------------
739 # LDRH(register)
740 #------------------------------------------------------------------------------
741 # CHECK: ldrh.w r1, [r8, r1]
742 # CHECK: ldrh.w r4, [r5, r2]
743 # CHECK: ldrh.w r6, [r0, r2, lsl #3]
744 # CHECK: ldrh.w r8, [r8, r2, lsl #2]
745 # CHECK: ldrh.w r7, [sp, r2, lsl #1]
746 # CHECK: ldrh.w r7, [sp, r2]
747 # CHECK: ldrh r5, [r8, #255]!
748 # CHECK: ldrh r2, [r5, #4]!
749 # CHECK: ldrh r1, [r4, #-4]!
750 # CHECK: ldrh r1, [r4, #0]!
751 # CHECK: ldrh lr, [r3], #255
752 # CHECK: ldrh r9, [r2], #4
753 # CHECK: ldrh r3, [sp], #-4
754
755 0x38 0xf8 0x01 0x10
756 0x35 0xf8 0x02 0x40
757 0x30 0xf8 0x32 0x60
758 0x38 0xf8 0x22 0x80
759 0x3d 0xf8 0x12 0x70
760 0x3d 0xf8 0x02 0x70
761 0x38 0xf8 0xff 0x5f
762 0x35 0xf8 0x04 0x2f
763 0x34 0xf8 0x04 0x1d
764 0x34 0xf8 0x00 0x1f
765 0x33 0xf8 0xff 0xeb
766 0x32 0xf8 0x04 0x9b
767 0x3d 0xf8 0x04 0x39
768
769
770 #------------------------------------------------------------------------------
771 # LDRH(literal)
772 #------------------------------------------------------------------------------
773 # CHECK: ldrh.w r7, [pc, #-0]
774 # CHECK: ldrh.w r5, [pc, #121]
775 # CHECK: ldrh.w r4, [pc, #0]
776 0x3f 0xf8 0x00 0x70
777 0xbf 0xf8 0x79 0x50
778 0xbf 0xf8 0x00 0x40
779
780
781 #------------------------------------------------------------------------------
782 # LDRSB(immediate)
783 #------------------------------------------------------------------------------
784 # CHECK: ldrsb r5, [r5, #-4]
785 # CHECK: ldrsb.w r5, [r6, #32]
786 # CHECK: ldrsb.w r5, [r6, #33]
787 # CHECK: ldrsb.w r5, [r6, #257]
788 # CHECK: ldrsb.w lr, [r7, #257]
789
790 0x15 0xf9 0x04 0x5c
791 0x96 0xf9 0x20 0x50
792 0x96 0xf9 0x21 0x50
793 0x96 0xf9 0x01 0x51
794 0x97 0xf9 0x01 0xe1
795
796
797 #------------------------------------------------------------------------------
798 # LDRSB(register)
799 #------------------------------------------------------------------------------
800 # CHECK: ldrsb.w r1, [r8, r1]
801 # CHECK: ldrsb.w r4, [r5, r2]
802 # CHECK: ldrsb.w r6, [r0, r2, lsl #3]
803 # CHECK: ldrsb.w r8, [r8, r2, lsl #2]
804 # CHECK: ldrsb.w r7, [sp, r2, lsl #1]
805 # CHECK: ldrsb.w r7, [sp, r2]
806 # CHECK: ldrsb r5, [r8, #255]!
807 # CHECK: ldrsb r2, [r5, #4]!
808 # CHECK: ldrsb r1, [r4, #-4]!
809 # CHECK: ldrsb r1, [r4, #0]!
810 # CHECK: ldrsb lr, [r3], #255
811 # CHECK: ldrsb r9, [r2], #4
812 # CHECK: ldrsb r3, [sp], #-4
813
814 0x18 0xf9 0x01 0x10
815 0x15 0xf9 0x02 0x40
816 0x10 0xf9 0x32 0x60
817 0x18 0xf9 0x22 0x80
818 0x1d 0xf9 0x12 0x70
819 0x1d 0xf9 0x02 0x70
820 0x18 0xf9 0xff 0x5f
821 0x15 0xf9 0x04 0x2f
822 0x14 0xf9 0x04 0x1d
823 0x14 0xf9 0x00 0x1f
824 0x13 0xf9 0xff 0xeb
825 0x12 0xf9 0x04 0x9b
826 0x1d 0xf9 0x04 0x39
827
828
829 #------------------------------------------------------------------------------
830 # LDRSB(literal)
831 #------------------------------------------------------------------------------
832 # CHECK: ldrsb.w r0, [pc, #-0]
833 # CHECK: ldrsb.w r12, [pc, #80]
834 # CHECK: ldrsb.w r3, [pc, #0]
835 0x1f 0xf9 0x00 0x00
836 0x9f 0xf9 0x50 0xc0
837 0x9f 0xf9 0x00 0x30
838
839
840 #------------------------------------------------------------------------------
841 # LDRSBT
842 #------------------------------------------------------------------------------
843 # CHECK: ldrsbt r1, [r2]
844 # CHECK: ldrsbt r1, [r8]
845 # CHECK: ldrsbt r1, [r8, #3]
846 # CHECK: ldrsbt r1, [r8, #255]
847
848 0x12 0xf9 0x00 0x1e
849 0x18 0xf9 0x00 0x1e
850 0x18 0xf9 0x03 0x1e
851 0x18 0xf9 0xff 0x1e
852
853
854 #------------------------------------------------------------------------------
855 # LDRSH(immediate)
856 #------------------------------------------------------------------------------
857 # CHECK: ldrsh r5, [r5, #-4]
858 # CHECK: ldrsh.w r5, [r6, #32]
859 # CHECK: ldrsh.w r5, [r6, #33]
860 # CHECK: ldrsh.w r5, [r6, #257]
861 # CHECK: ldrsh.w lr, [r7, #257]
862 # CHECK: ldrsh r10, [r5, #-0]
863
864 0x35 0xf9 0x04 0x5c
865 0xb6 0xf9 0x20 0x50
866 0xb6 0xf9 0x21 0x50
867 0xb6 0xf9 0x01 0x51
868 0xb7 0xf9 0x01 0xe1
869 0x35 0xf9 0x00 0xac
870
871 #------------------------------------------------------------------------------
872 # LDRSH(register)
873 #------------------------------------------------------------------------------
874 # CHECK: ldrsh.w r1, [r8, r1]
875 # CHECK: ldrsh.w r4, [r5, r2]
876 # CHECK: ldrsh.w r6, [r0, r2, lsl #3]
877 # CHECK: ldrsh.w r8, [r8, r2, lsl #2]
878 # CHECK: ldrsh.w r7, [sp, r2, lsl #1]
879 # CHECK: ldrsh.w r7, [sp, r2]
880 # CHECK: ldrsh r5, [r8, #255]!
881 # CHECK: ldrsh r2, [r5, #4]!
882 # CHECK: ldrsh r1, [r4, #-4]!
883 # CHECK: ldrsh r1, [r4, #0]!
884 # CHECK: ldrsh lr, [r3], #255
885 # CHECK: ldrsh r9, [r2], #4
886 # CHECK: ldrsh r3, [sp], #-4
887
888 0x38 0xf9 0x01 0x10
889 0x35 0xf9 0x02 0x40
890 0x30 0xf9 0x32 0x60
891 0x38 0xf9 0x22 0x80
892 0x3d 0xf9 0x12 0x70
893 0x3d 0xf9 0x02 0x70
894 0x38 0xf9 0xff 0x5f
895 0x35 0xf9 0x04 0x2f
896 0x34 0xf9 0x04 0x1d
897 0x34 0xf9 0x00 0x1f
898 0x33 0xf9 0xff 0xeb
899 0x32 0xf9 0x04 0x9b
900 0x3d 0xf9 0x04 0x39
901
902
903 #------------------------------------------------------------------------------
904 # LDRSH(literal)
905 #------------------------------------------------------------------------------
906 # CHECK: ldrsh.w r0, [pc, #-0]
907 # CHECK: ldrsh.w r10, [pc, #-231]
908 # CHECK: ldrsh.w r6, [pc, #0]
909 0x3f 0xf9 0x00 0x00
910 0x3f 0xf9 0xe7 0xa0
911 0xbf 0xf9 0x00 0x60
912
913
914 #------------------------------------------------------------------------------
915 # LDRSHT
916 #------------------------------------------------------------------------------
917 # CHECK: ldrsht r1, [r2]
918 # CHECK: ldrsht r1, [r8]
919 # CHECK: ldrsht r1, [r8, #3]
920 # CHECK: ldrsht r1, [r8, #255]
921
922 0x32 0xf9 0x00 0x1e
923 0x38 0xf9 0x00 0x1e
924 0x38 0xf9 0x03 0x1e
925 0x38 0xf9 0xff 0x1e
926
927
928 #------------------------------------------------------------------------------
929 # LDRT
930 #------------------------------------------------------------------------------
931 # CHECK: ldrt r1, [r2]
932 # CHECK: ldrt r2, [r6]
933 # CHECK: ldrt r3, [r7, #3]
934 # CHECK: ldrt r4, [r9, #255]
935
936 0x52 0xf8 0x00 0x1e
937 0x56 0xf8 0x00 0x2e
938 0x57 0xf8 0x03 0x3e
939 0x59 0xf8 0xff 0x4e
940
941
942 #------------------------------------------------------------------------------
943 # LSL (immediate)
944 #------------------------------------------------------------------------------
945 # CHECK: lsl.w r2, r3, #12
946 # CHECK: lsls.w r8, r3, #31
947 # CHECK: lsls.w r2, r3, #1
948 # CHECK: lsl.w r2, r3, #4
949 # CHECK: lsls.w r2, r12, #15
950
951 # CHECK: lsl.w r3, r3, #19
952 # CHECK: lsls.w r8, r8, #2
953 # CHECK: lsls.w r7, r7, #5
954 # CHECK: lsl.w r12, r12, #21
955
956 0x4f 0xea 0x03 0x32
957 0x5f 0xea 0xc3 0x78
958 0x5f 0xea 0x43 0x02
959 0x4f 0xea 0x03 0x12
960 0x5f 0xea 0xcc 0x32
961
962 0x4f 0xea 0xc3 0x43
963 0x5f 0xea 0x88 0x08
964 0x5f 0xea 0x47 0x17
965 0x4f 0xea 0x4c 0x5c
966
967
968 #------------------------------------------------------------------------------
969 # LSL (register)
970 #------------------------------------------------------------------------------
971 # CHECK: lsl.w r3, r4, r2
972 # CHECK: lsl.w r1, r1, r2
973 # CHECK: lsls.w r3, r4, r8
974
975 0x04 0xfa 0x02 0xf3
976 0x01 0xfa 0x02 0xf1
977 0x14 0xfa 0x08 0xf3
978
979
980 #------------------------------------------------------------------------------
981 # LSR (immediate)
982 #------------------------------------------------------------------------------
983 # CHECK: lsr.w r2, r3, #12
984 # CHECK: lsrs.w r8, r3, #32
985 # CHECK: lsrs.w r2, r3, #1
986 # CHECK: lsr.w r2, r3, #4
987 # CHECK: lsrs.w r2, r12, #15
988
989 # CHECK: lsr.w r3, r3, #19
990 # CHECK: lsrs.w r8, r8, #2
991 # CHECK: lsrs.w r7, r7, #5
992 # CHECK: lsr.w r12, r12, #21
993
994 0x4f 0xea 0x13 0x32
995 0x5f 0xea 0x13 0x08
996 0x5f 0xea 0x53 0x02
997 0x4f 0xea 0x13 0x12
998 0x5f 0xea 0xdc 0x32
999
1000 0x4f 0xea 0xd3 0x43
1001 0x5f 0xea 0x98 0x08
1002 0x5f 0xea 0x57 0x17
1003 0x4f 0xea 0x5c 0x5c
1004
1005
1006 #------------------------------------------------------------------------------
1007 # LSR (register)
1008 #------------------------------------------------------------------------------
1009 # CHECK: lsr.w r3, r4, r2
1010 # CHECK: lsr.w r1, r1, r2
1011 # CHECK: lsrs.w r3, r4, r8
1012
1013 0x24 0xfa 0x02 0xf3
1014 0x21 0xfa 0x02 0xf1
1015 0x34 0xfa 0x08 0xf3
1016
1017 #------------------------------------------------------------------------------
1018 # MCR/MCR2
1019 #------------------------------------------------------------------------------
1020 # CHECK: mcr  p7, #1, r5, c1, c1, #4
1021 # CHECK: mcr2  p7, #1, r5, c1, c1, #4
1022
1023 0x21 0xee 0x91 0x57
1024 0x21 0xfe 0x91 0x57
1025
1026
1027 #------------------------------------------------------------------------------
1028 # MCRR/MCRR2
1029 #------------------------------------------------------------------------------
1030 # CHECK: mcrr  p7, #15, r5, r4, c1
1031 # CHECK: mcrr2  p7, #15, r5, r4, c1
1032
1033 0x44 0xec 0xf1 0x57
1034 0x44 0xfc 0xf1 0x57
1035
1036
1037 #------------------------------------------------------------------------------
1038 # MLA/MLS
1039 #------------------------------------------------------------------------------
1040 # CHECK: mla  r1, r2, r3, r4
1041 # CHECK: mls  r1, r2, r3, r4
1042
1043 0x02 0xfb 0x03 0x41
1044 0x02 0xfb 0x13 0x41
1045
1046
1047 #------------------------------------------------------------------------------
1048 # MOV(immediate)
1049 #------------------------------------------------------------------------------
1050 # CHECK: movs r1, #21
1051 # CHECK: movs.w r1, #21
1052 # CHECK: movs.w r8, #21
1053 # CHECK: movw r0, #65535
1054 # CHECK: movw r1, #43777
1055 # CHECK: movw r1, #43792
1056 # CHECK: mov.w r0, #66846720
1057 # CHECK: mov.w r0, #66846720
1058 # CHECK: movs.w r0, #66846720
1059
1060 0x15 0x21
1061 0x5f 0xf0 0x15 0x01
1062 0x5f 0xf0 0x15 0x08
1063 0x4f 0xf6 0xff 0x70
1064 0x4a 0xf6 0x01 0x31
1065 0x4a 0xf6 0x10 0x31
1066 0x4f 0xf0 0x7f 0x70
1067 0x4f 0xf0 0x7f 0x70
1068 0x5f 0xf0 0x7f 0x70
1069
1070 #------------------------------------------------------------------------------
1071 # MOVT
1072 #------------------------------------------------------------------------------
1073 # CHECK: movt r3, #7
1074 # CHECK: movt r6, #65535
1075 # CHECK: it eq
1076 # CHECK: movteq r4, #4080
1077
1078 0xc0 0xf2 0x07 0x03
1079 0xcf 0xf6 0xff 0x76
1080 0x08 0xbf
1081 0xc0 0xf6 0xf0 0x74
1082
1083 #------------------------------------------------------------------------------
1084 # MRC/MRC2
1085 #------------------------------------------------------------------------------
1086 # CHECK: mrc  p14, #0, r1, c1, c2, #4
1087 # CHECK: mrc2  p14, #0, r1, c1, c2, #4
1088
1089 0x11 0xee 0x92 0x1e
1090 0x11 0xfe 0x92 0x1e
1091
1092
1093 #------------------------------------------------------------------------------
1094 # MRRC/MRRC2
1095 #------------------------------------------------------------------------------
1096 # CHECK: mrrc  p7, #1, r5, r4, c1
1097 # CHECK: mrrc2  p7, #1, r5, r4, c1
1098
1099 0x54 0xec 0x11 0x57
1100 0x54 0xfc 0x11 0x57
1101
1102
1103 #------------------------------------------------------------------------------
1104 # MRS
1105 #------------------------------------------------------------------------------
1106 # CHECK: mrs  r8, apsr
1107 # CHECK: mrs  r8, spsr
1108
1109 0xef 0xf3 0x00 0x88
1110 0xff 0xf3 0x00 0x88
1111
1112
1113 #------------------------------------------------------------------------------
1114 # MSR
1115 #------------------------------------------------------------------------------
1116 # CHECK: msr  APSR_nzcvq, r1
1117 # CHECK: msr  APSR_g, r2
1118 # CHECK: msr  APSR_nzcvq, r3
1119 # CHECK: msr  APSR_nzcvq, r4
1120 # CHECK: msr  APSR_nzcvqg, r5
1121 # CHECK: msr  CPSR_fc, r6
1122 # CHECK: msr  CPSR_c, r7
1123 # CHECK: msr  CPSR_x, r8
1124 # CHECK: msr  CPSR_fc, r9
1125 # CHECK: msr  CPSR_fc, r11
1126 # CHECK: msr  CPSR_fsx, r12
1127 # CHECK: msr  SPSR_fc, r0
1128 # CHECK: msr  SPSR_fsxc, r5
1129 # CHECK: msr  CPSR_fsxc, r8
1130
1131 0x81 0xf3 0x00 0x88
1132 0x82 0xf3 0x00 0x84
1133 0x83 0xf3 0x00 0x88
1134 0x84 0xf3 0x00 0x88
1135 0x85 0xf3 0x00 0x8c
1136 0x86 0xf3 0x00 0x89
1137 0x87 0xf3 0x00 0x81
1138 0x88 0xf3 0x00 0x82
1139 0x89 0xf3 0x00 0x89
1140 0x8b 0xf3 0x00 0x89
1141 0x8c 0xf3 0x00 0x8e
1142 0x90 0xf3 0x00 0x89
1143 0x95 0xf3 0x00 0x8f
1144 0x88 0xf3 0x00 0x8f
1145
1146
1147 #------------------------------------------------------------------------------
1148 # MUL
1149 #------------------------------------------------------------------------------
1150 # CHECK: muls r3, r4, r3
1151 # CHECK: mul r3, r4, r3
1152 # CHECK: mul r3, r4, r6
1153 # CHECK: it eq
1154 # CHECK: muleq r3, r4, r5
1155
1156 0x63 0x43
1157 0x04 0xfb 0x03 0xf3
1158 0x04 0xfb 0x06 0xf3
1159 0x08 0xbf
1160 0x04 0xfb 0x05 0xf3
1161
1162
1163 #------------------------------------------------------------------------------
1164 # MVN(immediate)
1165 #------------------------------------------------------------------------------
1166 # CHECK: mvns r8, #21
1167 # CHECK: mvn r0, #66846720
1168 # CHECK: mvns r0, #66846720
1169 # CHECK: itte eq
1170 # CHECK: mvnseq r1, #12
1171 # CHECK: mvneq r1, #12
1172 # CHECK: mvnne r1, #12
1173
1174 0x7f 0xf0 0x15 0x08
1175 0x6f 0xf0 0x7f 0x70
1176 0x7f 0xf0 0x7f 0x70
1177 0x06 0xbf
1178 0x7f 0xf0 0x0c 0x01
1179 0x6f 0xf0 0x0c 0x01
1180 0x6f 0xf0 0x0c 0x01
1181
1182
1183 #------------------------------------------------------------------------------
1184 # MVN(register)
1185 #------------------------------------------------------------------------------
1186 # CHECK: mvn.w r2, r3
1187 # CHECK: mvns r2, r3
1188 # CHECK: mvn.w r5, r6, lsl #19
1189 # CHECK: mvn.w r5, r6, lsr #9
1190 # CHECK: mvn.w r5, r6, asr #4
1191 # CHECK: mvn.w r5, r6, ror #6
1192 # CHECK: mvn.w r5, r6, rrx
1193 # CHECK: it eq
1194 # CHECK: mvneq r2, r3
1195
1196 0x6f 0xea 0x03 0x02
1197 0xda 0x43
1198 0x6f 0xea 0xc6 0x45
1199 0x6f 0xea 0x56 0x25
1200 0x6f 0xea 0x26 0x15
1201 0x6f 0xea 0xb6 0x15
1202 0x6f 0xea 0x36 0x05
1203 0x08 0xbf
1204 0xda 0x43
1205
1206 #------------------------------------------------------------------------------
1207 # NOP
1208 #------------------------------------------------------------------------------
1209 # CHECK: nop.w
1210
1211 0xaf 0xf3 0x00 0x80
1212
1213
1214 #------------------------------------------------------------------------------
1215 # ORN
1216 #------------------------------------------------------------------------------
1217 # CHECK: orn r4, r5, #61440
1218 # CHECK: orn r4, r5, r6
1219 # CHECK: orns r4, r5, r6
1220 # CHECK: orn r4, r5, r6, lsl #5
1221 # CHECK: orns r4, r5, r6, lsr #5
1222 # CHECK: orn r4, r5, r6, lsr #5
1223 # CHECK: orns r4, r5, r6, asr #5
1224 # CHECK: orn r4, r5, r6, ror #5
1225
1226 0x65 0xf4 0x70 0x44
1227 0x65 0xea 0x06 0x04
1228 0x75 0xea 0x06 0x04
1229 0x65 0xea 0x46 0x14
1230 0x75 0xea 0x56 0x14
1231 0x65 0xea 0x56 0x14
1232 0x75 0xea 0x66 0x14
1233 0x65 0xea 0x76 0x14
1234
1235
1236 #------------------------------------------------------------------------------
1237 # ORR
1238 #------------------------------------------------------------------------------
1239 # CHECK: orr r4, r5, #61440
1240 # CHECK: orr.w r4, r5, r6
1241 # CHECK: orr.w r4, r5, r6, lsl #5
1242 # CHECK: orrs.w r4, r5, r6, lsr #5
1243 # CHECK: orr.w r4, r5, r6, lsr #5
1244 # CHECK: orrs.w r4, r5, r6, asr #5
1245 # CHECK: orr.w r4, r5, r6, ror #5
1246
1247 0x45 0xf4 0x70 0x44
1248 0x45 0xea 0x06 0x04
1249 0x45 0xea 0x46 0x14
1250 0x55 0xea 0x56 0x14
1251 0x45 0xea 0x56 0x14
1252 0x55 0xea 0x66 0x14
1253 0x45 0xea 0x76 0x14
1254
1255
1256 #------------------------------------------------------------------------------
1257 # PKH
1258 #------------------------------------------------------------------------------
1259 # CHECK: pkhbt r2, r2, r3
1260 # CHECK: pkhbt r2, r2, r3, lsl #31
1261 # CHECK: pkhbt r2, r2, r3, lsl #15
1262
1263 # CHECK: pkhtb r2, r2, r3, asr #31
1264 # CHECK: pkhtb r2, r2, r3, asr #15
1265
1266 0xc2 0xea 0x03 0x02
1267 0xc2 0xea 0xc3 0x72
1268 0xc2 0xea 0xc3 0x32
1269
1270 0xc2 0xea 0xe3 0x72
1271 0xc2 0xea 0xe3 0x32
1272
1273
1274 #------------------------------------------------------------------------------
1275 # PLD(immediate)
1276 #------------------------------------------------------------------------------
1277 # CHECK: pld [r5, #-4]
1278 # CHECK: pld [r6, #32]
1279 # CHECK: pld [r6, #33]
1280 # CHECK: pld [r6, #257]
1281 # CHECK: pld [r7, #257]
1282
1283 0x15 0xf8 0x04 0xfc
1284 0x96 0xf8 0x20 0xf0
1285 0x96 0xf8 0x21 0xf0
1286 0x96 0xf8 0x01 0xf1
1287 0x97 0xf8 0x01 0xf1
1288
1289 #------------------------------------------------------------------------------
1290 # PLD(register)
1291 #------------------------------------------------------------------------------
1292 # CHECK: pld [r8, r1]
1293 # CHECK: pld [r5, r2]
1294 # CHECK: pld [r0, r2, lsl #3]
1295 # CHECK: pld [r8, r2, lsl #2]
1296 # CHECK: pld [sp, r2, lsl #1]
1297 # CHECK: pld [sp, r2]
1298
1299 0x18 0xf8 0x01 0xf0
1300 0x15 0xf8 0x02 0xf0
1301 0x10 0xf8 0x32 0xf0
1302 0x18 0xf8 0x22 0xf0
1303 0x1d 0xf8 0x12 0xf0
1304 0x1d 0xf8 0x02 0xf0
1305
1306 #------------------------------------------------------------------------------
1307 # PLD(literal)
1308 #------------------------------------------------------------------------------
1309 # CHECK: pld [pc, #-0]
1310 # CHECK: pld [pc, #455]
1311 # CHECK: pld [pc, #0]
1312
1313 0x1f 0xf8 0x00 0xf0
1314 0x9f 0xf8 0xc7 0xf1
1315 0x9f 0xf8 0x00 0xf0
1316
1317 #------------------------------------------------------------------------------
1318 # PLI(immediate)
1319 #------------------------------------------------------------------------------
1320 # CHECK: pli [r5, #-4]
1321 # CHECK: pli [r6, #32]
1322 # CHECK: pli [r6, #33]
1323 # CHECK: pli [r6, #257]
1324 # CHECK: pli [r7, #257]
1325
1326 0x15 0xf9 0x04 0xfc
1327 0x96 0xf9 0x20 0xf0
1328 0x96 0xf9 0x21 0xf0
1329 0x96 0xf9 0x01 0xf1
1330 0x97 0xf9 0x01 0xf1
1331
1332 #------------------------------------------------------------------------------
1333 # PLI(register)
1334 #------------------------------------------------------------------------------
1335 # CHECK: pli [r8, r1]
1336 # CHECK: pli [r5, r2]
1337 # CHECK: pli [r0, r2, lsl #3]
1338 # CHECK: pli [r8, r2, lsl #2]
1339 # CHECK: pli [sp, r2, lsl #1]
1340 # CHECK: pli [sp, r2]
1341
1342 0x18 0xf9 0x01 0xf0
1343 0x15 0xf9 0x02 0xf0
1344 0x10 0xf9 0x32 0xf0
1345 0x18 0xf9 0x22 0xf0
1346 0x1d 0xf9 0x12 0xf0
1347 0x1d 0xf9 0x02 0xf0
1348
1349 #------------------------------------------------------------------------------
1350 # PLI(literal)
1351 #------------------------------------------------------------------------------
1352 # CHECK: pli [pc, #-0]
1353 # CHECK: pli [pc, #-328]
1354 # CHECK: pli [pc, #0]
1355
1356 0x1f 0xf9 0x00 0xf0
1357 0x1f 0xf9 0x48 0xf1
1358 0x9f 0xf9 0x00 0xf0
1359
1360
1361 #------------------------------------------------------------------------------
1362 # QADD/QADD16/QADD8
1363 #------------------------------------------------------------------------------
1364 # CHECK: qadd r1, r2, r3
1365 # CHECK: qadd16 r1, r2, r3
1366 # CHECK: qadd8 r1, r2, r3
1367 # CHECK: itte gt
1368 # CHECK: qaddgt r1, r2, r3
1369 # CHECK: qadd16gt r1, r2, r3
1370 # CHECK: qadd8le r1, r2, r3
1371
1372 0x83 0xfa 0x82 0xf1
1373 0x92 0xfa 0x13 0xf1
1374 0x82 0xfa 0x13 0xf1
1375 0xc6 0xbf
1376 0x83 0xfa 0x82 0xf1
1377 0x92 0xfa 0x13 0xf1
1378 0x82 0xfa 0x13 0xf1
1379
1380
1381 #------------------------------------------------------------------------------
1382 # QDADD/QDSUB
1383 #------------------------------------------------------------------------------
1384 # CHECK: qdadd r6, r7, r8
1385 # CHECK: qdsub r6, r7, r8
1386 # CHECK: itt hi
1387 # CHECK: qdaddhi r6, r7, r8
1388 # CHECK: qdsubhi r6, r7, r8
1389
1390 0x88 0xfa 0x97 0xf6
1391 0x88 0xfa 0xb7 0xf6
1392 0x84 0xbf
1393 0x88 0xfa 0x97 0xf6
1394 0x88 0xfa 0xb7 0xf6
1395
1396
1397 #------------------------------------------------------------------------------
1398 # QSAX
1399 #------------------------------------------------------------------------------
1400 # CHECK: qsax r9, r12, r0
1401 # CHECK: it eq
1402 # CHECK: qsaxeq r9, r12, r0
1403
1404 0xec 0xfa 0x10 0xf9
1405 0x08 0xbf
1406 0xec 0xfa 0x10 0xf9
1407
1408
1409 #------------------------------------------------------------------------------
1410 # QSUB/QSUB16/QSUB8
1411 #------------------------------------------------------------------------------
1412 # CHECK: qsub r1, r2, r3
1413 # CHECK: qsub16 r1, r2, r3
1414 # CHECK: qsub8 r1, r2, r3
1415 # CHECK: itet le
1416 # CHECK: qsuble r1, r2, r3
1417 # CHECK: qsub16gt r1, r2, r3
1418 # CHECK: qsub8le r1, r2, r3
1419
1420 0x83 0xfa 0xa2 0xf1
1421 0xd2 0xfa 0x13 0xf1
1422 0xc2 0xfa 0x13 0xf1
1423 0xd6 0xbf
1424 0x83 0xfa 0xa2 0xf1
1425 0xd2 0xfa 0x13 0xf1
1426 0xc2 0xfa 0x13 0xf1
1427
1428
1429 #------------------------------------------------------------------------------
1430 # RBIT
1431 #------------------------------------------------------------------------------
1432 # CHECK: rbit r1, r2
1433 # CHECK: it ne
1434 # CHECK: rbitne r1, r2
1435
1436 0x92 0xfa 0xa2 0xf1
1437 0x18 0xbf
1438 0x92 0xfa 0xa2 0xf1
1439
1440
1441 #------------------------------------------------------------------------------
1442 # REV
1443 #------------------------------------------------------------------------------
1444 # CHECK: rev.w r1, r2
1445 # CHECK: rev.w r2, r8
1446 # CHECK: itt ne
1447 # CHECK: revne r1, r2
1448 # CHECK: revne.w r1, r8
1449
1450 0x92 0xfa 0x82 0xf1
1451 0x98 0xfa 0x88 0xf2
1452 0x1c 0xbf
1453 0x11 0xba
1454 0x98 0xfa 0x88 0xf1
1455
1456
1457 #------------------------------------------------------------------------------
1458 # REV16
1459 #------------------------------------------------------------------------------
1460 # CHECK: rev16.w r1, r2
1461 # CHECK: rev16.w r2, r8
1462 # CHECK: itt ne
1463 # CHECK: rev16ne r1, r2
1464 # CHECK: rev16ne.w r1, r8
1465
1466 0x92 0xfa 0x92 0xf1
1467 0x98 0xfa 0x98 0xf2
1468 0x1c 0xbf
1469 0x51 0xba
1470 0x98 0xfa 0x98 0xf1
1471
1472
1473 #------------------------------------------------------------------------------
1474 # REVSH
1475 #------------------------------------------------------------------------------
1476 # CHECK: revsh.w r1, r2
1477 # CHECK: revsh.w r2, r8
1478 # CHECK: itt ne
1479 # CHECK: revshne r1, r2
1480 # CHECK: revshne.w r1, r8
1481
1482 0x92 0xfa 0xb2 0xf1
1483 0x98 0xfa 0xb8 0xf2
1484 0x1c 0xbf
1485 0xd1 0xba
1486 0x98 0xfa 0xb8 0xf1
1487
1488
1489 #------------------------------------------------------------------------------
1490 # ROR (immediate)
1491 #------------------------------------------------------------------------------
1492 # CHECK: ror.w r2, r3, #12
1493 # CHECK: rors.w r8, r3, #31
1494 # CHECK: rors.w r2, r3, #1
1495 # CHECK: ror.w r2, r3, #4
1496 # CHECK: rors.w r2, r12, #15
1497
1498 # CHECK: ror.w r3, r3, #19
1499 # CHECK: rors.w r8, r8, #2
1500 # CHECK: rors.w r7, r7, #5
1501 # CHECK: ror.w r12, r12, #21
1502
1503 0x4f 0xea 0x33 0x32
1504 0x5f 0xea 0xf3 0x78
1505 0x5f 0xea 0x73 0x02
1506 0x4f 0xea 0x33 0x12
1507 0x5f 0xea 0xfc 0x32
1508
1509 0x4f 0xea 0xf3 0x43
1510 0x5f 0xea 0xb8 0x08
1511 0x5f 0xea 0x77 0x17
1512 0x4f 0xea 0x7c 0x5c
1513
1514
1515 #------------------------------------------------------------------------------
1516 # ROR (register)
1517 #------------------------------------------------------------------------------
1518 # CHECK: ror.w r3, r4, r2
1519 # CHECK: ror.w r1, r1, r2
1520 # CHECK: rors.w r3, r4, r8
1521
1522 0x64 0xfa 0x02 0xf3
1523 0x61 0xfa 0x02 0xf1
1524 0x74 0xfa 0x08 0xf3
1525
1526
1527 #------------------------------------------------------------------------------
1528 # RRX
1529 #------------------------------------------------------------------------------
1530 # CHECK: rrx r1, r2
1531 # CHECK: rrxs r1, r2
1532 # CHECK: ite lt
1533 # CHECK: rrxlt r9, r12
1534 # CHECK: rrxsge r8, r3
1535
1536 0x4f 0xea 0x32 0x01
1537 0x5f 0xea 0x32 0x01
1538 0xb4 0xbf
1539 0x4f 0xea 0x3c 0x09
1540 0x5f 0xea 0x33 0x08
1541
1542 #------------------------------------------------------------------------------
1543 # RSB (immediate)
1544 #------------------------------------------------------------------------------
1545 # CHECK: rsb.w r2, r5, #1044480
1546 # CHECK: rsbs.w r3, r12, #15
1547 # CHECK: rsb.w r1, r1, #255
1548
1549 0xc5 0xf5 0x7f 0x22
1550 0xdc 0xf1 0x0f 0x03
1551 0xc1 0xf1 0xff 0x01
1552
1553
1554 #------------------------------------------------------------------------------
1555 # RSB (register)
1556 #------------------------------------------------------------------------------
1557 # CHECK: rsb r4, r4, r8
1558 # CHECK: rsb r4, r9, r8
1559 # CHECK: rsb r1, r4, r8, asr #3
1560 # CHECK: rsbs r2, r1, r7, lsl #1
1561
1562 0xc4 0xeb 0x08 0x04
1563 0xc9 0xeb 0x08 0x04
1564 0xc4 0xeb 0xe8 0x01
1565 0xd1 0xeb 0x47 0x02
1566
1567
1568 #------------------------------------------------------------------------------
1569 # SADD16
1570 #------------------------------------------------------------------------------
1571 # CHECK: sadd16 r3, r4, r8
1572 # CHECK: it ne
1573 # CHECK: sadd16ne r3, r4, r8
1574
1575 0x94 0xfa 0x08 0xf3
1576 0x18 0xbf
1577 0x94 0xfa 0x08 0xf3
1578
1579
1580 #------------------------------------------------------------------------------
1581 # SADD8
1582 #------------------------------------------------------------------------------
1583 # CHECK: sadd8 r3, r4, r8
1584 # CHECK: it ne
1585 # CHECK: sadd8ne r3, r4, r8
1586
1587 0x84 0xfa 0x08 0xf3
1588 0x18 0xbf
1589 0x84 0xfa 0x08 0xf3
1590
1591
1592 #------------------------------------------------------------------------------
1593 # SASX
1594 #------------------------------------------------------------------------------
1595 # CHECK: sasx r9, r2, r7
1596 # CHECK: it ne
1597 # CHECK: sasxne r2, r5, r6
1598
1599 0xa2 0xfa 0x07 0xf9
1600 0x18 0xbf
1601 0xa5 0xfa 0x06 0xf2
1602
1603
1604 #------------------------------------------------------------------------------
1605 # SBC (immediate)
1606 #------------------------------------------------------------------------------
1607 # CHECK: sbc r0, r1, #4
1608 # CHECK: sbcs r0, r1, #0
1609 # CHECK: sbc r1, r2, #255
1610 # CHECK: sbc r3, r7, #5570645
1611 # CHECK: sbc r8, r12, #2852170240
1612 # CHECK: sbc r9, r7, #2779096485
1613 # CHECK: sbc r5, r3, #2264924160
1614 # CHECK: sbc r4, r2, #2139095040
1615 # CHECK: sbc r4, r2, #1664
1616
1617 0x61 0xf1 0x04 0x00
1618 0x71 0xf1 0x00 0x00
1619 0x62 0xf1 0xff 0x01
1620 0x67 0xf1 0x55 0x13
1621 0x6c 0xf1 0xaa 0x28
1622 0x67 0xf1 0xa5 0x39
1623 0x63 0xf1 0x07 0x45
1624 0x62 0xf1 0xff 0x44
1625 0x62 0xf5 0xd0 0x64
1626
1627
1628 #------------------------------------------------------------------------------
1629 # SBC (register)
1630 #------------------------------------------------------------------------------
1631 # CHECK: sbc.w r4, r5, r6
1632 # CHECK: sbcs.w r4, r5, r6
1633 # CHECK: sbc.w r9, r1, r3
1634 # CHECK: sbcs.w r9, r1, r3
1635 # CHECK: sbc.w r0, r1, r3, ror #4
1636 # CHECK: sbcs.w r0, r1, r3, lsl #7
1637 # CHECK: sbc.w r0, r1, r3, lsr #31
1638 # CHECK: sbcs.w r0, r1, r3, asr #32
1639
1640 0x65 0xeb 0x06 0x04
1641 0x75 0xeb 0x06 0x04
1642 0x61 0xeb 0x03 0x09
1643 0x71 0xeb 0x03 0x09
1644 0x61 0xeb 0x33 0x10
1645 0x71 0xeb 0xc3 0x10
1646 0x61 0xeb 0xd3 0x70
1647 0x71 0xeb 0x23 0x00
1648
1649
1650 #------------------------------------------------------------------------------
1651 # SBFX
1652 #------------------------------------------------------------------------------
1653 # CHECK: sbfx r4, r5, #16, #1
1654 # CHECK: it gt
1655 # CHECK: sbfxgt r4, r5, #16, #16
1656
1657 0x45 0xf3 0x00 0x44
1658 0xc8 0xbf
1659 0x45 0xf3 0x0f 0x44
1660
1661
1662 #------------------------------------------------------------------------------
1663 # SEL
1664 #------------------------------------------------------------------------------
1665 # CHECK: sel r5, r9, r2
1666 # CHECK: it le
1667 # CHECK: selle r5, r9, r2
1668
1669 0xa9 0xfa 0x82 0xf5
1670 0xd8 0xbf
1671 0xa9 0xfa 0x82 0xf5
1672
1673
1674 #------------------------------------------------------------------------------
1675 # SEV
1676 #------------------------------------------------------------------------------
1677 # CHECK: sev.w
1678 # CHECK: it eq
1679 # CHECK: seveq.w
1680
1681 0xaf 0xf3 0x04 0x80
1682 0x08 0xbf
1683 0xaf 0xf3 0x04 0x80
1684
1685
1686 #------------------------------------------------------------------------------
1687 # SADD16/SADD8
1688 #------------------------------------------------------------------------------
1689 # CHECK: sadd16 r1, r2, r3
1690 # CHECK: sadd8 r1, r2, r3
1691 # CHECK: ite gt
1692 # CHECK: sadd16gt r1, r2, r3
1693 # CHECK: sadd8le r1, r2, r3
1694
1695 0x92 0xfa 0x03 0xf1
1696 0x82 0xfa 0x03 0xf1
1697 0xcc 0xbf
1698 0x92 0xfa 0x03 0xf1
1699 0x82 0xfa 0x03 0xf1
1700
1701
1702 #------------------------------------------------------------------------------
1703 # SHASX
1704 #------------------------------------------------------------------------------
1705 # CHECK: shasx r4, r8, r2
1706 # CHECK: it gt
1707 # CHECK: shasxgt r4, r8, r2
1708
1709 0xa8 0xfa 0x22 0xf4
1710 0xc8 0xbf
1711 0xa8 0xfa 0x22 0xf4
1712
1713
1714 #------------------------------------------------------------------------------
1715 # SHASX
1716 #------------------------------------------------------------------------------
1717 # CHECK: shsax r4, r8, r2
1718 # CHECK: it gt
1719 # CHECK: shsaxgt r4, r8, r2
1720
1721 0xe8 0xfa 0x22 0xf4
1722 0xc8 0xbf
1723 0xe8 0xfa 0x22 0xf4
1724
1725
1726 #------------------------------------------------------------------------------
1727 # SHSUB16/SHSUB8
1728 #------------------------------------------------------------------------------
1729 # CHECK: shsub16 r4, r8, r2
1730 # CHECK: shsub8 r4, r8, r2
1731 # CHECK: itt gt
1732 # CHECK: shsub16gt r4, r8, r2
1733 # CHECK: shsub8gt r4, r8, r2
1734
1735 0xd8 0xfa 0x22 0xf4
1736 0xc8 0xfa 0x22 0xf4
1737 0xc4 0xbf
1738 0xd8 0xfa 0x22 0xf4
1739 0xc8 0xfa 0x22 0xf4
1740
1741
1742 #------------------------------------------------------------------------------
1743 # SMLABB/SMLABT/SMLATB/SMLATT
1744 #------------------------------------------------------------------------------
1745 # CHECK: smlabb r3, r1, r9, r0
1746 # CHECK: smlabt r5, r6, r4, r1
1747 # CHECK: smlatb r4, r2, r3, r2
1748 # CHECK: smlatt r8, r3, r8, r4
1749 # CHECK: itete gt
1750 # CHECK: smlabbgt r3, r1, r9, r0
1751 # CHECK: smlabtle r5, r6, r4, r1
1752 # CHECK: smlatbgt r4, r2, r3, r2
1753 # CHECK: smlattle r8, r3, r8, r4
1754
1755 0x11 0xfb 0x09 0x03
1756 0x16 0xfb 0x14 0x15
1757 0x12 0xfb 0x23 0x24
1758 0x13 0xfb 0x38 0x48
1759 0xcb 0xbf
1760 0x11 0xfb 0x09 0x03
1761 0x16 0xfb 0x14 0x15
1762 0x12 0xfb 0x23 0x24
1763 0x13 0xfb 0x38 0x48
1764
1765
1766 #------------------------------------------------------------------------------
1767 # SMLAD/SMLADX
1768 #------------------------------------------------------------------------------
1769 # CHECK: smlad r2, r3, r5, r8
1770 # CHECK: smladx r2, r3, r5, r8
1771 # CHECK: itt hi
1772 # CHECK: smladhi r2, r3, r5, r8
1773 # CHECK: smladxhi r2, r3, r5, r8
1774
1775 0x23 0xfb 0x05 0x82
1776 0x23 0xfb 0x15 0x82
1777 0x84 0xbf
1778 0x23 0xfb 0x05 0x82
1779 0x23 0xfb 0x15 0x82
1780
1781
1782 #------------------------------------------------------------------------------
1783 # SMLAL
1784 #------------------------------------------------------------------------------
1785 # CHECK: smlal r2, r3, r5, r8
1786 # CHECK: it eq
1787 # CHECK: smlaleq r2, r3, r5, r8
1788
1789 0xc5 0xfb 0x08 0x23
1790 0x08 0xbf
1791 0xc5 0xfb 0x08 0x23
1792
1793
1794 #------------------------------------------------------------------------------
1795 # SMLALBB/SMLALBT/SMLALTB/SMLALTT
1796 #------------------------------------------------------------------------------
1797 # CHECK: smlalbb r3, r1, r9, r0
1798 # CHECK: smlalbt r5, r6, r4, r1
1799 # CHECK: smlaltb r4, r2, r3, r2
1800 # CHECK: smlaltt r8, r3, r8, r4
1801 # CHECK: iteet ge
1802 # CHECK: smlalbbge r3, r1, r9, r0
1803 # CHECK: smlalbtlt r5, r6, r4, r1
1804 # CHECK: smlaltblt r4, r2, r3, r2
1805 # CHECK: smlalttge r8, r3, r8, r4
1806
1807 0xc9 0xfb 0x80 0x31
1808 0xc4 0xfb 0x91 0x56
1809 0xc3 0xfb 0xa2 0x42
1810 0xc8 0xfb 0xb4 0x83
1811 0xad 0xbf
1812 0xc9 0xfb 0x80 0x31
1813 0xc4 0xfb 0x91 0x56
1814 0xc3 0xfb 0xa2 0x42
1815 0xc8 0xfb 0xb4 0x83
1816
1817 #------------------------------------------------------------------------------
1818 # SMLALD/SMLALDX
1819 #------------------------------------------------------------------------------
1820 # CHECK: smlald r2, r3, r5, r8
1821 # CHECK: smlaldx r2, r3, r5, r8
1822 # CHECK: ite eq
1823 # CHECK: smlaldeq r2, r3, r5, r8
1824 # CHECK: smlaldxne r2, r3, r5, r8
1825
1826 0xc5 0xfb 0xc8 0x23
1827 0xc5 0xfb 0xd8 0x23
1828 0x0c 0xbf
1829 0xc5 0xfb 0xc8 0x23
1830 0xc5 0xfb 0xd8 0x23
1831
1832
1833 #------------------------------------------------------------------------------
1834 # SMLAWB/SMLAWT
1835 #------------------------------------------------------------------------------
1836 # CHECK: smlawb r2, r3, r10, r8
1837 # CHECK: smlawt r8, r3, r5, r9
1838 # CHECK: ite eq
1839 # CHECK: smlawbeq r2, r7, r5, r8
1840 # CHECK: smlawtne r1, r3, r0, r8
1841
1842 0x33 0xfb 0x0a 0x82
1843 0x33 0xfb 0x15 0x98
1844 0x0c 0xbf
1845 0x37 0xfb 0x05 0x82
1846 0x33 0xfb 0x10 0x81
1847
1848
1849 #------------------------------------------------------------------------------
1850 # SMLSD/SMLSDX
1851 #------------------------------------------------------------------------------
1852 # CHECK: smlsd r2, r3, r5, r8
1853 # CHECK: smlsdx r2, r3, r5, r8
1854 # CHECK: ite le
1855 # CHECK: smlsdle r2, r3, r5, r8
1856 # CHECK: smlsdxgt r2, r3, r5, r8
1857
1858 0x43 0xfb 0x05 0x82
1859 0x43 0xfb 0x15 0x82
1860 0xd4 0xbf
1861 0x43 0xfb 0x05 0x82
1862 0x43 0xfb 0x15 0x82
1863
1864
1865 #------------------------------------------------------------------------------
1866 # SMLSLD/SMLSLDX
1867 #------------------------------------------------------------------------------
1868 # CHECK: smlsld r2, r9, r5, r1
1869 # CHECK: smlsldx r4, r11, r2, r8
1870 # CHECK: ite ge
1871 # CHECK: smlsldge r8, r2, r5, r6
1872 # CHECK: smlsldxlt r1, r0, r3, r8
1873
1874 0xd5 0xfb 0xc1 0x29
1875 0xd2 0xfb 0xd8 0x4b
1876 0xac 0xbf
1877 0xd5 0xfb 0xc6 0x82
1878 0xd3 0xfb 0xd8 0x10
1879
1880
1881 #------------------------------------------------------------------------------
1882 # SMMLA/SMMLAR
1883 #------------------------------------------------------------------------------
1884 # CHECK: smmla r1, r2, r3, r4
1885 # CHECK: smmlar r4, r3, r2, r1
1886 # CHECK: ite lo
1887 # CHECK: smmlalo r1, r2, r3, r4
1888 # CHECK: smmlarhs r4, r3, r2, r1
1889
1890 0x52 0xfb 0x03 0x41
1891 0x53 0xfb 0x12 0x14
1892 0x34 0xbf
1893 0x52 0xfb 0x03 0x41
1894 0x53 0xfb 0x12 0x14
1895
1896
1897 #------------------------------------------------------------------------------
1898 # SMMLS/SMMLSR
1899 #------------------------------------------------------------------------------
1900 # CHECK: smmls r1, r2, r3, r4
1901 # CHECK: smmlsr r4, r3, r2, r1
1902 # CHECK: ite lo
1903 # CHECK: smmlslo r1, r2, r3, r4
1904 # CHECK: smmlsrhs r4, r3, r2, r1
1905
1906 0x62 0xfb 0x03 0x41
1907 0x63 0xfb 0x12 0x14
1908 0x34 0xbf
1909 0x62 0xfb 0x03 0x41
1910 0x63 0xfb 0x12 0x14
1911
1912 #------------------------------------------------------------------------------
1913 # SSAT
1914 #------------------------------------------------------------------------------
1915 # CHECK: ssat r9, #30, r0, asr #2
1916
1917 0x20 0xf3 0x9d 0x09
1918
1919 #------------------------------------------------------------------------------
1920 # STR (immediate)
1921 #------------------------------------------------------------------------------
1922 # CHECK: str r10, [r11], #0
1923
1924 0x4b 0xf8 0x00 0xab
1925
1926 #------------------------------------------------------------------------------
1927 # STRD (immediate)
1928 #------------------------------------------------------------------------------
1929 # CHECK: strd r6, r3, [r5], #-8
1930 # CHECK: strd r8, r5, [r5], #-0
1931 # CHECK: strd r7, r4, [r5], #-4
1932 # CHECK: strd r0, r1, [r2, #-0]!
1933 # CHECK: strd r0, r1, [r2, #0]!
1934 # CHECK: strd r0, r1, [r2, #-0]
1935
1936 0x65 0xe8 0x02 0x63
1937 0x65 0xe8 0x00 0x85
1938 0x65 0xe8 0x01 0x74
1939 0x62 0xe9 0x00 0x01
1940 0xe2 0xe9 0x00 0x01
1941 0x42 0xe9 0x00 0x01
1942
1943 #------------------------------------------------------------------------------
1944 # STREX/STREXB/STREXH/STREXD
1945 #------------------------------------------------------------------------------
1946 # CHECK: strex r1, r8, [r4]
1947 # CHECK: strex r8, r2, [r4]
1948 # CHECK: strex r2, r12, [sp, #128]
1949 # CHECK: strexb r5, r1, [r7]
1950 # CHECK: strexh r9, r7, [r12]
1951 # CHECK: strexd r9, r3, r6, [r4]
1952
1953 0x44 0xe8 0x00 0x81
1954 0x44 0xe8 0x00 0x28
1955 0x4d 0xe8 0x20 0xc2
1956 0xc7 0xe8 0x45 0x1f
1957 0xcc 0xe8 0x59 0x7f
1958 0xc4 0xe8 0x79 0x36
1959
1960
1961 #------------------------------------------------------------------------------
1962 # STRH(immediate)
1963 #------------------------------------------------------------------------------
1964 # CHECK: strh r5, [r5, #-4]
1965 # CHECK: strh r5, [r6, #32]
1966 # CHECK: strh.w r5, [r6, #33]
1967 # CHECK: strh.w r5, [r6, #257]
1968 # CHECK: strh.w lr, [r7, #257]
1969 # CHECK: strh r5, [r8, #255]!
1970 # CHECK: strh r2, [r5, #4]!
1971 # CHECK: strh r1, [r4, #-4]!
1972 # CHECK: strh r1, [r4, #0]!
1973 # CHECK: strh lr, [r3], #255
1974 # CHECK: strh r9, [r2], #4
1975 # CHECK: strh r3, [sp], #-4
1976
1977 0x25 0xf8 0x04 0x5c
1978 0x35 0x84
1979 0xa6 0xf8 0x21 0x50
1980 0xa6 0xf8 0x01 0x51
1981 0xa7 0xf8 0x01 0xe1
1982 0x28 0xf8 0xff 0x5f
1983 0x25 0xf8 0x04 0x2f
1984 0x24 0xf8 0x04 0x1d
1985 0x24 0xf8 0x00 0x1f
1986 0x23 0xf8 0xff 0xeb
1987 0x22 0xf8 0x04 0x9b
1988 0x2d 0xf8 0x04 0x39
1989
1990
1991 #------------------------------------------------------------------------------
1992 # STRH(register)
1993 #------------------------------------------------------------------------------
1994 # CHECK: strh.w r1, [r8, r1]
1995 # CHECK: strh.w r4, [r5, r2]
1996 # CHECK: strh.w r6, [r0, r2, lsl #3]
1997 # CHECK: strh.w r8, [r8, r2, lsl #2]
1998 # CHECK: strh.w r7, [sp, r2, lsl #1]
1999 # CHECK: strh.w r7, [sp, r2]
2000
2001 0x28 0xf8 0x01 0x10
2002 0x25 0xf8 0x02 0x40
2003 0x20 0xf8 0x32 0x60
2004 0x28 0xf8 0x22 0x80
2005 0x2d 0xf8 0x12 0x70
2006 0x2d 0xf8 0x02 0x70
2007
2008
2009 #------------------------------------------------------------------------------
2010 # STRHT
2011 #------------------------------------------------------------------------------
2012 # CHECK: strht r1, [r2]
2013 # CHECK: strht r1, [r8]
2014 # CHECK: strht r1, [r8, #3]
2015 # CHECK: strht r1, [r8, #255]
2016
2017 0x22 0xf8 0x00 0x1e
2018 0x28 0xf8 0x00 0x1e
2019 0x28 0xf8 0x03 0x1e
2020 0x28 0xf8 0xff 0x1e
2021
2022
2023 #------------------------------------------------------------------------------
2024 # STRT
2025 #------------------------------------------------------------------------------
2026 # CHECK: strt r1, [r2]
2027 # CHECK: strt r1, [r8]
2028 # CHECK: strt r1, [r8, #3]
2029 # CHECK: strt r1, [r8, #255]
2030
2031 0x42 0xf8 0x00 0x1e
2032 0x48 0xf8 0x00 0x1e
2033 0x48 0xf8 0x03 0x1e
2034 0x48 0xf8 0xff 0x1e
2035
2036
2037 #------------------------------------------------------------------------------
2038 # SUB (immediate)
2039 #------------------------------------------------------------------------------
2040 # CHECK: itet eq
2041 # CHECK: subeq r1, r2, #4
2042 # CHECK: subwne r5, r3, #1023
2043 # CHECK: subweq r4, r5, #293
2044 # CHECK: sub.w r2, sp, #1024
2045 # CHECK: sub.w r2, r8, #65280
2046 # CHECK: subw r2, r3, #257
2047 # CHECK: sub.w r12, r6, #256
2048 # CHECK: subw r12, r6, #256
2049 # CHECK: subs.w r1, r2, #496
2050
2051 0x0a 0xbf
2052 0x11 0x1f
2053 0xa3 0xf2 0xff 0x35
2054 0xa5 0xf2 0x25 0x14
2055 0xad 0xf5 0x80 0x62
2056 0xa8 0xf5 0x7f 0x42
2057 0xa3 0xf2 0x01 0x12
2058 0xa6 0xf5 0x80 0x7c
2059 0xa6 0xf2 0x00 0x1c
2060 0xb2 0xf5 0xf8 0x71
2061
2062
2063 #------------------------------------------------------------------------------
2064 # SUB (register)
2065 #------------------------------------------------------------------------------
2066 # CHECK: sub.w r4, r5, r6
2067 # CHECK: sub.w r4, r5, r6, lsl #5
2068 # CHECK: sub.w r4, r5, r6, lsr #5
2069 # CHECK: sub.w r4, r5, r6, lsr #5
2070 # CHECK: sub.w r4, r5, r6, asr #5
2071 # CHECK: sub.w r4, r5, r6, ror #5
2072 # CHECK: sub.w r5, r2, r12, rrx
2073
2074 0xa5 0xeb 0x06 0x04
2075 0xa5 0xeb 0x46 0x14
2076 0xa5 0xeb 0x56 0x14
2077 0xa5 0xeb 0x56 0x14
2078 0xa5 0xeb 0x66 0x14
2079 0xa5 0xeb 0x76 0x14
2080 0xa2 0xeb 0x3c 0x05
2081
2082
2083 #------------------------------------------------------------------------------
2084 # SVC
2085 #------------------------------------------------------------------------------
2086 # CHECK: svc #0
2087 # CHECK: ite eq
2088 # CHECK: svceq #255
2089 # CHECK: svcne #33
2090
2091 0x00 0xdf
2092 0x0c 0xbf
2093 0xff 0xdf
2094 0x21 0xdf
2095
2096 #------------------------------------------------------------------------------
2097 # SXTAB
2098 #------------------------------------------------------------------------------
2099 # CHECK:  sxtab r2, r3, r4
2100 # CHECK:  sxtab r4, r5, r6
2101 # CHECK:  it lt
2102 # CHECK:  sxtablt r6, r2, r9, ror #8
2103 # CHECK:  sxtab r5, r1, r4, ror #16
2104 # CHECK:  sxtab r7, r8, r3, ror #24
2105
2106 0x43 0xfa 0x84 0xf2
2107 0x45 0xfa 0x86 0xf4
2108 0xb8 0xbf
2109 0x42 0xfa 0x99 0xf6
2110 0x41 0xfa 0xa4 0xf5
2111 0x48 0xfa 0xb3 0xf7
2112
2113
2114 #------------------------------------------------------------------------------
2115 # SXTAB16
2116 #------------------------------------------------------------------------------
2117 # CHECK:  sxtab16 r6, r2, r7
2118 # CHECK:  sxtab16 r3, r5, r8, ror #8
2119 # CHECK:  sxtab16 r3, r2, r1, ror #16
2120 # CHECK:  ite ne
2121 # CHECK:  sxtab16ne r0, r1, r4
2122 # CHECK:  sxtab16eq r1, r2, r3, ror #24
2123
2124 0x22 0xfa 0x87 0xf6
2125 0x25 0xfa 0x98 0xf3
2126 0x22 0xfa 0xa1 0xf3
2127 0x14 0xbf
2128 0x21 0xfa 0x84 0xf0
2129 0x22 0xfa 0xb3 0xf1
2130
2131
2132 #------------------------------------------------------------------------------
2133 # SXTAH
2134 #------------------------------------------------------------------------------
2135 # CHECK:  sxtah r1, r3, r9
2136 # CHECK:  sxtah r3, r8, r3, ror #8
2137 # CHECK:  sxtah r9, r3, r3, ror #24
2138 # CHECK:  ite hi
2139 # CHECK:  sxtahhi r6, r1, r6
2140 # CHECK:  sxtahls r2, r2, r4, ror #16
2141
2142 0x03 0xfa 0x89 0xf1
2143 0x08 0xfa 0x93 0xf3
2144 0x03 0xfa 0xb3 0xf9
2145 0x8c 0xbf
2146 0x01 0xfa 0x86 0xf6
2147 0x02 0xfa 0xa4 0xf2
2148
2149
2150 #------------------------------------------------------------------------------
2151 # SXTB
2152 #------------------------------------------------------------------------------
2153 # CHECK:  sxtb r5, r6
2154 # CHECK:  sxtb.w r6, r9, ror #8
2155 # CHECK:  sxtb.w r8, r3, ror #24
2156 # CHECK:  ite ge
2157 # CHECK:  sxtbge r2, r4
2158 # CHECK:  sxtblt.w r5, r1, ror #16
2159
2160 0x75 0xb2
2161 0x4f 0xfa 0x99 0xf6
2162 0x4f 0xfa 0xb3 0xf8
2163 0xac 0xbf
2164 0x62 0xb2
2165 0x4f 0xfa 0xa1 0xf5
2166
2167
2168 #------------------------------------------------------------------------------
2169 # SXTB16
2170 #------------------------------------------------------------------------------
2171 # CHECK:  sxtb16 r1, r4
2172 # CHECK:  sxtb16 r6, r7
2173 # CHECK:  sxtb16 r3, r1, ror #16
2174 # CHECK:  ite hs
2175 # CHECK:  sxtb16hs r3, r5, ror #8
2176 # CHECK:  sxtb16lo r2, r3, ror #24
2177
2178 0x2f 0xfa 0x84 0xf1
2179 0x2f 0xfa 0x87 0xf6
2180 0x2f 0xfa 0xa1 0xf3
2181 0x2c 0xbf
2182 0x2f 0xfa 0x95 0xf3
2183 0x2f 0xfa 0xb3 0xf2
2184
2185
2186 #------------------------------------------------------------------------------
2187 # SXTH
2188 #------------------------------------------------------------------------------
2189 # CHECK:  sxth r1, r6
2190 # CHECK:  sxth.w r3, r8, ror #8
2191 # CHECK:  sxth.w r9, r3, ror #24
2192 # CHECK:  itt ne
2193 # CHECK:  sxthne.w r3, r9
2194 # CHECK:  sxthne.w r2, r2, ror #16
2195
2196 0x31 0xb2
2197 0x0f 0xfa 0x98 0xf3
2198 0x0f 0xfa 0xb3 0xf9
2199 0x1c 0xbf
2200 0x0f 0xfa 0x89 0xf3
2201 0x0f 0xfa 0xa2 0xf2
2202
2203
2204 #------------------------------------------------------------------------------
2205 # SXTB
2206 #------------------------------------------------------------------------------
2207 # CHECK:  sxtb r5, r6
2208 # CHECK:  sxtb.w r6, r9, ror #8
2209 # CHECK:  sxtb.w r8, r3, ror #24
2210 # CHECK:  ite ge
2211 # CHECK:  sxtbge r2, r4
2212 # CHECK:  sxtblt.w r5, r1, ror #16
2213
2214 0x75 0xb2
2215 0x4f 0xfa 0x99 0xf6
2216 0x4f 0xfa 0xb3 0xf8
2217 0xac 0xbf
2218 0x62 0xb2
2219 0x4f 0xfa 0xa1 0xf5
2220
2221
2222 #------------------------------------------------------------------------------
2223 # SXTB16
2224 #------------------------------------------------------------------------------
2225 # CHECK:  sxtb16 r1, r4
2226 # CHECK:  sxtb16 r6, r7
2227 # CHECK:  sxtb16 r3, r1, ror #16
2228 # CHECK:  ite hs
2229 # CHECK:  sxtb16hs r3, r5, ror #8
2230 # CHECK:  sxtb16lo r2, r3, ror #24
2231
2232 0x2f 0xfa 0x84 0xf1
2233 0x2f 0xfa 0x87 0xf6
2234 0x2f 0xfa 0xa1 0xf3
2235 0x2c 0xbf
2236 0x2f 0xfa 0x95 0xf3
2237 0x2f 0xfa 0xb3 0xf2
2238
2239
2240 #------------------------------------------------------------------------------
2241 # SXTH
2242 #------------------------------------------------------------------------------
2243 # CHECK:  sxth r1, r6
2244 # CHECK:  sxth.w r3, r8, ror #8
2245 # CHECK:  sxth.w r9, r3, ror #24
2246 # CHECK:  itt ne
2247 # CHECK:  sxthne.w r3, r9
2248 # CHECK:  sxthne.w r2, r2, ror #16
2249
2250 0x31 0xb2
2251 0x0f 0xfa 0x98 0xf3
2252 0x0f 0xfa 0xb3 0xf9
2253 0x1c 0xbf
2254 0x0f 0xfa 0x89 0xf3
2255 0x0f 0xfa 0xa2 0xf2
2256
2257
2258 #------------------------------------------------------------------------------
2259 # TBB/TBH
2260 #------------------------------------------------------------------------------
2261 # CHECK:  tbb [r3, r8]
2262 # CHECK:  tbh [r3, r8, lsl #1]
2263 # CHECK:  it eq
2264 # CHECK:  tbbeq [r3, r8]
2265 # CHECK:  it hs
2266 # CHECK:  tbhhs [r3, r8, lsl #1]
2267
2268 0xd3 0xe8 0x08 0xf0
2269 0xd3 0xe8 0x18 0xf0
2270 0x08 0xbf
2271 0xd3 0xe8 0x08 0xf0
2272 0x28 0xbf
2273 0xd3 0xe8 0x18 0xf0
2274
2275
2276 #------------------------------------------------------------------------------
2277 # TEQ
2278 #------------------------------------------------------------------------------
2279 # CHECK:  teq.w r5, #61440
2280 # CHECK:  teq.w r4, r5
2281 # CHECK:  teq.w r4, r5, lsl #5
2282 # CHECK:  teq.w r4, r5, lsr #5
2283 # CHECK:  teq.w r4, r5, lsr #5
2284 # CHECK:  teq.w r4, r5, asr #5
2285 # CHECK:  teq.w r4, r5, ror #5
2286
2287 0x95 0xf4 0x70 0x4f
2288 0x94 0xea 0x05 0x0f
2289 0x94 0xea 0x45 0x1f
2290 0x94 0xea 0x55 0x1f
2291 0x94 0xea 0x55 0x1f
2292 0x94 0xea 0x65 0x1f
2293 0x94 0xea 0x75 0x1f
2294
2295
2296 #------------------------------------------------------------------------------
2297 # TST
2298 #------------------------------------------------------------------------------
2299 # CHECK:  tst.w r5, #61440
2300 # CHECK:  tst r2, r5
2301 # CHECK:  tst.w r3, r12, lsl #5
2302 # CHECK:  tst.w r4, r11, lsr #4
2303 # CHECK:  tst.w r5, r10, lsr #12
2304 # CHECK:  tst.w r6, r9, asr #30
2305 # CHECK:  tst.w r7, r8, ror #2
2306
2307 0x15 0xf4 0x70 0x4f
2308 0x2a 0x42
2309 0x13 0xea 0x4c 0x1f
2310 0x14 0xea 0x1b 0x1f
2311 0x15 0xea 0x1a 0x3f
2312 0x16 0xea 0xa9 0x7f
2313 0x17 0xea 0xb8 0x0f
2314
2315
2316 #------------------------------------------------------------------------------
2317 # UADD16/UADD8
2318 #------------------------------------------------------------------------------
2319 # CHECK:  uadd16 r1, r2, r3
2320 # CHECK:  uadd8 r1, r2, r3
2321 # CHECK:  ite gt
2322 # CHECK:  uadd16gt r1, r2, r3
2323 # CHECK:  uadd8le r1, r2, r3
2324
2325 0x92 0xfa 0x43 0xf1
2326 0x82 0xfa 0x43 0xf1
2327 0xcc 0xbf
2328 0x92 0xfa 0x43 0xf1
2329 0x82 0xfa 0x43 0xf1
2330
2331
2332 #------------------------------------------------------------------------------
2333 # UASX
2334 #------------------------------------------------------------------------------
2335 # CHECK:  uasx r9, r12, r0
2336 # CHECK:  it eq
2337 # CHECK:  uasxeq r9, r12, r0
2338 # CHECK:  uasx r9, r12, r0
2339 # CHECK:  it eq
2340 # CHECK:  uasxeq r9, r12, r0
2341
2342 0xac 0xfa 0x40 0xf9
2343 0x08 0xbf
2344 0xac 0xfa 0x40 0xf9
2345 0xac 0xfa 0x40 0xf9
2346 0x08 0xbf
2347 0xac 0xfa 0x40 0xf9
2348
2349
2350 #------------------------------------------------------------------------------
2351 # UBFX
2352 #------------------------------------------------------------------------------
2353 # CHECK:  ubfx r4, r5, #16, #1
2354 # CHECK:  it gt
2355 # CHECK:  ubfxgt r4, r5, #16, #16
2356
2357 0xc5 0xf3 0x00 0x44
2358 0xc8 0xbf
2359 0xc5 0xf3 0x0f 0x44
2360
2361
2362 #------------------------------------------------------------------------------
2363 # UHADD16/UHADD8
2364 #------------------------------------------------------------------------------
2365 # CHECK:  uhadd16 r4, r8, r2
2366 # CHECK:  uhadd8 r4, r8, r2
2367 # CHECK:  itt gt
2368 # CHECK:  uhadd16gt r4, r8, r2
2369 # CHECK:  uhadd8gt r4, r8, r2
2370
2371 0x98 0xfa 0x62 0xf4
2372 0x88 0xfa 0x62 0xf4
2373 0xc4 0xbf
2374 0x98 0xfa 0x62 0xf4
2375 0x88 0xfa 0x62 0xf4
2376
2377
2378 #------------------------------------------------------------------------------
2379 # UHASX/UHSAX
2380 #------------------------------------------------------------------------------
2381 # CHECK:  uhasx r4, r1, r5
2382 # CHECK:  uhsax r5, r6, r6
2383 # CHECK:  itt gt
2384 # CHECK:  uhasxgt r6, r9, r8
2385 # CHECK:  uhsaxgt r7, r8, r12
2386
2387 0xa1 0xfa 0x65 0xf4
2388 0xe6 0xfa 0x66 0xf5
2389 0xc4 0xbf
2390 0xa9 0xfa 0x68 0xf6
2391 0xe8 0xfa 0x6c 0xf7
2392
2393 #------------------------------------------------------------------------------
2394 # UHSUB16/UHSUB8
2395 #------------------------------------------------------------------------------
2396 # CHECK:  uhsub16 r5, r8, r3
2397 # CHECK:  uhsub8 r1, r7, r6
2398 # CHECK:  itt lt
2399 # CHECK:  uhsub16lt r4, r9, r12
2400 # CHECK:  uhsub8lt r3, r1, r5
2401
2402 0xd8 0xfa 0x63 0xf5
2403 0xc7 0xfa 0x66 0xf1
2404 0xbc 0xbf
2405 0xd9 0xfa 0x6c 0xf4
2406 0xc1 0xfa 0x65 0xf3
2407
2408
2409 #------------------------------------------------------------------------------
2410 # UMAAL
2411 #------------------------------------------------------------------------------
2412 # CHECK:  umaal r3, r4, r5, r6
2413 # CHECK:  it lt
2414 # CHECK:  umaallt r3, r4, r5, r6
2415
2416 0xe5 0xfb 0x66 0x34
2417 0xb8 0xbf
2418 0xe5 0xfb 0x66 0x34
2419
2420
2421 #------------------------------------------------------------------------------
2422 # UMLAL
2423 #------------------------------------------------------------------------------
2424 # CHECK:  umlal r2, r4, r6, r8
2425 # CHECK:  it gt
2426 # CHECK:  umlalgt r6, r1, r2, r6
2427
2428 0xe6 0xfb 0x08 0x24
2429 0xc8 0xbf
2430 0xe2 0xfb 0x06 0x61
2431
2432
2433 #------------------------------------------------------------------------------
2434 # UMULL
2435 #------------------------------------------------------------------------------
2436 # CHECK:  umull r2, r4, r6, r8
2437 # CHECK:  it gt
2438 # CHECK:  umullgt r6, r1, r2, r6
2439
2440 0xa6 0xfb 0x08 0x24
2441 0xc8 0xbf
2442 0xa2 0xfb 0x06 0x61
2443
2444
2445 #------------------------------------------------------------------------------
2446 # UQADD16/UQADD8
2447 #------------------------------------------------------------------------------
2448 # CHECK:  uqadd16 r1, r2, r3
2449 # CHECK:  uqadd8 r3, r4, r8
2450 # CHECK:  ite gt
2451 # CHECK:  uqadd16gt r4, r7, r9
2452 # CHECK:  uqadd8le r8, r1, r2
2453
2454 0x92 0xfa 0x53 0xf1
2455 0x84 0xfa 0x58 0xf3
2456 0xcc 0xbf
2457 0x97 0xfa 0x59 0xf4
2458 0x81 0xfa 0x52 0xf8
2459
2460
2461 #------------------------------------------------------------------------------
2462 # UQASX/UQSAX
2463 #------------------------------------------------------------------------------
2464 # CHECK:  uqasx r1, r2, r3
2465 # CHECK:  uqsax r3, r4, r8
2466 # CHECK:  ite gt
2467 # CHECK:  uqasxgt r4, r7, r9
2468 # CHECK:  uqsaxle r8, r1, r2
2469
2470 0xa2 0xfa 0x53 0xf1
2471 0xe4 0xfa 0x58 0xf3
2472 0xcc 0xbf
2473 0xa7 0xfa 0x59 0xf4
2474 0xe1 0xfa 0x52 0xf8
2475
2476
2477 #------------------------------------------------------------------------------
2478 # UQSUB16/UQSUB8
2479 #------------------------------------------------------------------------------
2480 # CHECK:  uqsub8 r8, r2, r9
2481 # CHECK:  uqsub16 r1, r9, r7
2482 # CHECK:  ite gt
2483 # CHECK:  uqsub8gt r3, r1, r6
2484 # CHECK:  uqsub16le r4, r6, r4
2485
2486 0xc2 0xfa 0x59 0xf8
2487 0xd9 0xfa 0x57 0xf1
2488 0xcc 0xbf
2489 0xc1 0xfa 0x56 0xf3
2490 0xd6 0xfa 0x54 0xf4
2491
2492
2493 #------------------------------------------------------------------------------
2494 # UQSUB16/UQSUB8
2495 #------------------------------------------------------------------------------
2496 # CHECK:  usad8 r1, r9, r7
2497 # CHECK:  usada8 r8, r2, r9, r12
2498 # CHECK:  ite gt
2499 # CHECK:  usada8gt r3, r1, r6, r9
2500 # CHECK:  usad8le r4, r6, r4
2501
2502 0x79 0xfb 0x07 0xf1
2503 0x72 0xfb 0x09 0xc8
2504 0xcc 0xbf
2505 0x71 0xfb 0x06 0x93
2506 0x76 0xfb 0x04 0xf4
2507
2508
2509 #------------------------------------------------------------------------------
2510 # USAT
2511 #------------------------------------------------------------------------------
2512 # CHECK:  usat r8, #1, r10
2513 # CHECK:  usat r8, #4, r10
2514 # CHECK:  usat r8, #5, r10, lsl #31
2515 # CHECK:  usat r8, #16, r10, asr #1
2516
2517 0x8a 0xf3 0x01 0x08
2518 0x8a 0xf3 0x04 0x08
2519 0x8a 0xf3 0xc5 0x78
2520 0xaa 0xf3 0x50 0x08
2521
2522
2523 #------------------------------------------------------------------------------
2524 # USAT16
2525 #------------------------------------------------------------------------------
2526 # CHECK:  usat16        r2, #2, r7
2527 # CHECK:  usat16        r3, #15, r5
2528
2529 0xa7 0xf3 0x02 0x02
2530 0xa5 0xf3 0x0f 0x03
2531
2532
2533 #------------------------------------------------------------------------------
2534 # USAX
2535 #------------------------------------------------------------------------------
2536 # CHECK:  usax r2, r3, r4
2537 # CHECK:  it ne
2538 # CHECK:  usaxne r6, r1, r9
2539 # CHECK:  usax r2, r3, r4
2540 # CHECK:  it ne
2541 # CHECK:  usaxne r6, r1, r9
2542
2543 0xe3 0xfa 0x44 0xf2
2544 0x18 0xbf
2545 0xe1 0xfa 0x49 0xf6
2546 0xe3 0xfa 0x44 0xf2
2547 0x18 0xbf
2548 0xe1 0xfa 0x49 0xf6
2549
2550
2551 #------------------------------------------------------------------------------
2552 # USUB16/USUB8
2553 #------------------------------------------------------------------------------
2554 # CHECK:  usub16 r4, r2, r7
2555 # CHECK:  usub8 r1, r8, r5
2556 # CHECK:  ite hi
2557 # CHECK:  usub16hi r1, r1, r3
2558 # CHECK:  usub8ls r9, r2, r3
2559
2560 0xd2 0xfa 0x47 0xf4
2561 0xc8 0xfa 0x45 0xf1
2562 0x8c 0xbf
2563 0xd1 0xfa 0x43 0xf1
2564 0xc2 0xfa 0x43 0xf9
2565
2566
2567 #------------------------------------------------------------------------------
2568 # UXTAB
2569 #------------------------------------------------------------------------------
2570 # CHECK:  uxtab r2, r3, r4
2571 # CHECK:  uxtab r4, r5, r6
2572 # CHECK:  it lt
2573 # CHECK:  uxtablt r6, r2, r9, ror #8
2574 # CHECK:  uxtab r5, r1, r4, ror #16
2575 # CHECK:  uxtab r7, r8, r3, ror #24
2576
2577 0x53 0xfa 0x84 0xf2
2578 0x55 0xfa 0x86 0xf4
2579 0xb8 0xbf
2580 0x52 0xfa 0x99 0xf6
2581 0x51 0xfa 0xa4 0xf5
2582 0x58 0xfa 0xb3 0xf7
2583
2584
2585 #------------------------------------------------------------------------------
2586 # UXTAB16
2587 #------------------------------------------------------------------------------
2588 # CHECK:  it ge
2589 # CHECK:  uxtab16ge r0, r1, r4
2590 # CHECK:  uxtab16 r6, r2, r7
2591 # CHECK:  uxtab16 r3, r5, r8, ror #8
2592 # CHECK:  uxtab16 r3, r2, r1, ror #16
2593 # CHECK:  it eq
2594 # CHECK:  uxtab16eq r1, r2, r3, ror #24
2595
2596 0xa8 0xbf
2597 0x31 0xfa 0x84 0xf0
2598 0x32 0xfa 0x87 0xf6
2599 0x35 0xfa 0x98 0xf3
2600 0x32 0xfa 0xa1 0xf3
2601 0x08 0xbf
2602 0x32 0xfa 0xb3 0xf1
2603
2604
2605 #------------------------------------------------------------------------------
2606 # UXTAH
2607 #------------------------------------------------------------------------------
2608 # CHECK:  uxtah r1, r3, r9
2609 # CHECK:  it hi
2610 # CHECK:  uxtahhi r6, r1, r6
2611 # CHECK:  uxtah r3, r8, r3, ror #8
2612 # CHECK:  it lo
2613 # CHECK:  uxtahlo r2, r2, r4, ror #16
2614 # CHECK:  uxtah r9, r3, r3, ror #24
2615
2616 0x13 0xfa 0x89 0xf1
2617 0x88 0xbf
2618 0x11 0xfa 0x86 0xf6
2619 0x18 0xfa 0x93 0xf3
2620 0x38 0xbf
2621 0x12 0xfa 0xa4 0xf2
2622 0x13 0xfa 0xb3 0xf9
2623
2624
2625 #------------------------------------------------------------------------------
2626 # UXTB
2627 #------------------------------------------------------------------------------
2628 # CHECK:  it ge
2629 # CHECK:  uxtbge r2, r4
2630 # CHECK:  uxtb r5, r6
2631 # CHECK:  uxtb.w r6, r9, ror #8
2632 # CHECK:  it lo
2633 # CHECK:  uxtblo.w r5, r1, ror #16
2634 # CHECK:  uxtb.w r8, r3, ror #24
2635
2636 0xa8 0xbf
2637 0xe2 0xb2
2638 0xf5 0xb2
2639 0x5f 0xfa 0x99 0xf6
2640 0x38 0xbf
2641 0x5f 0xfa 0xa1 0xf5
2642 0x5f 0xfa 0xb3 0xf8
2643
2644
2645 #------------------------------------------------------------------------------
2646 # UXTB16
2647 #------------------------------------------------------------------------------
2648 # CHECK:  uxtb16 r1, r4
2649 # CHECK:  uxtb16 r6, r7
2650 # CHECK:  it hs
2651 # CHECK:  uxtb16hs r3, r5, ror #8
2652 # CHECK:  uxtb16 r3, r1, ror #16
2653 # CHECK:  it ge
2654 # CHECK:  uxtb16ge r2, r3, ror #24
2655
2656 0x3f 0xfa 0x84 0xf1
2657 0x3f 0xfa 0x87 0xf6
2658 0x28 0xbf
2659 0x3f 0xfa 0x95 0xf3
2660 0x3f 0xfa 0xa1 0xf3
2661 0xa8 0xbf
2662 0x3f 0xfa 0xb3 0xf2
2663
2664
2665 #------------------------------------------------------------------------------
2666 # UXTH
2667 #------------------------------------------------------------------------------
2668 # CHECK:  it ne
2669 # CHECK:  uxthne.w r3, r9
2670 # CHECK:  uxth r1, r6
2671 # CHECK:  uxth.w r3, r8, ror #8
2672 # CHECK:  it le
2673 # CHECK:  uxthle.w r2, r2, ror #16
2674 # CHECK:  uxth.w r9, r3, ror #24
2675
2676 0x18 0xbf
2677 0x1f 0xfa 0x89 0xf3
2678 0xb1 0xb2
2679 0x1f 0xfa 0x98 0xf3
2680 0xd8 0xbf
2681 0x1f 0xfa 0xa2 0xf2
2682 0x1f 0xfa 0xb3 0xf9
2683
2684
2685 #------------------------------------------------------------------------------
2686 # WFE/WFI/YIELD
2687 #------------------------------------------------------------------------------
2688 # CHECK:  wfe
2689 # CHECK:  wfi
2690 # CHECK:  yield
2691 # CHECK:  itet lt
2692 # CHECK:  wfelt
2693 # CHECK:  wfige
2694 # CHECK:  yieldlt
2695
2696 0x20 0xbf
2697 0x30 0xbf
2698 0x10 0xbf
2699 0xb6 0xbf
2700 0x20 0xbf
2701 0x30 0xbf
2702 0x10 0xbf
2703