summaryrefslogtreecommitdiff
path: root/asm/Dolphin/os/OSAlloc.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/Dolphin/os/OSAlloc.s')
-rw-r--r--asm/Dolphin/os/OSAlloc.s260
1 files changed, 260 insertions, 0 deletions
diff --git a/asm/Dolphin/os/OSAlloc.s b/asm/Dolphin/os/OSAlloc.s
new file mode 100644
index 0000000..4c5d756
--- /dev/null
+++ b/asm/Dolphin/os/OSAlloc.s
@@ -0,0 +1,260 @@
+.include "macros.inc"
+
+.section .text
+
+.global func_8036d308
+.type func_8036d308, @function
+func_8036d308:
+/* 8036D308 38E30000 */ addi r7, r3, 0x0
+/* 8036D30C 38C00000 */ li r6, 0x0
+/* 8036D310 48000014 */ b lbl_8036d324
+lbl_8036d314:
+/* 8036D314 7C043840 */ cmplw r4, r7
+/* 8036D318 40810014 */ ble- lbl_8036d32c
+/* 8036D31C 7CE63B78 */ mr r6, r7
+/* 8036D320 80E70004 */ lwz r7, 4(r7)
+lbl_8036d324:
+/* 8036D324 28070000 */ cmplwi r7, 0
+/* 8036D328 4082FFEC */ bne+ lbl_8036d314
+lbl_8036d32c:
+/* 8036D32C 90E40004 */ stw r7, 4(r4)
+/* 8036D330 28070000 */ cmplwi r7, 0
+/* 8036D334 90C40000 */ stw r6, 0(r4)
+/* 8036D338 41820038 */ beq- lbl_8036d370
+/* 8036D33C 90870000 */ stw r4, 0(r7)
+/* 8036D340 80A40008 */ lwz r5, 8(r4)
+/* 8036D344 7C042A14 */ add r0, r4, r5
+/* 8036D348 7C003840 */ cmplw r0, r7
+/* 8036D34C 40820024 */ bne- lbl_8036d370
+/* 8036D350 80070008 */ lwz r0, 8(r7)
+/* 8036D354 7C050214 */ add r0, r5, r0
+/* 8036D358 90040008 */ stw r0, 8(r4)
+/* 8036D35C 80E70004 */ lwz r7, 4(r7)
+/* 8036D360 28070000 */ cmplwi r7, 0
+/* 8036D364 90E40004 */ stw r7, 4(r4)
+/* 8036D368 41820008 */ beq- lbl_8036d370
+/* 8036D36C 90870000 */ stw r4, 0(r7)
+lbl_8036d370:
+/* 8036D370 28060000 */ cmplwi r6, 0
+/* 8036D374 41820038 */ beq- lbl_8036d3ac
+/* 8036D378 90860004 */ stw r4, 4(r6)
+/* 8036D37C 80A60008 */ lwz r5, 8(r6)
+/* 8036D380 7C062A14 */ add r0, r6, r5
+/* 8036D384 7C002040 */ cmplw r0, r4
+/* 8036D388 4C820020 */ bnelr-
+/* 8036D38C 80040008 */ lwz r0, 8(r4)
+/* 8036D390 28070000 */ cmplwi r7, 0
+/* 8036D394 7C050214 */ add r0, r5, r0
+/* 8036D398 90060008 */ stw r0, 8(r6)
+/* 8036D39C 90E60004 */ stw r7, 4(r6)
+/* 8036D3A0 4D820020 */ beqlr-
+/* 8036D3A4 90C70000 */ stw r6, 0(r7)
+/* 8036D3A8 4E800020 */ blr
+lbl_8036d3ac:
+/* 8036D3AC 7C832378 */ mr r3, r4
+/* 8036D3B0 4E800020 */ blr
+.size func_8036d308, . - func_8036d308
+
+
+.global func_8036d3b4
+.type func_8036d3b4, @function
+func_8036d3b4:
+/* 8036D3B4 1C03000C */ mulli r0, r3, 0xc
+/* 8036D3B8 806DCA30 */ lwz r3, lbl_805c6850@sda21(0)
+/* 8036D3BC 7CA30214 */ add r5, r3, r0
+/* 8036D3C0 3804003F */ addi r0, r4, 0x3f
+/* 8036D3C4 80C50004 */ lwz r6, 4(r5)
+/* 8036D3C8 54030034 */ rlwinm r3, r0, 0, 0, 0x1a
+/* 8036D3CC 48000014 */ b lbl_8036d3e0
+lbl_8036d3d0:
+/* 8036D3D0 80060008 */ lwz r0, 8(r6)
+/* 8036D3D4 7C030000 */ cmpw r3, r0
+/* 8036D3D8 40810010 */ ble- lbl_8036d3e8
+/* 8036D3DC 80C60004 */ lwz r6, 4(r6)
+lbl_8036d3e0:
+/* 8036D3E0 28060000 */ cmplwi r6, 0
+/* 8036D3E4 4082FFEC */ bne+ lbl_8036d3d0
+lbl_8036d3e8:
+/* 8036D3E8 28060000 */ cmplwi r6, 0
+/* 8036D3EC 4082000C */ bne- lbl_8036d3f8
+/* 8036D3F0 38600000 */ li r3, 0x0
+/* 8036D3F4 4E800020 */ blr
+lbl_8036d3f8:
+/* 8036D3F8 80060008 */ lwz r0, 8(r6)
+/* 8036D3FC 7C030050 */ subf r0, r3, r0
+/* 8036D400 28000040 */ cmplwi r0, 0x40
+/* 8036D404 40800040 */ bge- lbl_8036d444
+/* 8036D408 80860004 */ lwz r4, 4(r6)
+/* 8036D40C 80650004 */ lwz r3, 4(r5)
+/* 8036D410 28040000 */ cmplwi r4, 0
+/* 8036D414 4182000C */ beq- lbl_8036d420
+/* 8036D418 80060000 */ lwz r0, 0(r6)
+/* 8036D41C 90040000 */ stw r0, 0(r4)
+lbl_8036d420:
+/* 8036D420 80860000 */ lwz r4, 0(r6)
+/* 8036D424 28040000 */ cmplwi r4, 0
+/* 8036D428 4082000C */ bne- lbl_8036d434
+/* 8036D42C 80660004 */ lwz r3, 4(r6)
+/* 8036D430 4800000C */ b lbl_8036d43c
+lbl_8036d434:
+/* 8036D434 80060004 */ lwz r0, 4(r6)
+/* 8036D438 90040004 */ stw r0, 4(r4)
+lbl_8036d43c:
+/* 8036D43C 90650004 */ stw r3, 4(r5)
+/* 8036D440 48000048 */ b lbl_8036d488
+lbl_8036d444:
+/* 8036D444 90660008 */ stw r3, 8(r6)
+/* 8036D448 7C861A14 */ add r4, r6, r3
+/* 8036D44C 90040008 */ stw r0, 8(r4)
+/* 8036D450 80060000 */ lwz r0, 0(r6)
+/* 8036D454 90040000 */ stw r0, 0(r4)
+/* 8036D458 80060004 */ lwz r0, 4(r6)
+/* 8036D45C 90040004 */ stw r0, 4(r4)
+/* 8036D460 80640004 */ lwz r3, 4(r4)
+/* 8036D464 28030000 */ cmplwi r3, 0
+/* 8036D468 41820008 */ beq- lbl_8036d470
+/* 8036D46C 90830000 */ stw r4, 0(r3)
+lbl_8036d470:
+/* 8036D470 80640000 */ lwz r3, 0(r4)
+/* 8036D474 28030000 */ cmplwi r3, 0
+/* 8036D478 4182000C */ beq- lbl_8036d484
+/* 8036D47C 90830004 */ stw r4, 4(r3)
+/* 8036D480 48000008 */ b lbl_8036d488
+lbl_8036d484:
+/* 8036D484 90850004 */ stw r4, 4(r5)
+lbl_8036d488:
+/* 8036D488 80650008 */ lwz r3, 8(r5)
+/* 8036D48C 38000000 */ li r0, 0x0
+/* 8036D490 90660004 */ stw r3, 4(r6)
+/* 8036D494 28030000 */ cmplwi r3, 0
+/* 8036D498 90060000 */ stw r0, 0(r6)
+/* 8036D49C 41820008 */ beq- lbl_8036d4a4
+/* 8036D4A0 90C30000 */ stw r6, 0(r3)
+lbl_8036d4a4:
+/* 8036D4A4 90C50008 */ stw r6, 8(r5)
+/* 8036D4A8 38660020 */ addi r3, r6, 0x20
+/* 8036D4AC 4E800020 */ blr
+.size func_8036d3b4, . - func_8036d3b4
+
+
+.global func_8036d4b0
+.type func_8036d4b0, @function
+func_8036d4b0:
+/* 8036D4B0 7C0802A6 */ mflr r0
+/* 8036D4B4 38C4FFE0 */ addi r6, r4, -0x20
+/* 8036D4B8 90010004 */ stw r0, 4(r1)
+/* 8036D4BC 1C03000C */ mulli r0, r3, 0xc
+/* 8036D4C0 9421FFE8 */ stwu r1, -0x18(r1)
+/* 8036D4C4 93E10014 */ stw r31, 0x14(r1)
+/* 8036D4C8 808DCA30 */ lwz r4, lbl_805c6850@sda21(0)
+/* 8036D4CC 80660004 */ lwz r3, 4(r6)
+/* 8036D4D0 7FE40214 */ add r31, r4, r0
+/* 8036D4D4 28030000 */ cmplwi r3, 0
+/* 8036D4D8 80BF0008 */ lwz r5, 8(r31)
+/* 8036D4DC 7CC43378 */ mr r4, r6
+/* 8036D4E0 4182000C */ beq- lbl_8036d4ec
+/* 8036D4E4 80040000 */ lwz r0, 0(r4)
+/* 8036D4E8 90030000 */ stw r0, 0(r3)
+lbl_8036d4ec:
+/* 8036D4EC 80640000 */ lwz r3, 0(r4)
+/* 8036D4F0 28030000 */ cmplwi r3, 0
+/* 8036D4F4 4082000C */ bne- lbl_8036d500
+/* 8036D4F8 80A40004 */ lwz r5, 4(r4)
+/* 8036D4FC 4800000C */ b lbl_8036d508
+lbl_8036d500:
+/* 8036D500 80040004 */ lwz r0, 4(r4)
+/* 8036D504 90030004 */ stw r0, 4(r3)
+lbl_8036d508:
+/* 8036D508 90BF0008 */ stw r5, 8(r31)
+/* 8036D50C 807F0004 */ lwz r3, 4(r31)
+/* 8036D510 4BFFFDF9 */ bl func_8036d308
+/* 8036D514 907F0004 */ stw r3, 4(r31)
+/* 8036D518 8001001C */ lwz r0, 0x1c(r1)
+/* 8036D51C 83E10014 */ lwz r31, 0x14(r1)
+/* 8036D520 38210018 */ addi r1, r1, 0x18
+/* 8036D524 7C0803A6 */ mtlr r0
+/* 8036D528 4E800020 */ blr
+.size func_8036d4b0, . - func_8036d4b0
+
+
+.global func_8036d52c
+.type func_8036d52c, @function
+func_8036d52c:
+/* 8036D52C 800D9EF8 */ lwz r0, lbl_805c3d18@sda21(0)
+/* 8036D530 906D9EF8 */ stw r3, lbl_805c3d18@sda21(0)
+/* 8036D534 7C030378 */ mr r3, r0
+/* 8036D538 4E800020 */ blr
+.size func_8036d52c, . - func_8036d52c
+
+
+.global func_8036d53c
+.type func_8036d53c, @function
+func_8036d53c:
+/* 8036D53C 1CE5000C */ mulli r7, r5, 0xc
+/* 8036D540 906DCA30 */ stw r3, lbl_805c6850@sda21(0)
+/* 8036D544 90ADCA34 */ stw r5, lbl_805c6854@sda21(0)
+/* 8036D548 38C00000 */ li r6, 0x0
+/* 8036D54C 38660000 */ addi r3, r6, 0x0
+/* 8036D550 39000000 */ li r8, 0x0
+/* 8036D554 38A0FFFF */ li r5, -0x1
+/* 8036D558 48000020 */ b lbl_8036d578
+lbl_8036d55c:
+/* 8036D55C 800DCA30 */ lwz r0, lbl_805c6850@sda21(0)
+/* 8036D560 39080001 */ addi r8, r8, 0x1
+/* 8036D564 7D203214 */ add r9, r0, r6
+/* 8036D568 90A90000 */ stw r5, 0(r9)
+/* 8036D56C 38C6000C */ addi r6, r6, 0xc
+/* 8036D570 90690008 */ stw r3, 8(r9)
+/* 8036D574 90690004 */ stw r3, 4(r9)
+lbl_8036d578:
+/* 8036D578 800DCA34 */ lwz r0, lbl_805c6854@sda21(0)
+/* 8036D57C 7C080000 */ cmpw r8, r0
+/* 8036D580 4180FFDC */ blt+ lbl_8036d55c
+/* 8036D584 806DCA30 */ lwz r3, lbl_805c6850@sda21(0)
+/* 8036D588 54800034 */ rlwinm r0, r4, 0, 0, 0x1a
+/* 8036D58C 3880FFFF */ li r4, -0x1
+/* 8036D590 900DCA3C */ stw r0, lbl_805c685c@sda21(0)
+/* 8036D594 7C633A14 */ add r3, r3, r7
+/* 8036D598 3803001F */ addi r0, r3, 0x1f
+/* 8036D59C 908D9EF8 */ stw r4, lbl_805c3d18@sda21(0)
+/* 8036D5A0 54030034 */ rlwinm r3, r0, 0, 0, 0x1a
+/* 8036D5A4 906DCA38 */ stw r3, lbl_805c6858@sda21(0)
+/* 8036D5A8 4E800020 */ blr
+.size func_8036d53c, . - func_8036d53c
+
+
+.global func_8036d5ac
+.type func_8036d5ac, @function
+func_8036d5ac:
+/* 8036D5AC 80CDCA34 */ lwz r6, lbl_805c6854@sda21(0)
+/* 8036D5B0 3803001F */ addi r0, r3, 0x1f
+/* 8036D5B4 80ADCA30 */ lwz r5, lbl_805c6850@sda21(0)
+/* 8036D5B8 54070034 */ rlwinm r7, r0, 0, 0, 0x1a
+/* 8036D5BC 2C060000 */ cmpwi r6, 0x0
+/* 8036D5C0 7CC903A6 */ mtctr r6
+/* 8036D5C4 54840034 */ rlwinm r4, r4, 0, 0, 0x1a
+/* 8036D5C8 38600000 */ li r3, 0x0
+/* 8036D5CC 40810044 */ ble- lbl_8036d610
+lbl_8036d5d0:
+/* 8036D5D0 80050000 */ lwz r0, 0(r5)
+/* 8036D5D4 2C000000 */ cmpwi r0, 0x0
+/* 8036D5D8 4080002C */ bge- lbl_8036d604
+/* 8036D5DC 7C072050 */ subf r0, r7, r4
+/* 8036D5E0 90050000 */ stw r0, 0(r5)
+/* 8036D5E4 38800000 */ li r4, 0x0
+/* 8036D5E8 90870000 */ stw r4, 0(r7)
+/* 8036D5EC 90870004 */ stw r4, 4(r7)
+/* 8036D5F0 80050000 */ lwz r0, 0(r5)
+/* 8036D5F4 90070008 */ stw r0, 8(r7)
+/* 8036D5F8 90E50004 */ stw r7, 4(r5)
+/* 8036D5FC 90850008 */ stw r4, 8(r5)
+/* 8036D600 4E800020 */ blr
+lbl_8036d604:
+/* 8036D604 38A5000C */ addi r5, r5, 0xc
+/* 8036D608 38630001 */ addi r3, r3, 0x1
+/* 8036D60C 4200FFC4 */ bdnz lbl_8036d5d0
+lbl_8036d610:
+/* 8036D610 3860FFFF */ li r3, -0x1
+/* 8036D614 4E800020 */ blr
+.size func_8036d5ac, . - func_8036d5ac
+