Link heapStatus.cpp

This commit is contained in:
HeartPiece 2024-04-30 14:02:37 +10:00
parent 42eac2d418
commit bcf39f7274
9 changed files with 103 additions and 976 deletions

View File

@ -1,390 +0,0 @@
.include "macros.inc"
.section .rodata # 0x804732E0 - 0x8049E220
.balign 8
.obj lbl_80499EE8, local
.asciz "heapStatus.cpp"
.endobj lbl_80499EE8
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.balign 8
.obj __vt__8HeapInfo, global
.4byte 0
.4byte 0
.4byte update__4NodeFv
.4byte draw__4NodeFR8Graphics
.4byte displayInfo__4NodeFi
.4byte 0
.4byte 0
.4byte "@36@__dt__8HeapInfoFv"
.4byte __dt__8HeapInfoFv
.endobj __vt__8HeapInfo
.section .sdata2, "a" # 0x80516360 - 0x80520E40
.balign 8
.obj lbl_80520598, local
.asciz "root"
.endobj lbl_80520598
.balign 4
.obj lbl_805205A0, local
.asciz "EXIT\n"
.endobj lbl_805205A0
.section .text, "ax" # 0x800056C0 - 0x80472F00
.fn __ct__10HeapStatusFv, global
/* 8042AFC4 00427F04 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8042AFC8 00427F08 7C 08 02 A6 */ mflr r0
/* 8042AFCC 00427F0C 90 01 00 24 */ stw r0, 0x24(r1)
/* 8042AFD0 00427F10 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8042AFD4 00427F14 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8042AFD8 00427F18 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8042AFDC 00427F1C 7C 7D 1B 78 */ mr r29, r3
/* 8042AFE0 00427F20 3B FD 00 04 */ addi r31, r29, 4
/* 8042AFE4 00427F24 7F BE EB 78 */ mr r30, r29
/* 8042AFE8 00427F28 7F E3 FB 78 */ mr r3, r31
/* 8042AFEC 00427F2C 4B BF B8 E5 */ bl initiate__10JSUPtrListFv
/* 8042AFF0 00427F30 7F A4 EB 78 */ mr r4, r29
/* 8042AFF4 00427F34 38 7F 00 0C */ addi r3, r31, 0xc
/* 8042AFF8 00427F38 4B BF B7 C1 */ bl __ct__10JSUPtrLinkFPv
/* 8042AFFC 00427F3C 38 02 22 38 */ addi r0, r2, lbl_80520598@sda21
/* 8042B000 00427F40 3C 60 80 4F */ lis r3, __vt__4Node@ha
/* 8042B004 00427F44 90 1D 00 00 */ stw r0, 0(r29)
/* 8042B008 00427F48 38 03 B5 38 */ addi r0, r3, __vt__4Node@l
/* 8042B00C 00427F4C 7F C3 F3 78 */ mr r3, r30
/* 8042B010 00427F50 90 1E 00 20 */ stw r0, 0x20(r30)
/* 8042B014 00427F54 4B FE 61 F1 */ bl init__4NodeFv
/* 8042B018 00427F58 38 7D 00 24 */ addi r3, r29, 0x24
/* 8042B01C 00427F5C 4B BF 1F B1 */ bl __ct__11JKRDisposerFv
/* 8042B020 00427F60 3C 60 80 4F */ lis r3, __vt__8HeapInfo@ha
/* 8042B024 00427F64 38 80 00 00 */ li r4, 0
/* 8042B028 00427F68 38 63 BE 60 */ addi r3, r3, __vt__8HeapInfo@l
/* 8042B02C 00427F6C 38 00 FF FF */ li r0, -1
/* 8042B030 00427F70 90 7D 00 20 */ stw r3, 0x20(r29)
/* 8042B034 00427F74 38 A3 00 14 */ addi r5, r3, 0x14
/* 8042B038 00427F78 7F A3 EB 78 */ mr r3, r29
/* 8042B03C 00427F7C 90 BD 00 24 */ stw r5, 0x24(r29)
/* 8042B040 00427F80 90 9D 00 3C */ stw r4, 0x3c(r29)
/* 8042B044 00427F84 90 1D 00 40 */ stw r0, 0x40(r29)
/* 8042B048 00427F88 90 9D 00 44 */ stw r4, 0x44(r29)
/* 8042B04C 00427F8C 93 BD 00 48 */ stw r29, 0x48(r29)
/* 8042B050 00427F90 98 9D 00 50 */ stb r4, 0x50(r29)
/* 8042B054 00427F94 93 BD 00 4C */ stw r29, 0x4c(r29)
/* 8042B058 00427F98 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8042B05C 00427F9C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8042B060 00427FA0 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8042B064 00427FA4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8042B068 00427FA8 7C 08 03 A6 */ mtlr r0
/* 8042B06C 00427FAC 38 21 00 20 */ addi r1, r1, 0x20
/* 8042B070 00427FB0 4E 80 00 20 */ blr
.endfn __ct__10HeapStatusFv
.fn __dt__8HeapInfoFv, global
/* 8042B074 00427FB4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8042B078 00427FB8 7C 08 02 A6 */ mflr r0
/* 8042B07C 00427FBC 90 01 00 24 */ stw r0, 0x24(r1)
/* 8042B080 00427FC0 93 E1 00 1C */ stw r31, 0x1c(r1)
/* 8042B084 00427FC4 7C 9F 23 78 */ mr r31, r4
/* 8042B088 00427FC8 93 C1 00 18 */ stw r30, 0x18(r1)
/* 8042B08C 00427FCC 7C 7E 1B 79 */ or. r30, r3, r3
/* 8042B090 00427FD0 93 A1 00 14 */ stw r29, 0x14(r1)
/* 8042B094 00427FD4 93 81 00 10 */ stw r28, 0x10(r1)
/* 8042B098 00427FD8 41 82 01 58 */ beq .L_8042B1F0
/* 8042B09C 00427FDC 3C 80 80 4F */ lis r4, __vt__8HeapInfo@ha
/* 8042B0A0 00427FE0 38 84 BE 60 */ addi r4, r4, __vt__8HeapInfo@l
/* 8042B0A4 00427FE4 90 9E 00 20 */ stw r4, 0x20(r30)
/* 8042B0A8 00427FE8 38 04 00 14 */ addi r0, r4, 0x14
/* 8042B0AC 00427FEC 90 1E 00 24 */ stw r0, 0x24(r30)
/* 8042B0B0 00427FF0 83 BE 00 48 */ lwz r29, 0x48(r30)
/* 8042B0B4 00427FF4 80 9D 00 4C */ lwz r4, 0x4c(r29)
/* 8042B0B8 00427FF8 7C 04 F0 40 */ cmplw r4, r30
/* 8042B0BC 00427FFC 40 82 00 54 */ bne .L_8042B110
/* 8042B0C0 00428000 80 64 00 14 */ lwz r3, 0x14(r4)
/* 8042B0C4 00428004 28 03 00 00 */ cmplwi r3, 0
/* 8042B0C8 00428008 41 82 00 B0 */ beq .L_8042B178
/* 8042B0CC 0042800C 80 03 00 0C */ lwz r0, 0xc(r3)
/* 8042B0D0 00428010 7F A3 EB 78 */ mr r3, r29
/* 8042B0D4 00428014 90 1D 00 4C */ stw r0, 0x4c(r29)
/* 8042B0D8 00428018 83 9D 00 4C */ lwz r28, 0x4c(r29)
/* 8042B0DC 0042801C 7F 84 E3 78 */ mr r4, r28
/* 8042B0E0 00428020 48 00 01 AD */ bl search__8HeapInfoFP8HeapInfo
/* 8042B0E4 00428024 90 7D 00 4C */ stw r3, 0x4c(r29)
/* 8042B0E8 00428028 80 1D 00 4C */ lwz r0, 0x4c(r29)
/* 8042B0EC 0042802C 7C 1C 00 40 */ cmplw r28, r0
/* 8042B0F0 00428030 41 82 00 88 */ beq .L_8042B178
/* 8042B0F4 00428034 3C 60 80 4A */ lis r3, lbl_80499EE8@ha
/* 8042B0F8 00428038 38 80 01 15 */ li r4, 0x115
/* 8042B0FC 0042803C 38 63 9E E8 */ addi r3, r3, lbl_80499EE8@l
/* 8042B100 00428040 38 A2 22 40 */ addi r5, r2, lbl_805205A0@sda21
/* 8042B104 00428044 4C C6 31 82 */ crclr 6
/* 8042B108 00428048 4B BF F5 39 */ bl panic_f__12JUTExceptionFPCciPCce
/* 8042B10C 0042804C 48 00 00 6C */ b .L_8042B178
.L_8042B110:
/* 8042B110 00428050 48 00 01 7D */ bl search__8HeapInfoFP8HeapInfo
/* 8042B114 00428054 28 03 00 00 */ cmplwi r3, 0
/* 8042B118 00428058 41 82 00 60 */ beq .L_8042B178
/* 8042B11C 0042805C 80 7E 00 48 */ lwz r3, 0x48(r30)
/* 8042B120 00428060 93 C3 00 4C */ stw r30, 0x4c(r3)
/* 8042B124 00428064 83 BE 00 48 */ lwz r29, 0x48(r30)
/* 8042B128 00428068 80 7D 00 4C */ lwz r3, 0x4c(r29)
/* 8042B12C 0042806C 80 63 00 14 */ lwz r3, 0x14(r3)
/* 8042B130 00428070 28 03 00 00 */ cmplwi r3, 0
/* 8042B134 00428074 41 82 00 44 */ beq .L_8042B178
/* 8042B138 00428078 80 03 00 0C */ lwz r0, 0xc(r3)
/* 8042B13C 0042807C 7F A3 EB 78 */ mr r3, r29
/* 8042B140 00428080 90 1D 00 4C */ stw r0, 0x4c(r29)
/* 8042B144 00428084 83 9D 00 4C */ lwz r28, 0x4c(r29)
/* 8042B148 00428088 7F 84 E3 78 */ mr r4, r28
/* 8042B14C 0042808C 48 00 01 41 */ bl search__8HeapInfoFP8HeapInfo
/* 8042B150 00428090 90 7D 00 4C */ stw r3, 0x4c(r29)
/* 8042B154 00428094 80 1D 00 4C */ lwz r0, 0x4c(r29)
/* 8042B158 00428098 7C 1C 00 40 */ cmplw r28, r0
/* 8042B15C 0042809C 41 82 00 1C */ beq .L_8042B178
/* 8042B160 004280A0 3C 60 80 4A */ lis r3, lbl_80499EE8@ha
/* 8042B164 004280A4 38 80 01 15 */ li r4, 0x115
/* 8042B168 004280A8 38 63 9E E8 */ addi r3, r3, lbl_80499EE8@l
/* 8042B16C 004280AC 38 A2 22 40 */ addi r5, r2, lbl_805205A0@sda21
/* 8042B170 004280B0 4C C6 31 82 */ crclr 6
/* 8042B174 004280B4 4B BF F4 CD */ bl panic_f__12JUTExceptionFPCciPCce
.L_8042B178:
/* 8042B178 004280B8 34 9E 00 04 */ addic. r4, r30, 4
/* 8042B17C 004280BC 41 82 00 08 */ beq .L_8042B184
/* 8042B180 004280C0 38 84 00 0C */ addi r4, r4, 0xc
.L_8042B184:
/* 8042B184 004280C4 38 7E 00 04 */ addi r3, r30, 4
/* 8042B188 004280C8 4B BF BA 9D */ bl remove__10JSUPtrListFP10JSUPtrLink
/* 8042B18C 004280CC 38 7E 00 24 */ addi r3, r30, 0x24
/* 8042B190 004280D0 38 80 00 00 */ li r4, 0
/* 8042B194 004280D4 4B BF 1E A1 */ bl __dt__11JKRDisposerFv
/* 8042B198 004280D8 28 1E 00 00 */ cmplwi r30, 0
/* 8042B19C 004280DC 41 82 00 44 */ beq .L_8042B1E0
/* 8042B1A0 004280E0 3C 60 80 4F */ lis r3, __vt__4Node@ha
/* 8042B1A4 004280E4 38 03 B5 38 */ addi r0, r3, __vt__4Node@l
/* 8042B1A8 004280E8 90 1E 00 20 */ stw r0, 0x20(r30)
/* 8042B1AC 004280EC 41 82 00 34 */ beq .L_8042B1E0
/* 8042B1B0 004280F0 34 1E 00 04 */ addic. r0, r30, 4
/* 8042B1B4 004280F4 41 82 00 2C */ beq .L_8042B1E0
/* 8042B1B8 004280F8 34 1E 00 10 */ addic. r0, r30, 0x10
/* 8042B1BC 004280FC 41 82 00 10 */ beq .L_8042B1CC
/* 8042B1C0 00428100 38 7E 00 10 */ addi r3, r30, 0x10
/* 8042B1C4 00428104 38 80 00 00 */ li r4, 0
/* 8042B1C8 00428108 4B BF B6 09 */ bl __dt__10JSUPtrLinkFv
.L_8042B1CC:
/* 8042B1CC 0042810C 34 1E 00 04 */ addic. r0, r30, 4
/* 8042B1D0 00428110 41 82 00 10 */ beq .L_8042B1E0
/* 8042B1D4 00428114 38 7E 00 04 */ addi r3, r30, 4
/* 8042B1D8 00428118 38 80 00 00 */ li r4, 0
/* 8042B1DC 0042811C 4B BF B6 8D */ bl __dt__10JSUPtrListFv
.L_8042B1E0:
/* 8042B1E0 00428120 7F E0 07 35 */ extsh. r0, r31
/* 8042B1E4 00428124 40 81 00 0C */ ble .L_8042B1F0
/* 8042B1E8 00428128 7F C3 F3 78 */ mr r3, r30
/* 8042B1EC 0042812C 4B BF 8E C9 */ bl __dl__FPv
.L_8042B1F0:
/* 8042B1F0 00428130 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8042B1F4 00428134 7F C3 F3 78 */ mr r3, r30
/* 8042B1F8 00428138 83 E1 00 1C */ lwz r31, 0x1c(r1)
/* 8042B1FC 0042813C 83 C1 00 18 */ lwz r30, 0x18(r1)
/* 8042B200 00428140 83 A1 00 14 */ lwz r29, 0x14(r1)
/* 8042B204 00428144 83 81 00 10 */ lwz r28, 0x10(r1)
/* 8042B208 00428148 7C 08 03 A6 */ mtlr r0
/* 8042B20C 0042814C 38 21 00 20 */ addi r1, r1, 0x20
/* 8042B210 00428150 4E 80 00 20 */ blr
.endfn __dt__8HeapInfoFv
.fn "getNextChild__18JSUTree<8CoreNode>CFv", weak
/* 8042B214 00428154 80 63 00 18 */ lwz r3, 0x18(r3)
/* 8042B218 00428158 28 03 00 00 */ cmplwi r3, 0
/* 8042B21C 0042815C 4D 82 00 20 */ beqlr
/* 8042B220 00428160 38 63 FF F4 */ addi r3, r3, -12
/* 8042B224 00428164 4E 80 00 20 */ blr
.endfn "getNextChild__18JSUTree<8CoreNode>CFv"
.fn "__ne__26JSUTreeIterator<8CoreNode>CFPC18JSUTree<8CoreNode>", weak
/* 8042B228 00428168 80 03 00 00 */ lwz r0, 0(r3)
/* 8042B22C 0042816C 7C 60 20 50 */ subf r3, r0, r4
/* 8042B230 00428170 7C 04 00 50 */ subf r0, r4, r0
/* 8042B234 00428174 7C 60 03 78 */ or r0, r3, r0
/* 8042B238 00428178 54 03 0F FE */ srwi r3, r0, 0x1f
/* 8042B23C 0042817C 4E 80 00 20 */ blr
.endfn "__ne__26JSUTreeIterator<8CoreNode>CFPC18JSUTree<8CoreNode>"
.fn "getEndChild__18JSUTree<8CoreNode>CFv", weak
/* 8042B240 00428180 38 60 00 00 */ li r3, 0
/* 8042B244 00428184 4E 80 00 20 */ blr
.endfn "getEndChild__18JSUTree<8CoreNode>CFv"
.fn "__pp__26JSUTreeIterator<8CoreNode>Fv", weak
/* 8042B248 00428188 80 83 00 00 */ lwz r4, 0(r3)
/* 8042B24C 0042818C 80 84 00 18 */ lwz r4, 0x18(r4)
/* 8042B250 00428190 28 04 00 00 */ cmplwi r4, 0
/* 8042B254 00428194 41 82 00 08 */ beq .L_8042B25C
/* 8042B258 00428198 38 84 FF F4 */ addi r4, r4, -12
.L_8042B25C:
/* 8042B25C 0042819C 90 83 00 00 */ stw r4, 0(r3)
/* 8042B260 004281A0 4E 80 00 20 */ blr
.endfn "__pp__26JSUTreeIterator<8CoreNode>Fv"
.fn "getObject__26JSUTreeIterator<8CoreNode>CFv", weak
/* 8042B264 004281A4 80 63 00 00 */ lwz r3, 0(r3)
/* 8042B268 004281A8 80 63 00 0C */ lwz r3, 0xc(r3)
/* 8042B26C 004281AC 4E 80 00 20 */ blr
.endfn "getObject__26JSUTreeIterator<8CoreNode>CFv"
.fn "__ct__26JSUTreeIterator<8CoreNode>FP18JSUTree<8CoreNode>", weak
/* 8042B270 004281B0 90 83 00 00 */ stw r4, 0(r3)
/* 8042B274 004281B4 4E 80 00 20 */ blr
.endfn "__ct__26JSUTreeIterator<8CoreNode>FP18JSUTree<8CoreNode>"
.fn "getFirstChild__18JSUTree<8CoreNode>CFv", weak
/* 8042B278 004281B8 80 63 00 00 */ lwz r3, 0(r3)
/* 8042B27C 004281BC 28 03 00 00 */ cmplwi r3, 0
/* 8042B280 004281C0 4D 82 00 20 */ beqlr
/* 8042B284 004281C4 38 63 FF F4 */ addi r3, r3, -12
/* 8042B288 004281C8 4E 80 00 20 */ blr
.endfn "getFirstChild__18JSUTree<8CoreNode>CFv"
.fn search__8HeapInfoFP8HeapInfo, global
/* 8042B28C 004281CC 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 8042B290 004281D0 7C 08 02 A6 */ mflr r0
/* 8042B294 004281D4 90 01 00 34 */ stw r0, 0x34(r1)
/* 8042B298 004281D8 38 00 00 00 */ li r0, 0
/* 8042B29C 004281DC BF 01 00 10 */ stmw r24, 0x10(r1)
/* 8042B2A0 004281E0 7C 9F 23 78 */ mr r31, r4
/* 8042B2A4 004281E4 7C 1F 18 40 */ cmplw r31, r3
/* 8042B2A8 004281E8 40 82 00 0C */ bne .L_8042B2B4
/* 8042B2AC 004281EC 7C 60 1B 78 */ mr r0, r3
/* 8042B2B0 004281F0 48 00 01 9C */ b .L_8042B44C
.L_8042B2B4:
/* 8042B2B4 004281F4 83 C3 00 04 */ lwz r30, 4(r3)
/* 8042B2B8 004281F8 28 1E 00 00 */ cmplwi r30, 0
/* 8042B2BC 004281FC 41 82 01 88 */ beq .L_8042B444
/* 8042B2C0 00428200 3B DE FF F4 */ addi r30, r30, -12
/* 8042B2C4 00428204 48 00 01 80 */ b .L_8042B444
.L_8042B2C8:
/* 8042B2C8 00428208 80 7E 00 0C */ lwz r3, 0xc(r30)
/* 8042B2CC 0042820C 3B 80 00 00 */ li r28, 0
/* 8042B2D0 00428210 7C 1F 18 40 */ cmplw r31, r3
/* 8042B2D4 00428214 40 82 00 0C */ bne .L_8042B2E0
/* 8042B2D8 00428218 7C 7C 1B 78 */ mr r28, r3
/* 8042B2DC 0042821C 48 00 01 4C */ b .L_8042B428
.L_8042B2E0:
/* 8042B2E0 00428220 83 A3 00 04 */ lwz r29, 4(r3)
/* 8042B2E4 00428224 28 1D 00 00 */ cmplwi r29, 0
/* 8042B2E8 00428228 41 82 01 38 */ beq .L_8042B420
/* 8042B2EC 0042822C 3B BD FF F4 */ addi r29, r29, -12
/* 8042B2F0 00428230 48 00 01 30 */ b .L_8042B420
.L_8042B2F4:
/* 8042B2F4 00428234 80 7D 00 0C */ lwz r3, 0xc(r29)
/* 8042B2F8 00428238 3B 80 00 00 */ li r28, 0
/* 8042B2FC 0042823C 7C 1F 18 40 */ cmplw r31, r3
/* 8042B300 00428240 40 82 00 0C */ bne .L_8042B30C
/* 8042B304 00428244 7C 7C 1B 78 */ mr r28, r3
/* 8042B308 00428248 48 00 01 00 */ b .L_8042B408
.L_8042B30C:
/* 8042B30C 0042824C 38 63 00 04 */ addi r3, r3, 4
/* 8042B310 00428250 4B BF 89 11 */ bl getFirstLink__10JSUPtrListCFv
/* 8042B314 00428254 28 03 00 00 */ cmplwi r3, 0
/* 8042B318 00428258 41 82 00 08 */ beq .L_8042B320
/* 8042B31C 0042825C 38 63 FF F4 */ addi r3, r3, -12
.L_8042B320:
/* 8042B320 00428260 7C 7B 1B 78 */ mr r27, r3
/* 8042B324 00428264 48 00 00 DC */ b .L_8042B400
.L_8042B328:
/* 8042B328 00428268 80 7B 00 0C */ lwz r3, 0xc(r27)
/* 8042B32C 0042826C 3B 80 00 00 */ li r28, 0
/* 8042B330 00428270 7C 1F 18 40 */ cmplw r31, r3
/* 8042B334 00428274 40 82 00 0C */ bne .L_8042B340
/* 8042B338 00428278 7C 7C 1B 78 */ mr r28, r3
/* 8042B33C 0042827C 48 00 00 AC */ b .L_8042B3E8
.L_8042B340:
/* 8042B340 00428280 3B 23 00 04 */ addi r25, r3, 4
/* 8042B344 00428284 7F 23 CB 78 */ mr r3, r25
/* 8042B348 00428288 4B FF FF 31 */ bl "getFirstChild__18JSUTree<8CoreNode>CFv"
/* 8042B34C 0042828C 7C 7A 1B 78 */ mr r26, r3
/* 8042B350 00428290 48 00 00 88 */ b .L_8042B3D8
.L_8042B354:
/* 8042B354 00428294 80 7A 00 0C */ lwz r3, 0xc(r26)
/* 8042B358 00428298 3B 80 00 00 */ li r28, 0
/* 8042B35C 0042829C 7C 1F 18 40 */ cmplw r31, r3
/* 8042B360 004282A0 40 82 00 0C */ bne .L_8042B36C
/* 8042B364 004282A4 7C 7C 1B 78 */ mr r28, r3
/* 8042B368 004282A8 48 00 00 5C */ b .L_8042B3C4
.L_8042B36C:
/* 8042B36C 004282AC 3B 03 00 04 */ addi r24, r3, 4
/* 8042B370 004282B0 7F 03 C3 78 */ mr r3, r24
/* 8042B374 004282B4 4B FF FF 05 */ bl "getFirstChild__18JSUTree<8CoreNode>CFv"
/* 8042B378 004282B8 7C 64 1B 78 */ mr r4, r3
/* 8042B37C 004282BC 38 61 00 08 */ addi r3, r1, 8
/* 8042B380 004282C0 4B FF FE F1 */ bl "__ct__26JSUTreeIterator<8CoreNode>FP18JSUTree<8CoreNode>"
/* 8042B384 004282C4 48 00 00 24 */ b .L_8042B3A8
.L_8042B388:
/* 8042B388 004282C8 38 61 00 08 */ addi r3, r1, 8
/* 8042B38C 004282CC 4B FF FE D9 */ bl "getObject__26JSUTreeIterator<8CoreNode>CFv"
/* 8042B390 004282D0 7F E4 FB 78 */ mr r4, r31
/* 8042B394 004282D4 4B FF FE F9 */ bl search__8HeapInfoFP8HeapInfo
/* 8042B398 004282D8 7C 7C 1B 79 */ or. r28, r3, r3
/* 8042B39C 004282DC 40 82 00 28 */ bne .L_8042B3C4
/* 8042B3A0 004282E0 38 61 00 08 */ addi r3, r1, 8
/* 8042B3A4 004282E4 4B FF FE A5 */ bl "__pp__26JSUTreeIterator<8CoreNode>Fv"
.L_8042B3A8:
/* 8042B3A8 004282E8 7F 03 C3 78 */ mr r3, r24
/* 8042B3AC 004282EC 4B FF FE 95 */ bl "getEndChild__18JSUTree<8CoreNode>CFv"
/* 8042B3B0 004282F0 7C 64 1B 78 */ mr r4, r3
/* 8042B3B4 004282F4 38 61 00 08 */ addi r3, r1, 8
/* 8042B3B8 004282F8 4B FF FE 71 */ bl "__ne__26JSUTreeIterator<8CoreNode>CFPC18JSUTree<8CoreNode>"
/* 8042B3BC 004282FC 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8042B3C0 00428300 40 82 FF C8 */ bne .L_8042B388
.L_8042B3C4:
/* 8042B3C4 00428304 28 1C 00 00 */ cmplwi r28, 0
/* 8042B3C8 00428308 40 82 00 20 */ bne .L_8042B3E8
/* 8042B3CC 0042830C 7F 43 D3 78 */ mr r3, r26
/* 8042B3D0 00428310 4B FF FE 45 */ bl "getNextChild__18JSUTree<8CoreNode>CFv"
/* 8042B3D4 00428314 7C 7A 1B 78 */ mr r26, r3
.L_8042B3D8:
/* 8042B3D8 00428318 7F 23 CB 78 */ mr r3, r25
/* 8042B3DC 0042831C 4B FF FE 65 */ bl "getEndChild__18JSUTree<8CoreNode>CFv"
/* 8042B3E0 00428320 7C 1A 18 40 */ cmplw r26, r3
/* 8042B3E4 00428324 40 82 FF 70 */ bne .L_8042B354
.L_8042B3E8:
/* 8042B3E8 00428328 28 1C 00 00 */ cmplwi r28, 0
/* 8042B3EC 0042832C 40 82 00 1C */ bne .L_8042B408
/* 8042B3F0 00428330 83 7B 00 18 */ lwz r27, 0x18(r27)
/* 8042B3F4 00428334 28 1B 00 00 */ cmplwi r27, 0
/* 8042B3F8 00428338 41 82 00 08 */ beq .L_8042B400
/* 8042B3FC 0042833C 3B 7B FF F4 */ addi r27, r27, -12
.L_8042B400:
/* 8042B400 00428340 28 1B 00 00 */ cmplwi r27, 0
/* 8042B404 00428344 40 82 FF 24 */ bne .L_8042B328
.L_8042B408:
/* 8042B408 00428348 28 1C 00 00 */ cmplwi r28, 0
/* 8042B40C 0042834C 40 82 00 1C */ bne .L_8042B428
/* 8042B410 00428350 83 BD 00 18 */ lwz r29, 0x18(r29)
/* 8042B414 00428354 28 1D 00 00 */ cmplwi r29, 0
/* 8042B418 00428358 41 82 00 08 */ beq .L_8042B420
/* 8042B41C 0042835C 3B BD FF F4 */ addi r29, r29, -12
.L_8042B420:
/* 8042B420 00428360 28 1D 00 00 */ cmplwi r29, 0
/* 8042B424 00428364 40 82 FE D0 */ bne .L_8042B2F4
.L_8042B428:
/* 8042B428 00428368 28 1C 00 00 */ cmplwi r28, 0
/* 8042B42C 0042836C 7F 80 E3 78 */ mr r0, r28
/* 8042B430 00428370 40 82 00 1C */ bne .L_8042B44C
/* 8042B434 00428374 83 DE 00 18 */ lwz r30, 0x18(r30)
/* 8042B438 00428378 28 1E 00 00 */ cmplwi r30, 0
/* 8042B43C 0042837C 41 82 00 08 */ beq .L_8042B444
/* 8042B440 00428380 3B DE FF F4 */ addi r30, r30, -12
.L_8042B444:
/* 8042B444 00428384 28 1E 00 00 */ cmplwi r30, 0
/* 8042B448 00428388 40 82 FE 80 */ bne .L_8042B2C8
.L_8042B44C:
/* 8042B44C 0042838C BB 01 00 10 */ lmw r24, 0x10(r1)
/* 8042B450 00428390 7C 03 03 78 */ mr r3, r0
/* 8042B454 00428394 80 01 00 34 */ lwz r0, 0x34(r1)
/* 8042B458 00428398 7C 08 03 A6 */ mtlr r0
/* 8042B45C 0042839C 38 21 00 30 */ addi r1, r1, 0x30
/* 8042B460 004283A0 4E 80 00 20 */ blr
.endfn search__8HeapInfoFP8HeapInfo
.fn "@36@__dt__8HeapInfoFv", weak
/* 8042B464 004283A4 38 63 FF DC */ addi r3, r3, -36
/* 8042B468 004283A8 4B FF FC 0C */ b __dt__8HeapInfoFv
.endfn "@36@__dt__8HeapInfoFv"

