diff options
Diffstat (limited to 'arm9/asm')
-rw-r--r-- | arm9/asm/NNS_FND_expheap_s.s | 121 |
1 files changed, 1 insertions, 120 deletions
diff --git a/arm9/asm/NNS_FND_expheap_s.s b/arm9/asm/NNS_FND_expheap_s.s index d173bef0..d4d958db 100644 --- a/arm9/asm/NNS_FND_expheap_s.s +++ b/arm9/asm/NNS_FND_expheap_s.s @@ -10,6 +10,7 @@ .extern AllocUsedBlockFromFreeBlock .extern AllocFromHead .extern AllocFromTail + .extern RecycleRegion .text arm_func_start NNS_FndGetSizeForMBlockExpHeap @@ -156,123 +157,3 @@ _020ADF90: .balign 4 _020ADF9C: .word 0x00004652 arm_func_end NNS_FndResizeForMBlockExpHeap - - arm_func_start NNS_FndAllocFromExpHeapEx -NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0 - stmdb sp!, {lr} - sub sp, sp, #0x4 - cmp r1, #0x0 - moveq r1, #0x1 - add r1, r1, #0x3 - cmp r2, #0x0 - bic r1, r1, #0x3 - blt _020ADFCC - bl AllocFromHead - add sp, sp, #0x4 - ldmia sp!, {pc} -_020ADFCC: - rsb r2, r2, #0x0 - bl AllocFromTail - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end NNS_FndAllocFromExpHeapEx - - arm_func_start NNS_FndDestroyExpHeap -NNS_FndDestroyExpHeap: ; 0x020ADFDC - ldr ip, _020ADFE4 ; =NNSi_FndFinalizeHeap - bx r12 - .balign 4 -_020ADFE4: .word NNSi_FndFinalizeHeap - arm_func_end NNS_FndDestroyExpHeap - - arm_func_start NNS_FndCreateExpHeapEx -NNS_FndCreateExpHeapEx: ; 0x020ADFE8 - stmdb sp!, {lr} - sub sp, sp, #0x4 - add r1, r1, r0 - add r0, r0, #0x3 - bic r1, r1, #0x3 - bic r0, r0, #0x3 - cmp r0, r1 - bhi _020AE014 - sub r3, r1, r0 - cmp r3, #0x4c - bhs _020AE020 -_020AE014: - add sp, sp, #0x4 - mov r0, #0x0 - ldmia sp!, {pc} -_020AE020: - bl InitExpHeap - add sp, sp, #0x4 - ldmia sp!, {pc} - arm_func_end NNS_FndCreateExpHeapEx - - arm_func_start RecycleRegion -RecycleRegion: - stmdb sp!, {r4-r6,lr} - sub sp, sp, #0x8 - mov r5, r1 - ldr r2, [r5, #0x0] - ldr r1, [r5, #0x4] - mov r6, r0 - str r2, [sp, #0x0] - str r1, [sp, #0x4] - ldr r1, [r6, #0x0] - mov r4, #0x0 - cmp r1, #0x0 - beq _020AE0A0 - ldr r0, [r5, #0x0] -_020AE060: - cmp r1, r0 - movcc r4, r1 - blo _020AE094 - ldr r0, [r5, #0x4] - cmp r1, r0 - bne _020AE0A0 - ldr r2, [r1, #0x4] - add r0, r1, #0x10 - add r2, r2, r0 - mov r0, r6 - str r2, [sp, #0x4] - bl RemoveMBlock - b _020AE0A0 -_020AE094: - ldr r1, [r1, #0xc] - cmp r1, #0x0 - bne _020AE060 -_020AE0A0: - cmp r4, #0x0 - beq _020AE0D4 - ldr r2, [r4, #0x4] - add r1, r4, #0x10 - ldr r0, [r5, #0x0] - add r1, r2, r1 - cmp r1, r0 - bne _020AE0D4 - mov r0, r6 - mov r1, r4 - str r4, [sp, #0x0] - bl RemoveMBlock - mov r4, r0 -_020AE0D4: - ldr r1, [sp, #0x4] - ldr r0, [sp, #0x0] - sub r0, r1, r0 - cmp r0, #0x10 - addcc sp, sp, #0x8 - movcc r0, #0x0 - ldmccia sp!, {r4-r6,pc} - ldr r1, _020AE118 ; =0x00004652 - add r0, sp, #0x0 - bl InitMBlock - mov r1, r0 - mov r0, r6 - mov r2, r4 - bl InsertMBlock - mov r0, #0x1 - add sp, sp, #0x8 - ldmia sp!, {r4-r6,pc} - .balign 4 -_020AE118: .word 0x00004652 - arm_func_end RecycleRegion |