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
207 @ bl, blx have no short form.
288 .macro nop1 cond ncond a
299 .macro it1 cond ncond a m=
303 .macro it2 cond ncond a b m=
304 it1 \cond \ncond \a \b\m
307 .macro it3 cond ncond a b c
308 it2 \cond \ncond \a \b \c
376 ldrd r2, [r5, #-0x30]
379 strd r2, [r5, #-0x30]
382 ldrbt r1, [r5, #0x30]
384 ldrsbt r1, [r5, #0x30]
386 ldrht r1, [r5, #0x30]
388 ldrsht r1, [r5, #0x30]
401 strexd r1, r2, r3, [r4]
404 strex r1, r2, [r4,#516]
407 ldmia r0!, {r1,r2,r3}
409 ldmia.w r2, {r0,r1,r2}
411 ldmia r0, {r7,r8,r10}
412 ldmia r0!, {r7,r8,r10}
414 stmia r0!, {r1,r2,r3}
415 stmia r2!, {r0,r1,r3}
416 stmia.w r2!, {r0,r1,r3}
418 stmia r0, {r7,r8,r10}
419 stmia r0!, {r7,r8,r10}
421 ldmdb r0, {r7,r8,r10}
422 stmdb r0, {r7,r8,r10}
432 tst_teq_cmp_cmn_mov_mvn:
433 .macro mt op ops opw opsw
446 mt tst tsts tst.w tsts.w
447 mt teq teqs teq.w teqs.w
448 mt cmp cmps cmp.w cmps.w
449 mt cmn cmns cmn.w cmns.w
450 mt mov movs mov.w movs.w
451 mt mvn mvns mvn.w mvns.w
515 pkhbt r0, r0, r0, lsl #0x14
516 pkhbt r0, r0, r0, lsl #3
518 pkhtb r1, r2, r3, asr #0x11
525 push {r8,r9,r10,r11,r12}
526 pop {r8,r9,r10,r11,r12}
585 .macro sh op ops opw opsw
586 \ops r0, #17 @ 16-bit format 1
590 \ops r0, r0 @ 16-bit format 2
593 \op r9, #17 @ 32-bit format 1
597 \opw r0, r0, r0 @ 32-bit format 2
605 sh lsl lsls lsl.w lsls.w
606 sh lsr lsrs lsr.w lsrs.w
607 sh asr asrs asr.w asrs.w
608 sh ror rors ror.w rors.w
617 smlabb r0, r0, r0, r0
618 smlabb r9, r0, r0, r0
619 smlabb r0, r9, r0, r0
620 smlabb r0, r0, r9, r0
621 smlabb r0, r0, r0, r9
623 smlatb r0, r0, r0, r0
624 smlabt r0, r0, r0, r0
625 smlatt r0, r0, r0, r0
626 smlawb r0, r0, r0, r0
627 smlawt r0, r0, r0, r0
629 smladx r0, r0, r0, r0
631 smlsdx r0, r0, r0, r0
633 smmlar r0, r0, r0, r0
635 smmlsr r0, r0, r0, r0
636 usada8 r0, r0, r0, r0
639 smlalbb r0, r0, r0, r0
640 smlalbb r9, r0, r0, r0
641 smlalbb r0, r9, r0, r0
642 smlalbb r0, r0, r9, r0
643 smlalbb r0, r0, r0, r9
645 smlaltb r0, r0, r0, r0
646 smlalbt r0, r0, r0, r0
647 smlaltt r0, r0, r0, r0
648 smlald r0, r0, r0, r0
649 smlaldx r0, r0, r0, r0
650 smlsld r0, r0, r0, r0
651 smlsldx r0, r0, r0, r0
675 ssat r0, #1, r0, lsl #0
676 ssat r0, #1, r0, asr #0
680 ssat r0, #1, r0, lsl #0x1c
681 ssat r0, #1, r0, asr #0x03
689 usat r0, #0, r0, lsl #0
690 usat r0, #0, r0, asr #0
694 usat r0, #0, r0, lsl #0x1c
695 usat r0, #0, r0, asr #0x03
725 sxtab r0, r0, r0, ror #0
726 sxtab r9, r0, r0, ror #8
727 sxtab r0, r9, r0, ror #16
728 sxtab r0, r0, r9, ror #24
739 \op r1, [pc, #-0x2aa]
740 \op r1, [pc, #-0x155]
759 ldmdb r0!, {r7,r8,r10}
760 stmdb r0!, {r7,r8,r10}
784 ldrd r2, r4, [r9, #48]!
785 ldrd r2, r4, [r9, #-48]!
786 strd r2, r4, [r9, #48]!
787 strd r2, r4, [r9, #-48]!
788 ldrd r2, r4, [r9], #48
789 ldrd r2, r4, [r9], #-48
790 strd r2, r4, [r9], #48
791 strd r2, r4, [r9], #-48
794 ldr\op r1, [r5, #0x301]
795 ldr\op r1, [r5, #0x30]!
796 ldr\op r1, [r5, #-0x30]!
797 ldr\op r1, [r5], #0x30
798 ldr\op r1, [r5], #-0x30
806 .macro movshift op s="s"