mirror of
https://github.com/pret/pokediamond.git
synced 2026-08-24 17:55:08 -05:00
288 lines
4.8 KiB
ArmAsm
288 lines
4.8 KiB
ArmAsm
.include "asm/macros.inc"
|
|
.include "global.inc"
|
|
|
|
.text
|
|
|
|
arm_func_start MIi_CpuClear16
|
|
MIi_CpuClear16: ; 0x020CE1C8
|
|
mov r3, #0x0
|
|
_020CE1CC:
|
|
cmp r3, r2
|
|
strlth r0, [r1, r3]
|
|
addlt r3, r3, #0x2
|
|
blt _020CE1CC
|
|
bx lr
|
|
|
|
arm_func_start MIi_CpuCopy16
|
|
MIi_CpuCopy16: ; 0x020CE1E0
|
|
mov r12, #0x0
|
|
_020CE1E4:
|
|
cmp r12, r2
|
|
ldrlth r3, [r0, r12]
|
|
strlth r3, [r1, r12]
|
|
addlt r12, r12, #0x2
|
|
blt _020CE1E4
|
|
bx lr
|
|
|
|
arm_func_start MIi_CpuClear32
|
|
MIi_CpuClear32: ; 0x020CE1FC
|
|
add r12, r1, r2
|
|
_020CE200:
|
|
cmp r1, r12
|
|
stmltia r1!, {r0}
|
|
blt _020CE200
|
|
bx lr
|
|
|
|
arm_func_start MIi_CpuCopy32
|
|
MIi_CpuCopy32: ; 0x020CE210
|
|
add r12, r1, r2
|
|
_020CE214:
|
|
cmp r1, r12
|
|
ldmltia r0!, {r2}
|
|
stmltia r1!, {r2}
|
|
blt _020CE214
|
|
bx lr
|
|
|
|
arm_func_start MIi_CpuSend32
|
|
MIi_CpuSend32: ; 0x020CE228
|
|
add r12, r0, r2
|
|
_020CE22C:
|
|
cmp r0, r12
|
|
ldmltia r0!, {r2}
|
|
strlt r2, [r1, #0x0]
|
|
blt _020CE22C
|
|
bx lr
|
|
|
|
arm_func_start MIi_CpuClearFast
|
|
MIi_CpuClearFast: ; 0x020CE240
|
|
stmdb sp!, {r4-r9}
|
|
add r9, r1, r2
|
|
mov r12, r2, lsr #0x5
|
|
add r12, r1, r12, lsl #0x5
|
|
mov r2, r0
|
|
mov r3, r2
|
|
mov r4, r2
|
|
mov r5, r2
|
|
mov r6, r2
|
|
mov r7, r2
|
|
mov r8, r2
|
|
_020CE26C:
|
|
cmp r1, r12
|
|
stmltia r1!, {r0,r2-r8}
|
|
blt _020CE26C
|
|
_020CE278:
|
|
cmp r1, r9
|
|
stmltia r1!, {r0}
|
|
blt _020CE278
|
|
ldmia sp!, {r4-r9}
|
|
bx lr
|
|
|
|
arm_func_start MIi_CpuCopyFast
|
|
MIi_CpuCopyFast: ; 0x020CE28C
|
|
stmdb sp!, {r4-r10}
|
|
add r10, r1, r2
|
|
mov r12, r2, lsr #0x5
|
|
add r12, r1, r12, lsl #0x5
|
|
_020CE29C:
|
|
cmp r1, r12
|
|
ldmltia r0!, {r2-r9}
|
|
stmltia r1!, {r2-r9}
|
|
blt _020CE29C
|
|
_020CE2AC:
|
|
cmp r1, r10
|
|
ldmltia r0!, {r2}
|
|
stmltia r1!, {r2}
|
|
blt _020CE2AC
|
|
ldmia sp!, {r4-r10}
|
|
bx lr
|
|
|
|
arm_func_start MI_Copy16B
|
|
MI_Copy16B:
|
|
ldmia r0!, {r2, r3, ip}
|
|
stmia r1!, {r2, r3, ip}
|
|
ldmia r0!, {r2, r3, ip}
|
|
stmia r1!, {r2, r3, ip}
|
|
ldmia r0!, {r2, r3}
|
|
stmia r1!, {r2, r3}
|
|
bx lr
|
|
|
|
arm_func_start MI_Copy36B
|
|
MI_Copy36B: ; 0x020CE2E0
|
|
ldmia r0!, {r2-r3,r12}
|
|
stmia r1!, {r2-r3,r12}
|
|
ldmia r0!, {r2-r3,r12}
|
|
stmia r1!, {r2-r3,r12}
|
|
ldmia r0!, {r2-r3,r12}
|
|
stmia r1!, {r2-r3,r12}
|
|
bx lr
|
|
|
|
arm_func_start MI_Copy48B
|
|
MI_Copy48B: ; 0x020CE2FC
|
|
ldmia r0!, {r2-r3,r12}
|
|
stmia r1!, {r2-r3,r12}
|
|
ldmia r0!, {r2-r3,r12}
|
|
stmia r1!, {r2-r3,r12}
|
|
ldmia r0!, {r2-r3,r12}
|
|
stmia r1!, {r2-r3,r12}
|
|
ldmia r0!, {r2-r3,r12}
|
|
stmia r1!, {r2-r3,r12}
|
|
bx lr
|
|
|
|
arm_func_start MI_Copy64B
|
|
MI_Copy64B: ; 0x020CE320
|
|
ldmia r0!, {r2-r3,r12}
|
|
stmia r1!, {r2-r3,r12}
|
|
ldmia r0!, {r2-r3,r12}
|
|
stmia r1!, {r2-r3,r12}
|
|
ldmia r0!, {r2-r3,r12}
|
|
stmia r1!, {r2-r3,r12}
|
|
ldmia r0!, {r2-r3,r12}
|
|
stmia r1!, {r2-r3,r12}
|
|
ldmia r0, {r0,r2-r3,r12}
|
|
stmia r1!, {r0,r2-r3,r12}
|
|
bx lr
|
|
|
|
arm_func_start MI_CpuFill8
|
|
MI_CpuFill8: ; 0x020CE34C
|
|
cmp r2, #0x0
|
|
bxeq lr
|
|
tst r0, #0x1
|
|
beq _020CE378
|
|
ldrh r12, [r0, #-0x1]
|
|
and r12, r12, #0xff
|
|
orr r3, r12, r1, lsl #0x8
|
|
strh r3, [r0, #-0x1]
|
|
add r0, r0, #0x1
|
|
subs r2, r2, #0x1
|
|
bxeq lr
|
|
_020CE378:
|
|
cmp r2, #0x2
|
|
blo _020CE3C0
|
|
orr r1, r1, r1, lsl #0x8
|
|
tst r0, #0x2
|
|
beq _020CE398
|
|
strh r1, [r0], #0x2
|
|
subs r2, r2, #0x2
|
|
bxeq lr
|
|
_020CE398:
|
|
orr r1, r1, r1, lsl #0x10
|
|
bics r3, r2, #0x3
|
|
beq _020CE3B8
|
|
sub r2, r2, r3
|
|
add r12, r3, r0
|
|
_020CE3AC:
|
|
str r1, [r0], #0x4
|
|
cmp r0, r12
|
|
blo _020CE3AC
|
|
_020CE3B8:
|
|
tst r2, #0x2
|
|
strneh r1, [r0], #0x2
|
|
_020CE3C0:
|
|
tst r2, #0x1
|
|
bxeq lr
|
|
ldrh r3, [r0, #0x0]
|
|
and r3, r3, #0xff00
|
|
and r1, r1, #0xff
|
|
orr r1, r1, r3
|
|
strh r1, [r0, #0x0]
|
|
bx lr
|
|
|
|
arm_func_start MI_CpuCopy8
|
|
MI_CpuCopy8:
|
|
cmp r2, #0x0
|
|
bxeq lr
|
|
tst r1, #0x1
|
|
beq _020CE420
|
|
ldrh r12, [r1, #-0x1]
|
|
and r12, r12, #0xff
|
|
tst r0, #0x1
|
|
ldrneh r3, [r0, #-0x1]
|
|
movne r3, r3, lsr #0x8
|
|
ldreqh r3, [r0, #0x0]
|
|
orr r3, r12, r3, lsl #0x8
|
|
strh r3, [r1, #-0x1]
|
|
add r0, r0, #0x1
|
|
add r1, r1, #0x1
|
|
subs r2, r2, #0x1
|
|
bxeq lr
|
|
_020CE420:
|
|
eor r12, r1, r0
|
|
tst r12, #0x1
|
|
beq _020CE474
|
|
bic r0, r0, #0x1
|
|
ldrh r12, [r0], #0x2
|
|
mov r3, r12, lsr #0x8
|
|
subs r2, r2, #0x2
|
|
blo _020CE458
|
|
_020CE440:
|
|
ldrh r12, [r0], #0x2
|
|
orr r12, r3, r12, lsl #0x8
|
|
strh r12, [r1], #0x2
|
|
mov r3, r12, lsr #0x10
|
|
subs r2, r2, #0x2
|
|
bhs _020CE440
|
|
_020CE458:
|
|
tst r2, #0x1
|
|
bxeq lr
|
|
ldrh r12, [r1, #0x0]
|
|
and r12, r12, #0xff00
|
|
orr r12, r12, r3
|
|
strh r12, [r1, #0x0]
|
|
bx lr
|
|
_020CE474:
|
|
tst r12, #0x2
|
|
beq _020CE4A0
|
|
bics r3, r2, #0x1
|
|
beq _020CE4EC
|
|
sub r2, r2, r3
|
|
add r12, r3, r1
|
|
_020CE48C:
|
|
ldrh r3, [r0], #0x2
|
|
strh r3, [r1], #0x2
|
|
cmp r1, r12
|
|
blo _020CE48C
|
|
b _020CE4EC
|
|
_020CE4A0:
|
|
cmp r2, #0x2
|
|
blo _020CE4EC
|
|
tst r1, #0x2
|
|
beq _020CE4C0
|
|
ldrh r3, [r0], #0x2
|
|
strh r3, [r1], #0x2
|
|
subs r2, r2, #0x2
|
|
bxeq lr
|
|
_020CE4C0:
|
|
bics r3, r2, #0x3
|
|
beq _020CE4E0
|
|
sub r2, r2, r3
|
|
add r12, r3, r1
|
|
_020CE4D0:
|
|
ldr r3, [r0], #0x4
|
|
str r3, [r1], #0x4
|
|
cmp r1, r12
|
|
blo _020CE4D0
|
|
_020CE4E0:
|
|
tst r2, #0x2
|
|
ldrneh r3, [r0], #0x2
|
|
strneh r3, [r1], #0x2
|
|
_020CE4EC:
|
|
tst r2, #0x1
|
|
bxeq lr
|
|
ldrh r2, [r1, #0x0]
|
|
ldrh r0, [r0, #0x0]
|
|
and r2, r2, #0xff00
|
|
and r0, r0, #0xff
|
|
orr r0, r2, r0
|
|
strh r0, [r1, #0x0]
|
|
bx lr
|
|
|
|
thumb_func_start MI_Zero36B
|
|
MI_Zero36B: ; 0x020CE510
|
|
mov r1, #0x0
|
|
mov r2, #0x0
|
|
mov r3, #0x0
|
|
stmia r0!, {r1-r3}
|
|
stmia r0!, {r1-r3}
|
|
stmia r0!, {r1-r3}
|
|
bx lr
|