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}
589 .macro sh op ops opw opsw
590 \ops r0, #17 @ 16-bit format 1
594 \ops r0, r0 @ 16-bit format 2
597 \op r9, #17 @ 32-bit format 1
601 \opw r0, r0, r0 @ 32-bit format 2
609 sh lsl lsls lsl.w lsls.w
610 sh lsr lsrs lsr.w lsrs.w
611 sh asr asrs asr.w asrs.w
612 sh ror rors ror.w rors.w
621 smlabb r0, r0, r0, r0
622 smlabb r9, r0, r0, r0
623 smlabb r0, r9, r0, r0
624 smlabb r0, r0, r9, r0
625 smlabb r0, r0, r0, r9
627 smlatb r0, r0, r0, r0
628 smlabt r0, r0, r0, r0
629 smlatt r0, r0, r0, r0
630 smlawb r0, r0, r0, r0
631 smlawt r0, r0, r0, r0
633 smladx r0, r0, r0, r0
635 smlsdx r0, r0, r0, r0
637 smmlar r0, r0, r0, r0
639 smmlsr r0, r0, r0, r0
640 usada8 r0, r0, r0, r0
643 smlalbb r0, r0, r0, r0
644 smlalbb r9, r0, r0, r0
645 smlalbb r0, r9, r0, r0
646 smlalbb r0, r0, r9, r0
647 smlalbb r0, r0, r0, r9
649 smlaltb r0, r0, r0, r0
650 smlalbt r0, r0, r0, r0
651 smlaltt r0, r0, r0, r0
652 smlald r0, r0, r0, r0
653 smlaldx r0, r0, r0, r0
654 smlsld r0, r0, r0, r0
655 smlsldx r0, r0, r0, r0
679 ssat r0, #1, r0, lsl #0
680 ssat r0, #1, r0, asr #0
684 ssat r0, #1, r0, lsl #0x1c
685 ssat r0, #1, r0, asr #0x03
693 usat r0, #0, r0, lsl #0
694 usat r0, #0, r0, asr #0
698 usat r0, #0, r0, lsl #0x1c
699 usat r0, #0, r0, asr #0x03
729 sxtab r0, r0, r0, ror #0
730 sxtab r9, r0, r0, ror #8
731 sxtab r0, r9, r0, ror #16
732 sxtab r0, r0, r9, ror #24
743 \op r1, [pc, #-0x2aa]
744 \op r1, [pc, #-0x155]
763 ldmdb r0!, {r7,r8,r10}
764 stmdb r0!, {r7,r8,r10}
788 ldrd r2, r4, [r9, #48]!
789 ldrd r2, r4, [r9, #-48]!
790 strd r2, r4, [r9, #48]!
791 strd r2, r4, [r9, #-48]!
792 ldrd r2, r4, [r9], #48
793 ldrd r2, r4, [r9], #-48
794 strd r2, r4, [r9], #48
795 strd r2, r4, [r9], #-48
798 ldr\op r1, [r5, #0x301]
799 ldr\op r1, [r5, #0x30]!
800 ldr\op r1, [r5, #-0x30]!
801 ldr\op r1, [r5], #0x30
802 ldr\op r1, [r5], #-0x30
810 .macro movshift op s="s"