View File

@ -1576,7 +1576,7 @@ LIBS = [
["sysGCU/dvdStatus", True],
["sysGCU/sysTimers", True],
["sysGCU/modelMgr", True],
["sysGCU/heapStatus", False],
["sysGCU/heapStatus", True],
["sysGCU/light", True],
["sysGCU/wipe", True],
["sysGCU/moviePlayer", False],

View File

@ -189,16 +189,15 @@
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/aramMgr.cpp">aramMgr.cpp</a> | 4254 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/section.cpp">section.cpp</a> | 8000 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/JSTObjectCamera.cpp">JSTObjectCamera.cpp</a> | 8577 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/JSTObjectGameActor.cpp">JSTObjectGameActor.cpp</a> | 9261 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/loadResource.cpp">loadResource.cpp</a> | 9618 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/JSTObjectParticleActor.cpp">JSTObjectParticleActor.cpp</a> | 10461 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/heapStatus.cpp">heapStatus.cpp</a> | 12534 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/sysMaterialAnim.cpp">sysMaterialAnim.cpp</a> | 13325 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/sysShape.cpp">sysShape.cpp</a> | 15107 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/sysShapeModel.cpp">sysShapeModel.cpp</a> | 16166 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/JSTObjectSystem.cpp">JSTObjectSystem.cpp</a> | 18053 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/titleSection.cpp">titleSection.cpp</a> | 19575 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/JSTObjectActor.cpp">JSTObjectActor.cpp</a> | 19718 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/resourceMgr.cpp">resourceMgr.cpp</a> | 21567 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/matMath.cpp">matMath.cpp</a> | 26236 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/moviePlayer.cpp">moviePlayer.cpp</a> | 26267 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/memoryCard.cpp">memoryCard.cpp</a> | 32567 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/windowMessage.cpp">windowMessage.cpp</a> | 37900 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/bootSection.cpp">bootSection.cpp</a> | 38359 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/system.cpp">system.cpp</a> | 38660 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/movieMessage.cpp">movieMessage.cpp</a> | 48171 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/screenMgr.cpp">screenMgr.cpp</a> | 50710 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/pikmin2MemoryCardMgr.cpp">pikmin2MemoryCardMgr.cpp</a> | 50817 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/graphics.cpp">graphics.cpp</a> | 76095 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/messageRendering.cpp">messageRendering.cpp</a> | 98881 | | |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/sysMaterialAnim.cpp">sysMaterialAnim.cpp</a> | 13325 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/sysShape.cpp">sysShape.cpp</a> | 15107 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/sysShapeModel.cpp">sysShapeModel.cpp</a> | 16166 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/JSTObjectSystem.cpp">JSTObjectSystem.cpp</a> | 18053 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/titleSection.cpp">titleSection.cpp</a> | 19575 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/JSTObjectActor.cpp">JSTObjectActor.cpp</a> | 19718 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/resourceMgr.cpp">resourceMgr.cpp</a> | 21567 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/matMath.cpp">matMath.cpp</a> | 26236 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/moviePlayer.cpp">moviePlayer.cpp</a> | 26267 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/memoryCard.cpp">memoryCard.cpp</a> | 32567 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/windowMessage.cpp">windowMessage.cpp</a> | 37900 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/bootSection.cpp">bootSection.cpp</a> | 38359 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/system.cpp">system.cpp</a> | 38660 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/movieMessage.cpp">movieMessage.cpp</a> | 48171 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/screenMgr.cpp">screenMgr.cpp</a> | 50710 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/pikmin2MemoryCardMgr.cpp">pikmin2MemoryCardMgr.cpp</a> | 50817 |
| <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/graphics.cpp">graphics.cpp</a> | 76095 | <a href="https://github.com/projectPiki/pikmin2/tree/main/src/sysGCU/messageRendering.cpp">messageRendering.cpp</a> | 98881 |
### <section id="utilityU">utilityU</section>
| File | Size (bytes) | File | Size (bytes) |

View File

@ -19,11 +19,10 @@ void kando_panic_f(bool, const char*, s32, const char*, ...);
extern void preUserCallback(u16, OSContext*, u32, u32);
struct HeapInfo : public Node, public JKRDisposer {
inline HeapInfo(char* name) { mName = name; }
virtual ~HeapInfo(); // _20 (weak)
void search(HeapInfo*);
HeapInfo* search(HeapInfo*);
void dump(int, bool);
void getTotalUsedSize();
@ -33,14 +32,16 @@ struct HeapInfo : public Node, public JKRDisposer {
void isValidUsedSize();
void getUsedSize(bool);
inline JSUTree<CoreNode>* getTree() { return &mTree; }
// _00-_24 = Node
// _20 = VTBL (Node)
// _24-_3C = JKRDisposer
u32 _3C; // _3C
int _40; // _40
u32 _44; // _44
HeapStatus* _48; // _48
HeapStatus* _4C; // _4C
u32 _3C; // _3C
int _40; // _40
u32 _44; // _44
HeapInfo* _48; // _48
HeapInfo* _4C; // _4C
};
struct HeapStatus {

View File

@ -2,19 +2,22 @@
#define _NODE_H
#include "types.h"
#include "JSystem/JSupport/JSUList.h"
struct Graphics;
struct Node {
char* mName; // _00
Node* mParent; // _04
u32 _08; // _08
Node* mNext; // _0C
Node* mPrev; // _10
u32 _14; // _14
Node* mChild; // _18
u32 _1C; // _1C
struct CoreNode {
CoreNode()
: mTree(this)
{
mName = "root";
}
char* mName; // _00
JSUTree<CoreNode> mTree; // _04
};
struct Node : public CoreNode {
Node() { init(); }
virtual void update(); // _08
@ -22,6 +25,8 @@ struct Node {
virtual void displayInfo(int); // _10
void init();
// _00-_20 = CoreNode
};
#endif

View File

@ -21,18 +21,11 @@ void Node::displayInfo(int whitespaceAmt)
OSReport("[%s]\n", mName);
Node* next = mParent;
if (next) {
next = (Node*)(((u8*)next) - 12);
}
while (next) {
next->mNext->displayInfo(whitespaceAmt + 1);
next = next->mChild;
if (next) {
next = (Node*)(((u8*)next) - 12);
}
JSUTreeIterator<CoreNode> iterator;
for (iterator = mTree.getFirstChild(); iterator != mTree.getEndChild();) {
Node* child = static_cast<Node*>(iterator.getObject());
child->displayInfo(whitespaceAmt + 1);
iterator++;
}
}
@ -42,18 +35,11 @@ void Node::displayInfo(int whitespaceAmt)
*/
void Node::update()
{
Node* next = mParent;
if (next) {
next = (Node*)(((u8*)next) - 12);
}
while (next) {
next->mNext->update();
next = next->mChild;
if (next) {
next = (Node*)(((u8*)next) - 12);
}
JSUTreeIterator<CoreNode> iterator;
for (iterator = mTree.getFirstChild(); iterator != mTree.getEndChild();) {
Node* child = static_cast<Node*>(iterator.getObject());
child->update();
iterator++;
}
}
@ -63,18 +49,11 @@ void Node::update()
*/
void Node::draw(Graphics& gfx)
{
Node* next = mParent;
if (next) {
next = (Node*)(((u8*)next) - 12);
}
while (next) {
next->mNext->draw(gfx);
next = next->mChild;
if (next) {
next = (Node*)(((u8*)next) - 12);
}
JSUTreeIterator<CoreNode> iterator;
for (iterator = mTree.getFirstChild(); iterator != mTree.getEndChild();) {
Node* child = static_cast<Node*>(iterator.getObject());
child->draw(gfx);
iterator++;
}
}

View File

@ -13,7 +13,7 @@ GC_FILES:=\
$(BUILD_DIR)/src/sysGCU/dvdStatus.o\
$(BUILD_DIR)/src/sysGCU/sysTimers.o\
$(BUILD_DIR)/src/sysGCU/modelMgr.o\
$(BUILD_DIR)/asm/sysGCU/heapStatus.o\
$(BUILD_DIR)/src/sysGCU/heapStatus.o\
$(BUILD_DIR)/src/sysGCU/light.o\
$(BUILD_DIR)/src/sysGCU/wipe.o\
$(BUILD_DIR)/asm/sysGCU/moviePlayer.o\

View File

@ -1,147 +1,19 @@
#include "System.h"
/*
Generated from dpostproc
.section .rodata # 0x804732E0 - 0x8049E220
.global lbl_80499EE8
lbl_80499EE8:
.4byte 0x68656170
.4byte 0x53746174
.4byte 0x75732E63
.4byte 0x70700000
.section .data, "wa" # 0x8049E220 - 0x804EFC20
.global __vt__8HeapInfo
__vt__8HeapInfo:
.4byte 0
.4byte 0
.4byte update__4NodeFv
.4byte draw__4NodeFR8Graphics
.4byte displayInfo__4NodeFi
.4byte 0
.4byte 0
.4byte "@36@__dt__8HeapInfoFv"
.4byte __dt__8HeapInfoFv
.4byte 0
.section .sdata2, "a" # 0x80516360 - 0x80520E40
.global lbl_80520598
lbl_80520598:
.4byte 0x726F6F74
.4byte 0x00000000
.global lbl_805205A0
lbl_805205A0:
.4byte 0x45584954
.4byte 0x0A000000
*/
/**
* @note Address: 0x8042AFC4
* @note Size: 0xB0
*/
HeapStatus::HeapStatus()
: mHeapInfo("root")
{
mHeapInfo._3C = 0;
mHeapInfo._40 = -1;
mHeapInfo._44 = 0;
mHeapInfo._48 = this;
mHeapInfo._48 = &mHeapInfo;
_50 = 0;
mHeapInfo._4C = this;
/*
stwu r1, -0x20(r1)
mflr r0
stw r0, 0x24(r1)
stw r31, 0x1c(r1)
stw r30, 0x18(r1)
stw r29, 0x14(r1)
mr r29, r3
addi r31, r29, 4
mr r30, r29
mr r3, r31
bl initiate__10JSUPtrListFv
mr r4, r29
addi r3, r31, 0xc
bl __ct__10JSUPtrLinkFPv
addi r0, r2, lbl_80520598@sda21
lis r3, __vt__4Node@ha
stw r0, 0(r29)
addi r0, r3, __vt__4Node@l
mr r3, r30
stw r0, 0x20(r30)
bl init__4NodeFv
addi r3, r29, 0x24
bl __ct__11JKRDisposerFv
lis r3, __vt__8HeapInfo@ha
li r4, 0
addi r3, r3, __vt__8HeapInfo@l
li r0, -1
stw r3, 0x20(r29)
addi r5, r3, 0x14
mr r3, r29
stw r5, 0x24(r29)
stw r4, 0x3c(r29)
stw r0, 0x40(r29)
stw r4, 0x44(r29)
stw r29, 0x48(r29)
stb r4, 0x50(r29)
stw r29, 0x4c(r29)
lwz r31, 0x1c(r1)
lwz r30, 0x18(r1)
lwz r29, 0x14(r1)
lwz r0, 0x24(r1)
mtlr r0
addi r1, r1, 0x20
blr
*/
mHeapInfo._4C = &mHeapInfo;
}
/**
* @note Address: N/A
* @note Size: 0x8C
*/
// Node::~Node()
// {
// // UNUSED FUNCTION
// }
/**
* @note Address: N/A
* @note Size: 0x7C
*/
// CoreNode::~CoreNode()
// {
// // UNUSED FUNCTION
// }
/**
* @note Address: N/A
* @note Size: 0x74
*/
// void JSUTree<CoreNode>::~JSUTree()
// {
// // UNUSED FUNCTION
// }
/**
* @note Address: N/A
* @note Size: 0x54
*/
// void JSULink<CoreNode>::~JSULink()
// {
// // UNUSED FUNCTION
// }
/**
* @note Address: N/A
* @note Size: 0x54
*/
// void JSUList<CoreNode>::~JSUList()
// {
// // UNUSED FUNCTION
// }
/**
* @note Address: N/A
* @note Size: 0x114
@ -211,124 +83,37 @@ void HeapStatus::dumpNode()
*/
HeapInfo::~HeapInfo()
{
/*
stwu r1, -0x20(r1)
mflr r0
stw r0, 0x24(r1)
stw r31, 0x1c(r1)
mr r31, r4
stw r30, 0x18(r1)
or. r30, r3, r3
stw r29, 0x14(r1)
stw r28, 0x10(r1)
beq lbl_8042B1F0
lis r4, __vt__8HeapInfo@ha
addi r4, r4, __vt__8HeapInfo@l
stw r4, 0x20(r30)
addi r0, r4, 0x14
stw r0, 0x24(r30)
lwz r29, 0x48(r30)
lwz r4, 0x4c(r29)
cmplw r4, r30
bne lbl_8042B110
lwz r3, 0x14(r4)
cmplwi r3, 0
beq lbl_8042B178
lwz r0, 0xc(r3)
mr r3, r29
stw r0, 0x4c(r29)
lwz r28, 0x4c(r29)
mr r4, r28
bl search__8HeapInfoFP8HeapInfo
stw r3, 0x4c(r29)
lwz r0, 0x4c(r29)
cmplw r28, r0
beq lbl_8042B178
lis r3, lbl_80499EE8@ha
li r4, 0x115
addi r3, r3, lbl_80499EE8@l
addi r5, r2, lbl_805205A0@sda21
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
b lbl_8042B178
// this is probably two calls to an inline based on the assert
// but i cannot be arsed working out which inline and this matches so WHATEVER
HeapInfo* info1 = _48->_4C;
HeapInfo* info0 = _48;
if (info1 == this) {
if (info1->mTree.getParent()) {
info0->_4C = static_cast<HeapInfo*>(info1->mTree.getParent()->getObject());
HeapInfo* info2 = info0->_4C;
info0->_4C = info0->search(info2);
if (info2 != info0->_4C) {
JUT_PANICLINE(277, "EXIT\n");
}
}
lbl_8042B110:
bl search__8HeapInfoFP8HeapInfo
cmplwi r3, 0
beq lbl_8042B178
lwz r3, 0x48(r30)
stw r30, 0x4c(r3)
lwz r29, 0x48(r30)
lwz r3, 0x4c(r29)
lwz r3, 0x14(r3)
cmplwi r3, 0
beq lbl_8042B178
lwz r0, 0xc(r3)
mr r3, r29
stw r0, 0x4c(r29)
lwz r28, 0x4c(r29)
mr r4, r28
bl search__8HeapInfoFP8HeapInfo
stw r3, 0x4c(r29)
lwz r0, 0x4c(r29)
cmplw r28, r0
beq lbl_8042B178
lis r3, lbl_80499EE8@ha
li r4, 0x115
addi r3, r3, lbl_80499EE8@l
addi r5, r2, lbl_805205A0@sda21
crclr 6
bl panic_f__12JUTExceptionFPCciPCce
} else {
if (search(info1)) {
_48->_4C = this;
HeapInfo* info3 = _48->_4C;
HeapInfo* info2 = _48; // _r29
if (info3->mTree.getParent()) {
info2->_4C = static_cast<HeapInfo*>(info3->mTree.getParent()->getObject());
HeapInfo* info4 = info2->_4C;
info2->_4C = info2->search(info4);
if (info4 != info2->_4C) {
JUT_PANICLINE(277, "EXIT\n");
}
}
}
}
lbl_8042B178:
addic. r4, r30, 4
beq lbl_8042B184
addi r4, r4, 0xc
lbl_8042B184:
addi r3, r30, 4
bl remove__10JSUPtrListFP10JSUPtrLink
addi r3, r30, 0x24
li r4, 0
bl __dt__11JKRDisposerFv
cmplwi r30, 0
beq lbl_8042B1E0
lis r3, __vt__4Node@ha
addi r0, r3, __vt__4Node@l
stw r0, 0x20(r30)
beq lbl_8042B1E0
addic. r0, r30, 4
beq lbl_8042B1E0
addic. r0, r30, 0x10
beq lbl_8042B1CC
addi r3, r30, 0x10
li r4, 0
bl __dt__10JSUPtrLinkFv
lbl_8042B1CC:
addic. r0, r30, 4
beq lbl_8042B1E0
addi r3, r30, 4
li r4, 0
bl __dt__10JSUPtrListFv
lbl_8042B1E0:
extsh. r0, r31
ble lbl_8042B1F0
mr r3, r30
bl __dl__FPv
lbl_8042B1F0:
lwz r0, 0x24(r1)
mr r3, r30
lwz r31, 0x1c(r1)
lwz r30, 0x18(r1)
lwz r29, 0x14(r1)
lwz r28, 0x10(r1)
mtlr r0
addi r1, r1, 0x20
blr
*/
mTree.removeChild(&mTree);
}
/**
@ -344,291 +129,37 @@ void HeapInfo::getTotalUsedSize()
* @note Address: N/A
* @note Size: 0x32C
*/
void HeapInfo::dump(int, bool)
void HeapInfo::dump(int i, bool check)
{
// UNUSED FUNCTION
JSUTreeIterator<CoreNode> iterator;
for (iterator = mTree.getFirstChild(); iterator != mTree.getEndChild();) {
HeapInfo* child = static_cast<HeapInfo*>(iterator.getObject());
child->dump(i, check);
++iterator;
}
}
/**
* @note Address: 0x8042B214
* @note Size: 0x14
*/
// void JSUTree<CoreNode>::getNextChild() const
// {
// /*
// lwz r3, 0x18(r3)
// cmplwi r3, 0
// beqlr
// addi r3, r3, -12
// blr
// */
// }
/**
* @note Address: 0x8042B228
* @note Size: 0x18
*/
// void JSUTreeIterator<CoreNode>::operator!=(const JSUTree<CoreNode>*) const
// {
// /*
// lwz r0, 0(r3)
// subf r3, r0, r4
// subf r0, r4, r0
// or r0, r3, r0
// srwi r3, r0, 0x1f
// blr
// */
// }
/**
* @note Address: 0x8042B240
* @note Size: 0x8
*/
// u32 JSUTree<CoreNode>::getEndChild() const { return 0x0; }
/**
* @note Address: 0x8042B248
* @note Size: 0x1C
*/
// void JSUTreeIterator<CoreNode>::operator++()
// {
// /*
// lwz r4, 0(r3)
// lwz r4, 0x18(r4)
// cmplwi r4, 0
// beq lbl_8042B25C
// addi r4, r4, -12
// lbl_8042B25C:
// stw r4, 0(r3)
// blr
// */
// }
/**
* @note Address: 0x8042B264
* @note Size: 0xC
*/
// void JSUTreeIterator<CoreNode>::getObject() const
// {
// /*
// lwz r3, 0(r3)
// lwz r3, 0xc(r3)
// blr
// */
// }
/**
* @note Address: 0x8042B270
* @note Size: 0x8
*/
// void JSUTreeIterator<CoreNode>::JSUTreeIterator(JSUTree<CoreNode>* a1)
// {
// // Generated from stw r4, 0x0(r3)
// _00 = a1;
// }
/**
* @note Address: N/A
* @note Size: 0x8
*/
// void JSUTree<CoreNode>::getObject() const
// {
// // UNUSED FUNCTION
// }
/**
* @note Address: 0x8042B278
* @note Size: 0x14
*/
// void JSUTree<CoreNode>::getFirstChild() const
// {
// /*
// lwz r3, 0(r3)
// cmplwi r3, 0
// beqlr
// addi r3, r3, -12
// blr
// */
// }
/**
* @note Address: N/A
* @note Size: 0x270
*/
// void HeapInfo::dumpNode(int)
// {
// // UNUSED FUNCTION
// }
/**
* @note Address: 0x8042B28C
* @note Size: 0x1D8
*/
void HeapInfo::search(HeapInfo* info)
HeapInfo* HeapInfo::search(HeapInfo* info)
{
/*
stwu r1, -0x30(r1)
mflr r0
stw r0, 0x34(r1)
li r0, 0
stmw r24, 0x10(r1)
mr r31, r4
cmplw r31, r3
bne lbl_8042B2B4
mr r0, r3
b lbl_8042B44C
HeapInfo* outInfo = nullptr;
if (info == this) {
outInfo = this;
} else {
JSUTreeIterator<CoreNode> iterator((&mTree)->getFirstChild());
for (iterator; iterator != (&mTree)->getEndChild();) {
outInfo = static_cast<HeapInfo*>(iterator.getObject())->search(info);
if (outInfo) {
break;
}
++iterator;
}
}
lbl_8042B2B4:
lwz r30, 4(r3)
cmplwi r30, 0
beq lbl_8042B444
addi r30, r30, -12
b lbl_8042B444
lbl_8042B2C8:
lwz r3, 0xc(r30)
li r28, 0
cmplw r31, r3
bne lbl_8042B2E0
mr r28, r3
b lbl_8042B428
lbl_8042B2E0:
lwz r29, 4(r3)
cmplwi r29, 0
beq lbl_8042B420
addi r29, r29, -12
b lbl_8042B420
lbl_8042B2F4:
lwz r3, 0xc(r29)
li r28, 0
cmplw r31, r3
bne lbl_8042B30C
mr r28, r3
b lbl_8042B408
lbl_8042B30C:
addi r3, r3, 4
bl getFirstLink__10JSUPtrListCFv
cmplwi r3, 0
beq lbl_8042B320
addi r3, r3, -12
lbl_8042B320:
mr r27, r3
b lbl_8042B400
lbl_8042B328:
lwz r3, 0xc(r27)
li r28, 0
cmplw r31, r3
bne lbl_8042B340
mr r28, r3
b lbl_8042B3E8
lbl_8042B340:
addi r25, r3, 4
mr r3, r25
bl "getFirstChild__18JSUTree<8CoreNode>CFv"
mr r26, r3
b lbl_8042B3D8
lbl_8042B354:
lwz r3, 0xc(r26)
li r28, 0
cmplw r31, r3
bne lbl_8042B36C
mr r28, r3
b lbl_8042B3C4
lbl_8042B36C:
addi r24, r3, 4
mr r3, r24
bl "getFirstChild__18JSUTree<8CoreNode>CFv"
mr r4, r3
addi r3, r1, 8
bl "__ct__26JSUTreeIterator<8CoreNode>FP18JSUTree<8CoreNode>"
b lbl_8042B3A8
lbl_8042B388:
addi r3, r1, 8
bl "getObject__26JSUTreeIterator<8CoreNode>CFv"
mr r4, r31
bl search__8HeapInfoFP8HeapInfo
or. r28, r3, r3
bne lbl_8042B3C4
addi r3, r1, 8
bl "__pp__26JSUTreeIterator<8CoreNode>Fv"
lbl_8042B3A8:
mr r3, r24
bl "getEndChild__18JSUTree<8CoreNode>CFv"
mr r4, r3
addi r3, r1, 8
bl "__ne__26JSUTreeIterator<8CoreNode>CFPC18JSUTree<8CoreNode>"
clrlwi. r0, r3, 0x18
bne lbl_8042B388
lbl_8042B3C4:
cmplwi r28, 0
bne lbl_8042B3E8
mr r3, r26
bl "getNextChild__18JSUTree<8CoreNode>CFv"
mr r26, r3
lbl_8042B3D8:
mr r3, r25
bl "getEndChild__18JSUTree<8CoreNode>CFv"
cmplw r26, r3
bne lbl_8042B354
lbl_8042B3E8:
cmplwi r28, 0
bne lbl_8042B408
lwz r27, 0x18(r27)
cmplwi r27, 0
beq lbl_8042B400
addi r27, r27, -12
lbl_8042B400:
cmplwi r27, 0
bne lbl_8042B328
lbl_8042B408:
cmplwi r28, 0
bne lbl_8042B428
lwz r29, 0x18(r29)
cmplwi r29, 0
beq lbl_8042B420
addi r29, r29, -12
lbl_8042B420:
cmplwi r29, 0
bne lbl_8042B2F4
lbl_8042B428:
cmplwi r28, 0
mr r0, r28
bne lbl_8042B44C
lwz r30, 0x18(r30)
cmplwi r30, 0
beq lbl_8042B444
addi r30, r30, -12
lbl_8042B444:
cmplwi r30, 0
bne lbl_8042B2C8
lbl_8042B44C:
lmw r24, 0x10(r1)
mr r3, r0
lwz r0, 0x34(r1)
mtlr r0
addi r1, r1, 0x30
blr
*/
return outInfo;
}
/**

View File

@ -947,3 +947,5 @@ You have 4217 out of 10000 Pokos and 108 out of 201 treasures.",2024-04-17 00:04
You have 4243 out of 10000 Pokos and 109 out of 201 treasures.",2024-04-21 00:51:08.591717
4257,1980652,0.42573132901379773,109,388350,0.5447804325137194,"
You have 4257 out of 10000 Pokos and 109 out of 201 treasures.",2024-04-25 00:54:06.737010
4259,1981844,0.42598754350487666,109,388412,0.5448674066010527,"
You have 4259 out of 10000 Pokos and 109 out of 201 treasures.",2024-04-30 13:59:38.564785

1 code_count_in_pokos code_completion_in_bytes code_completion_in_percentage data_count_in_treasures data_completion_in_bytes data_completion_in_percentage sentence created_at
947
948
949
950
951