.text
|
.text
|
.thumb
|
.thumb
|
.syntax unified
|
.syntax unified
|
|
|
encode_thumb32_immediate:
|
encode_thumb32_immediate:
|
orr r0, r1, #0x00000000
|
orr r0, r1, #0x00000000
|
orr r0, r1, #0x000000a5
|
orr r0, r1, #0x000000a5
|
orr r0, r1, #0x00a500a5
|
orr r0, r1, #0x00a500a5
|
orr r0, r1, #0xa500a500
|
orr r0, r1, #0xa500a500
|
orr r0, r1, #0xa5a5a5a5
|
orr r0, r1, #0xa5a5a5a5
|
|
|
orr r0, r1, #0xa5 << 31
|
orr r0, r1, #0xa5 << 31
|
orr r0, r1, #0xa5 << 30
|
orr r0, r1, #0xa5 << 30
|
orr r0, r1, #0xa5 << 29
|
orr r0, r1, #0xa5 << 29
|
orr r0, r1, #0xa5 << 28
|
orr r0, r1, #0xa5 << 28
|
orr r0, r1, #0xa5 << 27
|
orr r0, r1, #0xa5 << 27
|
orr r0, r1, #0xa5 << 26
|
orr r0, r1, #0xa5 << 26
|
orr r0, r1, #0xa5 << 25
|
orr r0, r1, #0xa5 << 25
|
orr r0, r1, #0xa5 << 24
|
orr r0, r1, #0xa5 << 24
|
orr r0, r1, #0xa5 << 23
|
orr r0, r1, #0xa5 << 23
|
orr r0, r1, #0xa5 << 22
|
orr r0, r1, #0xa5 << 22
|
orr r0, r1, #0xa5 << 21
|
orr r0, r1, #0xa5 << 21
|
orr r0, r1, #0xa5 << 20
|
orr r0, r1, #0xa5 << 20
|
orr r0, r1, #0xa5 << 19
|
orr r0, r1, #0xa5 << 19
|
orr r0, r1, #0xa5 << 18
|
orr r0, r1, #0xa5 << 18
|
orr r0, r1, #0xa5 << 17
|
orr r0, r1, #0xa5 << 17
|
orr r0, r1, #0xa5 << 16
|
orr r0, r1, #0xa5 << 16
|
orr r0, r1, #0xa5 << 15
|
orr r0, r1, #0xa5 << 15
|
orr r0, r1, #0xa5 << 14
|
orr r0, r1, #0xa5 << 14
|
orr r0, r1, #0xa5 << 13
|
orr r0, r1, #0xa5 << 13
|
orr r0, r1, #0xa5 << 12
|
orr r0, r1, #0xa5 << 12
|
orr r0, r1, #0xa5 << 11
|
orr r0, r1, #0xa5 << 11
|
orr r0, r1, #0xa5 << 10
|
orr r0, r1, #0xa5 << 10
|
orr r0, r1, #0xa5 << 9
|
orr r0, r1, #0xa5 << 9
|
orr r0, r1, #0xa5 << 8
|
orr r0, r1, #0xa5 << 8
|
orr r0, r1, #0xa5 << 7
|
orr r0, r1, #0xa5 << 7
|
orr r0, r1, #0xa5 << 6
|
orr r0, r1, #0xa5 << 6
|
orr r0, r1, #0xa5 << 5
|
orr r0, r1, #0xa5 << 5
|
orr r0, r1, #0xa5 << 4
|
orr r0, r1, #0xa5 << 4
|
orr r0, r1, #0xa5 << 3
|
orr r0, r1, #0xa5 << 3
|
orr r0, r1, #0xa5 << 2
|
orr r0, r1, #0xa5 << 2
|
orr r0, r1, #0xa5 << 1
|
orr r0, r1, #0xa5 << 1
|
|
|
add_sub:
|
add_sub:
|
@ Should be format 1, Some have equivalent format 2 encodings
|
@ Should be format 1, Some have equivalent format 2 encodings
|
adds r0, r0, #0
|
adds r0, r0, #0
|
adds r5, r0, #0
|
adds r5, r0, #0
|
adds r0, r5, #0
|
adds r0, r5, #0
|
adds r0, r2, #5
|
adds r0, r2, #5
|
|
|
adds r0, #129 @ format 2
|
adds r0, #129 @ format 2
|
adds r0, r0, #129
|
adds r0, r0, #129
|
adds r5, #126
|
adds r5, #126
|
|
|
adds r0, r0, r0 @ format 3
|
adds r0, r0, r0 @ format 3
|
adds r5, r0, r0
|
adds r5, r0, r0
|
adds r0, r5, r0
|
adds r0, r5, r0
|
adds r0, r0, r5
|
adds r0, r0, r5
|
adds r1, r2, r3
|
adds r1, r2, r3
|
|
|
add r8, r0 @ format 4
|
add r8, r0 @ format 4
|
add r0, r8
|
add r0, r8
|
add r0, r8, r0
|
add r0, r8, r0
|
add r0, r0, r8
|
add r0, r0, r8
|
add r8, r0, r0 @ ... not this one
|
add r8, r0, r0 @ ... not this one
|
|
|
add r1, r0
|
add r1, r0
|
add r0, r1
|
add r0, r1
|
|
|
add r0, pc, #0 @ format 5
|
add r0, pc, #0 @ format 5
|
add r5, pc, #0
|
add r5, pc, #0
|
add r0, pc, #516
|
add r0, pc, #516
|
|
|
add r0, sp, #0 @ format 6
|
add r0, sp, #0 @ format 6
|
add r5, sp, #0
|
add r5, sp, #0
|
add r0, sp, #516
|
add r0, sp, #516
|
|
|
add sp, #0 @ format 7
|
add sp, #0 @ format 7
|
add sp, sp, #0
|
add sp, sp, #0
|
add sp, #260
|
add sp, #260
|
|
|
add.w r0, r0, #0 @ T32 format 1
|
add.w r0, r0, #0 @ T32 format 1
|
adds.w r0, r0, #0
|
adds.w r0, r0, #0
|
add.w r9, r0, #0
|
add.w r9, r0, #0
|
add.w r0, r9, #0
|
add.w r0, r9, #0
|
add.w r0, r0, #129
|
add.w r0, r0, #129
|
adds r5, r3, #0x10000
|
adds r5, r3, #0x10000
|
add r0, sp, #1
|
add r0, sp, #1
|
add r9, sp, #0
|
add r9, sp, #0
|
add.w sp, sp, #4
|
add.w sp, sp, #4
|
|
|
add.w r0, r0, r0 @ T32 format 2
|
add.w r0, r0, r0 @ T32 format 2
|
adds.w r0, r0, r0
|
adds.w r0, r0, r0
|
add.w r9, r0, r0
|
add.w r9, r0, r0
|
add.w r0, r9, r0
|
add.w r0, r9, r0
|
add.w r0, r0, r9
|
add.w r0, r0, r9
|
|
|
add.w r8, r9, r10
|
add.w r8, r9, r10
|
add.w r8, r9, r10, lsl #17
|
add.w r8, r9, r10, lsl #17
|
add.w r8, r8, r10, lsr #32
|
add.w r8, r8, r10, lsr #32
|
add.w r8, r8, r10, lsr #17
|
add.w r8, r8, r10, lsr #17
|
add.w r8, r9, r10, asr #32
|
add.w r8, r9, r10, asr #32
|
add.w r8, r9, r10, asr #17
|
add.w r8, r9, r10, asr #17
|
add.w r8, r9, r10, rrx
|
add.w r8, r9, r10, rrx
|
add.w r8, r9, r10, ror #17
|
add.w r8, r9, r10, ror #17
|
|
|
subs r0, r0, #0 @ format 1
|
subs r0, r0, #0 @ format 1
|
subs r5, r0, #0
|
subs r5, r0, #0
|
subs r0, r5, #0
|
subs r0, r5, #0
|
subs r0, r2, #5
|
subs r0, r2, #5
|
|
|
subs r0, r0, #129
|
subs r0, r0, #129
|
subs r5, #8
|
subs r5, #8
|
|
|
subs r0, r0, r0 @ format 3
|
subs r0, r0, r0 @ format 3
|
subs r5, r0, r0
|
subs r5, r0, r0
|
subs r0, r5, r0
|
subs r0, r5, r0
|
subs r0, r0, r5
|
subs r0, r0, r5
|
|
|
sub sp, #260 @ format 4
|
sub sp, #260 @ format 4
|
sub sp, sp, #260
|
sub sp, sp, #260
|
|
|
subs r8, r0 @ T32 format 2
|
subs r8, r0 @ T32 format 2
|
subs r0, r8
|
subs r0, r8
|
subs r0, #260 @ T32 format 1
|
subs r0, #260 @ T32 format 1
|
subs.w r1, r2, #4
|
subs.w r1, r2, #4
|
subs r5, r3, #0x10000
|
subs r5, r3, #0x10000
|
sub r1, sp, #4
|
sub r1, sp, #4
|
sub r9, sp, #0
|
sub r9, sp, #0
|
sub.w sp, sp, #4
|
sub.w sp, sp, #4
|
|
|
arit3:
|
arit3:
|
.macro arit3 op ops opw opsw
|
.macro arit3 op ops opw opsw
|
\ops r0, r0
|
\ops r0, r0
|
\ops r5, r0
|
\ops r5, r0
|
\ops r0, r5
|
\ops r0, r5
|
\ops r0, r0, r5
|
\ops r0, r0, r5
|
\ops r0, r5, r0
|
\ops r0, r5, r0
|
\op r0, r5, r0
|
\op r0, r5, r0
|
\op r0, r1, r2
|
\op r0, r1, r2
|
\op r9, r0, r0
|
\op r9, r0, r0
|
\op r0, r9, r0
|
\op r0, r9, r0
|
\op r0, r0, r9
|
\op r0, r0, r9
|
\opsw r0, r0, r0
|
\opsw r0, r0, r0
|
\opw r0, r1, r2, asr #17
|
\opw r0, r1, r2, asr #17
|
\opw r0, r1, #129
|
\opw r0, r1, #129
|
.endm
|
.endm
|
|
|
arit3 adc adcs adc.w adcs.w
|
arit3 adc adcs adc.w adcs.w
|
arit3 and ands and.w ands.w
|
arit3 and ands and.w ands.w
|
arit3 bic bics bic.w bics.w
|
arit3 bic bics bic.w bics.w
|
arit3 eor eors eor.w eors.w
|
arit3 eor eors eor.w eors.w
|
arit3 orr orrs orr.w orrs.w
|
arit3 orr orrs orr.w orrs.w
|
arit3 rsb rsbs rsb.w rsbs.w
|
arit3 rsb rsbs rsb.w rsbs.w
|
arit3 sbc sbcs sbc.w sbcs.w
|
arit3 sbc sbcs sbc.w sbcs.w
|
arit3 orn orns orn orns
|
arit3 orn orns orn orns
|
|
|
.purgem arit3
|
.purgem arit3
|
|
|
bfc_bfi_bfx:
|
bfc_bfi_bfx:
|
bfc r0, #0, #1
|
bfc r0, #0, #1
|
bfc r9, #0, #1
|
bfc r9, #0, #1
|
bfi r9, #0, #0, #1
|
bfi r9, #0, #0, #1
|
bfc r0, #21, #1
|
bfc r0, #21, #1
|
bfc r0, #0, #18
|
bfc r0, #0, #18
|
|
|
bfi r0, r0, #0, #1
|
bfi r0, r0, #0, #1
|
bfi r9, r0, #0, #1
|
bfi r9, r0, #0, #1
|
bfi r0, r9, #0, #1
|
bfi r0, r9, #0, #1
|
bfi r0, r0, #21, #1
|
bfi r0, r0, #21, #1
|
bfi r0, r0, #0, #18
|
bfi r0, r0, #0, #18
|
|
|
sbfx r0, r0, #0, #1
|
sbfx r0, r0, #0, #1
|
ubfx r9, r0, #0, #1
|
ubfx r9, r0, #0, #1
|
sbfx r0, r9, #0, #1
|
sbfx r0, r9, #0, #1
|
ubfx r0, r0, #21, #1
|
ubfx r0, r0, #21, #1
|
sbfx r0, r0, #0, #18
|
sbfx r0, r0, #0, #18
|
|
|
.globl branches
|
.globl branches
|
branches:
|
branches:
|
.macro bra op
|
.macro bra op
|
\op 1b
|
\op 1b
|
\op 1f
|
\op 1f
|
.endm
|
.endm
|
1:
|
1:
|
bra beq.n
|
bra beq.n
|
bra bne.n
|
bra bne.n
|
bra bcs.n
|
bra bcs.n
|
bra bhs.n
|
bra bhs.n
|
bra bcc.n
|
bra bcc.n
|
bra bul.n
|
bra bul.n
|
bra blo.n
|
bra blo.n
|
bra bmi.n
|
bra bmi.n
|
bra bpl.n
|
bra bpl.n
|
bra bvs.n
|
bra bvs.n
|
bra bvc.n
|
bra bvc.n
|
bra bhi.n
|
bra bhi.n
|
bra bls.n
|
bra bls.n
|
bra bvc.n
|
bra bvc.n
|
bra bhi.n
|
bra bhi.n
|
bra bls.n
|
bra bls.n
|
bra bge.n
|
bra bge.n
|
bra blt.n
|
bra blt.n
|
bra bgt.n
|
bra bgt.n
|
bra ble.n
|
bra ble.n
|
bra bal.n
|
bra bal.n
|
bra b.n
|
bra b.n
|
@ bl, blx have no short form.
|
@ bl, blx have no short form.
|
.balign 4
|
.balign 4
|
1:
|
1:
|
bra beq.w
|
bra beq.w
|
bra bne.w
|
bra bne.w
|
bra bcs.w
|
bra bcs.w
|
bra bhs.w
|
bra bhs.w
|
bra bcc.w
|
bra bcc.w
|
bra bul.w
|
bra bul.w
|
bra blo.w
|
bra blo.w
|
bra bmi.w
|
bra bmi.w
|
bra bpl.w
|
bra bpl.w
|
bra bvs.w
|
bra bvs.w
|
bra bvc.w
|
bra bvc.w
|
bra bhi.w
|
bra bhi.w
|
bra bls.w
|
bra bls.w
|
bra bvc.w
|
bra bvc.w
|
bra bhi.w
|
bra bhi.w
|
bra bls.w
|
bra bls.w
|
bra bge.w
|
bra bge.w
|
bra blt.w
|
bra blt.w
|
bra bgt.w
|
bra bgt.w
|
bra ble.w
|
bra ble.w
|
bra b.w
|
bra b.w
|
bra bl
|
bra bl
|
bra blx
|
bra blx
|
.balign 4
|
.balign 4
|
1:
|
1:
|
bx r9
|
bx r9
|
blx r0
|
blx r0
|
blx r9
|
blx r9
|
bxj r0
|
bxj r0
|
bxj r9
|
bxj r9
|
.purgem bra
|
.purgem bra
|
|
|
clz:
|
clz:
|
clz r0, r0
|
clz r0, r0
|
clz r9, r0
|
clz r9, r0
|
clz r0, r9
|
clz r0, r9
|
|
|
cps:
|
cps:
|
cpsie f
|
cpsie f
|
cpsid i
|
cpsid i
|
cpsie a
|
cpsie a
|
cpsid.w f
|
cpsid.w f
|
cpsie.w i
|
cpsie.w i
|
cpsid.w a
|
cpsid.w a
|
cpsie i, #0
|
cpsie i, #0
|
cpsid i, #17
|
cpsid i, #17
|
cps #0
|
cps #0
|
cps #17
|
cps #17
|
|
|
cpy:
|
cpy:
|
cpy r0, r0
|
cpy r0, r0
|
cpy r9, r0
|
cpy r9, r0
|
cpy r0, r9
|
cpy r0, r9
|
cpy.w r0, r0
|
cpy.w r0, r0
|
cpy.w r9, r0
|
cpy.w r9, r0
|
cpy.w r0, r9
|
cpy.w r0, r9
|
|
|
czb:
|
czb:
|
cbnz r0, 2f
|
cbnz r0, 2f
|
cbz r5, 1f
|
cbz r5, 1f
|
|
|
nop_hint:
|
nop_hint:
|
nop
|
nop
|
1: yield
|
1: yield
|
2: wfe
|
2: wfe
|
wfi
|
wfi
|
sev
|
sev
|
|
|
nop.w
|
nop.w
|
yield.w
|
yield.w
|
wfe.w
|
wfe.w
|
wfi.w
|
wfi.w
|
sev.w
|
sev.w
|
|
|
nop {9}
|
nop {9}
|
nop {129}
|
nop {129}
|
|
|
it:
|
it:
|
.macro nop1 cond ncond a
|
.macro nop1 cond ncond a
|
.ifc \a,t
|
.ifc \a,t
|
nop\cond
|
nop\cond
|
.else
|
.else
|
nop\ncond
|
nop\ncond
|
.endif
|
.endif
|
.endm
|
.endm
|
.macro it0 cond m=
|
.macro it0 cond m=
|
it\m \cond
|
it\m \cond
|
nop\cond
|
nop\cond
|
.endm
|
.endm
|
.macro it1 cond ncond a m=
|
.macro it1 cond ncond a m=
|
it0 \cond \a\m
|
it0 \cond \a\m
|
nop1 \cond \ncond \a
|
nop1 \cond \ncond \a
|
.endm
|
.endm
|
.macro it2 cond ncond a b m=
|
.macro it2 cond ncond a b m=
|
it1 \cond \ncond \a \b\m
|
it1 \cond \ncond \a \b\m
|
nop1 \cond \ncond \b
|
nop1 \cond \ncond \b
|
.endm
|
.endm
|
.macro it3 cond ncond a b c
|
.macro it3 cond ncond a b c
|
it2 \cond \ncond \a \b \c
|
it2 \cond \ncond \a \b \c
|
nop1 \cond \ncond \c
|
nop1 \cond \ncond \c
|
.endm
|
.endm
|
|
|
it0 eq
|
it0 eq
|
it0 ne
|
it0 ne
|
it0 cs
|
it0 cs
|
it0 hs
|
it0 hs
|
it0 cc
|
it0 cc
|
it0 ul
|
it0 ul
|
it0 lo
|
it0 lo
|
it0 mi
|
it0 mi
|
it0 pl
|
it0 pl
|
it0 vs
|
it0 vs
|
it0 vc
|
it0 vc
|
it0 hi
|
it0 hi
|
it0 ge
|
it0 ge
|
it0 lt
|
it0 lt
|
it0 gt
|
it0 gt
|
it0 le
|
it0 le
|
it0 al
|
it0 al
|
it1 eq ne t
|
it1 eq ne t
|
it1 eq ne e
|
it1 eq ne e
|
it2 eq ne t t
|
it2 eq ne t t
|
it2 eq ne e t
|
it2 eq ne e t
|
it2 eq ne t e
|
it2 eq ne t e
|
it2 eq ne e e
|
it2 eq ne e e
|
it3 eq ne t t t
|
it3 eq ne t t t
|
it3 eq ne e t t
|
it3 eq ne e t t
|
it3 eq ne t e t
|
it3 eq ne t e t
|
it3 eq ne t t e
|
it3 eq ne t t e
|
it3 eq ne t e e
|
it3 eq ne t e e
|
it3 eq ne e t e
|
it3 eq ne e t e
|
it3 eq ne e e t
|
it3 eq ne e e t
|
it3 eq ne e e e
|
it3 eq ne e e e
|
|
|
it1 ne eq t
|
it1 ne eq t
|
it1 ne eq e
|
it1 ne eq e
|
it2 ne eq t t
|
it2 ne eq t t
|
it2 ne eq e t
|
it2 ne eq e t
|
it2 ne eq t e
|
it2 ne eq t e
|
it2 ne eq e e
|
it2 ne eq e e
|
it3 ne eq t t t
|
it3 ne eq t t t
|
it3 ne eq e t t
|
it3 ne eq e t t
|
it3 ne eq t e t
|
it3 ne eq t e t
|
it3 ne eq t t e
|
it3 ne eq t t e
|
it3 ne eq t e e
|
it3 ne eq t e e
|
it3 ne eq e t e
|
it3 ne eq e t e
|
it3 ne eq e e t
|
it3 ne eq e e t
|
it3 ne eq e e e
|
it3 ne eq e e e
|
|
|
ldst:
|
ldst:
|
1:
|
1:
|
pld [r5]
|
pld [r5]
|
pld [r5, #0x330]
|
pld [r5, #0x330]
|
pld [r5, #-0x30]
|
pld [r5, #-0x30]
|
pld [r5], #0x30
|
pld [r5], #0x30
|
pld [r5], #-0x30
|
pld [r5], #-0x30
|
pld [r5, #0x30]!
|
pld [r5, #0x30]!
|
pld [r5, #-0x30]!
|
pld [r5, #-0x30]!
|
pld [r5, r4]
|
pld [r5, r4]
|
pld [r9, ip]
|
pld [r9, ip]
|
pld 1f
|
pld 1f
|
pld 1b
|
pld 1b
|
1:
|
1:
|
|
|
ldrd r2, r3, [r5]
|
ldrd r2, r3, [r5]
|
ldrd r2, [r5, #0x30]
|
ldrd r2, [r5, #0x30]
|
ldrd r2, [r5, #-0x30]
|
ldrd r2, [r5, #-0x30]
|
strd r2, r3, [r5]
|
strd r2, r3, [r5]
|
strd r2, [r5, #0x30]
|
strd r2, [r5, #0x30]
|
strd r2, [r5, #-0x30]
|
strd r2, [r5, #-0x30]
|
|
|
ldrbt r1, [r5]
|
ldrbt r1, [r5]
|
ldrbt r1, [r5, #0x30]
|
ldrbt r1, [r5, #0x30]
|
ldrsbt r1, [r5]
|
ldrsbt r1, [r5]
|
ldrsbt r1, [r5, #0x30]
|
ldrsbt r1, [r5, #0x30]
|
ldrht r1, [r5]
|
ldrht r1, [r5]
|
ldrht r1, [r5, #0x30]
|
ldrht r1, [r5, #0x30]
|
ldrsht r1, [r5]
|
ldrsht r1, [r5]
|
ldrsht r1, [r5, #0x30]
|
ldrsht r1, [r5, #0x30]
|
ldrt r1, [r5]
|
ldrt r1, [r5]
|
ldrt r1, [r5, #0x30]
|
ldrt r1, [r5, #0x30]
|
|
|
ldxstx:
|
ldxstx:
|
ldrexb r1, [r4]
|
ldrexb r1, [r4]
|
ldrexh r1, [r4]
|
ldrexh r1, [r4]
|
ldrex r1, [r4]
|
ldrex r1, [r4]
|
ldrexd r1, r2, [r4]
|
ldrexd r1, r2, [r4]
|
|
|
strexb r1, r2, [r4]
|
strexb r1, r2, [r4]
|
strexh r1, r2, [r4]
|
strexh r1, r2, [r4]
|
strex r1, r2, [r4]
|
strex r1, r2, [r4]
|
strexd r1, r2, r3, [r4]
|
strexd r1, r2, r3, [r4]
|
|
|
ldrex r1, [r4,#516]
|
ldrex r1, [r4,#516]
|
strex r1, r2, [r4,#516]
|
strex r1, r2, [r4,#516]
|
|
|
ldmstm:
|
ldmstm:
|
ldmia r0!, {r1,r2,r3}
|
ldmia r0!, {r1,r2,r3}
|
ldmia r2, {r0,r1,r2}
|
ldmia r2, {r0,r1,r2}
|
ldmia.w r2, {r0,r1,r2}
|
ldmia.w r2, {r0,r1,r2}
|
ldmia r9, {r0,r1,r2}
|
ldmia r9, {r0,r1,r2}
|
ldmia r0, {r7,r8,r10}
|
ldmia r0, {r7,r8,r10}
|
ldmia r0!, {r7,r8,r10}
|
ldmia r0!, {r7,r8,r10}
|
|
|
stmia r0!, {r1,r2,r3}
|
stmia r0!, {r1,r2,r3}
|
stmia r2!, {r0,r1,r3}
|
stmia r2!, {r0,r1,r3}
|
stmia.w r2!, {r0,r1,r3}
|
stmia.w r2!, {r0,r1,r3}
|
stmia r9, {r0,r1,r2}
|
stmia r9, {r0,r1,r2}
|
stmia r0, {r7,r8,r10}
|
stmia r0, {r7,r8,r10}
|
stmia r0!, {r7,r8,r10}
|
stmia r0!, {r7,r8,r10}
|
|
|
ldmdb r0, {r7,r8,r10}
|
ldmdb r0, {r7,r8,r10}
|
stmdb r0, {r7,r8,r10}
|
stmdb r0, {r7,r8,r10}
|
|
|
mlas:
|
mlas:
|
mla r0, r0, r0, r0
|
mla r0, r0, r0, r0
|
mls r0, r0, r0, r0
|
mls r0, r0, r0, r0
|
mla r9, r0, r0, r0
|
mla r9, r0, r0, r0
|
mla r0, r9, r0, r0
|
mla r0, r9, r0, r0
|
mla r0, r0, r9, r0
|
mla r0, r0, r9, r0
|
mla r0, r0, r0, r9
|
mla r0, r0, r0, r9
|
|
|
tst_teq_cmp_cmn_mov_mvn:
|
tst_teq_cmp_cmn_mov_mvn:
|
.macro mt op ops opw opsw
|
.macro mt op ops opw opsw
|
\ops r0, r0
|
\ops r0, r0
|
\op r0, r0
|
\op r0, r0
|
\ops r5, r0
|
\ops r5, r0
|
\op r0, r5
|
\op r0, r5
|
\op r0, r5, asr #17
|
\op r0, r5, asr #17
|
\opw r0, r0
|
\opw r0, r0
|
\ops r9, r0
|
\ops r9, r0
|
\opsw r0, r9
|
\opsw r0, r9
|
\opw r0, #129
|
\opw r0, #129
|
\opw r5, #129
|
\opw r5, #129
|
.endm
|
.endm
|
|
|
mt tst tsts tst.w tsts.w
|
mt tst tsts tst.w tsts.w
|
mt teq teqs teq.w teqs.w
|
mt teq teqs teq.w teqs.w
|
mt cmp cmps cmp.w cmps.w
|
mt cmp cmps cmp.w cmps.w
|
mt cmn cmns cmn.w cmns.w
|
mt cmn cmns cmn.w cmns.w
|
mt mov movs mov.w movs.w
|
mt mov movs mov.w movs.w
|
mt mvn mvns mvn.w mvns.w
|
mt mvn mvns mvn.w mvns.w
|
.purgem mt
|
.purgem mt
|
|
|
mov16:
|
mov16:
|
movw r0, #0
|
movw r0, #0
|
movt r0, #0
|
movt r0, #0
|
movw r9, #0
|
movw r9, #0
|
movw r0, #0x9000
|
movw r0, #0x9000
|
movw r0, #0x0800
|
movw r0, #0x0800
|
movw r0, #0x0500
|
movw r0, #0x0500
|
movw r0, #0x0081
|
movw r0, #0x0081
|
movw r0, #0xffff
|
movw r0, #0xffff
|
|
|
mrs_msr:
|
mrs_msr:
|
mrs r0, CPSR
|
mrs r0, CPSR
|
mrs r0, SPSR
|
mrs r0, SPSR
|
mrs r9, CPSR_all
|
mrs r9, CPSR_all
|
mrs r9, SPSR_all
|
mrs r9, SPSR_all
|
|
|
msr CPSR_c, r0
|
msr CPSR_c, r0
|
msr SPSR_c, r0
|
msr SPSR_c, r0
|
msr CPSR_c, r9
|
msr CPSR_c, r9
|
msr CPSR_x, r0
|
msr CPSR_x, r0
|
msr CPSR_s, r0
|
msr CPSR_s, r0
|
msr CPSR_f, r0
|
msr CPSR_f, r0
|
|
|
mul:
|
mul:
|
mul r0, r0, r0
|
mul r0, r0, r0
|
mul r0, r9, r0
|
mul r0, r9, r0
|
mul r0, r0, r9
|
mul r0, r0, r9
|
mul r0, r0
|
mul r0, r0
|
mul r9, r0
|
mul r9, r0
|
muls r5, r0
|
muls r5, r0
|
muls r5, r0, r5
|
muls r5, r0, r5
|
muls r0, r5
|
muls r0, r5
|
|
|
mull:
|
mull:
|
smull r0, r1, r0, r0
|
smull r0, r1, r0, r0
|
umull r0, r1, r0, r0
|
umull r0, r1, r0, r0
|
smlal r0, r1, r0, r0
|
smlal r0, r1, r0, r0
|
umlal r0, r1, r0, r0
|
umlal r0, r1, r0, r0
|
smull r9, r0, r0, r0
|
smull r9, r0, r0, r0
|
smull r0, r9, r0, r0
|
smull r0, r9, r0, r0
|
smull r0, r1, r9, r0
|
smull r0, r1, r9, r0
|
smull r0, r1, r0, r9
|
smull r0, r1, r0, r9
|
|
|
neg:
|
neg:
|
negs r0, r0
|
negs r0, r0
|
negs r0, r5
|
negs r0, r5
|
negs r5, r0
|
negs r5, r0
|
negs.w r0, r0
|
negs.w r0, r0
|
negs.w r5, r0
|
negs.w r5, r0
|
negs.w r0, r5
|
negs.w r0, r5
|
|
|
neg r0, r9
|
neg r0, r9
|
neg r9, r0
|
neg r9, r0
|
negs r0, r9
|
negs r0, r9
|
negs r9, r0
|
negs r9, r0
|
|
|
pkh:
|
pkh:
|
pkhbt r0, r0, r0
|
pkhbt r0, r0, r0
|
pkhbt r9, r0, r0
|
pkhbt r9, r0, r0
|
pkhbt r0, r9, r0
|
pkhbt r0, r9, r0
|
pkhbt r0, r0, r9
|
pkhbt r0, r0, r9
|
pkhbt r0, r0, r0, lsl #0x14
|
pkhbt r0, r0, r0, lsl #0x14
|
pkhbt r0, r0, r0, lsl #3
|
pkhbt r0, r0, r0, lsl #3
|
pkhtb r1, r2, r3
|
pkhtb r1, r2, r3
|
pkhtb r1, r2, r3, asr #0x11
|
pkhtb r1, r2, r3, asr #0x11
|
|
|
push_pop:
|
push_pop:
|
push {r0}
|
push {r0}
|
pop {r0}
|
pop {r0}
|
push {r1,lr}
|
push {r1,lr}
|
pop {r1,pc}
|
pop {r1,pc}
|
push {r8,r9,r10,r11,r12}
|
push {r8,r9,r10,r11,r12}
|
pop {r8,r9,r10,r11,r12}
|
pop {r8,r9,r10,r11,r12}
|
|
|
qadd:
|
qadd:
|
qadd r1, r2, r3
|
qadd r1, r2, r3
|
qadd16 r1, r2, r3
|
qadd16 r1, r2, r3
|
qadd8 r1, r2, r3
|
qadd8 r1, r2, r3
|
qasx r1, r2, r3
|
qasx r1, r2, r3
|
qaddsubx r1, r2, r3
|
qaddsubx r1, r2, r3
|
qdadd r1, r2, r3
|
qdadd r1, r2, r3
|
qdsub r1, r2, r3
|
qdsub r1, r2, r3
|
qsub r1, r2, r3
|
qsub r1, r2, r3
|
qsub16 r1, r2, r3
|
qsub16 r1, r2, r3
|
qsub8 r1, r2, r3
|
qsub8 r1, r2, r3
|
qsax r1, r2, r3
|
qsax r1, r2, r3
|
qsubaddx r1, r2, r3
|
qsubaddx r1, r2, r3
|
sadd16 r1, r2, r3
|
sadd16 r1, r2, r3
|
sadd8 r1, r2, r3
|
sadd8 r1, r2, r3
|
sasx r1, r2, r3
|
sasx r1, r2, r3
|
saddsubx r1, r2, r3
|
saddsubx r1, r2, r3
|
ssub16 r1, r2, r3
|
ssub16 r1, r2, r3
|
ssub8 r1, r2, r3
|
ssub8 r1, r2, r3
|
ssax r1, r2, r3
|
ssax r1, r2, r3
|
ssubaddx r1, r2, r3
|
ssubaddx r1, r2, r3
|
shadd16 r1, r2, r3
|
shadd16 r1, r2, r3
|
shadd8 r1, r2, r3
|
shadd8 r1, r2, r3
|
shasx r1, r2, r3
|
shasx r1, r2, r3
|
shaddsubx r1, r2, r3
|
shaddsubx r1, r2, r3
|
shsub16 r1, r2, r3
|
shsub16 r1, r2, r3
|
shsub8 r1, r2, r3
|
shsub8 r1, r2, r3
|
shsax r1, r2, r3
|
shsax r1, r2, r3
|
shsubaddx r1, r2, r3
|
shsubaddx r1, r2, r3
|
uadd16 r1, r2, r3
|
uadd16 r1, r2, r3
|
uadd8 r1, r2, r3
|
uadd8 r1, r2, r3
|
uasx r1, r2, r3
|
uasx r1, r2, r3
|
uaddsubx r1, r2, r3
|
uaddsubx r1, r2, r3
|
usub16 r1, r2, r3
|
usub16 r1, r2, r3
|
usub8 r1, r2, r3
|
usub8 r1, r2, r3
|
usax r1, r2, r3
|
usax r1, r2, r3
|
usubaddx r1, r2, r3
|
usubaddx r1, r2, r3
|
uhadd16 r1, r2, r3
|
uhadd16 r1, r2, r3
|
uhadd8 r1, r2, r3
|
uhadd8 r1, r2, r3
|
uhasx r1, r2, r3
|
uhasx r1, r2, r3
|
uhaddsubx r1, r2, r3
|
uhaddsubx r1, r2, r3
|
uhsub16 r1, r2, r3
|
uhsub16 r1, r2, r3
|
uhsub8 r1, r2, r3
|
uhsub8 r1, r2, r3
|
uhsax r1, r2, r3
|
uhsax r1, r2, r3
|
uhsubaddx r1, r2, r3
|
uhsubaddx r1, r2, r3
|
uqadd16 r1, r2, r3
|
uqadd16 r1, r2, r3
|
uqadd8 r1, r2, r3
|
uqadd8 r1, r2, r3
|
uqasx r1, r2, r3
|
uqasx r1, r2, r3
|
uqaddsubx r1, r2, r3
|
uqaddsubx r1, r2, r3
|
uqsub16 r1, r2, r3
|
uqsub16 r1, r2, r3
|
uqsub8 r1, r2, r3
|
uqsub8 r1, r2, r3
|
uqsax r1, r2, r3
|
uqsax r1, r2, r3
|
uqsubaddx r1, r2, r3
|
uqsubaddx r1, r2, r3
|
sel r1, r2, r3
|
sel r1, r2, r3
|
|
|
rbit_rev:
|
rbit_rev:
|
.macro rx op opw
|
.macro rx op opw
|
\op r0, r0
|
\op r0, r0
|
\opw r0, r0
|
\opw r0, r0
|
\op r0, r5
|
\op r0, r5
|
\op r5, r0
|
\op r5, r0
|
\op r0, r9
|
\op r0, r9
|
\op r9, r0
|
\op r9, r0
|
.endm
|
.endm
|
|
|
rx rev rev.w
|
rx rev rev.w
|
rx rev16 rev16.w
|
rx rev16 rev16.w
|
rx revsh revsh.w
|
rx revsh revsh.w
|
rx rbit rbit.w
|
rx rbit rbit.w
|
|
|
.purgem rx
|
.purgem rx
|
|
|
shift:
|
shift:
|
.macro sh op ops opw opsw
|
.macro sh op ops opw opsw
|
\ops r0, #17 @ 16-bit format 1
|
\ops r0, #17 @ 16-bit format 1
|
\ops r0, r0, #14
|
\ops r0, r0, #14
|
\ops r5, r0, #17
|
\ops r5, r0, #17
|
\ops r0, r5, #14
|
\ops r0, r5, #14
|
\ops r0, r0 @ 16-bit format 2
|
\ops r0, r0 @ 16-bit format 2
|
\ops r0, r5
|
\ops r0, r5
|
\ops r0, r0, r5
|
\ops r0, r0, r5
|
\op r9, #17 @ 32-bit format 1
|
\op r9, #17 @ 32-bit format 1
|
\op r9, r9, #14
|
\op r9, r9, #14
|
\ops r0, r9, #17
|
\ops r0, r9, #17
|
\op r9, r0, #14
|
\op r9, r0, #14
|
\opw r0, r0, r0 @ 32-bit format 2
|
\opw r0, r0, r0 @ 32-bit format 2
|
\op r9, r9
|
\op r9, r9
|
\ops r9, r0
|
\ops r9, r0
|
\op r0, r9
|
\op r0, r9
|
\op r0, r5
|
\op r0, r5
|
\ops r0, r1, r2
|
\ops r0, r1, r2
|
.endm
|
.endm
|
|
|
sh lsl lsls lsl.w lsls.w
|
sh lsl lsls lsl.w lsls.w
|
sh lsr lsrs lsr.w lsrs.w
|
sh lsr lsrs lsr.w lsrs.w
|
sh asr asrs asr.w asrs.w
|
sh asr asrs asr.w asrs.w
|
sh ror rors ror.w rors.w
|
sh ror rors ror.w rors.w
|
|
|
.purgem sh
|
.purgem sh
|
|
|
rrx:
|
rrx:
|
rrx r1, r2
|
rrx r1, r2
|
rrxs r3, r4
|
rrxs r3, r4
|
|
|
smc:
|
smc:
|
smc #0
|
smc #0
|
smc #0xabcd
|
smc #0xabcd
|
|
|
smla:
|
smla:
|
smlabb r0, r0, r0, r0
|
smlabb r0, r0, r0, r0
|
smlabb r9, r0, r0, r0
|
smlabb r9, r0, r0, r0
|
smlabb r0, r9, r0, r0
|
smlabb r0, r9, r0, r0
|
smlabb r0, r0, r9, r0
|
smlabb r0, r0, r9, r0
|
smlabb r0, r0, r0, r9
|
smlabb r0, r0, r0, r9
|
|
|
smlatb r0, r0, r0, r0
|
smlatb r0, r0, r0, r0
|
smlabt r0, r0, r0, r0
|
smlabt r0, r0, r0, r0
|
smlatt r0, r0, r0, r0
|
smlatt r0, r0, r0, r0
|
smlawb r0, r0, r0, r0
|
smlawb r0, r0, r0, r0
|
smlawt r0, r0, r0, r0
|
smlawt r0, r0, r0, r0
|
smlad r0, r0, r0, r0
|
smlad r0, r0, r0, r0
|
smladx r0, r0, r0, r0
|
smladx r0, r0, r0, r0
|
smlsd r0, r0, r0, r0
|
smlsd r0, r0, r0, r0
|
smlsdx r0, r0, r0, r0
|
smlsdx r0, r0, r0, r0
|
smmla r0, r0, r0, r0
|
smmla r0, r0, r0, r0
|
smmlar r0, r0, r0, r0
|
smmlar r0, r0, r0, r0
|
smmls r0, r0, r0, r0
|
smmls r0, r0, r0, r0
|
smmlsr r0, r0, r0, r0
|
smmlsr r0, r0, r0, r0
|
usada8 r0, r0, r0, r0
|
usada8 r0, r0, r0, r0
|
|
|
smlal:
|
smlal:
|
smlalbb r0, r0, r0, r0
|
smlalbb r0, r0, r0, r0
|
smlalbb r9, r0, r0, r0
|
smlalbb r9, r0, r0, r0
|
smlalbb r0, r9, r0, r0
|
smlalbb r0, r9, r0, r0
|
smlalbb r0, r0, r9, r0
|
smlalbb r0, r0, r9, r0
|
smlalbb r0, r0, r0, r9
|
smlalbb r0, r0, r0, r9
|
|
|
smlaltb r0, r0, r0, r0
|
smlaltb r0, r0, r0, r0
|
smlalbt r0, r0, r0, r0
|
smlalbt r0, r0, r0, r0
|
smlaltt r0, r0, r0, r0
|
smlaltt r0, r0, r0, r0
|
smlald r0, r0, r0, r0
|
smlald r0, r0, r0, r0
|
smlaldx r0, r0, r0, r0
|
smlaldx r0, r0, r0, r0
|
smlsld r0, r0, r0, r0
|
smlsld r0, r0, r0, r0
|
smlsldx r0, r0, r0, r0
|
smlsldx r0, r0, r0, r0
|
umaal r0, r0, r0, r0
|
umaal r0, r0, r0, r0
|
|
|
smul:
|
smul:
|
smulbb r0, r0, r0
|
smulbb r0, r0, r0
|
smulbb r9, r0, r0
|
smulbb r9, r0, r0
|
smulbb r0, r9, r0
|
smulbb r0, r9, r0
|
smulbb r0, r0, r9
|
smulbb r0, r0, r9
|
|
|
smultb r0, r0, r0
|
smultb r0, r0, r0
|
smulbt r0, r0, r0
|
smulbt r0, r0, r0
|
smultt r0, r0, r0
|
smultt r0, r0, r0
|
smulwb r0, r0, r0
|
smulwb r0, r0, r0
|
smulwt r0, r0, r0
|
smulwt r0, r0, r0
|
smmul r0, r0, r0
|
smmul r0, r0, r0
|
smmulr r0, r0, r0
|
smmulr r0, r0, r0
|
smuad r0, r0, r0
|
smuad r0, r0, r0
|
smuadx r0, r0, r0
|
smuadx r0, r0, r0
|
smusd r0, r0, r0
|
smusd r0, r0, r0
|
smusdx r0, r0, r0
|
smusdx r0, r0, r0
|
usad8 r0, r0, r0
|
usad8 r0, r0, r0
|
|
|
sat:
|
sat:
|
ssat r0, #1, r0
|
ssat r0, #1, r0
|
ssat r0, #1, r0, lsl #0
|
ssat r0, #1, r0, lsl #0
|
ssat r0, #1, r0, asr #0
|
ssat r0, #1, r0, asr #0
|
ssat r9, #1, r0
|
ssat r9, #1, r0
|
ssat r0, #18, r0
|
ssat r0, #18, r0
|
ssat r0, #1, r9
|
ssat r0, #1, r9
|
ssat r0, #1, r0, lsl #0x1c
|
ssat r0, #1, r0, lsl #0x1c
|
ssat r0, #1, r0, asr #0x03
|
ssat r0, #1, r0, asr #0x03
|
|
|
ssat16 r0, #1, r0
|
ssat16 r0, #1, r0
|
ssat16 r9, #1, r0
|
ssat16 r9, #1, r0
|
ssat16 r0, #10, r0
|
ssat16 r0, #10, r0
|
ssat16 r0, #1, r9
|
ssat16 r0, #1, r9
|
|
|
usat r0, #0, r0
|
usat r0, #0, r0
|
usat r0, #0, r0, lsl #0
|
usat r0, #0, r0, lsl #0
|
usat r0, #0, r0, asr #0
|
usat r0, #0, r0, asr #0
|
usat r9, #0, r0
|
usat r9, #0, r0
|
usat r0, #17, r0
|
usat r0, #17, r0
|
usat r0, #0, r9
|
usat r0, #0, r9
|
usat r0, #0, r0, lsl #0x1c
|
usat r0, #0, r0, lsl #0x1c
|
usat r0, #0, r0, asr #0x03
|
usat r0, #0, r0, asr #0x03
|
|
|
usat16 r0, #0, r0
|
usat16 r0, #0, r0
|
usat16 r9, #0, r0
|
usat16 r9, #0, r0
|
usat16 r0, #9, r0
|
usat16 r0, #9, r0
|
usat16 r0, #0, r9
|
usat16 r0, #0, r9
|
|
|
xt:
|
xt:
|
sxtb r0, r0
|
sxtb r0, r0
|
sxtb r0, r0, ror #0
|
sxtb r0, r0, ror #0
|
sxtb r5, r0
|
sxtb r5, r0
|
sxtb r0, r5
|
sxtb r0, r5
|
sxtb.w r1, r2
|
sxtb.w r1, r2
|
sxtb r1, r2, ror #8
|
sxtb r1, r2, ror #8
|
sxtb r1, r2, ror #16
|
sxtb r1, r2, ror #16
|
sxtb r1, r2, ror #24
|
sxtb r1, r2, ror #24
|
|
|
sxtb16 r1, r2
|
sxtb16 r1, r2
|
sxtb16 r8, r9
|
sxtb16 r8, r9
|
sxth r1, r2
|
sxth r1, r2
|
sxth r8, r9
|
sxth r8, r9
|
uxtb r1, r2
|
uxtb r1, r2
|
uxtb r8, r9
|
uxtb r8, r9
|
uxtb16 r1, r2
|
uxtb16 r1, r2
|
uxtb16 r8, r9
|
uxtb16 r8, r9
|
uxth r1, r2
|
uxth r1, r2
|
uxth r8, r9
|
uxth r8, r9
|
|
|
xta:
|
xta:
|
sxtab r0, r0, r0
|
sxtab r0, r0, r0
|
sxtab r0, r0, r0, ror #0
|
sxtab r0, r0, r0, ror #0
|
sxtab r9, r0, r0, ror #8
|
sxtab r9, r0, r0, ror #8
|
sxtab r0, r9, r0, ror #16
|
sxtab r0, r9, r0, ror #16
|
sxtab r0, r0, r9, ror #24
|
sxtab r0, r0, r9, ror #24
|
|
|
sxtab16 r1, r2, r3
|
sxtab16 r1, r2, r3
|
sxtah r1, r2, r3
|
sxtah r1, r2, r3
|
uxtab r1, r2, r3
|
uxtab r1, r2, r3
|
uxtab16 r1, r2, r3
|
uxtab16 r1, r2, r3
|
uxtah r1, r2, r3
|
uxtah r1, r2, r3
|
|
|
.macro ldpcimm op
|
.macro ldpcimm op
|
\op r1, [pc, #0x2aa]
|
\op r1, [pc, #0x2aa]
|
\op r1, [pc, #0x155]
|
\op r1, [pc, #0x155]
|
\op r1, [pc, #-0x2aa]
|
\op r1, [pc, #-0x2aa]
|
\op r1, [pc, #-0x155]
|
\op r1, [pc, #-0x155]
|
.endm
|
.endm
|
ldpcimm ldrb
|
ldpcimm ldrb
|
ldpcimm ldrsb
|
ldpcimm ldrsb
|
ldpcimm ldrh
|
ldpcimm ldrh
|
ldpcimm ldrsh
|
ldpcimm ldrsh
|
ldpcimm ldr
|
ldpcimm ldr
|
addw r9, r0, #0
|
addw r9, r0, #0
|
addw r6, pc, #0xfff
|
addw r6, pc, #0xfff
|
subw r6, r9, #0xa85
|
subw r6, r9, #0xa85
|
subw r6, r9, #0x57a
|
subw r6, r9, #0x57a
|
tbb [pc, r6]
|
tbb [pc, r6]
|
tbb [r0, r9]
|
tbb [r0, r9]
|
tbh [pc, r7, lsl #1]
|
tbh [pc, r7, lsl #1]
|
tbh [r0, r8, lsl #1]
|
tbh [r0, r8, lsl #1]
|
|
|
push {r8}
|
push {r8}
|
pop {r8}
|
pop {r8}
|
|
|
ldmdb r0!, {r7,r8,r10}
|
ldmdb r0!, {r7,r8,r10}
|
stmdb r0!, {r7,r8,r10}
|
stmdb r0!, {r7,r8,r10}
|
|
|
ldm r0!, {r1, r2}
|
ldm r0!, {r1, r2}
|
stm r0!, {r1, r2}
|
stm r0!, {r1, r2}
|
ldm r0, {r8, r9}
|
ldm r0, {r8, r9}
|
stm r0, {r8, r9}
|
stm r0, {r8, r9}
|
itttt eq
|
itttt eq
|
ldmeq r0!, {r1, r2}
|
ldmeq r0!, {r1, r2}
|
stmeq r0!, {r1, r2}
|
stmeq r0!, {r1, r2}
|
ldmeq r0, {r8, r9}
|
ldmeq r0, {r8, r9}
|
stmeq r0, {r8, r9}
|
stmeq r0, {r8, r9}
|
nop
|
nop
|
|
|
srs:
|
srs:
|
srsia sp, #16
|
srsia sp, #16
|
srsdb sp, #16
|
srsdb sp, #16
|
srsia sp!, #21
|
srsia sp!, #21
|
srsia sp!, #10
|
srsia sp!, #10
|
|
|
movs pc, lr
|
movs pc, lr
|
subs pc, lr, #0
|
subs pc, lr, #0
|
subs pc, lr, #4
|
subs pc, lr, #4
|
subs pc, lr, #255
|
subs pc, lr, #255
|
|
|
ldrd r2, r4, [r9, #48]!
|
ldrd r2, r4, [r9, #48]!
|
ldrd r2, r4, [r9, #-48]!
|
ldrd r2, r4, [r9, #-48]!
|
strd r2, r4, [r9, #48]!
|
strd r2, r4, [r9, #48]!
|
strd r2, r4, [r9, #-48]!
|
strd r2, r4, [r9, #-48]!
|
ldrd r2, r4, [r9], #48
|
ldrd r2, r4, [r9], #48
|
ldrd r2, r4, [r9], #-48
|
ldrd r2, r4, [r9], #-48
|
strd r2, r4, [r9], #48
|
strd r2, r4, [r9], #48
|
strd r2, r4, [r9], #-48
|
strd r2, r4, [r9], #-48
|
|
|
.macro ldaddr op
|
.macro ldaddr op
|
ldr\op r1, [r5, #0x301]
|
ldr\op r1, [r5, #0x301]
|
ldr\op r1, [r5, #0x30]!
|
ldr\op r1, [r5, #0x30]!
|
ldr\op r1, [r5, #-0x30]!
|
ldr\op r1, [r5, #-0x30]!
|
ldr\op r1, [r5], #0x30
|
ldr\op r1, [r5], #0x30
|
ldr\op r1, [r5], #-0x30
|
ldr\op r1, [r5], #-0x30
|
ldr\op r1, [r5, r9]
|
ldr\op r1, [r5, r9]
|
.endm
|
.endm
|
ldaddr
|
ldaddr
|
ldaddr b
|
ldaddr b
|
ldaddr sb
|
ldaddr sb
|
ldaddr h
|
ldaddr h
|
ldaddr sh
|
ldaddr sh
|
.macro movshift op s="s"
|
.macro movshift op s="s"
|
movs r1, r4, \op #2
|
movs r1, r4, \op #2
|
movs r3, r9, \op #2
|
movs r3, r9, \op #2
|
movs r1, r2, \op r3
|
movs r1, r2, \op r3
|
movs r1, r1, \op r3
|
movs r1, r1, \op r3
|
movs r1, r1, \op r9
|
movs r1, r1, \op r9
|
mov r1, r2, \op r3
|
mov r1, r2, \op r3
|
mov r1, r1, \op r3
|
mov r1, r1, \op r3
|
.endm
|
.endm
|
movshift lsl
|
movshift lsl
|
movshift lsr
|
movshift lsr
|
movshift asr
|
movshift asr
|
movshift ror
|
movshift ror
|
nop
|
nop
|
|
|