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]
403 strexd r1, r3, r3, [r4]
406 strex r1, r2, [r4,#516]
409 ldmia r0!, {r1,r2,r3}
411 ldmia.w r2, {r0,r1,r2}
413 ldmia r0, {r7,r8,r10}
414 ldmia r0!, {r7,r8,r10}
416 stmia r0!, {r1,r2,r3}
417 stmia r2!, {r0,r1,r3}
418 stmia.w r2!, {r0,r1,r3}
420 stmia r0, {r7,r8,r10}
421 stmia r0!, {r7,r8,r10}
423 ldmdb r0, {r7,r8,r10}
424 stmdb r0, {r7,r8,r10}
434 tst_teq_cmp_cmn_mov_mvn:
435 .macro mt op ops opw opsw
448 mt tst tsts tst.w tsts.w
449 mt teq teqs teq.w teqs.w
450 mt cmp cmps cmp.w cmps.w
451 mt cmn cmns cmn.w cmns.w
452 mt mov movs mov.w movs.w
453 mt mvn mvns mvn.w mvns.w
517 pkhbt r0, r0, r0, lsl #0x14
518 pkhbt r0, r0, r0, lsl #3
520 pkhtb r1, r2, r3, asr #0x11
527 push {r8,r9,r10,r11,r12}
528 pop {r8,r9,r10,r11,r12}
603 .macro sh op ops opw opsw
604 \ops r0, #17 @ 16-bit format 1
608 \ops r0, r0 @ 16-bit format 2
611 \op r9, #17 @ 32-bit format 1
615 \opw r0, r0, r0 @ 32-bit format 2
623 sh lsl lsls lsl.w lsls.w
624 sh lsr lsrs lsr.w lsrs.w
625 sh asr asrs asr.w asrs.w
626 sh ror rors ror.w rors.w
641 smlabb r0, r0, r0, r0
642 smlabb r9, r0, r0, r0
643 smlabb r0, r9, r0, r0
644 smlabb r0, r0, r9, r0
645 smlabb r0, r0, r0, r9
647 smlatb r0, r0, r0, r0
648 smlabt r0, r0, r0, r0
649 smlatt r0, r0, r0, r0
650 smlawb r0, r0, r0, r0
651 smlawt r0, r0, r0, r0
653 smladx r0, r0, r0, r0
655 smlsdx r0, r0, r0, r0
657 smmlar r0, r0, r0, r0
659 smmlsr r0, r0, r0, r0
660 usada8 r0, r0, r0, r0
663 smlalbb r0, r0, r0, r0
664 smlalbb r9, r0, r0, r0
665 smlalbb r0, r9, r0, r0
666 smlalbb r0, r0, r9, r0
667 smlalbb r0, r0, r0, r9
669 smlaltb r0, r0, r0, r0
670 smlalbt r0, r0, r0, r0
671 smlaltt r0, r0, r0, r0
672 smlald r0, r0, r0, r0
673 smlaldx r0, r0, r0, r0
674 smlsld r0, r0, r0, r0
675 smlsldx r0, r0, r0, r0
699 ssat r0, #1, r0, lsl #0
700 ssat r0, #1, r0, asr #0
704 ssat r0, #1, r0, lsl #0x1c
705 ssat r0, #1, r0, asr #0x03
713 usat r0, #0, r0, lsl #0
714 usat r0, #0, r0, asr #0
718 usat r0, #0, r0, lsl #0x1c
719 usat r0, #0, r0, asr #0x03
749 sxtab r0, r0, r0, ror #0
750 sxtab r9, r0, r0, ror #8
751 sxtab r0, r9, r0, ror #16
752 sxtab r0, r0, r9, ror #24
763 \op r1, [pc, #-0x2aa]
764 \op r1, [pc, #-0x155]
783 ldmdb r0!, {r7,r8,r10}
784 stmdb r0!, {r7,r8,r10}
808 ldrd r2, r4, [r9, #48]!
809 ldrd r2, r4, [r9, #-48]!
810 strd r2, r4, [r9, #48]!
811 strd r2, r4, [r9, #-48]!
812 ldrd r2, r4, [r9], #48
813 ldrd r2, r4, [r9], #-48
814 strd r2, r4, [r9], #48
815 strd r2, r4, [r9], #-48
818 ldr\op r1, [r5, #0x301]
819 ldr\op r1, [r5, #0x30]!
820 ldr\op r1, [r5, #-0x30]!
821 ldr\op r1, [r5], #0x30
822 ldr\op r1, [r5], #-0x30
830 .macro movshift op s="s"