update for modified assembler
This commit is contained in:
150
asm/malloc.s
150
asm/malloc.s
@@ -1,6 +1,6 @@
|
||||
thumb_func_start malloc_header
|
||||
@ void malloc_header(struct memblk *blk, struct memblk *prev, struct memblk *next, u32 size)
|
||||
malloc_header: @ 8000988
|
||||
; void malloc_header(struct memblk *blk, struct memblk *prev, struct memblk *next, u32 size)
|
||||
malloc_header: ; 8000988
|
||||
push {r4,lr}
|
||||
movs r4, 0
|
||||
strh r4, [r0]
|
||||
@@ -17,8 +17,8 @@ malloc_header: @ 8000988
|
||||
thumb_func_end malloc_header
|
||||
|
||||
thumb_func_start malloc_unlinked_header
|
||||
@ void malloc_unlinked_header(struct memblk *blk, u32 size)
|
||||
malloc_unlinked_header: @ 80009A4
|
||||
; void malloc_unlinked_header(struct memblk *blk, u32 size)
|
||||
malloc_unlinked_header: ; 80009A4
|
||||
push {lr}
|
||||
adds r2, r0, 0
|
||||
adds r3, r1, 0
|
||||
@@ -30,33 +30,33 @@ malloc_unlinked_header: @ 80009A4
|
||||
thumb_func_end malloc_unlinked_header
|
||||
|
||||
thumb_func_start malloc_core
|
||||
@ void *malloc_core(struct memblk *head, u32 size)
|
||||
malloc_core: @ 80009B8
|
||||
; void *malloc_core(struct memblk *head, u32 size)
|
||||
malloc_core: ; 80009B8
|
||||
push {r4-r6,lr}
|
||||
adds r4, r0, 0
|
||||
adds r6, r4, 0
|
||||
movs r0, 0x3
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _080009CC
|
||||
beq @080009CC
|
||||
lsrs r0, r1, 2
|
||||
adds r0, 0x1
|
||||
lsls r1, r0, 2
|
||||
_080009CC:
|
||||
@080009CC:
|
||||
movs r2, 0x1
|
||||
_080009CE:
|
||||
@080009CE:
|
||||
ldrh r0, [r4]
|
||||
cmp r0, 0
|
||||
bne _08000A0C
|
||||
bne @08000A0C
|
||||
ldr r3, [r4, 0x4]
|
||||
cmp r3, r1
|
||||
bcc _08000A0C
|
||||
bcc @08000A0C
|
||||
subs r0, r3, r1
|
||||
cmp r0, 0x1F
|
||||
bhi _080009E4
|
||||
bhi @080009E4
|
||||
strh r2, [r4]
|
||||
b _08000A06
|
||||
_080009E4:
|
||||
b @08000A06
|
||||
@080009E4:
|
||||
subs r3, 0x10
|
||||
subs r3, r1
|
||||
adds r0, r1, 0
|
||||
@@ -71,32 +71,32 @@ _080009E4:
|
||||
str r5, [r4, 0xC]
|
||||
ldr r0, [r5, 0xC]
|
||||
cmp r0, r6
|
||||
beq _08000A06
|
||||
beq @08000A06
|
||||
str r5, [r0, 0x8]
|
||||
_08000A06:
|
||||
@08000A06:
|
||||
adds r0, r4, 0
|
||||
adds r0, 0x10
|
||||
b _08000A18
|
||||
_08000A0C:
|
||||
b @08000A18
|
||||
@08000A0C:
|
||||
ldr r0, [r4, 0xC]
|
||||
cmp r0, r6
|
||||
beq _08000A16
|
||||
beq @08000A16
|
||||
adds r4, r0, 0
|
||||
b _080009CE
|
||||
_08000A16:
|
||||
b @080009CE
|
||||
@08000A16:
|
||||
movs r0, 0
|
||||
_08000A18:
|
||||
@08000A18:
|
||||
pop {r4-r6}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end malloc_core
|
||||
|
||||
thumb_func_start free_core
|
||||
@ void free_core(struct memblk *head, struct memblk *node)
|
||||
free_core: @ 8000A20
|
||||
; void free_core(struct memblk *head, struct memblk *node)
|
||||
free_core: ; 8000A20
|
||||
push {r4,r5,lr}
|
||||
cmp r1, 0
|
||||
beq _08000A7C
|
||||
beq @08000A7C
|
||||
adds r5, r0, 0
|
||||
adds r2, r1, 0
|
||||
subs r2, 0x10
|
||||
@@ -104,10 +104,10 @@ free_core: @ 8000A20
|
||||
strh r0, [r2]
|
||||
ldr r3, [r2, 0xC]
|
||||
cmp r3, r5
|
||||
beq _08000A54
|
||||
beq @08000A54
|
||||
ldrh r4, [r3]
|
||||
cmp r4, 0
|
||||
bne _08000A54
|
||||
bne @08000A54
|
||||
ldr r0, [r2, 0x4]
|
||||
adds r0, 0x10
|
||||
ldr r1, [r3, 0x4]
|
||||
@@ -118,23 +118,23 @@ free_core: @ 8000A20
|
||||
ldr r0, [r0, 0xC]
|
||||
str r0, [r2, 0xC]
|
||||
cmp r0, r5
|
||||
beq _08000A54
|
||||
beq @08000A54
|
||||
str r2, [r0, 0x8]
|
||||
_08000A54:
|
||||
@08000A54:
|
||||
cmp r2, r5
|
||||
beq _08000A7C
|
||||
beq @08000A7C
|
||||
ldr r1, [r2, 0x8]
|
||||
ldrh r3, [r1]
|
||||
cmp r3, 0
|
||||
bne _08000A7C
|
||||
bne @08000A7C
|
||||
ldr r0, [r2, 0xC]
|
||||
str r0, [r1, 0xC]
|
||||
ldr r1, [r2, 0xC]
|
||||
cmp r1, r5
|
||||
beq _08000A6E
|
||||
beq @08000A6E
|
||||
ldr r0, [r2, 0x8]
|
||||
str r0, [r1, 0x8]
|
||||
_08000A6E:
|
||||
@08000A6E:
|
||||
strh r3, [r2, 0x2]
|
||||
ldr r0, [r2, 0x8]
|
||||
ldr r1, [r0, 0x4]
|
||||
@@ -142,30 +142,30 @@ _08000A6E:
|
||||
ldr r2, [r2, 0x4]
|
||||
adds r1, r2
|
||||
str r1, [r0, 0x4]
|
||||
_08000A7C:
|
||||
@08000A7C:
|
||||
pop {r4,r5}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end free_core
|
||||
|
||||
thumb_func_start malloc_core_and_clear
|
||||
@ void *malloc_core_and_clear(struct memblk *head, unsigned int size)
|
||||
malloc_core_and_clear: @ 8000A84
|
||||
; void *malloc_core_and_clear(struct memblk *head, unsigned int size)
|
||||
malloc_core_and_clear: ; 8000A84
|
||||
push {r4,r5,lr}
|
||||
sub sp, 0x4
|
||||
adds r4, r1, 0
|
||||
bl malloc_core
|
||||
adds r5, r0, 0
|
||||
cmp r5, 0
|
||||
beq _08000AB8
|
||||
beq @08000AB8
|
||||
movs r0, 0x3
|
||||
ands r0, r4
|
||||
cmp r0, 0
|
||||
beq _08000AA2
|
||||
beq @08000AA2
|
||||
lsrs r0, r4, 2
|
||||
adds r0, 0x1
|
||||
lsls r4, r0, 2
|
||||
_08000AA2:
|
||||
@08000AA2:
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
lsls r2, r4, 9
|
||||
@@ -176,7 +176,7 @@ _08000AA2:
|
||||
mov r0, sp
|
||||
adds r1, r5, 0
|
||||
bl CpuSet
|
||||
_08000AB8:
|
||||
@08000AB8:
|
||||
adds r0, r5, 0
|
||||
add sp, 0x4
|
||||
pop {r4,r5}
|
||||
@@ -185,8 +185,8 @@ _08000AB8:
|
||||
thumb_func_end malloc_core_and_clear
|
||||
|
||||
thumb_func_start check_memblk_core
|
||||
@ _BOOL4 check_memblk_core(struct memblk *head, struct memblk *node)
|
||||
check_memblk_core: @ 8000AC4
|
||||
; _BOOL4 check_memblk_core(struct memblk *head, struct memblk *node)
|
||||
check_memblk_core: ; 8000AC4
|
||||
push {r4,r5,lr}
|
||||
adds r5, r0, 0
|
||||
adds r3, r1, 0
|
||||
@@ -194,52 +194,52 @@ check_memblk_core: @ 8000AC4
|
||||
ldrh r2, [r3, 0x2]
|
||||
ldr r0, =0x0000a3a3
|
||||
cmp r2, r0
|
||||
bne _08000B0A
|
||||
bne @08000B0A
|
||||
ldr r0, [r3, 0xC]
|
||||
ldrh r1, [r0, 0x2]
|
||||
adds r4, r0, 0
|
||||
cmp r1, r2
|
||||
bne _08000B0A
|
||||
bne @08000B0A
|
||||
cmp r4, r5
|
||||
beq _08000AE8
|
||||
beq @08000AE8
|
||||
ldr r0, [r4, 0x8]
|
||||
cmp r0, r3
|
||||
bne _08000B0A
|
||||
_08000AE8:
|
||||
bne @08000B0A
|
||||
@08000AE8:
|
||||
ldr r2, [r3, 0x8]
|
||||
ldrh r1, [r2, 0x2]
|
||||
ldr r0, =0x0000a3a3
|
||||
cmp r1, r0
|
||||
bne _08000B0A
|
||||
bne @08000B0A
|
||||
cmp r2, r5
|
||||
beq _08000AFC
|
||||
beq @08000AFC
|
||||
ldr r0, [r2, 0xC]
|
||||
cmp r0, r3
|
||||
bne _08000B0A
|
||||
_08000AFC:
|
||||
bne @08000B0A
|
||||
@08000AFC:
|
||||
cmp r4, r5
|
||||
beq _08000B14
|
||||
beq @08000B14
|
||||
ldr r0, [r3, 0x4]
|
||||
adds r0, 0x10
|
||||
adds r0, r3, r0
|
||||
cmp r4, r0
|
||||
beq _08000B14
|
||||
_08000B0A:
|
||||
beq @08000B14
|
||||
@08000B0A:
|
||||
movs r0, 0
|
||||
b _08000B16
|
||||
b @08000B16
|
||||
.align 2, 0
|
||||
.pool
|
||||
_08000B14:
|
||||
@08000B14:
|
||||
movs r0, 0x1
|
||||
_08000B16:
|
||||
@08000B16:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end check_memblk_core
|
||||
|
||||
thumb_func_start init_malloc
|
||||
@ void init_malloc(u32 heapStart, u32 heapSize)
|
||||
init_malloc: @ 8000B1C
|
||||
; void init_malloc(u32 heapStart, u32 heapSize)
|
||||
init_malloc: ; 8000B1C
|
||||
push {lr}
|
||||
ldr r2, =0x03000004
|
||||
str r0, [r2]
|
||||
@@ -253,8 +253,8 @@ init_malloc: @ 8000B1C
|
||||
thumb_func_end init_malloc
|
||||
|
||||
thumb_func_start malloc
|
||||
@ void *malloc(u32 size)
|
||||
malloc: @ 8000B38
|
||||
; void *malloc(u32 size)
|
||||
malloc: ; 8000B38
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
ldr r0, =0x03000004
|
||||
@@ -267,8 +267,8 @@ malloc: @ 8000B38
|
||||
thumb_func_end malloc
|
||||
|
||||
thumb_func_start malloc_and_clear
|
||||
@ void *malloc_and_clear(u32 size)
|
||||
malloc_and_clear: @ 8000B4C
|
||||
; void *malloc_and_clear(u32 size)
|
||||
malloc_and_clear: ; 8000B4C
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
ldr r0, =0x03000004
|
||||
@@ -281,8 +281,8 @@ malloc_and_clear: @ 8000B4C
|
||||
thumb_func_end malloc_and_clear
|
||||
|
||||
thumb_func_start free
|
||||
@ void free(void *ptr)
|
||||
free: @ 8000B60
|
||||
; void free(void *ptr)
|
||||
free: ; 8000B60
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
ldr r0, =0x03000004
|
||||
@@ -295,8 +295,8 @@ free: @ 8000B60
|
||||
thumb_func_end free
|
||||
|
||||
thumb_func_start check_memblk
|
||||
@ _BOOL4 check_memblk(struct memblk *node)
|
||||
check_memblk: @ 8000B74
|
||||
; _BOOL4 check_memblk(struct memblk *node)
|
||||
check_memblk: ; 8000B74
|
||||
push {lr}
|
||||
adds r1, r0, 0
|
||||
ldr r0, =0x03000004
|
||||
@@ -309,30 +309,30 @@ check_memblk: @ 8000B74
|
||||
thumb_func_end check_memblk
|
||||
|
||||
thumb_func_start check_all_memblks
|
||||
@ _BOOL4 check_all_memblks()
|
||||
check_all_memblks: @ 8000B88
|
||||
; _BOOL4 check_all_memblks()
|
||||
check_all_memblks: ; 8000B88
|
||||
push {r4,r5,lr}
|
||||
ldr r0, =0x03000004
|
||||
ldr r4, [r0]
|
||||
adds r5, r0, 0
|
||||
_08000B90:
|
||||
@08000B90:
|
||||
ldr r0, [r5]
|
||||
adds r1, r4, 0
|
||||
adds r1, 0x10
|
||||
bl check_memblk_core
|
||||
cmp r0, 0
|
||||
beq _08000BB0
|
||||
beq @08000BB0
|
||||
ldr r4, [r4, 0xC]
|
||||
ldr r0, [r5]
|
||||
cmp r4, r0
|
||||
bne _08000B90
|
||||
bne @08000B90
|
||||
movs r0, 0x1
|
||||
b _08000BB2
|
||||
b @08000BB2
|
||||
.align 2, 0
|
||||
.pool
|
||||
_08000BB0:
|
||||
@08000BB0:
|
||||
movs r0, 0
|
||||
_08000BB2:
|
||||
@08000BB2:
|
||||
pop {r4,r5}
|
||||
pop {r1}
|
||||
bx r1
|
||||
|
||||
Reference in New Issue
Block a user