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

99 lines
5.1 KiB
ArmAsm

/* allocFromTail__10JKRExpHeapFUli __ct__10JKRExpHeapFPvUlP7JKRHeapb::allocFromTail(unsigned long, int) */
/* JKRExpHeap_NS_allocFromTail */
/* 802CF574 002CC4B4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF578 002CC4B8 7C 08 02 A6 */ mflr r0
/* 802CF57C 002CC4BC 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF580 002CC4C0 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF584 002CC4C4 48 09 2C 51 */ bl _savegpr_27
/* 802CF588 002CC4C8 7C 7B 1B 78 */ mr r27, r3
/* 802CF58C 002CC4CC 3B E0 00 00 */ li r31, 0
/* 802CF590 002CC4D0 3B C0 00 00 */ li r30, 0
/* 802CF594 002CC4D4 3B A0 00 00 */ li r29, 0
/* 802CF598 002CC4D8 81 03 00 7C */ lwz r8, 0x7c(r3)
/* 802CF59C 002CC4DC 38 05 FF FF */ addi r0, r5, -1
/* 802CF5A0 002CC4E0 7C 03 00 F8 */ nor r3, r0, r0
/* 802CF5A4 002CC4E4 48 00 00 38 */ b lbl_802CF5DC
lbl_802CF5A8:
/* 802CF5A8 002CC4E8 80 C8 00 04 */ lwz r6, 4(r8)
/* 802CF5AC 002CC4EC 7C A8 32 14 */ add r5, r8, r6
/* 802CF5B0 002CC4F0 38 A5 00 10 */ addi r5, r5, 0x10
/* 802CF5B4 002CC4F4 7C 04 28 50 */ subf r0, r4, r5
/* 802CF5B8 002CC4F8 7C 67 00 38 */ and r7, r3, r0
/* 802CF5BC 002CC4FC 7F 87 28 50 */ subf r28, r7, r5
/* 802CF5C0 002CC500 7C 06 E0 40 */ cmplw r6, r28
/* 802CF5C4 002CC504 41 80 00 14 */ blt lbl_802CF5D8
/* 802CF5C8 002CC508 7D 1E 43 78 */ mr r30, r8
/* 802CF5CC 002CC50C 7F FC 30 50 */ subf r31, r28, r6
/* 802CF5D0 002CC510 3B A7 FF F0 */ addi r29, r7, -16
/* 802CF5D4 002CC514 48 00 00 10 */ b lbl_802CF5E4
lbl_802CF5D8:
/* 802CF5D8 002CC518 81 08 00 08 */ lwz r8, 8(r8)
lbl_802CF5DC:
/* 802CF5DC 002CC51C 28 08 00 00 */ cmplwi r8, 0
/* 802CF5E0 002CC520 40 82 FF C8 */ bne lbl_802CF5A8
lbl_802CF5E4:
/* 802CF5E4 002CC524 28 1E 00 00 */ cmplwi r30, 0
/* 802CF5E8 002CC528 41 82 00 D0 */ beq lbl_802CF6B8
/* 802CF5EC 002CC52C 28 1F 00 10 */ cmplwi r31, 0x10
/* 802CF5F0 002CC530 41 80 00 44 */ blt lbl_802CF634
/* 802CF5F4 002CC534 7F A3 EB 78 */ mr r3, r29
/* 802CF5F8 002CC538 38 80 00 00 */ li r4, 0
/* 802CF5FC 002CC53C 38 A0 00 00 */ li r5, 0
/* 802CF600 002CC540 7F 86 E3 78 */ mr r6, r28
/* 802CF604 002CC544 88 FB 00 6D */ lbz r7, 0x6d(r27)
/* 802CF608 002CC548 39 00 00 80 */ li r8, 0x80
/* 802CF60C 002CC54C 48 00 12 05 */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802CF610 002CC550 80 1E 00 04 */ lwz r0, 4(r30)
/* 802CF614 002CC554 7C 7C 00 50 */ subf r3, r28, r0
/* 802CF618 002CC558 38 03 FF F0 */ addi r0, r3, -16
/* 802CF61C 002CC55C 90 1E 00 04 */ stw r0, 4(r30)
/* 802CF620 002CC560 7F 63 DB 78 */ mr r3, r27
/* 802CF624 002CC564 7F A4 EB 78 */ mr r4, r29
/* 802CF628 002CC568 48 00 07 A5 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF62C 002CC56C 38 7D 00 10 */ addi r3, r29, 0x10
/* 802CF630 002CC570 48 00 00 8C */ b lbl_802CF6BC
lbl_802CF634:
/* 802CF634 002CC574 28 1F 00 00 */ cmplwi r31, 0
/* 802CF638 002CC578 41 82 00 44 */ beq lbl_802CF67C
/* 802CF63C 002CC57C 7F 63 DB 78 */ mr r3, r27
/* 802CF640 002CC580 7F C4 F3 78 */ mr r4, r30
/* 802CF644 002CC584 48 00 08 71 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF648 002CC588 7F A3 EB 78 */ mr r3, r29
/* 802CF64C 002CC58C 38 80 00 00 */ li r4, 0
/* 802CF650 002CC590 38 A0 00 00 */ li r5, 0
/* 802CF654 002CC594 7F 86 E3 78 */ mr r6, r28
/* 802CF658 002CC598 88 FB 00 6D */ lbz r7, 0x6d(r27)
/* 802CF65C 002CC59C 63 E0 00 80 */ ori r0, r31, 0x80
/* 802CF660 002CC5A0 54 08 06 3E */ clrlwi r8, r0, 0x18
/* 802CF664 002CC5A4 48 00 11 AD */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802CF668 002CC5A8 7F 63 DB 78 */ mr r3, r27
/* 802CF66C 002CC5AC 7F A4 EB 78 */ mr r4, r29
/* 802CF670 002CC5B0 48 00 07 5D */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF674 002CC5B4 38 7D 00 10 */ addi r3, r29, 0x10
/* 802CF678 002CC5B8 48 00 00 44 */ b lbl_802CF6BC
lbl_802CF67C:
/* 802CF67C 002CC5BC 7F 63 DB 78 */ mr r3, r27
/* 802CF680 002CC5C0 7F C4 F3 78 */ mr r4, r30
/* 802CF684 002CC5C4 48 00 08 31 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF688 002CC5C8 7F A3 EB 78 */ mr r3, r29
/* 802CF68C 002CC5CC 38 80 00 00 */ li r4, 0
/* 802CF690 002CC5D0 38 A0 00 00 */ li r5, 0
/* 802CF694 002CC5D4 7F 86 E3 78 */ mr r6, r28
/* 802CF698 002CC5D8 88 FB 00 6D */ lbz r7, 0x6d(r27)
/* 802CF69C 002CC5DC 39 00 00 80 */ li r8, 0x80
/* 802CF6A0 002CC5E0 48 00 11 71 */ bl initiate__Q210JKRExpHeap9CMemBlockFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockUlUcUc
/* 802CF6A4 002CC5E4 7F 63 DB 78 */ mr r3, r27
/* 802CF6A8 002CC5E8 7F A4 EB 78 */ mr r4, r29
/* 802CF6AC 002CC5EC 48 00 07 21 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF6B0 002CC5F0 38 7D 00 10 */ addi r3, r29, 0x10
/* 802CF6B4 002CC5F4 48 00 00 08 */ b lbl_802CF6BC
lbl_802CF6B8:
/* 802CF6B8 002CC5F8 38 60 00 00 */ li r3, 0
lbl_802CF6BC:
/* 802CF6BC 002CC5FC 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF6C0 002CC600 48 09 2B 61 */ bl _restgpr_27
/* 802CF6C4 002CC604 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CF6C8 002CC608 7C 08 03 A6 */ mtlr r0
/* 802CF6CC 002CC60C 38 21 00 20 */ addi r1, r1, 0x20
/* 802CF6D0 002CC610 4E 80 00 20 */ blr