summaryrefslogtreecommitdiff
path: root/asm/malloc.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/malloc.s')
-rw-r--r--asm/malloc.s339
1 files changed, 0 insertions, 339 deletions
diff --git a/asm/malloc.s b/asm/malloc.s
deleted file mode 100644
index 529b654c7..000000000
--- a/asm/malloc.s
+++ /dev/null
@@ -1,339 +0,0 @@
- .include "asm/macros.s"
-
- .syntax unified
-
- .text
-
- thumb_func_start PutMemBlockHeader
-@ void PutMemBlockHeader(void *block, struct MemBlock *prev, struct MemBlock *next, u32 size)
-PutMemBlockHeader: @ 8000988
- push {r4,lr}
- movs r4, 0
- strh r4, [r0]
- ldr r4, =0x0000a3a3
- strh r4, [r0, 0x2]
- str r3, [r0, 0x4]
- str r1, [r0, 0x8]
- str r2, [r0, 0xC]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PutMemBlockHeader
-
- thumb_func_start PutFirstMemBlockHeader
-@ void PutFirstMemBlockHeader(void *block, u32 size)
-PutFirstMemBlockHeader: @ 80009A4
- push {lr}
- adds r2, r0, 0
- adds r3, r1, 0
- subs r3, 0x10
- adds r1, r2, 0
- bl PutMemBlockHeader
- pop {r0}
- bx r0
- thumb_func_end PutFirstMemBlockHeader
-
- thumb_func_start AllocInternal
-@ void *AllocInternal(struct MemBlock *head, u32 size)
-AllocInternal: @ 80009B8
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r6, r4, 0
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _080009CC
- lsrs r0, r1, 2
- adds r0, 0x1
- lsls r1, r0, 2
-_080009CC:
- movs r2, 0x1
-_080009CE:
- ldrh r0, [r4]
- cmp r0, 0
- bne _08000A0C
- ldr r3, [r4, 0x4]
- cmp r3, r1
- bcc _08000A0C
- subs r0, r3, r1
- cmp r0, 0x1F
- bhi _080009E4
- strh r2, [r4]
- b _08000A06
-_080009E4:
- subs r3, 0x10
- subs r3, r1
- adds r0, r1, 0
- adds r0, 0x10
- adds r5, r4, r0
- strh r2, [r4]
- str r1, [r4, 0x4]
- ldr r2, [r4, 0xC]
- adds r0, r5, 0
- adds r1, r4, 0
- bl PutMemBlockHeader
- str r5, [r4, 0xC]
- ldr r0, [r5, 0xC]
- cmp r0, r6
- beq _08000A06
- str r5, [r0, 0x8]
-_08000A06:
- adds r0, r4, 0
- adds r0, 0x10
- b _08000A18
-_08000A0C:
- ldr r0, [r4, 0xC]
- cmp r0, r6
- beq _08000A16
- adds r4, r0, 0
- b _080009CE
-_08000A16:
- movs r0, 0
-_08000A18:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end AllocInternal
-
- thumb_func_start FreeInternal
-@ void FreeInternal(void *heapStart, void *pointer)
-FreeInternal: @ 8000A20
- push {r4,r5,lr}
- cmp r1, 0
- beq _08000A7C
- adds r5, r0, 0
- adds r2, r1, 0
- subs r2, 0x10
- movs r0, 0
- strh r0, [r2]
- ldr r3, [r2, 0xC]
- cmp r3, r5
- beq _08000A54
- ldrh r4, [r3]
- cmp r4, 0
- bne _08000A54
- ldr r0, [r2, 0x4]
- adds r0, 0x10
- ldr r1, [r3, 0x4]
- adds r0, r1
- str r0, [r2, 0x4]
- strh r4, [r3, 0x2]
- ldr r0, [r2, 0xC]
- ldr r0, [r0, 0xC]
- str r0, [r2, 0xC]
- cmp r0, r5
- beq _08000A54
- str r2, [r0, 0x8]
-_08000A54:
- cmp r2, r5
- beq _08000A7C
- ldr r1, [r2, 0x8]
- ldrh r3, [r1]
- cmp r3, 0
- bne _08000A7C
- ldr r0, [r2, 0xC]
- str r0, [r1, 0xC]
- ldr r1, [r2, 0xC]
- cmp r1, r5
- beq _08000A6E
- ldr r0, [r2, 0x8]
- str r0, [r1, 0x8]
-_08000A6E:
- strh r3, [r2, 0x2]
- ldr r0, [r2, 0x8]
- ldr r1, [r0, 0x4]
- adds r1, 0x10
- ldr r2, [r2, 0x4]
- adds r1, r2
- str r1, [r0, 0x4]
-_08000A7C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FreeInternal
-
- thumb_func_start AllocZeroedInternal
-@ void *AllocZeroedInternal(void *heapStart, u32 size)
-AllocZeroedInternal: @ 8000A84
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r1, 0
- bl AllocInternal
- adds r5, r0, 0
- cmp r5, 0
- beq _08000AB8
- movs r0, 0x3
- ands r0, r4
- cmp r0, 0
- beq _08000AA2
- lsrs r0, r4, 2
- adds r0, 0x1
- lsls r4, r0, 2
-_08000AA2:
- movs r0, 0
- str r0, [sp]
- lsls r2, r4, 9
- lsrs r2, 11
- movs r0, 0xA0
- lsls r0, 19
- orrs r2, r0
- mov r0, sp
- adds r1, r5, 0
- bl CpuSet
-_08000AB8:
- adds r0, r5, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end AllocZeroedInternal
-
- thumb_func_start CheckMemBlockInternal
-@ bool8 CheckMemBlockInternal(struct MemBlock *head, struct MemBlock *node)
-CheckMemBlockInternal: @ 8000AC4
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r3, r1, 0
- subs r3, 0x10
- ldrh r2, [r3, 0x2]
- ldr r0, =0x0000a3a3
- cmp r2, r0
- bne _08000B0A
- ldr r0, [r3, 0xC]
- ldrh r1, [r0, 0x2]
- adds r4, r0, 0
- cmp r1, r2
- bne _08000B0A
- cmp r4, r5
- beq _08000AE8
- ldr r0, [r4, 0x8]
- cmp r0, r3
- bne _08000B0A
-_08000AE8:
- ldr r2, [r3, 0x8]
- ldrh r1, [r2, 0x2]
- ldr r0, =0x0000a3a3
- cmp r1, r0
- bne _08000B0A
- cmp r2, r5
- beq _08000AFC
- ldr r0, [r2, 0xC]
- cmp r0, r3
- bne _08000B0A
-_08000AFC:
- cmp r4, r5
- beq _08000B14
- ldr r0, [r3, 0x4]
- adds r0, 0x10
- adds r0, r3, r0
- cmp r4, r0
- beq _08000B14
-_08000B0A:
- movs r0, 0
- b _08000B16
- .pool
-_08000B14:
- movs r0, 0x1
-_08000B16:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CheckMemBlockInternal
-
- thumb_func_start InitHeap
-@ void InitHeap(void *heapStart, u32 heapSize)
-InitHeap: @ 8000B1C
- push {lr}
- ldr r2, =0x03000004
- str r0, [r2]
- ldr r2, =0x03000008
- str r1, [r2]
- bl PutFirstMemBlockHeader
- pop {r0}
- bx r0
- .pool
- thumb_func_end InitHeap
-
- thumb_func_start Alloc
-@ void *Alloc(u32 size)
-Alloc: @ 8000B38
- push {lr}
- adds r1, r0, 0
- ldr r0, =0x03000004
- ldr r0, [r0]
- bl AllocInternal
- pop {r1}
- bx r1
- .pool
- thumb_func_end Alloc
-
- thumb_func_start AllocZeroed
-@ void *AllocZeroed(u32 size)
-AllocZeroed: @ 8000B4C
- push {lr}
- adds r1, r0, 0
- ldr r0, =0x03000004
- ldr r0, [r0]
- bl AllocZeroedInternal
- pop {r1}
- bx r1
- .pool
- thumb_func_end AllocZeroed
-
- thumb_func_start Free
-@ void Free(void *pointer)
-Free: @ 8000B60
- push {lr}
- adds r1, r0, 0
- ldr r0, =0x03000004
- ldr r0, [r0]
- bl FreeInternal
- pop {r0}
- bx r0
- .pool
- thumb_func_end Free
-
- thumb_func_start CheckMemBlock
-@ bool8 CheckMemBlock(void *pointer)
-CheckMemBlock: @ 8000B74
- push {lr}
- adds r1, r0, 0
- ldr r0, =0x03000004
- ldr r0, [r0]
- bl CheckMemBlockInternal
- pop {r1}
- bx r1
- .pool
- thumb_func_end CheckMemBlock
-
- thumb_func_start CheckHeap
-@ bool8 CheckHeap()
-CheckHeap: @ 8000B88
- push {r4,r5,lr}
- ldr r0, =0x03000004
- ldr r4, [r0]
- adds r5, r0, 0
-_08000B90:
- ldr r0, [r5]
- adds r1, r4, 0
- adds r1, 0x10
- bl CheckMemBlockInternal
- cmp r0, 0
- beq _08000BB0
- ldr r4, [r4, 0xC]
- ldr r0, [r5]
- cmp r4, r0
- bne _08000B90
- movs r0, 0x1
- b _08000BB2
- .pool
-_08000BB0:
- movs r0, 0
-_08000BB2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CheckHeap
-
- .align 2, 0 @ Don't pad with nop.