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
377 ldrd r2, [r5, #-0x30]
380 strd r2, [r5, #-0x30]
383 ldrbt r1, [r5, #0x30]
385 ldrsbt r1, [r5, #0x30]
387 ldrht r1, [r5, #0x30]
389 ldrsht r1, [r5, #0x30]
402 strexd r1, r2, r3, [r4]
405 strex r1, r2, [r4,#516]
408 ldmia r0!, {r1,r2,r3}
410 ldmia.w r2, {r0,r1,r2}
412 ldmia r0, {r7,r8,r10}
413 ldmia r0!, {r7,r8,r10}
415 stmia r0!, {r1,r2,r3}
416 stmia r2!, {r0,r1,r3}
417 stmia.w r2!, {r0,r1,r3}
419 stmia r0, {r7,r8,r10}
420 stmia r0!, {r7,r8,r10}
422 ldmdb r0, {r7,r8,r10}
423 stmdb r0, {r7,r8,r10}
433 tst_teq_cmp_cmn_mov_mvn:
434 .macro mt op ops opw opsw
447 mt tst tsts tst.w tsts.w
448 mt teq teqs teq.w teqs.w
449 mt cmp cmps cmp.w cmps.w
450 mt cmn cmns cmn.w cmns.w
451 mt mov movs mov.w movs.w
452 mt mvn mvns mvn.w mvns.w
516 pkhbt r0, r0, r0, lsl #0x14
517 pkhbt r0, r0, r0, lsl #3
519 pkhtb r1, r2, r3, asr #0x11
526 push {r8,r9,r10,r11,r12}
527 pop {r8,r9,r10,r11,r12}
602 .macro sh op ops opw opsw
603 \ops r0, #17 @ 16-bit format 1
607 \ops r0, r0 @ 16-bit format 2
610 \op r9, #17 @ 32-bit format 1
614 \opw r0, r0, r0 @ 32-bit format 2
622 sh lsl lsls lsl.w lsls.w
623 sh lsr lsrs lsr.w lsrs.w
624 sh asr asrs asr.w asrs.w
625 sh ror rors ror.w rors.w
638 smlabb r0, r0, r0, r0
639 smlabb r9, r0, r0, r0
640 smlabb r0, r9, r0, r0
641 smlabb r0, r0, r9, r0
642 smlabb r0, r0, r0, r9
644 smlatb r0, r0, r0, r0
645 smlabt r0, r0, r0, r0
646 smlatt r0, r0, r0, r0
647 smlawb r0, r0, r0, r0
648 smlawt r0, r0, r0, r0
650 smladx r0, r0, r0, r0
652 smlsdx r0, r0, r0, r0
654 smmlar r0, r0, r0, r0
656 smmlsr r0, r0, r0, r0
657 usada8 r0, r0, r0, r0
660 smlalbb r0, r0, r0, r0
661 smlalbb r9, r0, r0, r0
662 smlalbb r0, r9, r0, r0
663 smlalbb r0, r0, r9, r0
664 smlalbb r0, r0, r0, r9
666 smlaltb r0, r0, r0, r0
667 smlalbt r0, r0, r0, r0
668 smlaltt r0, r0, r0, r0
669 smlald r0, r0, r0, r0
670 smlaldx r0, r0, r0, r0
671 smlsld r0, r0, r0, r0
672 smlsldx r0, r0, r0, r0
696 ssat r0, #1, r0, lsl #0
697 ssat r0, #1, r0, asr #0
701 ssat r0, #1, r0, lsl #0x1c
702 ssat r0, #1, r0, asr #0x03
710 usat r0, #0, r0, lsl #0
711 usat r0, #0, r0, asr #0
715 usat r0, #0, r0, lsl #0x1c
716 usat r0, #0, r0, asr #0x03
746 sxtab r0, r0, r0, ror #0
747 sxtab r9, r0, r0, ror #8
748 sxtab r0, r9, r0, ror #16
749 sxtab r0, r0, r9, ror #24
760 \op r1, [pc, #-0x2aa]
761 \op r1, [pc, #-0x155]
780 ldmdb r0!, {r7,r8,r10}
781 stmdb r0!, {r7,r8,r10}
805 ldrd r2, r4, [r9, #48]!
806 ldrd r2, r4, [r9, #-48]!
807 strd r2, r4, [r9, #48]!
808 strd r2, r4, [r9, #-48]!
809 ldrd r2, r4, [r9], #48
810 ldrd r2, r4, [r9], #-48
811 strd r2, r4, [r9], #48
812 strd r2, r4, [r9], #-48
815 ldr\op r1, [r5, #0x301]
816 ldr\op r1, [r5, #0x30]!
817 ldr\op r1, [r5, #-0x30]!
818 ldr\op r1, [r5], #0x30
819 ldr\op r1, [r5], #-0x30
827 .macro movshift op s="s"