summaryrefslogtreecommitdiff
path: root/asm/memory.s
diff options
context:
space:
mode:
authornullableVoidPtr <30564701+nullableVoidPtr@users.noreply.github.com>2018-10-17 11:28:27 +0800
committervoid <30564701+nullableVoidPtr@users.noreply.github.com>2018-11-18 18:29:52 +0800
commit961ab7ccaf4d175189cd42fcddca1336f3d91bad (patch)
treea223139bf9282e5a3636810ae78dccf5095e2100 /asm/memory.s
parent9e5147a9adf9dc0aba908f38637cd0b4da2cbbcc (diff)
Fix makefile and decompile some functions.
Partial memory.c, save.c and bg_palette_buffer.c decompilation, along with some asm/ cleanup.
Diffstat (limited to 'asm/memory.s')
-rw-r--r--asm/memory.s242
1 files changed, 38 insertions, 204 deletions
diff --git a/asm/memory.s b/asm/memory.s
index e364f1b..418056c 100644
--- a/asm/memory.s
+++ b/asm/memory.s
@@ -4,177 +4,21 @@
.syntax unified
.text
-
- thumb_func_start InitHeap
-InitHeap:
- push {lr}
- bl InitHeapInternal
- pop {r0}
- bx r0
- thumb_func_end InitHeap
-
- thumb_func_start MemoryClear8
-MemoryClear8:
- push {lr}
- cmp r1, 0
- ble _08002EAA
- movs r2, 0
-_08002EA0:
- subs r1, 0x1
- strb r2, [r0]
- adds r0, 0x1
- cmp r1, 0
- bgt _08002EA0
-_08002EAA:
- pop {r0}
- bx r0
- thumb_func_end MemoryClear8
-
- thumb_func_start MemoryClear16
-MemoryClear16:
- push {lr}
- cmp r1, 0
- ble _08002EC2
- movs r2, 0
-_08002EB8:
- subs r1, 0x2
- strh r2, [r0]
- adds r0, 0x2
- cmp r1, 0
- bgt _08002EB8
-_08002EC2:
- pop {r0}
- bx r0
- thumb_func_end MemoryClear16
-
- thumb_func_start MemoryClear32
-MemoryClear32:
- push {lr}
- bl CpuClear
- pop {r0}
- bx r0
- thumb_func_end MemoryClear32
-
- thumb_func_start MemoryFill8
-MemoryFill8:
- push {lr}
- lsls r1, 24
- lsrs r1, 24
- cmp r2, 0
- ble _08002EE8
-_08002EDE:
- subs r2, 0x1
- strb r1, [r0]
- adds r0, 0x1
- cmp r2, 0
- bgt _08002EDE
-_08002EE8:
- pop {r0}
- bx r0
- thumb_func_end MemoryFill8
-
- thumb_func_start MemoryFill16
-MemoryFill16:
- push {lr}
- lsls r1, 16
- lsrs r1, 16
- cmp r2, 0
- ble _08002F00
-_08002EF6:
- subs r2, 0x2
- strh r1, [r0]
- adds r0, 0x2
- cmp r2, 0
- bgt _08002EF6
-_08002F00:
- pop {r0}
- bx r0
- thumb_func_end MemoryFill16
-
- thumb_func_start MemoryFill32
-MemoryFill32:
- push {lr}
- cmp r2, 0
- ble _08002F12
-_08002F0A:
- subs r2, 0x4
- stm r0!, {r1}
- cmp r2, 0
- bgt _08002F0A
-_08002F12:
- pop {r0}
- bx r0
- thumb_func_end MemoryFill32
-
- thumb_func_start MemoryCopy8
-MemoryCopy8:
- push {lr}
- adds r3, r0, 0
- cmp r2, 0
- ble _08002F2E
-_08002F20:
- subs r2, 0x1
- ldrb r0, [r1]
- strb r0, [r3]
- adds r1, 0x1
- adds r3, 0x1
- cmp r2, 0
- bgt _08002F20
-_08002F2E:
- pop {r0}
- bx r0
- thumb_func_end MemoryCopy8
-
- thumb_func_start MemoryCopy16
-MemoryCopy16:
- push {lr}
- adds r3, r0, 0
- cmp r2, 0
- ble _08002F4A
-_08002F3C:
- subs r2, 0x2
- ldrh r0, [r1]
- strh r0, [r3]
- adds r1, 0x2
- adds r3, 0x2
- cmp r2, 0
- bgt _08002F3C
-_08002F4A:
- pop {r0}
- bx r0
- thumb_func_end MemoryCopy16
-
- thumb_func_start MemoryCopy32
-MemoryCopy32:
- push {lr}
- adds r3, r0, 0
- cmp r2, 0
- ble _08002F62
-_08002F58:
- subs r2, 0x4
- ldm r1!, {r0}
- stm r3!, {r0}
- cmp r2, 0
- bgt _08002F58
-_08002F62:
- pop {r0}
- bx r0
- thumb_func_end MemoryCopy32
-
+
thumb_func_start InitHeapInternal
InitHeapInternal:
push {lr}
sub sp, 0x8
- ldr r0, _08002F90
+ ldr r0, =gHeap
str r0, [sp]
movs r0, 0x90
lsls r0, 10
str r0, [sp, 0x4]
- ldr r1, _08002F94
+ ldr r1, =gUnknown_2000EA8
movs r0, 0
str r0, [r1]
- ldr r0, _08002F98
- ldr r2, _08002F9C
+ ldr r0, =gUnknown_2000EB0
+ ldr r2, =gHeapHeader
mov r1, sp
movs r3, 0x20
bl DoInitHeap
@@ -182,10 +26,7 @@ InitHeapInternal:
pop {r0}
bx r0
.align 2, 0
-_08002F90: .4byte gUnknown_20011D0
-_08002F94: .4byte gUnknown_2000EA8
-_08002F98: .4byte gUnknown_2000EB0
-_08002F9C: .4byte gUnknown_2000ED0
+ .pool
thumb_func_end InitHeapInternal
thumb_func_start DoInitHeap
@@ -201,8 +42,8 @@ DoInitHeap:
mov r5, r9
ands r5, r4
mov r9, r5
- ldr r6, _08002FFC
- ldr r4, _08003000
+ ldr r6, =gUnknown_2000E88
+ ldr r4, =gUnknown_2000EA8
mov r8, r4
ldr r5, [r4]
lsls r4, r5, 2
@@ -237,8 +78,7 @@ DoInitHeap:
pop {r0}
bx r0
.align 2, 0
-_08002FFC: .4byte gUnknown_2000E88
-_08003000: .4byte gUnknown_2000EA8
+ .pool
thumb_func_end DoInitHeap
thumb_func_start InitSubHeap
@@ -361,7 +201,7 @@ _080030C2:
_080030CC:
movs r7, 0x1
negs r7, r7
- ldr r1, _08003100
+ ldr r1, =0x24001
movs r4, 0
ldr r3, [r5, 0x8]
ldr r2, [r5, 0xC]
@@ -389,7 +229,7 @@ _080030FC:
adds r0, r7, 0
b _08003108
.align 2, 0
-_08003100: .4byte 0x00024001
+ .pool
_08003104:
movs r0, 0x1
negs r0, r0
@@ -454,7 +294,7 @@ _0800315E:
_08003168:
movs r7, 0x1
negs r7, r7
- ldr r6, _080031A4
+ ldr r6, =0x24001
ldr r0, [r4, 0xC]
subs r3, r0, 0x1
lsls r0, r3, 1
@@ -486,7 +326,7 @@ _080031A0:
adds r0, r7, 0
b _080031AC
.align 2, 0
-_080031A4: .4byte 0x00024001
+ .pool
_080031A8:
movs r0, 0x1
negs r0, r0
@@ -561,13 +401,12 @@ _08003222:
str r2, [r1, 0xC]
cmp r2, r8
ble _08003240
- ldr r0, _08003238
- ldr r1, _0800323C
+ ldr r0, =gUnknown_80B7EB8
+ ldr r1, =gUnknown_80B7EC4
mov r3, r8
bl FatalError
.align 2, 0
-_08003238: .4byte gUnknown_80B7EB8
-_0800323C: .4byte gUnknown_80B7EC4
+ .pool
_08003240:
ldr r0, [sp, 0xC]
add r0, r9
@@ -671,13 +510,12 @@ _080032F6:
str r2, [r7, 0xC]
cmp r2, r8
ble _08003314
- ldr r0, _0800330C
- ldr r1, _08003310
+ ldr r0, =gUnknown_80B7EFC
+ ldr r1, =gUnknown_80B7EC4
mov r3, r8
bl FatalError
.align 2, 0
-_0800330C: .4byte gUnknown_80B7EFC
-_08003310: .4byte gUnknown_80B7EC4
+ .pool
_08003314:
ldr r0, [r4, 0x10]
ldr r1, [sp, 0x10]
@@ -717,7 +555,7 @@ _LocateSet:
adds r6, r2, 0
cmp r5, 0
bne _0800335C
- ldr r5, _08003390
+ ldr r5, =gUnknown_2000EB0
_0800335C:
asrs r4, r6, 8
movs r0, 0x1
@@ -743,7 +581,7 @@ _0800335C:
ldr r0, [r0, 0xC]
b _080033CC
.align 2, 0
-_08003390: .4byte gUnknown_2000EB0
+ .pool
_08003394:
adds r0, r5, 0
adds r1, r4, 0
@@ -760,16 +598,15 @@ _08003394:
ldr r0, [r0, 0xC]
b _080033CC
_080033B4:
- ldr r0, _080033C4
- ldr r1, _080033C8
+ ldr r0, =gUnknown_80B7F14
+ ldr r1, =gUnknown_80B7F20
str r4, [sp]
str r6, [sp, 0x4]
adds r2, r5, 0
adds r3, r7, 0
bl FatalError
.align 2, 0
-_080033C4: .4byte gUnknown_80B7F14
-_080033C8: .4byte gUnknown_80B7F20
+ .pool
_080033CC:
add sp, 0x8
pop {r4-r7}
@@ -782,25 +619,25 @@ MemoryAlloc:
push {lr}
adds r3, r0, 0
adds r2, r1, 0
- ldr r0, _080033E8
+ ldr r0, =gUnknown_2000EB0
adds r1, r3, 0
bl DoAlloc
pop {r1}
bx r1
.align 2, 0
-_080033E8: .4byte gUnknown_2000EB0
+ .pool
thumb_func_end MemoryAlloc
thumb_func_start MemoryFree
MemoryFree:
push {lr}
adds r1, r0, 0
- ldr r0, _080033FC
+ ldr r0, =gUnknown_2000EB0
bl DoFree
pop {r0}
bx r0
.align 2, 0
-_080033FC: .4byte gUnknown_2000EB0
+ .pool
thumb_func_end MemoryFree
thumb_func_start MemoryLocate_LocalCreate
@@ -813,7 +650,7 @@ MemoryLocate_LocalCreate:
adds r6, r3, 0
cmp r4, 0
bne _08003412
- ldr r4, _0800342C
+ ldr r4, =gUnknown_2000EB0
_08003412:
adds r0, r4, 0
movs r1, 0x9
@@ -822,14 +659,12 @@ _08003412:
adds r1, r0, 0
cmp r1, 0
bge _08003438
- ldr r0, _08003430
- ldr r1, _08003434
+ ldr r0, =gUnknown_80B7F88
+ ldr r1, =gUnknown_80B7F94
adds r2, r5, 0
bl FatalError
.align 2, 0
-_0800342C: .4byte gUnknown_2000EB0
-_08003430: .4byte gUnknown_80B7F88
-_08003434: .4byte gUnknown_80B7F94
+ .pool
_08003438:
str r6, [sp]
adds r0, r4, 0
@@ -893,11 +728,11 @@ _080034A2:
movs r0, 0
mov r12, r0
movs r3, 0
- ldr r6, _080034E0
+ ldr r6, =gUnknown_2000EA8
ldr r0, [r6]
cmp r12, r0
bge _080034F2
- ldr r5, _080034E4
+ ldr r5, =gUnknown_2000E88
adds r1, r6, 0
adds r7, r5, 0
movs r2, 0
@@ -911,7 +746,7 @@ _080034BC:
str r0, [r1]
cmp r3, r0
bge _080034F8
- ldr r1, _080034E0
+ ldr r1, =gUnknown_2000EA8
adds r2, r7
_080034D2:
ldr r0, [r2, 0x4]
@@ -922,8 +757,7 @@ _080034D2:
blt _080034D2
b _080034F8
.align 2, 0
-_080034E0: .4byte gUnknown_2000EA8
-_080034E4: .4byte gUnknown_2000E88
+ .pool
_080034E8:
adds r2, 0x4
adds r3, 0x1
@@ -966,7 +800,7 @@ DoFree:
adds r4, r0, 0
cmp r4, 0
bne _0800352E
- ldr r4, _080035D4
+ ldr r4, =gUnknown_2000EB0
_0800352E:
cmp r1, 0
beq _080035E4
@@ -1056,7 +890,7 @@ _080035BA:
blt _080035BA
b _080035E4
.align 2, 0
-_080035D4: .4byte gUnknown_2000EB0
+ .pool
_080035D8:
movs r0, 0x1
add r8, r0