5 encode_thumb32_immediate:
6 orr r0, r1, #0x00000000
7 orr r0, r1, #0x000000a5
8 orr r0, r1, #0x00a500a5
9 orr r0, r1, #0xa500a500
10 orr r0, r1, #0xa5a5a5a5
12 orr r0, r1, #0xa5 << 31
13 orr r0, r1, #0xa5 << 30
14 orr r0, r1, #0xa5 << 29
15 orr r0, r1, #0xa5 << 28
16 orr r0, r1, #0xa5 << 27
17 orr r0, r1, #0xa5 << 26
18 orr r0, r1, #0xa5 << 25
19 orr r0, r1, #0xa5 << 24
20 orr r0, r1, #0xa5 << 23
21 orr r0, r1, #0xa5 << 22
22 orr r0, r1, #0xa5 << 21
23 orr r0, r1, #0xa5 << 20
24 orr r0, r1, #0xa5 << 19
25 orr r0, r1, #0xa5 << 18
26 orr r0, r1, #0xa5 << 17
27 orr r0, r1, #0xa5 << 16
28 orr r0, r1, #0xa5 << 15
29 orr r0, r1, #0xa5 << 14
30 orr r0, r1, #0xa5 << 13
31 orr r0, r1, #0xa5 << 12
32 orr r0, r1, #0xa5 << 11
33 orr r0, r1, #0xa5 << 10
34 orr r0, r1, #0xa5 << 9
35 orr r0, r1, #0xa5 << 8
36 orr r0, r1, #0xa5 << 7
37 orr r0, r1, #0xa5 << 6
38 orr r0, r1, #0xa5 << 5
39 orr r0, r1, #0xa5 << 4
40 orr r0, r1, #0xa5 << 3
41 orr r0, r1, #0xa5 << 2
42 orr r0, r1, #0xa5 << 1
45 @ Should be format 1, Some have equivalent format 2 encodings
51 adds r0, #129 @ format 2
55 adds r0, r0, r0 @ format 3
65 add r8, r0, r0 @ ... not this one
70 add r0, pc, #0 @ format 5
74 add r0, sp, #0 @ format 6
82 add.w r0, r0, #0 @ T32 format 1
92 add.w r0, r0, r0 @ T32 format 2
99 add.w r8, r9, r10, lsl #17
100 add.w r8, r8, r10, lsr #32
101 add.w r8, r8, r10, lsr #17
102 add.w r8, r9, r10, asr #32
103 add.w r8, r9, r10, asr #17
104 add.w r8, r9, r10, rrx
105 add.w r8, r9, r10, ror #17
107 subs r0, r0, #0 @ format 1
115 subs r0, r0, r0 @ format 3
120 sub sp, #260 @ format 4
123 subs r8, r0 @ T32 format 2
125 subs r0, #260 @ T32 format 1
127 subs r5, r3, #0x10000
133 .macro arit3 op ops opw opsw
145 \opw r0, r1, r2, asr #17
149 arit3 adc adcs adc.w adcs.w
150 arit3 and ands and.w ands.w
151 arit3 bic bics bic.w bics.w
152 arit3 eor eors eor.w eors.w
153 arit3 orr orrs orr.w orrs.w
154 arit3 rsb rsbs rsb.w rsbs.w
155 arit3 sbc sbcs sbc.w sbcs.w
156 arit3 orn orns orn orns
208 @ bl, blx have no short form.
289 .macro nop1 cond ncond a
300 .macro it1 cond ncond a m=
304 .macro it2 cond ncond a b m=
305 it1 \cond \ncond \a \b\m
308 .macro it3 cond ncond a b c
309 it2 \cond \ncond \a \b \c
378 ldrd r2, [r5, #-0x30]
382 strd r2, [r5, #-0x30]
385 ldrbt r1, [r5, #0x30]
387 ldrsbt r1, [r5, #0x30]
389 ldrht r1, [r5, #0x30]
391 ldrsht r1, [r5, #0x30]
404 strexd r1, r2, r3, [r4]
405 strexd r1, r3, r3, [r4]
408 strex r1, r2, [r4,#516]
411 ldmia r0!, {r1,r2,r3}
413 ldmia.w r2, {r0,r1,r2}
415 ldmia r0, {r7,r8,r10}
416 ldmia r0!, {r7,r8,r10}
418 stmia r0!, {r1,r2,r3}
419 stmia r2!, {r0,r1,r3}
420 stmia.w r2!, {r0,r1,r3}
422 stmia r0, {r7,r8,r10}
423 stmia r0!, {r7,r8,r10}
425 ldmdb r0, {r7,r8,r10}
426 stmdb r0, {r7,r8,r10}
436 tst_teq_cmp_cmn_mov_mvn:
437 .macro mt op ops opw opsw
450 mt tst tsts tst.w tsts.w
451 mt teq teqs teq.w teqs.w
452 mt cmp cmps cmp.w cmps.w
453 mt cmn cmns cmn.w cmns.w
454 mt mov movs mov.w movs.w
455 mt mvn mvns mvn.w mvns.w
519 pkhbt r0, r0, r0, lsl #0x14
520 pkhbt r0, r0, r0, lsl #3
522 pkhtb r1, r2, r3, asr #0x11
529 push {r8,r9,r10,r11,r12}
530 pop {r8,r9,r10,r11,r12}
605 .macro sh op ops opw opsw
606 \ops r0, #17 @ 16-bit format 1
610 \ops r0, r0 @ 16-bit format 2
613 \op r9, #17 @ 32-bit format 1
617 \opw r0, r0, r0 @ 32-bit format 2
625 sh lsl lsls lsl.w lsls.w
626 sh lsr lsrs lsr.w lsrs.w
627 sh asr asrs asr.w asrs.w
628 sh ror rors ror.w rors.w
643 smlabb r0, r0, r0, r0
644 smlabb r9, r0, r0, r0
645 smlabb r0, r9, r0, r0
646 smlabb r0, r0, r9, r0
647 smlabb r0, r0, r0, r9
649 smlatb r0, r0, r0, r0
650 smlabt r0, r0, r0, r0
651 smlatt r0, r0, r0, r0
652 smlawb r0, r0, r0, r0
653 smlawt r0, r0, r0, r0
655 smladx r0, r0, r0, r0
657 smlsdx r0, r0, r0, r0
659 smmlar r0, r0, r0, r0
661 smmlsr r0, r0, r0, r0
662 usada8 r0, r0, r0, r0
665 smlalbb r0, r0, r0, r0
666 smlalbb r9, r0, r0, r0
667 smlalbb r0, r9, r0, r0
668 smlalbb r0, r0, r9, r0
669 smlalbb r0, r0, r0, r9
671 smlaltb r0, r0, r0, r0
672 smlalbt r0, r0, r0, r0
673 smlaltt r0, r0, r0, r0
674 smlald r0, r0, r0, r0
675 smlaldx r0, r0, r0, r0
676 smlsld r0, r0, r0, r0
677 smlsldx r0, r0, r0, r0
701 ssat r0, #1, r0, lsl #0
702 ssat r0, #1, r0, asr #0
706 ssat r0, #1, r0, lsl #0x1c
707 ssat r0, #1, r0, asr #0x03
715 usat r0, #0, r0, lsl #0
716 usat r0, #0, r0, asr #0
720 usat r0, #0, r0, lsl #0x1c
721 usat r0, #0, r0, asr #0x03
751 sxtab r0, r0, r0, ror #0
752 sxtab r9, r0, r0, ror #8
753 sxtab r0, r9, r0, ror #16
754 sxtab r0, r0, r9, ror #24
765 \op r1, [pc, #-0x2aa]
766 \op r1, [pc, #-0x155]
785 ldmdb r0!, {r7,r8,r10}
786 stmdb r0!, {r7,r8,r10}
810 ldrd r2, r4, [r9, #48]!
811 ldrd r2, r4, [r9, #-48]!
812 strd r2, r4, [r9, #48]!
813 strd r2, r4, [r9, #-48]!
814 ldrd r2, r4, [r9], #48
815 ldrd r2, r4, [r9], #-48
816 strd r2, r4, [r9], #48
817 strd r2, r4, [r9], #-48
820 ldr\op r1, [r5, #0x301]
821 ldr\op r1, [r5, #0x30]!
822 ldr\op r1, [r5, #-0x30]!
823 ldr\op r1, [r5], #0x30
824 ldr\op r1, [r5], #-0x30
832 .macro movshift op s="s"