Files
tp/include/JSystem/JKernel/JKRExpHeap/asm/func_802CFF1C.s
T
Jonathan Wase fb1217e3f9 Types and functions for JKRThread, JKRFile, JKRDvdFile, JKRFileCache... (#17)
* Added JSUListIterator and decompiled JKRHeap::dispose_subroutine

* JKRDisposer!

* only 4 functions not OK in JKRHeap

* JKRThread asm functions

* more JKRThread

* JKRThreadSwitch

* JKRThread::JKRThread

* More JKRTHread functions and vtable

* fixed bad merge

* update JKRThread and JKRThreadSwitch to use new virtual inheritance

* save before asmsplit.py script

* JKRFile

* JKRDvdFile

* JKRFileCache

* JKRFileFinder

* JKRFileLoader

* JKRAssertHeap

* JKRExpHeap

* JKRSolidHeap

* fixed type and functions definitions

* JKRArchive (Pub)

* missed file

* JKRArchive

* forgot obj_files.mk

* fixed merge error and class members

* class members

* removed unused asm files

* added names to global variables

* class members for JKRHeap, JKRExpHeap, JKRSolidHeap, and JKRFileCache.
2020-12-05 12:45:10 -05:00

113 lines
6.0 KiB
ArmAsm

/* recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock __ct__10JKRExpHeapFPvUlP7JKRHeapb::recycleFreeBlock(__ct__10JKRExpHeapFPvUlP7JKRHeapb::CMemBlock *) */
/* JKRExpHeap_NS_recycleFreeBlock */
/* 802CFF1C 002CCE5C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CFF20 002CCE60 7C 08 02 A6 */ mflr r0
/* 802CFF24 002CCE64 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CFF28 002CCE68 39 61 00 20 */ addi r11, r1, 0x20
/* 802CFF2C 002CCE6C 48 09 22 B1 */ bl _savegpr_29
/* 802CFF30 002CCE70 7C 7D 1B 78 */ mr r29, r3
/* 802CFF34 002CCE74 7C 9F 23 78 */ mr r31, r4
/* 802CFF38 002CCE78 80 C4 00 04 */ lwz r6, 4(r4)
/* 802CFF3C 002CCE7C 7C A4 32 14 */ add r5, r4, r6
/* 802CFF40 002CCE80 38 60 00 00 */ li r3, 0
/* 802CFF44 002CCE84 B0 64 00 00 */ sth r3, 0(r4)
/* 802CFF48 002CCE88 88 04 00 02 */ lbz r0, 2(r4)
/* 802CFF4C 002CCE8C 54 00 06 7F */ clrlwi. r0, r0, 0x19
/* 802CFF50 002CCE90 41 82 00 1C */ beq lbl_802CFF6C
/* 802CFF54 002CCE94 7F E0 20 50 */ subf r31, r0, r4
/* 802CFF58 002CCE98 7C C6 02 14 */ add r6, r6, r0
/* 802CFF5C 002CCE9C 7C BF 32 14 */ add r5, r31, r6
/* 802CFF60 002CCEA0 98 7F 00 03 */ stb r3, 3(r31)
/* 802CFF64 002CCEA4 98 7F 00 02 */ stb r3, 2(r31)
/* 802CFF68 002CCEA8 90 DF 00 04 */ stw r6, 4(r31)
lbl_802CFF6C:
/* 802CFF6C 002CCEAC 80 7D 00 78 */ lwz r3, 0x78(r29)
/* 802CFF70 002CCEB0 28 03 00 00 */ cmplwi r3, 0
/* 802CFF74 002CCEB4 40 82 00 3C */ bne lbl_802CFFB0
/* 802CFF78 002CCEB8 7F E3 FB 78 */ mr r3, r31
/* 802CFF7C 002CCEBC 38 80 00 00 */ li r4, 0
/* 802CFF80 002CCEC0 38 A0 00 00 */ li r5, 0
/* 802CFF84 002CCEC4 38 E0 00 00 */ li r7, 0
/* 802CFF88 002CCEC8 39 00 00 00 */ li r8, 0
/* 802CFF8C 002CCECC 48 00 08 85 */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802CFF90 002CCED0 93 FD 00 78 */ stw r31, 0x78(r29)
/* 802CFF94 002CCED4 93 FD 00 7C */ stw r31, 0x7c(r29)
/* 802CFF98 002CCED8 7F A3 EB 78 */ mr r3, r29
/* 802CFF9C 002CCEDC 7F E4 FB 78 */ mr r4, r31
/* 802CFFA0 002CCEE0 38 A0 00 00 */ li r5, 0
/* 802CFFA4 002CCEE4 38 C0 00 00 */ li r6, 0
/* 802CFFA8 002CCEE8 4B FF FE C1 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
/* 802CFFAC 002CCEEC 48 00 00 F0 */ b lbl_802D009C
lbl_802CFFB0:
/* 802CFFB0 002CCEF0 7C 03 28 40 */ cmplw r3, r5
/* 802CFFB4 002CCEF4 41 80 00 40 */ blt lbl_802CFFF4
/* 802CFFB8 002CCEF8 7F E3 FB 78 */ mr r3, r31
/* 802CFFBC 002CCEFC 38 80 00 00 */ li r4, 0
/* 802CFFC0 002CCF00 38 A0 00 00 */ li r5, 0
/* 802CFFC4 002CCF04 38 E0 00 00 */ li r7, 0
/* 802CFFC8 002CCF08 39 00 00 00 */ li r8, 0
/* 802CFFCC 002CCF0C 48 00 08 45 */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802CFFD0 002CCF10 7F A3 EB 78 */ mr r3, r29
/* 802CFFD4 002CCF14 7F E4 FB 78 */ mr r4, r31
/* 802CFFD8 002CCF18 38 A0 00 00 */ li r5, 0
/* 802CFFDC 002CCF1C 80 DD 00 78 */ lwz r6, 0x78(r29)
/* 802CFFE0 002CCF20 4B FF FE 89 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
/* 802CFFE4 002CCF24 7F A3 EB 78 */ mr r3, r29
/* 802CFFE8 002CCF28 7F E4 FB 78 */ mr r4, r31
/* 802CFFEC 002CCF2C 48 00 00 C9 */ bl joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CFFF0 002CCF30 48 00 00 AC */ b lbl_802D009C
lbl_802CFFF4:
/* 802CFFF4 002CCF34 80 1D 00 7C */ lwz r0, 0x7c(r29)
/* 802CFFF8 002CCF38 7C 00 F8 40 */ cmplw r0, r31
/* 802CFFFC 002CCF3C 41 81 00 40 */ bgt lbl_802D003C
/* 802D0000 002CCF40 7F E3 FB 78 */ mr r3, r31
/* 802D0004 002CCF44 38 80 00 00 */ li r4, 0
/* 802D0008 002CCF48 38 A0 00 00 */ li r5, 0
/* 802D000C 002CCF4C 38 E0 00 00 */ li r7, 0
/* 802D0010 002CCF50 39 00 00 00 */ li r8, 0
/* 802D0014 002CCF54 48 00 07 FD */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802D0018 002CCF58 7F A3 EB 78 */ mr r3, r29
/* 802D001C 002CCF5C 7F E4 FB 78 */ mr r4, r31
/* 802D0020 002CCF60 80 BD 00 7C */ lwz r5, 0x7c(r29)
/* 802D0024 002CCF64 38 C0 00 00 */ li r6, 0
/* 802D0028 002CCF68 4B FF FE 41 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
/* 802D002C 002CCF6C 7F A3 EB 78 */ mr r3, r29
/* 802D0030 002CCF70 80 9F 00 08 */ lwz r4, 8(r31)
/* 802D0034 002CCF74 48 00 00 81 */ bl joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802D0038 002CCF78 48 00 00 64 */ b lbl_802D009C
lbl_802D003C:
/* 802D003C 002CCF7C 7C 7E 1B 78 */ mr r30, r3
/* 802D0040 002CCF80 48 00 00 54 */ b lbl_802D0094
lbl_802D0044:
/* 802D0044 002CCF84 7C 1E F8 40 */ cmplw r30, r31
/* 802D0048 002CCF88 40 80 00 48 */ bge lbl_802D0090
/* 802D004C 002CCF8C 80 1E 00 0C */ lwz r0, 0xc(r30)
/* 802D0050 002CCF90 7C 1F 00 40 */ cmplw r31, r0
/* 802D0054 002CCF94 40 80 00 3C */ bge lbl_802D0090
/* 802D0058 002CCF98 90 1F 00 0C */ stw r0, 0xc(r31)
/* 802D005C 002CCF9C 93 DF 00 08 */ stw r30, 8(r31)
/* 802D0060 002CCFA0 93 FE 00 0C */ stw r31, 0xc(r30)
/* 802D0064 002CCFA4 80 7F 00 0C */ lwz r3, 0xc(r31)
/* 802D0068 002CCFA8 93 E3 00 08 */ stw r31, 8(r3)
/* 802D006C 002CCFAC 38 00 00 00 */ li r0, 0
/* 802D0070 002CCFB0 98 1F 00 03 */ stb r0, 3(r31)
/* 802D0074 002CCFB4 7F A3 EB 78 */ mr r3, r29
/* 802D0078 002CCFB8 7F E4 FB 78 */ mr r4, r31
/* 802D007C 002CCFBC 48 00 00 39 */ bl joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802D0080 002CCFC0 7F A3 EB 78 */ mr r3, r29
/* 802D0084 002CCFC4 7F C4 F3 78 */ mr r4, r30
/* 802D0088 002CCFC8 48 00 00 2D */ bl joinTwoBlocks__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802D008C 002CCFCC 48 00 00 10 */ b lbl_802D009C
lbl_802D0090:
/* 802D0090 002CCFD0 83 DE 00 0C */ lwz r30, 0xc(r30)
lbl_802D0094:
/* 802D0094 002CCFD4 28 1E 00 00 */ cmplwi r30, 0
/* 802D0098 002CCFD8 40 82 FF AC */ bne lbl_802D0044
lbl_802D009C:
/* 802D009C 002CCFDC 39 61 00 20 */ addi r11, r1, 0x20
/* 802D00A0 002CCFE0 48 09 21 89 */ bl _restgpr_29
/* 802D00A4 002CCFE4 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802D00A8 002CCFE8 7C 08 03 A6 */ mtlr r0
/* 802D00AC 002CCFEC 38 21 00 20 */ addi r1, r1, 0x20
/* 802D00B0 002CCFF0 4E 80 00 20 */ blr