tp/include/JSystem/JKernel/JKRExpHeap/asm/func_802CF6D4.s

66 lines
3.2 KiB
ArmAsm

/* allocFromTail__10JKRExpHeapFUl __ct__10JKRExpHeapFPvUlP7JKRHeapb::allocFromTail(unsigned long) */
/* JKRExpHeap_NS_allocFromTail_X1_ */
/* 802CF6D4 002CC614 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF6D8 002CC618 7C 08 02 A6 */ mflr r0
/* 802CF6DC 002CC61C 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF6E0 002CC620 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF6E4 002CC624 48 09 2A F9 */ bl _savegpr_29
/* 802CF6E8 002CC628 7C 7D 1B 78 */ mr r29, r3
/* 802CF6EC 002CC62C 38 04 00 03 */ addi r0, r4, 3
/* 802CF6F0 002CC630 54 04 00 3A */ rlwinm r4, r0, 0, 0, 0x1d
/* 802CF6F4 002CC634 3B E0 00 00 */ li r31, 0
/* 802CF6F8 002CC638 80 63 00 7C */ lwz r3, 0x7c(r3)
/* 802CF6FC 002CC63C 48 00 00 1C */ b lbl_802CF718
lbl_802CF700:
/* 802CF700 002CC640 80 03 00 04 */ lwz r0, 4(r3)
/* 802CF704 002CC644 7C 00 20 40 */ cmplw r0, r4
/* 802CF708 002CC648 41 80 00 0C */ blt lbl_802CF714
/* 802CF70C 002CC64C 7C 7F 1B 78 */ mr r31, r3
/* 802CF710 002CC650 48 00 00 10 */ b lbl_802CF720
lbl_802CF714:
/* 802CF714 002CC654 80 63 00 08 */ lwz r3, 8(r3)
lbl_802CF718:
/* 802CF718 002CC658 28 03 00 00 */ cmplwi r3, 0
/* 802CF71C 002CC65C 40 82 FF E4 */ bne lbl_802CF700
lbl_802CF720:
/* 802CF720 002CC660 28 1F 00 00 */ cmplwi r31, 0
/* 802CF724 002CC664 41 82 00 6C */ beq lbl_802CF790
/* 802CF728 002CC668 7F E3 FB 78 */ mr r3, r31
/* 802CF72C 002CC66C 38 A0 00 00 */ li r5, 0
/* 802CF730 002CC670 38 C0 00 00 */ li r6, 0
/* 802CF734 002CC674 88 FD 00 6D */ lbz r7, 0x6d(r29)
/* 802CF738 002CC678 39 00 00 00 */ li r8, 0
/* 802CF73C 002CC67C 48 00 11 39 */ bl allocBack__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF740 002CC680 7C 7E 1B 79 */ or. r30, r3, r3
/* 802CF744 002CC684 41 82 00 0C */ beq lbl_802CF750
/* 802CF748 002CC688 7F E4 FB 78 */ mr r4, r31
/* 802CF74C 002CC68C 48 00 00 18 */ b lbl_802CF764
lbl_802CF750:
/* 802CF750 002CC690 7F A3 EB 78 */ mr r3, r29
/* 802CF754 002CC694 7F E4 FB 78 */ mr r4, r31
/* 802CF758 002CC698 48 00 07 5D */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF75C 002CC69C 7F FE FB 78 */ mr r30, r31
/* 802CF760 002CC6A0 38 80 00 00 */ li r4, 0
lbl_802CF764:
/* 802CF764 002CC6A4 28 04 00 00 */ cmplwi r4, 0
/* 802CF768 002CC6A8 41 82 00 14 */ beq lbl_802CF77C
/* 802CF76C 002CC6AC 7F A3 EB 78 */ mr r3, r29
/* 802CF770 002CC6B0 80 BF 00 08 */ lwz r5, 8(r31)
/* 802CF774 002CC6B4 80 DF 00 0C */ lwz r6, 0xc(r31)
/* 802CF778 002CC6B8 48 00 06 F1 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
lbl_802CF77C:
/* 802CF77C 002CC6BC 7F A3 EB 78 */ mr r3, r29
/* 802CF780 002CC6C0 7F C4 F3 78 */ mr r4, r30
/* 802CF784 002CC6C4 48 00 06 49 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF788 002CC6C8 38 7E 00 10 */ addi r3, r30, 0x10
/* 802CF78C 002CC6CC 48 00 00 08 */ b lbl_802CF794
lbl_802CF790:
/* 802CF790 002CC6D0 38 60 00 00 */ li r3, 0
lbl_802CF794:
/* 802CF794 002CC6D4 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF798 002CC6D8 48 09 2A 91 */ bl _restgpr_29
/* 802CF79C 002CC6DC 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CF7A0 002CC6E0 7C 08 03 A6 */ mtlr r0
/* 802CF7A4 002CC6E4 38 21 00 20 */ addi r1, r1, 0x20
/* 802CF7A8 002CC6E8 4E 80 00 20 */ blr