JKRExpHeap (#146)

This commit is contained in:
Jcw87 2021-09-11 11:38:50 -07:00 committed by GitHub
parent f25c24699b
commit ea42afb6f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 871 additions and 1127 deletions

View File

@ -1,37 +0,0 @@
lbl_802CF030:
/* 802CF030 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF034 7C 08 02 A6 */ mflr r0
/* 802CF038 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF03C 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF040 48 09 31 9D */ bl _savegpr_29
/* 802CF044 7C 7D 1B 78 */ mr r29, r3
/* 802CF048 7C 9E 23 78 */ mr r30, r4
/* 802CF04C 7C BF 2B 78 */ mr r31, r5
/* 802CF050 4B FF F0 E9 */ bl __ct__7JKRHeapFPvUlP7JKRHeapb
/* 802CF054 3C 60 80 3D */ lis r3, __vt__10JKRExpHeap@ha /* 0x803CBFD0@ha */
/* 802CF058 38 03 BF D0 */ addi r0, r3, __vt__10JKRExpHeap@l /* 0x803CBFD0@l */
/* 802CF05C 90 1D 00 00 */ stw r0, 0(r29)
/* 802CF060 38 00 00 00 */ li r0, 0
/* 802CF064 98 1D 00 6C */ stb r0, 0x6c(r29)
/* 802CF068 38 00 00 FF */ li r0, 0xff
/* 802CF06C 98 1D 00 6D */ stb r0, 0x6d(r29)
/* 802CF070 93 DD 00 78 */ stw r30, 0x78(r29)
/* 802CF074 80 1D 00 78 */ lwz r0, 0x78(r29)
/* 802CF078 90 1D 00 7C */ stw r0, 0x7c(r29)
/* 802CF07C 80 7D 00 78 */ lwz r3, 0x78(r29)
/* 802CF080 38 80 00 00 */ li r4, 0
/* 802CF084 38 A0 00 00 */ li r5, 0
/* 802CF088 38 DF FF F0 */ addi r6, r31, -16
/* 802CF08C 38 E0 00 00 */ li r7, 0
/* 802CF090 39 00 00 00 */ li r8, 0
/* 802CF094 48 00 17 7D */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802CF098 38 00 00 00 */ li r0, 0
/* 802CF09C 90 1D 00 80 */ stw r0, 0x80(r29)
/* 802CF0A0 90 1D 00 84 */ stw r0, 0x84(r29)
/* 802CF0A4 7F A3 EB 78 */ mr r3, r29
/* 802CF0A8 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF0AC 48 09 31 7D */ bl _restgpr_29
/* 802CF0B0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CF0B4 7C 08 03 A6 */ mtlr r0
/* 802CF0B8 38 21 00 20 */ addi r1, r1, 0x20
/* 802CF0BC 4E 80 00 20 */ blr

View File

@ -1,28 +0,0 @@
lbl_802CF0C0:
/* 802CF0C0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CF0C4 7C 08 02 A6 */ mflr r0
/* 802CF0C8 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CF0CC 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CF0D0 93 C1 00 08 */ stw r30, 8(r1)
/* 802CF0D4 7C 7E 1B 79 */ or. r30, r3, r3
/* 802CF0D8 7C 9F 23 78 */ mr r31, r4
/* 802CF0DC 41 82 00 30 */ beq lbl_802CF10C
/* 802CF0E0 3C 80 80 3D */ lis r4, __vt__10JKRExpHeap@ha /* 0x803CBFD0@ha */
/* 802CF0E4 38 04 BF D0 */ addi r0, r4, __vt__10JKRExpHeap@l /* 0x803CBFD0@l */
/* 802CF0E8 90 1E 00 00 */ stw r0, 0(r30)
/* 802CF0EC 4B FF F9 D5 */ bl dispose__7JKRHeapFv
/* 802CF0F0 7F C3 F3 78 */ mr r3, r30
/* 802CF0F4 38 80 00 00 */ li r4, 0
/* 802CF0F8 4B FF F1 6D */ bl __dt__7JKRHeapFv
/* 802CF0FC 7F E0 07 35 */ extsh. r0, r31
/* 802CF100 40 81 00 0C */ ble lbl_802CF10C
/* 802CF104 7F C3 F3 78 */ mr r3, r30
/* 802CF108 4B FF FC 35 */ bl __dl__FPv
lbl_802CF10C:
/* 802CF10C 7F C3 F3 78 */ mr r3, r30
/* 802CF110 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CF114 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CF118 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CF11C 7C 08 03 A6 */ mtlr r0
/* 802CF120 38 21 00 10 */ addi r1, r1, 0x10
/* 802CF124 4E 80 00 20 */ blr

View File

@ -1,25 +0,0 @@
lbl_802D0874:
/* 802D0874 39 40 00 00 */ li r10, 0
/* 802D0878 80 03 00 04 */ lwz r0, 4(r3)
/* 802D087C 39 24 00 10 */ addi r9, r4, 0x10
/* 802D0880 7C 00 48 40 */ cmplw r0, r9
/* 802D0884 41 80 00 34 */ blt lbl_802D08B8
/* 802D0888 7C 03 02 14 */ add r0, r3, r0
/* 802D088C 7D 44 00 50 */ subf r10, r4, r0
/* 802D0890 98 EA 00 03 */ stb r7, 3(r10)
/* 802D0894 61 00 00 80 */ ori r0, r8, 0x80
/* 802D0898 98 0A 00 02 */ stb r0, 2(r10)
/* 802D089C 90 8A 00 04 */ stw r4, 4(r10)
/* 802D08A0 98 A3 00 03 */ stb r5, 3(r3)
/* 802D08A4 98 C3 00 02 */ stb r6, 2(r3)
/* 802D08A8 80 03 00 04 */ lwz r0, 4(r3)
/* 802D08AC 7C 09 00 50 */ subf r0, r9, r0
/* 802D08B0 90 03 00 04 */ stw r0, 4(r3)
/* 802D08B4 48 00 00 10 */ b lbl_802D08C4
lbl_802D08B8:
/* 802D08B8 98 E3 00 03 */ stb r7, 3(r3)
/* 802D08BC 38 00 00 80 */ li r0, 0x80
/* 802D08C0 98 03 00 02 */ stb r0, 2(r3)
lbl_802D08C4:
/* 802D08C4 7D 43 53 78 */ mr r3, r10
/* 802D08C8 4E 80 00 20 */ blr

View File

@ -1,66 +0,0 @@
lbl_802CF490:
/* 802CF490 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CF494 7C 08 02 A6 */ mflr r0
/* 802CF498 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CF49C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CF4A0 93 C1 00 08 */ stw r30, 8(r1)
/* 802CF4A4 7C 7E 1B 78 */ mr r30, r3
/* 802CF4A8 38 04 00 03 */ addi r0, r4, 3
/* 802CF4AC 54 04 00 3A */ rlwinm r4, r0, 0, 0, 0x1d
/* 802CF4B0 38 A0 FF FF */ li r5, -1
/* 802CF4B4 3B E0 00 00 */ li r31, 0
/* 802CF4B8 80 C3 00 78 */ lwz r6, 0x78(r3)
/* 802CF4BC 48 00 00 38 */ b lbl_802CF4F4
lbl_802CF4C0:
/* 802CF4C0 80 66 00 04 */ lwz r3, 4(r6)
/* 802CF4C4 7C 03 20 40 */ cmplw r3, r4
/* 802CF4C8 41 80 00 28 */ blt lbl_802CF4F0
/* 802CF4CC 7C 05 18 40 */ cmplw r5, r3
/* 802CF4D0 40 81 00 20 */ ble lbl_802CF4F0
/* 802CF4D4 7C 65 1B 78 */ mr r5, r3
/* 802CF4D8 7C DF 33 78 */ mr r31, r6
/* 802CF4DC 88 1E 00 6C */ lbz r0, 0x6c(r30)
/* 802CF4E0 28 00 00 00 */ cmplwi r0, 0
/* 802CF4E4 40 82 00 18 */ bne lbl_802CF4FC
/* 802CF4E8 7C 03 20 40 */ cmplw r3, r4
/* 802CF4EC 41 82 00 10 */ beq lbl_802CF4FC
lbl_802CF4F0:
/* 802CF4F0 80 C6 00 0C */ lwz r6, 0xc(r6)
lbl_802CF4F4:
/* 802CF4F4 28 06 00 00 */ cmplwi r6, 0
/* 802CF4F8 40 82 FF C8 */ bne lbl_802CF4C0
lbl_802CF4FC:
/* 802CF4FC 28 1F 00 00 */ cmplwi r31, 0
/* 802CF500 41 82 00 58 */ beq lbl_802CF558
/* 802CF504 7F E3 FB 78 */ mr r3, r31
/* 802CF508 88 BE 00 6D */ lbz r5, 0x6d(r30)
/* 802CF50C 38 C0 00 00 */ li r6, 0
/* 802CF510 38 E0 00 00 */ li r7, 0
/* 802CF514 39 00 00 00 */ li r8, 0
/* 802CF518 48 00 13 19 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF51C 7C 64 1B 79 */ or. r4, r3, r3
/* 802CF520 41 82 00 18 */ beq lbl_802CF538
/* 802CF524 7F C3 F3 78 */ mr r3, r30
/* 802CF528 80 BF 00 08 */ lwz r5, 8(r31)
/* 802CF52C 80 DF 00 0C */ lwz r6, 0xc(r31)
/* 802CF530 48 00 09 39 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
/* 802CF534 48 00 00 10 */ b lbl_802CF544
lbl_802CF538:
/* 802CF538 7F C3 F3 78 */ mr r3, r30
/* 802CF53C 7F E4 FB 78 */ mr r4, r31
/* 802CF540 48 00 09 75 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
lbl_802CF544:
/* 802CF544 7F C3 F3 78 */ mr r3, r30
/* 802CF548 7F E4 FB 78 */ mr r4, r31
/* 802CF54C 48 00 08 81 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF550 38 7F 00 10 */ addi r3, r31, 0x10
/* 802CF554 48 00 00 08 */ b lbl_802CF55C
lbl_802CF558:
/* 802CF558 38 60 00 00 */ li r3, 0
lbl_802CF55C:
/* 802CF55C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CF560 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CF564 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CF568 7C 08 03 A6 */ mtlr r0
/* 802CF56C 38 21 00 10 */ addi r1, r1, 0x10
/* 802CF570 4E 80 00 20 */ blr

View File

@ -1,64 +0,0 @@
lbl_802CF6D4:
/* 802CF6D4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF6D8 7C 08 02 A6 */ mflr r0
/* 802CF6DC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF6E0 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF6E4 48 09 2A F9 */ bl _savegpr_29
/* 802CF6E8 7C 7D 1B 78 */ mr r29, r3
/* 802CF6EC 38 04 00 03 */ addi r0, r4, 3
/* 802CF6F0 54 04 00 3A */ rlwinm r4, r0, 0, 0, 0x1d
/* 802CF6F4 3B E0 00 00 */ li r31, 0
/* 802CF6F8 80 63 00 7C */ lwz r3, 0x7c(r3)
/* 802CF6FC 48 00 00 1C */ b lbl_802CF718
lbl_802CF700:
/* 802CF700 80 03 00 04 */ lwz r0, 4(r3)
/* 802CF704 7C 00 20 40 */ cmplw r0, r4
/* 802CF708 41 80 00 0C */ blt lbl_802CF714
/* 802CF70C 7C 7F 1B 78 */ mr r31, r3
/* 802CF710 48 00 00 10 */ b lbl_802CF720
lbl_802CF714:
/* 802CF714 80 63 00 08 */ lwz r3, 8(r3)
lbl_802CF718:
/* 802CF718 28 03 00 00 */ cmplwi r3, 0
/* 802CF71C 40 82 FF E4 */ bne lbl_802CF700
lbl_802CF720:
/* 802CF720 28 1F 00 00 */ cmplwi r31, 0
/* 802CF724 41 82 00 6C */ beq lbl_802CF790
/* 802CF728 7F E3 FB 78 */ mr r3, r31
/* 802CF72C 38 A0 00 00 */ li r5, 0
/* 802CF730 38 C0 00 00 */ li r6, 0
/* 802CF734 88 FD 00 6D */ lbz r7, 0x6d(r29)
/* 802CF738 39 00 00 00 */ li r8, 0
/* 802CF73C 48 00 11 39 */ bl allocBack__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF740 7C 7E 1B 79 */ or. r30, r3, r3
/* 802CF744 41 82 00 0C */ beq lbl_802CF750
/* 802CF748 7F E4 FB 78 */ mr r4, r31
/* 802CF74C 48 00 00 18 */ b lbl_802CF764
lbl_802CF750:
/* 802CF750 7F A3 EB 78 */ mr r3, r29
/* 802CF754 7F E4 FB 78 */ mr r4, r31
/* 802CF758 48 00 07 5D */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF75C 7F FE FB 78 */ mr r30, r31
/* 802CF760 38 80 00 00 */ li r4, 0
lbl_802CF764:
/* 802CF764 28 04 00 00 */ cmplwi r4, 0
/* 802CF768 41 82 00 14 */ beq lbl_802CF77C
/* 802CF76C 7F A3 EB 78 */ mr r3, r29
/* 802CF770 80 BF 00 08 */ lwz r5, 8(r31)
/* 802CF774 80 DF 00 0C */ lwz r6, 0xc(r31)
/* 802CF778 48 00 06 F1 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
lbl_802CF77C:
/* 802CF77C 7F A3 EB 78 */ mr r3, r29
/* 802CF780 7F C4 F3 78 */ mr r4, r30
/* 802CF784 48 00 06 49 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF788 38 7E 00 10 */ addi r3, r30, 0x10
/* 802CF78C 48 00 00 08 */ b lbl_802CF794
lbl_802CF790:
/* 802CF790 38 60 00 00 */ li r3, 0
lbl_802CF794:
/* 802CF794 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF798 48 09 2A 91 */ bl _restgpr_29
/* 802CF79C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CF7A0 7C 08 03 A6 */ mtlr r0
/* 802CF7A4 38 21 00 20 */ addi r1, r1, 0x20
/* 802CF7A8 4E 80 00 20 */ blr

View File

@ -1,44 +0,0 @@
lbl_802CFDCC:
/* 802CFDCC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CFDD0 7C 08 02 A6 */ mflr r0
/* 802CFDD4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CFDD8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CFDDC 93 C1 00 08 */ stw r30, 8(r1)
/* 802CFDE0 7C 7E 1B 78 */ mr r30, r3
/* 802CFDE4 7C 9F 23 79 */ or. r31, r4, r4
/* 802CFDE8 40 82 00 24 */ bne lbl_802CFE0C
/* 802CFDEC 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */
/* 802CFDF0 38 C3 CA F0 */ addi r6, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */
/* 802CFDF4 38 66 00 25 */ addi r3, r6, 0x25
/* 802CFDF8 38 80 06 20 */ li r4, 0x620
/* 802CFDFC 38 A6 00 34 */ addi r5, r6, 0x34
/* 802CFE00 38 C6 00 37 */ addi r6, r6, 0x37
/* 802CFE04 4C C6 31 82 */ crclr 6
/* 802CFE08 48 01 23 F5 */ bl panic_f__12JUTExceptionFPCciPCce
lbl_802CFE0C:
/* 802CFE0C 80 7E 00 84 */ lwz r3, 0x84(r30)
/* 802CFE10 38 00 48 4D */ li r0, 0x484d
/* 802CFE14 B0 1F 00 00 */ sth r0, 0(r31)
/* 802CFE18 28 03 00 00 */ cmplwi r3, 0
/* 802CFE1C 41 82 00 10 */ beq lbl_802CFE2C
/* 802CFE20 93 E3 00 0C */ stw r31, 0xc(r3)
/* 802CFE24 90 7F 00 08 */ stw r3, 8(r31)
/* 802CFE28 48 00 00 0C */ b lbl_802CFE34
lbl_802CFE2C:
/* 802CFE2C 38 00 00 00 */ li r0, 0
/* 802CFE30 90 1F 00 08 */ stw r0, 8(r31)
lbl_802CFE34:
/* 802CFE34 93 FE 00 84 */ stw r31, 0x84(r30)
/* 802CFE38 80 1E 00 80 */ lwz r0, 0x80(r30)
/* 802CFE3C 28 00 00 00 */ cmplwi r0, 0
/* 802CFE40 40 82 00 08 */ bne lbl_802CFE48
/* 802CFE44 93 FE 00 80 */ stw r31, 0x80(r30)
lbl_802CFE48:
/* 802CFE48 38 00 00 00 */ li r0, 0
/* 802CFE4C 90 1F 00 0C */ stw r0, 0xc(r31)
/* 802CFE50 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CFE54 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CFE58 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CFE5C 7C 08 03 A6 */ mtlr r0
/* 802CFE60 38 21 00 10 */ addi r1, r1, 0x10
/* 802CFE64 4E 80 00 20 */ blr

View File

@ -1,33 +0,0 @@
lbl_802CEDB4:
/* 802CEDB4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CEDB8 7C 08 02 A6 */ mflr r0
/* 802CEDBC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CEDC0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 802CEDC4 7C 65 1B 78 */ mr r5, r3
/* 802CEDC8 7C 9F 23 78 */ mr r31, r4
/* 802CEDCC 38 60 00 00 */ li r3, 0
/* 802CEDD0 80 0D 8D F8 */ lwz r0, sRootHeap__7JKRHeap(r13)
/* 802CEDD4 28 00 00 00 */ cmplwi r0, 0
/* 802CEDD8 40 82 00 38 */ bne lbl_802CEE10
/* 802CEDDC 38 61 00 0C */ addi r3, r1, 0xc
/* 802CEDE0 38 81 00 08 */ addi r4, r1, 8
/* 802CEDE4 4B FF F5 95 */ bl initArena__7JKRHeapFPPcPUli
/* 802CEDE8 80 61 00 0C */ lwz r3, 0xc(r1)
/* 802CEDEC 38 83 00 90 */ addi r4, r3, 0x90
/* 802CEDF0 80 A1 00 08 */ lwz r5, 8(r1)
/* 802CEDF4 38 A5 FF 70 */ addi r5, r5, -144
/* 802CEDF8 28 03 00 00 */ cmplwi r3, 0
/* 802CEDFC 41 82 00 10 */ beq lbl_802CEE0C
/* 802CEE00 38 C0 00 00 */ li r6, 0
/* 802CEE04 7F E7 FB 78 */ mr r7, r31
/* 802CEE08 48 00 02 29 */ bl __ct__10JKRExpHeapFPvUlP7JKRHeapb
lbl_802CEE0C:
/* 802CEE0C 90 6D 8D F8 */ stw r3, sRootHeap__7JKRHeap(r13)
lbl_802CEE10:
/* 802CEE10 38 00 00 01 */ li r0, 1
/* 802CEE14 98 03 00 6E */ stb r0, 0x6e(r3)
/* 802CEE18 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 802CEE1C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CEE20 7C 08 03 A6 */ mtlr r0
/* 802CEE24 38 21 00 20 */ addi r1, r1, 0x20
/* 802CEE28 4E 80 00 20 */ blr

View File

@ -1,49 +0,0 @@
lbl_802CEF00:
/* 802CEF00 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CEF04 7C 08 02 A6 */ mflr r0
/* 802CEF08 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CEF0C 39 61 00 20 */ addi r11, r1, 0x20
/* 802CEF10 48 09 32 CD */ bl _savegpr_29
/* 802CEF14 7C 7D 1B 78 */ mr r29, r3
/* 802CEF18 7C 9E 23 78 */ mr r30, r4
/* 802CEF1C 7C DF 33 78 */ mr r31, r6
/* 802CEF20 28 05 00 00 */ cmplwi r5, 0
/* 802CEF24 40 82 00 20 */ bne lbl_802CEF44
/* 802CEF28 80 6D 8D F8 */ lwz r3, sRootHeap__7JKRHeap(r13)
/* 802CEF2C 7F A4 EB 78 */ mr r4, r29
/* 802CEF30 4B FF F9 65 */ bl find__7JKRHeapCFPv
/* 802CEF34 7C 66 1B 79 */ or. r6, r3, r3
/* 802CEF38 40 82 00 10 */ bne lbl_802CEF48
/* 802CEF3C 38 60 00 00 */ li r3, 0
/* 802CEF40 48 00 00 54 */ b lbl_802CEF94
lbl_802CEF44:
/* 802CEF44 7C A6 2B 78 */ mr r6, r5
lbl_802CEF48:
/* 802CEF48 38 60 00 00 */ li r3, 0
/* 802CEF4C 28 1E 00 90 */ cmplwi r30, 0x90
/* 802CEF50 40 80 00 0C */ bge lbl_802CEF5C
/* 802CEF54 38 60 00 00 */ li r3, 0
/* 802CEF58 48 00 00 3C */ b lbl_802CEF94
lbl_802CEF5C:
/* 802CEF5C 38 9D 00 90 */ addi r4, r29, 0x90
/* 802CEF60 7C 1D F2 14 */ add r0, r29, r30
/* 802CEF64 7C 04 00 50 */ subf r0, r4, r0
/* 802CEF68 54 05 00 36 */ rlwinm r5, r0, 0, 0, 0x1b
/* 802CEF6C 28 1D 00 00 */ cmplwi r29, 0
/* 802CEF70 41 82 00 14 */ beq lbl_802CEF84
/* 802CEF74 7F A3 EB 78 */ mr r3, r29
/* 802CEF78 41 82 00 0C */ beq lbl_802CEF84
/* 802CEF7C 7F E7 FB 78 */ mr r7, r31
/* 802CEF80 48 00 00 B1 */ bl __ct__10JKRExpHeapFPvUlP7JKRHeapb
lbl_802CEF84:
/* 802CEF84 38 00 00 01 */ li r0, 1
/* 802CEF88 98 03 00 6E */ stb r0, 0x6e(r3)
/* 802CEF8C 93 A3 00 70 */ stw r29, 0x70(r3)
/* 802CEF90 93 C3 00 74 */ stw r30, 0x74(r3)
lbl_802CEF94:
/* 802CEF94 39 61 00 20 */ addi r11, r1, 0x20
/* 802CEF98 48 09 32 91 */ bl _restgpr_29
/* 802CEF9C 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CEFA0 7C 08 03 A6 */ mtlr r0
/* 802CEFA4 38 21 00 20 */ addi r1, r1, 0x20
/* 802CEFA8 4E 80 00 20 */ blr

View File

@ -1,74 +0,0 @@
lbl_802CF128:
/* 802CF128 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF12C 7C 08 02 A6 */ mflr r0
/* 802CF130 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF134 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF138 48 09 30 A1 */ bl _savegpr_28
/* 802CF13C 7C 7C 1B 78 */ mr r28, r3
/* 802CF140 7C 9D 23 78 */ mr r29, r4
/* 802CF144 7C BE 2B 78 */ mr r30, r5
/* 802CF148 38 7C 00 18 */ addi r3, r28, 0x18
/* 802CF14C 48 06 FE F5 */ bl OSLockMutex
/* 802CF150 28 1D 00 04 */ cmplwi r29, 4
/* 802CF154 40 80 00 08 */ bge lbl_802CF15C
/* 802CF158 3B A0 00 04 */ li r29, 4
lbl_802CF15C:
/* 802CF15C 2C 1E 00 00 */ cmpwi r30, 0
/* 802CF160 41 80 00 38 */ blt lbl_802CF198
/* 802CF164 2C 1E 00 04 */ cmpwi r30, 4
/* 802CF168 41 81 00 18 */ bgt lbl_802CF180
/* 802CF16C 7F 83 E3 78 */ mr r3, r28
/* 802CF170 7F A4 EB 78 */ mr r4, r29
/* 802CF174 48 00 03 1D */ bl allocFromHead__10JKRExpHeapFUl
/* 802CF178 7C 7F 1B 78 */ mr r31, r3
/* 802CF17C 48 00 00 4C */ b lbl_802CF1C8
lbl_802CF180:
/* 802CF180 7F 83 E3 78 */ mr r3, r28
/* 802CF184 7F A4 EB 78 */ mr r4, r29
/* 802CF188 7F C5 F3 78 */ mr r5, r30
/* 802CF18C 48 00 00 A9 */ bl allocFromHead__10JKRExpHeapFUli
/* 802CF190 7C 7F 1B 78 */ mr r31, r3
/* 802CF194 48 00 00 34 */ b lbl_802CF1C8
lbl_802CF198:
/* 802CF198 7C BE 00 D0 */ neg r5, r30
/* 802CF19C 2C 05 00 04 */ cmpwi r5, 4
/* 802CF1A0 41 81 00 18 */ bgt lbl_802CF1B8
/* 802CF1A4 7F 83 E3 78 */ mr r3, r28
/* 802CF1A8 7F A4 EB 78 */ mr r4, r29
/* 802CF1AC 48 00 05 29 */ bl allocFromTail__10JKRExpHeapFUl
/* 802CF1B0 7C 7F 1B 78 */ mr r31, r3
/* 802CF1B4 48 00 00 14 */ b lbl_802CF1C8
lbl_802CF1B8:
/* 802CF1B8 7F 83 E3 78 */ mr r3, r28
/* 802CF1BC 7F A4 EB 78 */ mr r4, r29
/* 802CF1C0 48 00 03 B5 */ bl allocFromTail__10JKRExpHeapFUli
/* 802CF1C4 7C 7F 1B 78 */ mr r31, r3
lbl_802CF1C8:
/* 802CF1C8 28 1F 00 00 */ cmplwi r31, 0
/* 802CF1CC 40 82 00 44 */ bne lbl_802CF210
/* 802CF1D0 3C 60 80 3A */ lis r3, JKRExpHeap__stringBase0@ha /* 0x8039CAF0@ha */
/* 802CF1D4 38 63 CA F0 */ addi r3, r3, JKRExpHeap__stringBase0@l /* 0x8039CAF0@l */
/* 802CF1D8 7F A4 EB 78 */ mr r4, r29
/* 802CF1DC 4C C6 31 82 */ crclr 6
/* 802CF1E0 48 01 94 9D */ bl JUTWarningConsole_f
/* 802CF1E4 88 1C 00 68 */ lbz r0, 0x68(r28)
/* 802CF1E8 28 00 00 01 */ cmplwi r0, 1
/* 802CF1EC 40 82 00 24 */ bne lbl_802CF210
/* 802CF1F0 81 8D 8D FC */ lwz r12, mErrorHandler__7JKRHeap(r13)
/* 802CF1F4 28 0C 00 00 */ cmplwi r12, 0
/* 802CF1F8 41 82 00 18 */ beq lbl_802CF210
/* 802CF1FC 7F 83 E3 78 */ mr r3, r28
/* 802CF200 7F A4 EB 78 */ mr r4, r29
/* 802CF204 7F C5 F3 78 */ mr r5, r30
/* 802CF208 7D 89 03 A6 */ mtctr r12
/* 802CF20C 4E 80 04 21 */ bctrl
lbl_802CF210:
/* 802CF210 38 7C 00 18 */ addi r3, r28, 0x18
/* 802CF214 48 06 FF 09 */ bl OSUnlockMutex
/* 802CF218 7F E3 FB 78 */ mr r3, r31
/* 802CF21C 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF220 48 09 30 05 */ bl _restgpr_28
/* 802CF224 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CF228 7C 08 03 A6 */ mtlr r0
/* 802CF22C 38 21 00 20 */ addi r1, r1, 0x20
/* 802CF230 4E 80 00 20 */ blr

View File

@ -1,21 +0,0 @@
lbl_802CF928:
/* 802CF928 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF92C 7C 08 02 A6 */ mflr r0
/* 802CF930 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF934 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF938 48 09 28 A5 */ bl _savegpr_29
/* 802CF93C 7C 7D 1B 78 */ mr r29, r3
/* 802CF940 7C 9E 23 78 */ mr r30, r4
/* 802CF944 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CF948 48 06 F6 F9 */ bl OSLockMutex
/* 802CF94C 8B FD 00 6D */ lbz r31, 0x6d(r29)
/* 802CF950 9B DD 00 6D */ stb r30, 0x6d(r29)
/* 802CF954 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CF958 48 06 F7 C5 */ bl OSUnlockMutex
/* 802CF95C 7F E3 FB 78 */ mr r3, r31
/* 802CF960 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF964 48 09 28 C5 */ bl _restgpr_29
/* 802CF968 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CF96C 7C 08 03 A6 */ mtlr r0
/* 802CF970 38 21 00 20 */ addi r1, r1, 0x20
/* 802CF974 4E 80 00 20 */ blr

View File

@ -1,36 +0,0 @@
lbl_802CEFAC:
/* 802CEFAC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CEFB0 7C 08 02 A6 */ mflr r0
/* 802CEFB4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CEFB8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CEFBC 93 C1 00 08 */ stw r30, 8(r1)
/* 802CEFC0 7C 7E 1B 78 */ mr r30, r3
/* 802CEFC4 88 03 00 6E */ lbz r0, 0x6e(r3)
/* 802CEFC8 28 00 00 00 */ cmplwi r0, 0
/* 802CEFCC 40 82 00 38 */ bne lbl_802CF004
/* 802CEFD0 80 9E 00 50 */ lwz r4, 0x50(r30)
/* 802CEFD4 83 E4 00 0C */ lwz r31, 0xc(r4)
/* 802CEFD8 28 1F 00 00 */ cmplwi r31, 0
/* 802CEFDC 41 82 00 3C */ beq lbl_802CF018
/* 802CEFE0 38 80 FF FF */ li r4, -1
/* 802CEFE4 81 83 00 00 */ lwz r12, 0(r3)
/* 802CEFE8 81 8C 00 08 */ lwz r12, 8(r12)
/* 802CEFEC 7D 89 03 A6 */ mtctr r12
/* 802CEFF0 4E 80 04 21 */ bctrl
/* 802CEFF4 7F C3 F3 78 */ mr r3, r30
/* 802CEFF8 7F E4 FB 78 */ mr r4, r31
/* 802CEFFC 4B FF F5 05 */ bl free__7JKRHeapFPvP7JKRHeap
/* 802CF000 48 00 00 18 */ b lbl_802CF018
lbl_802CF004:
/* 802CF004 38 80 FF FF */ li r4, -1
/* 802CF008 81 83 00 00 */ lwz r12, 0(r3)
/* 802CF00C 81 8C 00 08 */ lwz r12, 8(r12)
/* 802CF010 7D 89 03 A6 */ mtctr r12
/* 802CF014 4E 80 04 21 */ bctrl
lbl_802CF018:
/* 802CF018 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CF01C 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CF020 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CF024 7C 08 03 A6 */ mtlr r0
/* 802CF028 38 21 00 10 */ addi r1, r1, 0x10
/* 802CF02C 4E 80 00 20 */ blr

View File

@ -1,32 +0,0 @@
lbl_802CF820:
/* 802CF820 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CF824 7C 08 02 A6 */ mflr r0
/* 802CF828 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CF82C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CF830 7C 7F 1B 78 */ mr r31, r3
/* 802CF834 38 7F 00 18 */ addi r3, r31, 0x18
/* 802CF838 48 06 F8 09 */ bl OSLockMutex
/* 802CF83C 7F E3 FB 78 */ mr r3, r31
/* 802CF840 4B FF ED 35 */ bl callAllDisposer__7JKRHeapFv
/* 802CF844 80 1F 00 30 */ lwz r0, 0x30(r31)
/* 802CF848 90 1F 00 78 */ stw r0, 0x78(r31)
/* 802CF84C 80 1F 00 78 */ lwz r0, 0x78(r31)
/* 802CF850 90 1F 00 7C */ stw r0, 0x7c(r31)
/* 802CF854 80 7F 00 78 */ lwz r3, 0x78(r31)
/* 802CF858 38 80 00 00 */ li r4, 0
/* 802CF85C 38 A0 00 00 */ li r5, 0
/* 802CF860 80 DF 00 38 */ lwz r6, 0x38(r31)
/* 802CF864 38 C6 FF F0 */ addi r6, r6, -16
/* 802CF868 38 E0 00 00 */ li r7, 0
/* 802CF86C 39 00 00 00 */ li r8, 0
/* 802CF870 48 00 0F A1 */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802CF874 38 00 00 00 */ li r0, 0
/* 802CF878 90 1F 00 80 */ stw r0, 0x80(r31)
/* 802CF87C 90 1F 00 84 */ stw r0, 0x84(r31)
/* 802CF880 38 7F 00 18 */ addi r3, r31, 0x18
/* 802CF884 48 06 F8 99 */ bl OSUnlockMutex
/* 802CF888 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CF88C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CF890 7C 08 03 A6 */ mtlr r0
/* 802CF894 38 21 00 10 */ addi r1, r1, 0x10
/* 802CF898 4E 80 00 20 */ blr

View File

@ -1,31 +0,0 @@
lbl_802CF7AC:
/* 802CF7AC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CF7B0 7C 08 02 A6 */ mflr r0
/* 802CF7B4 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CF7B8 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CF7BC 93 C1 00 08 */ stw r30, 8(r1)
/* 802CF7C0 7C 7E 1B 78 */ mr r30, r3
/* 802CF7C4 7C 9F 23 78 */ mr r31, r4
/* 802CF7C8 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CF7CC 48 06 F8 75 */ bl OSLockMutex
/* 802CF7D0 80 1E 00 30 */ lwz r0, 0x30(r30)
/* 802CF7D4 7C 00 F8 40 */ cmplw r0, r31
/* 802CF7D8 41 81 00 28 */ bgt lbl_802CF800
/* 802CF7DC 80 1E 00 34 */ lwz r0, 0x34(r30)
/* 802CF7E0 7C 1F 00 40 */ cmplw r31, r0
/* 802CF7E4 41 81 00 1C */ bgt lbl_802CF800
/* 802CF7E8 7F E3 FB 78 */ mr r3, r31
/* 802CF7EC 48 00 11 31 */ bl getHeapBlock__Q210JKRExpHeap9CMemBlockFPv
/* 802CF7F0 28 03 00 00 */ cmplwi r3, 0
/* 802CF7F4 41 82 00 0C */ beq lbl_802CF800
/* 802CF7F8 7F C4 F3 78 */ mr r4, r30
/* 802CF7FC 48 00 10 D1 */ bl free__Q210JKRExpHeap9CMemBlockFP10JKRExpHeap
lbl_802CF800:
/* 802CF800 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CF804 48 06 F9 19 */ bl OSUnlockMutex
/* 802CF808 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CF80C 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CF810 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CF814 7C 08 03 A6 */ mtlr r0
/* 802CF818 38 21 00 10 */ addi r1, r1, 0x10
/* 802CF81C 4E 80 00 20 */ blr

View File

@ -1,3 +0,0 @@
lbl_802D0A1C:
/* 802D0A1C 88 63 00 6D */ lbz r3, 0x6d(r3)
/* 802D0A20 4E 80 00 20 */ blr

View File

@ -1,31 +0,0 @@
lbl_802CFBA4:
/* 802CFBA4 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CFBA8 7C 08 02 A6 */ mflr r0
/* 802CFBAC 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CFBB0 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CFBB4 93 C1 00 08 */ stw r30, 8(r1)
/* 802CFBB8 7C 7E 1B 78 */ mr r30, r3
/* 802CFBBC 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFBC0 48 06 F4 81 */ bl OSLockMutex
/* 802CFBC4 3B E0 00 00 */ li r31, 0
/* 802CFBC8 80 7E 00 78 */ lwz r3, 0x78(r30)
/* 802CFBCC 48 00 00 18 */ b lbl_802CFBE4
lbl_802CFBD0:
/* 802CFBD0 80 03 00 04 */ lwz r0, 4(r3)
/* 802CFBD4 7C 1F 00 00 */ cmpw r31, r0
/* 802CFBD8 40 80 00 08 */ bge lbl_802CFBE0
/* 802CFBDC 7C 1F 03 78 */ mr r31, r0
lbl_802CFBE0:
/* 802CFBE0 80 63 00 0C */ lwz r3, 0xc(r3)
lbl_802CFBE4:
/* 802CFBE4 28 03 00 00 */ cmplwi r3, 0
/* 802CFBE8 40 82 FF E8 */ bne lbl_802CFBD0
/* 802CFBEC 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFBF0 48 06 F5 2D */ bl OSUnlockMutex
/* 802CFBF4 7F E3 FB 78 */ mr r3, r31
/* 802CFBF8 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CFBFC 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CFC00 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CFC04 7C 08 03 A6 */ mtlr r0
/* 802CFC08 38 21 00 10 */ addi r1, r1, 0x10
/* 802CFC0C 4E 80 00 20 */ blr

View File

@ -1,33 +0,0 @@
lbl_802CFC10:
/* 802CFC10 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CFC14 7C 08 02 A6 */ mflr r0
/* 802CFC18 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CFC1C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CFC20 93 C1 00 08 */ stw r30, 8(r1)
/* 802CFC24 7C 7E 1B 78 */ mr r30, r3
/* 802CFC28 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFC2C 48 06 F4 15 */ bl OSLockMutex
/* 802CFC30 38 60 00 00 */ li r3, 0
/* 802CFC34 3B E0 00 00 */ li r31, 0
/* 802CFC38 80 9E 00 78 */ lwz r4, 0x78(r30)
/* 802CFC3C 48 00 00 1C */ b lbl_802CFC58
lbl_802CFC40:
/* 802CFC40 80 04 00 04 */ lwz r0, 4(r4)
/* 802CFC44 7C 03 00 00 */ cmpw r3, r0
/* 802CFC48 40 80 00 0C */ bge lbl_802CFC54
/* 802CFC4C 7C 03 03 78 */ mr r3, r0
/* 802CFC50 7C 9F 23 78 */ mr r31, r4
lbl_802CFC54:
/* 802CFC54 80 84 00 0C */ lwz r4, 0xc(r4)
lbl_802CFC58:
/* 802CFC58 28 04 00 00 */ cmplwi r4, 0
/* 802CFC5C 40 82 FF E4 */ bne lbl_802CFC40
/* 802CFC60 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFC64 48 06 F4 B9 */ bl OSUnlockMutex
/* 802CFC68 7F E3 FB 78 */ mr r3, r31
/* 802CFC6C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CFC70 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CFC74 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CFC78 7C 08 03 A6 */ mtlr r0
/* 802CFC7C 38 21 00 10 */ addi r1, r1, 0x10
/* 802CFC80 4E 80 00 20 */ blr

View File

@ -1,36 +0,0 @@
lbl_802CFB24:
/* 802CFB24 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CFB28 7C 08 02 A6 */ mflr r0
/* 802CFB2C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CFB30 39 61 00 20 */ addi r11, r1, 0x20
/* 802CFB34 48 09 26 A9 */ bl _savegpr_29
/* 802CFB38 7C 7D 1B 78 */ mr r29, r3
/* 802CFB3C 7C 9E 23 78 */ mr r30, r4
/* 802CFB40 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFB44 48 06 F4 FD */ bl OSLockMutex
/* 802CFB48 7F C3 F3 78 */ mr r3, r30
/* 802CFB4C 48 00 0D D1 */ bl getHeapBlock__Q210JKRExpHeap9CMemBlockFPv
/* 802CFB50 7C 7F 1B 79 */ or. r31, r3, r3
/* 802CFB54 41 82 00 1C */ beq lbl_802CFB70
/* 802CFB58 80 1D 00 30 */ lwz r0, 0x30(r29)
/* 802CFB5C 7C 1E 00 40 */ cmplw r30, r0
/* 802CFB60 41 80 00 10 */ blt lbl_802CFB70
/* 802CFB64 80 1D 00 34 */ lwz r0, 0x34(r29)
/* 802CFB68 7C 00 F0 40 */ cmplw r0, r30
/* 802CFB6C 40 80 00 14 */ bge lbl_802CFB80
lbl_802CFB70:
/* 802CFB70 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFB74 48 06 F5 A9 */ bl OSUnlockMutex
/* 802CFB78 38 60 FF FF */ li r3, -1
/* 802CFB7C 48 00 00 10 */ b lbl_802CFB8C
lbl_802CFB80:
/* 802CFB80 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFB84 48 06 F5 99 */ bl OSUnlockMutex
/* 802CFB88 80 7F 00 04 */ lwz r3, 4(r31)
lbl_802CFB8C:
/* 802CFB8C 39 61 00 20 */ addi r11, r1, 0x20
/* 802CFB90 48 09 26 99 */ bl _restgpr_29
/* 802CFB94 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CFB98 7C 08 03 A6 */ mtlr r0
/* 802CFB9C 38 21 00 20 */ addi r1, r1, 0x20
/* 802CFBA0 4E 80 00 20 */ blr

View File

@ -1,28 +0,0 @@
lbl_802CFC84:
/* 802CFC84 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CFC88 7C 08 02 A6 */ mflr r0
/* 802CFC8C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CFC90 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CFC94 93 C1 00 08 */ stw r30, 8(r1)
/* 802CFC98 7C 7E 1B 78 */ mr r30, r3
/* 802CFC9C 3B E0 00 00 */ li r31, 0
/* 802CFCA0 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFCA4 48 06 F3 9D */ bl OSLockMutex
/* 802CFCA8 80 7E 00 78 */ lwz r3, 0x78(r30)
/* 802CFCAC 48 00 00 10 */ b lbl_802CFCBC
lbl_802CFCB0:
/* 802CFCB0 80 03 00 04 */ lwz r0, 4(r3)
/* 802CFCB4 7F FF 02 14 */ add r31, r31, r0
/* 802CFCB8 80 63 00 0C */ lwz r3, 0xc(r3)
lbl_802CFCBC:
/* 802CFCBC 28 03 00 00 */ cmplwi r3, 0
/* 802CFCC0 40 82 FF F0 */ bne lbl_802CFCB0
/* 802CFCC4 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFCC8 48 06 F4 55 */ bl OSUnlockMutex
/* 802CFCCC 7F E3 FB 78 */ mr r3, r31
/* 802CFCD0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CFCD4 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CFCD8 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CFCDC 7C 08 03 A6 */ mtlr r0
/* 802CFCE0 38 21 00 10 */ addi r1, r1, 0x10
/* 802CFCE4 4E 80 00 20 */ blr

View File

@ -1,24 +0,0 @@
lbl_802CFE68:
/* 802CFE68 28 05 00 00 */ cmplwi r5, 0
/* 802CFE6C 40 82 00 14 */ bne lbl_802CFE80
/* 802CFE70 90 83 00 78 */ stw r4, 0x78(r3)
/* 802CFE74 38 00 00 00 */ li r0, 0
/* 802CFE78 90 04 00 08 */ stw r0, 8(r4)
/* 802CFE7C 48 00 00 0C */ b lbl_802CFE88
lbl_802CFE80:
/* 802CFE80 90 85 00 0C */ stw r4, 0xc(r5)
/* 802CFE84 90 A4 00 08 */ stw r5, 8(r4)
lbl_802CFE88:
/* 802CFE88 28 06 00 00 */ cmplwi r6, 0
/* 802CFE8C 40 82 00 14 */ bne lbl_802CFEA0
/* 802CFE90 90 83 00 7C */ stw r4, 0x7c(r3)
/* 802CFE94 38 00 00 00 */ li r0, 0
/* 802CFE98 90 04 00 0C */ stw r0, 0xc(r4)
/* 802CFE9C 48 00 00 0C */ b lbl_802CFEA8
lbl_802CFEA0:
/* 802CFEA0 90 86 00 08 */ stw r4, 8(r6)
/* 802CFEA4 90 C4 00 0C */ stw r6, 0xc(r4)
lbl_802CFEA8:
/* 802CFEA8 38 00 00 00 */ li r0, 0
/* 802CFEAC B0 04 00 00 */ sth r0, 0(r4)
/* 802CFEB0 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_802D0810:
/* 802D0810 38 00 48 4D */ li r0, 0x484d
/* 802D0814 B0 03 00 00 */ sth r0, 0(r3)
/* 802D0818 99 03 00 02 */ stb r8, 2(r3)
/* 802D081C 98 E3 00 03 */ stb r7, 3(r3)
/* 802D0820 90 C3 00 04 */ stw r6, 4(r3)
/* 802D0824 90 83 00 08 */ stw r4, 8(r3)
/* 802D0828 90 A3 00 0C */ stw r5, 0xc(r3)
/* 802D082C 4E 80 00 20 */ blr

View File

@ -1,9 +0,0 @@
lbl_802D091C:
/* 802D091C 28 03 00 00 */ cmplwi r3, 0
/* 802D0920 41 82 00 10 */ beq lbl_802D0930
/* 802D0924 A4 03 FF F0 */ lhzu r0, -0x10(r3)
/* 802D0928 28 00 48 4D */ cmplwi r0, 0x484d
/* 802D092C 4D 82 00 20 */ beqlr
lbl_802D0930:
/* 802D0930 38 60 00 00 */ li r3, 0
/* 802D0934 4E 80 00 20 */ blr

View File

@ -1,4 +0,0 @@
lbl_802D0A10:
/* 802D0A10 3C 60 45 58 */ lis r3, 0x4558 /* 0x45585048@ha */
/* 802D0A14 38 63 50 48 */ addi r3, r3, 0x5048 /* 0x45585048@l */
/* 802D0A18 4E 80 00 20 */ blr

View File

@ -1,29 +0,0 @@
lbl_802CFD64:
/* 802CFD64 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 802CFD68 7C 08 02 A6 */ mflr r0
/* 802CFD6C 90 01 00 14 */ stw r0, 0x14(r1)
/* 802CFD70 93 E1 00 0C */ stw r31, 0xc(r1)
/* 802CFD74 93 C1 00 08 */ stw r30, 8(r1)
/* 802CFD78 7C 7E 1B 78 */ mr r30, r3
/* 802CFD7C 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFD80 48 06 F2 C1 */ bl OSLockMutex
/* 802CFD84 3B E0 00 00 */ li r31, 0
/* 802CFD88 80 7E 00 80 */ lwz r3, 0x80(r30)
/* 802CFD8C 48 00 00 14 */ b lbl_802CFDA0
lbl_802CFD90:
/* 802CFD90 80 03 00 04 */ lwz r0, 4(r3)
/* 802CFD94 7F E0 FA 14 */ add r31, r0, r31
/* 802CFD98 80 63 00 0C */ lwz r3, 0xc(r3)
/* 802CFD9C 3B FF 00 10 */ addi r31, r31, 0x10
lbl_802CFDA0:
/* 802CFDA0 28 03 00 00 */ cmplwi r3, 0
/* 802CFDA4 40 82 FF EC */ bne lbl_802CFD90
/* 802CFDA8 38 7E 00 18 */ addi r3, r30, 0x18
/* 802CFDAC 48 06 F3 71 */ bl OSUnlockMutex
/* 802CFDB0 7F E3 FB 78 */ mr r3, r31
/* 802CFDB4 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 802CFDB8 83 C1 00 08 */ lwz r30, 8(r1)
/* 802CFDBC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 802CFDC0 7C 08 03 A6 */ mtlr r0
/* 802CFDC4 38 21 00 10 */ addi r1, r1, 0x10
/* 802CFDC8 4E 80 00 20 */ blr

View File

@ -1,35 +0,0 @@
lbl_802CFCE8:
/* 802CFCE8 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CFCEC 7C 08 02 A6 */ mflr r0
/* 802CFCF0 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CFCF4 39 61 00 20 */ addi r11, r1, 0x20
/* 802CFCF8 48 09 24 E5 */ bl _savegpr_29
/* 802CFCFC 7C 7D 1B 78 */ mr r29, r3
/* 802CFD00 7C 9E 23 78 */ mr r30, r4
/* 802CFD04 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFD08 48 06 F3 39 */ bl OSLockMutex
/* 802CFD0C 3B E0 00 00 */ li r31, 0
/* 802CFD10 80 9D 00 80 */ lwz r4, 0x80(r29)
/* 802CFD14 57 C3 06 3E */ clrlwi r3, r30, 0x18
/* 802CFD18 48 00 00 20 */ b lbl_802CFD38
lbl_802CFD1C:
/* 802CFD1C 88 04 00 03 */ lbz r0, 3(r4)
/* 802CFD20 7C 00 18 40 */ cmplw r0, r3
/* 802CFD24 40 82 00 10 */ bne lbl_802CFD34
/* 802CFD28 80 04 00 04 */ lwz r0, 4(r4)
/* 802CFD2C 7F E0 FA 14 */ add r31, r0, r31
/* 802CFD30 3B FF 00 10 */ addi r31, r31, 0x10
lbl_802CFD34:
/* 802CFD34 80 84 00 0C */ lwz r4, 0xc(r4)
lbl_802CFD38:
/* 802CFD38 28 04 00 00 */ cmplwi r4, 0
/* 802CFD3C 40 82 FF E0 */ bne lbl_802CFD1C
/* 802CFD40 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFD44 48 06 F3 D9 */ bl OSUnlockMutex
/* 802CFD48 7F E3 FB 78 */ mr r3, r31
/* 802CFD4C 39 61 00 20 */ addi r11, r1, 0x20
/* 802CFD50 48 09 24 D9 */ bl _restgpr_29
/* 802CFD54 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CFD58 7C 08 03 A6 */ mtlr r0
/* 802CFD5C 38 21 00 20 */ addi r1, r1, 0x20
/* 802CFD60 4E 80 00 20 */ blr

View File

@ -1,17 +0,0 @@
lbl_802CFEB4:
/* 802CFEB4 80 A4 00 08 */ lwz r5, 8(r4)
/* 802CFEB8 80 84 00 0C */ lwz r4, 0xc(r4)
/* 802CFEBC 28 05 00 00 */ cmplwi r5, 0
/* 802CFEC0 40 82 00 0C */ bne lbl_802CFECC
/* 802CFEC4 90 83 00 78 */ stw r4, 0x78(r3)
/* 802CFEC8 48 00 00 08 */ b lbl_802CFED0
lbl_802CFECC:
/* 802CFECC 90 85 00 0C */ stw r4, 0xc(r5)
lbl_802CFED0:
/* 802CFED0 28 04 00 00 */ cmplwi r4, 0
/* 802CFED4 40 82 00 0C */ bne lbl_802CFEE0
/* 802CFED8 90 A3 00 7C */ stw r5, 0x7c(r3)
/* 802CFEDC 4E 80 00 20 */ blr
lbl_802CFEE0:
/* 802CFEE0 90 A4 00 08 */ stw r5, 8(r4)
/* 802CFEE4 4E 80 00 20 */ blr

View File

@ -1,17 +0,0 @@
lbl_802CFEE8:
/* 802CFEE8 80 A4 00 08 */ lwz r5, 8(r4)
/* 802CFEEC 80 84 00 0C */ lwz r4, 0xc(r4)
/* 802CFEF0 28 05 00 00 */ cmplwi r5, 0
/* 802CFEF4 40 82 00 0C */ bne lbl_802CFF00
/* 802CFEF8 90 83 00 80 */ stw r4, 0x80(r3)
/* 802CFEFC 48 00 00 08 */ b lbl_802CFF04
lbl_802CFF00:
/* 802CFF00 90 85 00 0C */ stw r4, 0xc(r5)
lbl_802CFF04:
/* 802CFF04 28 04 00 00 */ cmplwi r4, 0
/* 802CFF08 40 82 00 0C */ bne lbl_802CFF14
/* 802CFF0C 90 A3 00 84 */ stw r5, 0x84(r3)
/* 802CFF10 4E 80 00 20 */ blr
lbl_802CFF14:
/* 802CFF14 90 A4 00 08 */ stw r5, 8(r4)
/* 802CFF18 4E 80 00 20 */ blr

View File

@ -1,14 +0,0 @@
lbl_802D09E0:
/* 802D09E0 38 60 00 01 */ li r3, 1
/* 802D09E4 80 C4 00 04 */ lwz r6, 4(r4)
/* 802D09E8 80 05 00 04 */ lwz r0, 4(r5)
/* 802D09EC 7C 06 00 40 */ cmplw r6, r0
/* 802D09F0 41 82 00 08 */ beq lbl_802D09F8
/* 802D09F4 38 60 00 00 */ li r3, 0
lbl_802D09F8:
/* 802D09F8 80 84 00 00 */ lwz r4, 0(r4)
/* 802D09FC 80 05 00 00 */ lwz r0, 0(r5)
/* 802D0A00 7C 04 00 40 */ cmplw r4, r0
/* 802D0A04 4D 82 00 20 */ beqlr
/* 802D0A08 38 60 00 00 */ li r3, 0
/* 802D0A0C 4E 80 00 20 */ blr

View File

@ -1,49 +0,0 @@
lbl_802D0938:
/* 802D0938 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802D093C 7C 08 02 A6 */ mflr r0
/* 802D0940 90 01 00 24 */ stw r0, 0x24(r1)
/* 802D0944 39 61 00 20 */ addi r11, r1, 0x20
/* 802D0948 48 09 18 95 */ bl _savegpr_29
/* 802D094C 7C 7D 1B 78 */ mr r29, r3
/* 802D0950 7C 9E 23 78 */ mr r30, r4
/* 802D0954 7C BF 2B 78 */ mr r31, r5
/* 802D0958 93 E4 00 14 */ stw r31, 0x14(r4)
/* 802D095C 28 1F 00 FF */ cmplwi r31, 0xff
/* 802D0960 41 81 00 14 */ bgt lbl_802D0974
/* 802D0964 57 E4 06 3E */ clrlwi r4, r31, 0x18
/* 802D0968 4B FF F3 81 */ bl getUsedSize__10JKRExpHeapCFUc
/* 802D096C 90 7E 00 00 */ stw r3, 0(r30)
/* 802D0970 48 00 00 14 */ b lbl_802D0984
lbl_802D0974:
/* 802D0974 4B FF DE 11 */ bl getTotalFreeSize__7JKRHeapFv
/* 802D0978 80 1D 00 38 */ lwz r0, 0x38(r29)
/* 802D097C 7C 03 00 50 */ subf r0, r3, r0
/* 802D0980 90 1E 00 00 */ stw r0, 0(r30)
lbl_802D0984:
/* 802D0984 38 60 00 00 */ li r3, 0
/* 802D0988 80 9D 00 80 */ lwz r4, 0x80(r29)
/* 802D098C 48 00 00 30 */ b lbl_802D09BC
lbl_802D0990:
/* 802D0990 28 1F 00 FF */ cmplwi r31, 0xff
/* 802D0994 41 81 00 1C */ bgt lbl_802D09B0
/* 802D0998 88 04 00 03 */ lbz r0, 3(r4)
/* 802D099C 7C 00 F8 40 */ cmplw r0, r31
/* 802D09A0 40 82 00 18 */ bne lbl_802D09B8
/* 802D09A4 1C 04 00 03 */ mulli r0, r4, 3
/* 802D09A8 7C 63 02 14 */ add r3, r3, r0
/* 802D09AC 48 00 00 0C */ b lbl_802D09B8
lbl_802D09B0:
/* 802D09B0 1C 04 00 03 */ mulli r0, r4, 3
/* 802D09B4 7C 63 02 14 */ add r3, r3, r0
lbl_802D09B8:
/* 802D09B8 80 84 00 0C */ lwz r4, 0xc(r4)
lbl_802D09BC:
/* 802D09BC 28 04 00 00 */ cmplwi r4, 0
/* 802D09C0 40 82 FF D0 */ bne lbl_802D0990
/* 802D09C4 90 7E 00 04 */ stw r3, 4(r30)
/* 802D09C8 39 61 00 20 */ addi r11, r1, 0x20
/* 802D09CC 48 09 18 5D */ bl _restgpr_29
/* 802D09D0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D09D4 7C 08 03 A6 */ mtlr r0
/* 802D09D8 38 21 00 20 */ addi r1, r1, 0x20
/* 802D09DC 4E 80 00 20 */ blr

View File

@ -7,21 +7,24 @@
class JKRExpHeap : public JKRHeap {
public:
class CMemBlock {
friend class JKRExpHeap;
public:
void initiate(CMemBlock*, CMemBlock*, u32, u8, u8);
void allocFore(u32, u8, u8, u8, u8);
void allocBack(u32, u8, u8, u8, u8);
void free(JKRExpHeap*);
void getHeapBlock(void*);
JKRExpHeap::CMemBlock* allocFore(u32, u8, u8, u8, u8);
JKRExpHeap::CMemBlock* allocBack(u32, u8, u8, u8, u8);
int free(JKRExpHeap*);
static CMemBlock* getHeapBlock(void*);
void newGroupId(u8 groupId) { this->mGroupId = groupId; }
bool isValid() const { return this->mMagic == 0x484d; }
bool isValid() const { return this->mMagic == 'HM'; }
bool _isTempMemBlock() const { return (this->mFlags & 0x80) ? true : false; }
int getAlignment() const { return this->mFlags & 0x7f; }
void* getContent() const { return (void*)(this + 1); }
CMemBlock* getPrevBlock() const { return this->mPrev; }
CMemBlock* getNextBlock() const { return this->mNext; }
u32 getSize() const { return this->size; }
u8 getGroupId() const { return this->mGroupId; }
static CMemBlock* getBlock(void* data) { return (CMemBlock*)((u32)data + -0x10); }
private:
@ -32,15 +35,16 @@ public:
CMemBlock* mPrev;
CMemBlock* mNext;
};
friend class CMemBlock;
protected:
JKRExpHeap(void*, u32, JKRHeap*, bool);
virtual ~JKRExpHeap();
void allocFromHead(u32, int);
void allocFromHead(u32);
void allocFromTail(u32, int);
void allocFromTail(u32);
void* allocFromHead(u32, int);
void* allocFromHead(u32);
void* allocFromTail(u32, int);
void* allocFromTail(u32);
void appendUsedList(CMemBlock*);
void setFreeBlock(CMemBlock*, CMemBlock*, CMemBlock*);
void removeFreeBlock(CMemBlock*);
@ -76,9 +80,11 @@ public:
JKRHeap::TState const&) const; /* override */
u8 field_0x6c;
u8 mCurrentGroupId;
bool field_0x6e;
private:
u32 field_0x70;
void* field_0x70;
u32 field_0x74;
CMemBlock* mHeadFreeList;
CMemBlock* mTailFreeList;
@ -91,8 +97,8 @@ public:
static JKRExpHeap* create(void*, u32, JKRHeap*, bool);
};
inline JKRExpHeap* JKRCreateExpHeap(u32 param_0, JKRHeap* param_1, bool param_2) {
return JKRExpHeap::create(param_0, param_1, param_2);
inline JKRExpHeap* JKRCreateExpHeap(u32 size, JKRHeap* parent, bool errorFlag) {
return JKRExpHeap::create(size, parent, errorFlag);
}
#endif /* JKREXPHEAP_H */

File diff suppressed because it is too large Load Diff