diff options
Diffstat (limited to 'arm9/asm/NNS_FND_expheap.s')
-rw-r--r-- | arm9/asm/NNS_FND_expheap.s | 160 |
1 files changed, 79 insertions, 81 deletions
diff --git a/arm9/asm/NNS_FND_expheap.s b/arm9/asm/NNS_FND_expheap.s index cb42f116..e94dba38 100644 --- a/arm9/asm/NNS_FND_expheap.s +++ b/arm9/asm/NNS_FND_expheap.s @@ -1,19 +1,17 @@ .include "asm/macros.inc" .include "global.inc" - - .extern FUN_020ADCA4 - .extern FUN_020ADC8C - + .extern NNSi_FndInitHeapHead + .extern NNSi_FndFinalizeHeap .text - arm_func_start FUN_020ADDC0 -FUN_020ADDC0: ; 0x020ADDC0 + arm_func_start NNS_FndGetSizeForMBlockExpHeap +NNS_FndGetSizeForMBlockExpHeap: ; 0x020ADDC0 ldr r0, [r0, #-0xc] bx lr - arm_func_end FUN_020ADDC0 + arm_func_end NNS_FndGetSizeForMBlockExpHeap - arm_func_start FUN_020ADDC8 -FUN_020ADDC8: ; 0x020ADDC8 + arm_func_start NNS_FndGetTotalFreeSizeForExpHeap +NNS_FndGetTotalFreeSizeForExpHeap: ; 0x020ADDC8 ldr r2, [r0, #0x24] mov r0, #0x0 cmp r2, #0x0 @@ -25,29 +23,29 @@ _020ADDD8: cmp r2, #0x0 bne _020ADDD8 bx lr - arm_func_end FUN_020ADDC8 + arm_func_end NNS_FndGetTotalFreeSizeForExpHeap - arm_func_start FUN_020ADDF0 -FUN_020ADDF0: ; 0x020ADDF0 + arm_func_start NNS_FndFreeToExpHeap +NNS_FndFreeToExpHeap: ; 0x020ADDF0 stmdb sp!, {r4-r5,lr} sub sp, sp, #0xc sub r4, r1, #0x10 add r5, r0, #0x24 add r0, sp, #0x0 mov r1, r4 - bl FUN_020AE528 + bl GetRegionOfMBlock mov r1, r4 add r0, r5, #0x8 - bl FUN_020AE500 + bl RemoveMBlock add r1, sp, #0x0 mov r0, r5 - bl FUN_020AE02C + bl RecycleRegion add sp, sp, #0xc ldmia sp!, {r4-r5,pc} - arm_func_end FUN_020ADDF0 + arm_func_end NNS_FndFreeToExpHeap - arm_func_start FUN_020ADE2C -FUN_020ADE2C: ; 0x020ADE2C + arm_func_start NNS_FndResizeForMBlockExpHeap +NNS_FndResizeForMBlockExpHeap: ; 0x020ADE2C stmdb sp!, {r4-r10,lr} sub sp, sp, #0x10 mov r4, r1 @@ -90,10 +88,10 @@ _020ADEB0: _020ADEBC: add r0, sp, #0x0 mov r1, r9 - bl FUN_020AE528 + bl GetRegionOfMBlock mov r0, r7 mov r1, r9 - bl FUN_020AE500 + bl RemoveMBlock ldr r2, [sp, #0x4] add r3, r10, r4 ldr r9, [sp, #0x0] @@ -112,11 +110,11 @@ _020ADEBC: blo _020ADF30 ldr r1, _020ADF9C ; =0x00004652 add r0, sp, #0x0 - bl FUN_020AE4A0 + bl InitMBlock mov r1, r0 mov r0, r7 mov r2, r8 - bl FUN_020AE4D0 + bl InsertMBlock _020ADF30: ldr r0, [r5, #0x20] ldr r1, [sp, #0x0] @@ -140,7 +138,7 @@ _020ADF60: add r1, sp, #0x8 mov r0, r7 str r10, [r6, #0x4] - bl FUN_020AE02C + bl RecycleRegion cmp r0, #0x0 streq r8, [r6, #0x4] _020ADF90: @@ -149,10 +147,10 @@ _020ADF90: ldmia sp!, {r4-r10,pc} .balign 4 _020ADF9C: .word 0x00004652 - arm_func_end FUN_020ADE2C + arm_func_end NNS_FndResizeForMBlockExpHeap - arm_func_start tempName_NNS_FndAllocFromExpHeapEx -tempName_NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0 + arm_func_start NNS_FndAllocFromExpHeapEx +NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0 stmdb sp!, {lr} sub sp, sp, #0x4 cmp r1, #0x0 @@ -161,26 +159,26 @@ tempName_NNS_FndAllocFromExpHeapEx: ; 0x020ADFA0 cmp r2, #0x0 bic r1, r1, #0x3 blt _020ADFCC - bl FUN_020AE1D8 + bl AllocFromHead add sp, sp, #0x4 ldmia sp!, {pc} _020ADFCC: rsb r2, r2, #0x0 - bl FUN_020AE11C + bl AllocFromTail add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end tempName_NNS_FndAllocFromExpHeapEx + arm_func_end NNS_FndAllocFromExpHeapEx - arm_func_start thunk_FUN_020adc8c -thunk_FUN_020adc8c: ; 0x020ADFDC - ldr ip, _020ADFE4 ; =FUN_020ADC8C + arm_func_start NNS_FndDestroyExpHeap +NNS_FndDestroyExpHeap: ; 0x020ADFDC + ldr ip, _020ADFE4 ; =NNSi_FndFinalizeHeap bx r12 .balign 4 -_020ADFE4: .word FUN_020ADC8C - arm_func_end thunk_FUN_020adc8c +_020ADFE4: .word NNSi_FndFinalizeHeap + arm_func_end NNS_FndDestroyExpHeap - arm_func_start tempName_NNS_FndCreateExpHeapEx -tempName_NNS_FndCreateExpHeapEx: ; 0x020ADFE8 + arm_func_start NNS_FndCreateExpHeapEx +NNS_FndCreateExpHeapEx: ; 0x020ADFE8 stmdb sp!, {lr} sub sp, sp, #0x4 add r1, r1, r0 @@ -197,13 +195,13 @@ _020AE014: mov r0, #0x0 ldmia sp!, {pc} _020AE020: - bl FUN_020AE420 + bl InitExpHeap add sp, sp, #0x4 ldmia sp!, {pc} - arm_func_end tempName_NNS_FndCreateExpHeapEx + arm_func_end NNS_FndCreateExpHeapEx - arm_func_start FUN_020AE02C -FUN_020AE02C: + arm_func_start RecycleRegion +RecycleRegion: stmdb sp!, {r4-r6,lr} sub sp, sp, #0x8 mov r5, r1 @@ -229,7 +227,7 @@ _020AE060: add r2, r2, r0 mov r0, r6 str r2, [sp, #0x4] - bl FUN_020AE500 + bl RemoveMBlock b _020AE0A0 _020AE094: ldr r1, [r1, #0xc] @@ -247,7 +245,7 @@ _020AE0A0: mov r0, r6 mov r1, r4 str r4, [sp, #0x0] - bl FUN_020AE500 + bl RemoveMBlock mov r4, r0 _020AE0D4: ldr r1, [sp, #0x4] @@ -259,20 +257,20 @@ _020AE0D4: ldmccia sp!, {r4-r6,pc} ldr r1, _020AE118 ; =0x00004652 add r0, sp, #0x0 - bl FUN_020AE4A0 + bl InitMBlock mov r1, r0 mov r0, r6 mov r2, r4 - bl FUN_020AE4D0 + bl InsertMBlock mov r0, #0x1 add sp, sp, #0x8 ldmia sp!, {r4-r6,pc} .balign 4 _020AE118: .word 0x00004652 - arm_func_end FUN_020AE02C + arm_func_end RecycleRegion - arm_func_start FUN_020AE11C -FUN_020AE11C: ; 0x020AE11C + local_arm_func_start AllocFromTail +AllocFromTail: ; 0x020AE11C stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 add r0, r0, #0x24 @@ -320,13 +318,13 @@ _020AE1B0: mov r4, #0x1 mov r2, r12 str r4, [sp, #0x0] - bl FUN_020AE298 + bl AllocUsedBlockFromFreeBlock add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020AE11C + arm_func_end AllocFromTail - arm_func_start FUN_020AE1D8 -FUN_020AE1D8: ; 0x020AE1D8 + local_arm_func_start AllocFromHead +AllocFromHead: ; 0x020AE1D8 stmdb sp!, {r4-r9,lr} sub sp, sp, #0x4 add r0, r0, #0x24 @@ -375,13 +373,13 @@ _020AE270: mov r4, #0x0 mov r2, lr str r4, [sp, #0x0] - bl FUN_020AE298 + bl AllocUsedBlockFromFreeBlock add sp, sp, #0x4 ldmia sp!, {r4-r9,pc} - arm_func_end FUN_020AE1D8 + arm_func_end AllocFromHead - arm_func_start FUN_020AE298 -FUN_020AE298: ; 0x020AE298 + arm_func_start AllocUsedBlockFromFreeBlock +AllocUsedBlockFromFreeBlock: ; 0x020AE298 stmdb sp!, {r4-r8,lr} sub sp, sp, #0x18 mov r7, r0 @@ -389,7 +387,7 @@ FUN_020AE298: ; 0x020AE298 mov r8, r1 mov r6, r2 mov r5, r3 - bl FUN_020AE528 + bl GetRegionOfMBlock ldr r3, [sp, #0x4] sub r4, r6, #0x10 add r2, r5, r6 @@ -398,7 +396,7 @@ FUN_020AE298: ; 0x020AE298 str r4, [sp, #0x4] str r3, [sp, #0xc] str r2, [sp, #0x8] - bl FUN_020AE500 + bl RemoveMBlock ldr r2, [sp, #0x0] ldr r1, [sp, #0x4] mov r5, r0 @@ -408,11 +406,11 @@ FUN_020AE298: ; 0x020AE298 blo _020AE318 ldr r1, _020AE418 ; =0x00004652 add r0, sp, #0x0 - bl FUN_020AE4A0 + bl InitMBlock mov r1, r0 mov r0, r7 mov r2, r5 - bl FUN_020AE4D0 + bl InsertMBlock mov r5, r0 _020AE318: ldr r1, [sp, #0xc] @@ -423,11 +421,11 @@ _020AE318: blo _020AE34C ldr r1, _020AE418 ; =0x00004652 add r0, sp, #0x8 - bl FUN_020AE4A0 + bl InitMBlock mov r1, r0 mov r0, r7 mov r2, r5 - bl FUN_020AE4D0 + bl InsertMBlock _020AE34C: ldr r0, [r7, #-0x4] ldr r1, [sp, #0x4] @@ -446,7 +444,7 @@ _020AE378: add r0, sp, #0x10 str r4, [sp, #0x10] str r2, [sp, #0x14] - bl FUN_020AE4A0 + bl InitMBlock mov r1, r0 ldrh r3, [r1, #0x2] ldrh r2, [sp, #0x30] @@ -477,17 +475,17 @@ _020AE378: orr r2, r2, r3 strh r2, [r1, #0x2] ldr r2, [r7, #0xc] - bl FUN_020AE4D0 + bl InsertMBlock mov r0, r6 add sp, sp, #0x18 ldmia sp!, {r4-r8,pc} .balign 4 _020AE418: .word 0x00004652 _020AE41C: .word 0x00005544 - arm_func_end FUN_020AE298 + arm_func_end AllocUsedBlockFromFreeBlock - arm_func_start FUN_020AE420 -FUN_020AE420: ; 0x020AE420 + arm_func_start InitExpHeap +InitExpHeap: ; 0x020AE420 stmdb sp!, {r4-r5,lr} sub sp, sp, #0xc mov r5, r0 @@ -496,7 +494,7 @@ FUN_020AE420: ; 0x020AE420 str r2, [sp, #0x0] ldr r1, _020AE498 ; =0x45585048 add r2, r4, #0x14 - bl FUN_020ADCA4 + bl NNSi_FndInitHeapHead mov r0, #0x0 strh r0, [r4, #0x10] strh r0, [r4, #0x12] @@ -509,7 +507,7 @@ FUN_020AE420: ; 0x020AE420 str r2, [sp, #0x4] ldr r2, [r5, #0x1c] str r2, [sp, #0x8] - bl FUN_020AE4A0 + bl InitMBlock str r0, [r5, #0x24] str r0, [r4, #0x4] mov r1, #0x0 @@ -521,10 +519,10 @@ FUN_020AE420: ; 0x020AE420 .balign 4 _020AE498: .word 0x45585048 _020AE49C: .word 0x00004652 - arm_func_end FUN_020AE420 + arm_func_end InitExpHeap - arm_func_start FUN_020AE4A0 -FUN_020AE4A0: ; 0x020AE4A0 + arm_func_start InitMBlock +InitMBlock: ; 0x020AE4A0 ldr r3, [r0, #0x0] mov r2, #0x0 strh r1, [r3, #0x0] @@ -537,10 +535,10 @@ FUN_020AE4A0: ; 0x020AE4A0 mov r0, r3 str r2, [r3, #0xc] bx lr - arm_func_end FUN_020AE4A0 + arm_func_end InitMBlock - arm_func_start FUN_020AE4D0 -FUN_020AE4D0: ; 0x020AE4D0 + arm_func_start InsertMBlock +InsertMBlock: ; 0x020AE4D0 str r2, [r1, #0x8] cmp r2, #0x0 ldrne r3, [r2, #0xc] @@ -553,10 +551,10 @@ FUN_020AE4D0: ; 0x020AE4D0 streq r1, [r0, #0x4] mov r0, r1 bx lr - arm_func_end FUN_020AE4D0 + arm_func_end InsertMBlock - arm_func_start FUN_020AE500 -FUN_020AE500: ; 0x020AE500 + arm_func_start RemoveMBlock +RemoveMBlock: ; 0x020AE500 ldr r2, [r1, #0x8] ldr r1, [r1, #0xc] cmp r2, #0x0 @@ -567,10 +565,10 @@ FUN_020AE500: ; 0x020AE500 streq r2, [r0, #0x4] mov r0, r2 bx lr - arm_func_end FUN_020AE500 + arm_func_end RemoveMBlock - arm_func_start FUN_020AE528 -FUN_020AE528: ; 0x020AE528 + arm_func_start GetRegionOfMBlock +GetRegionOfMBlock: ; 0x020AE528 ldrh r2, [r1, #0x2] add r3, r1, #0x10 mov r2, r2, asr #0x8 @@ -582,4 +580,4 @@ FUN_020AE528: ; 0x020AE528 add r1, r1, r3 str r1, [r0, #0x4] bx lr - arm_func_end FUN_020AE528 + arm_func_end GetRegionOfMBlock |