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]
386 ldrbt r1, [r5, #0x30]
388 ldrsbt r1, [r5, #0x30]
390 ldrht r1, [r5, #0x30]
392 ldrsht r1, [r5, #0x30]
405 strexd r1, r2, r3, [r4]
406 strexd r1, r3, r3, [r4]
409 strex r1, r2, [r4,#516]
412 ldmia r0!, {r1,r2,r3}
414 ldmia.w r2, {r0,r1,r2}
416 ldmia r0, {r7,r8,r10}
417 ldmia r0!, {r7,r8,r10}
419 stmia r0!, {r1,r2,r3}
420 stmia r2!, {r0,r1,r3}
421 stmia.w r2!, {r0,r1,r3}
423 stmia r0, {r7,r8,r10}
424 stmia r0!, {r7,r8,r10}
426 ldmdb r0, {r7,r8,r10}
427 stmdb r0, {r7,r8,r10}
437 tst_teq_cmp_cmn_mov_mvn:
438 .macro mt op ops opw opsw
451 mt tst tsts tst.w tsts.w
452 mt teq teqs teq.w teqs.w
453 mt cmp cmps cmp.w cmps.w
454 mt cmn cmns cmn.w cmns.w
455 mt mov movs mov.w movs.w
456 mt mvn mvns mvn.w mvns.w
520 pkhbt r0, r0, r0, lsl #0x14
521 pkhbt r0, r0, r0, lsl #3
523 pkhtb r1, r2, r3, asr #0x11
530 push {r8,r9,r10,r11,r12}
531 pop {r8,r9,r10,r11,r12}
606 .macro sh op ops opw opsw
607 \ops r0, #17 @ 16-bit format 1
611 \ops r0, r0 @ 16-bit format 2
614 \op r9, #17 @ 32-bit format 1
618 \opw r0, r0, r0 @ 32-bit format 2
626 sh lsl lsls lsl.w lsls.w
627 sh lsr lsrs lsr.w lsrs.w
628 sh asr asrs asr.w asrs.w
629 sh ror rors ror.w rors.w
644 smlabb r0, r0, r0, r0
645 smlabb r9, r0, r0, r0
646 smlabb r0, r9, r0, r0
647 smlabb r0, r0, r9, r0
648 smlabb r0, r0, r0, r9
650 smlatb r0, r0, r0, r0
651 smlabt r0, r0, r0, r0
652 smlatt r0, r0, r0, r0
653 smlawb r0, r0, r0, r0
654 smlawt r0, r0, r0, r0
656 smladx r0, r0, r0, r0
658 smlsdx r0, r0, r0, r0
660 smmlar r0, r0, r0, r0
662 smmlsr r0, r0, r0, r0
663 usada8 r0, r0, r0, r0
666 smlalbb r0, r0, r0, r0
667 smlalbb r9, r0, r0, r0
668 smlalbb r0, r9, r0, r0
669 smlalbb r0, r0, r9, r0
670 smlalbb r0, r0, r0, r9
672 smlaltb r0, r0, r0, r0
673 smlalbt r0, r0, r0, r0
674 smlaltt r0, r0, r0, r0
675 smlald r0, r0, r0, r0
676 smlaldx r0, r0, r0, r0
677 smlsld r0, r0, r0, r0
678 smlsldx r0, r0, r0, r0
702 ssat r0, #1, r0, lsl #0
703 ssat r0, #1, r0, asr #0
707 ssat r0, #1, r0, lsl #0x1c
708 ssat r0, #1, r0, asr #0x03
716 usat r0, #0, r0, lsl #0
717 usat r0, #0, r0, asr #0
721 usat r0, #0, r0, lsl #0x1c
722 usat r0, #0, r0, asr #0x03
752 sxtab r0, r0, r0, ror #0
753 sxtab r9, r0, r0, ror #8
754 sxtab r0, r9, r0, ror #16
755 sxtab r0, r0, r9, ror #24
766 \op r1, [pc, #-0x2aa]
767 \op r1, [pc, #-0x155]
786 ldmdb r0!, {r7,r8,r10}
787 stmdb r0!, {r7,r8,r10}
811 ldrd r2, r4, [r9, #48]!
812 ldrd r2, r4, [r9, #-48]!
813 strd r2, r4, [r9, #48]!
814 strd r2, r4, [r9, #-48]!
815 ldrd r2, r4, [r9], #48
816 ldrd r2, r4, [r9], #-48
817 strd r2, r4, [r9], #48
818 strd r2, r4, [r9], #-48
821 ldr\op r1, [r5, #0x301]
822 ldr\op r1, [r5, #0x30]!
823 ldr\op r1, [r5, #-0x30]!
824 ldr\op r1, [r5], #0x30
825 ldr\op r1, [r5], #-0x30
833 .macro movshift op s="s"