tp/asm/JSystem/JKernel/JKRExpHeap/do_resize__10JKRExpHeapFPvUl.s

121 lines
4.9 KiB
ArmAsm

lbl_802CF978:
/* 802CF978 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 802CF97C 7C 08 02 A6 */ mflr r0
/* 802CF980 90 01 00 24 */ stw r0, 0x24(r1)
/* 802CF984 39 61 00 20 */ addi r11, r1, 0x20
/* 802CF988 48 09 28 51 */ bl _savegpr_28
/* 802CF98C 7C 7D 1B 78 */ mr r29, r3
/* 802CF990 7C 9C 23 78 */ mr r28, r4
/* 802CF994 7C BE 2B 78 */ mr r30, r5
/* 802CF998 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CF99C 48 06 F6 A5 */ bl OSLockMutex
/* 802CF9A0 7F 83 E3 78 */ mr r3, r28
/* 802CF9A4 48 00 0F 79 */ bl getHeapBlock__Q210JKRExpHeap9CMemBlockFPv
/* 802CF9A8 7C 7F 1B 79 */ or. r31, r3, r3
/* 802CF9AC 41 82 00 1C */ beq lbl_802CF9C8
/* 802CF9B0 80 1D 00 30 */ lwz r0, 0x30(r29)
/* 802CF9B4 7C 1C 00 40 */ cmplw r28, r0
/* 802CF9B8 41 80 00 10 */ blt lbl_802CF9C8
/* 802CF9BC 80 1D 00 34 */ lwz r0, 0x34(r29)
/* 802CF9C0 7C 00 E0 40 */ cmplw r0, r28
/* 802CF9C4 40 80 00 14 */ bge lbl_802CF9D8
lbl_802CF9C8:
/* 802CF9C8 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CF9CC 48 06 F7 51 */ bl OSUnlockMutex
/* 802CF9D0 38 60 FF FF */ li r3, -1
/* 802CF9D4 48 00 01 38 */ b lbl_802CFB0C
lbl_802CF9D8:
/* 802CF9D8 38 1E 00 03 */ addi r0, r30, 3
/* 802CF9DC 54 1E 00 3A */ rlwinm r30, r0, 0, 0, 0x1d
/* 802CF9E0 80 9F 00 04 */ lwz r4, 4(r31)
/* 802CF9E4 7C 1E 20 40 */ cmplw r30, r4
/* 802CF9E8 40 82 00 14 */ bne lbl_802CF9FC
/* 802CF9EC 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CF9F0 48 06 F7 2D */ bl OSUnlockMutex
/* 802CF9F4 7F C3 F3 78 */ mr r3, r30
/* 802CF9F8 48 00 01 14 */ b lbl_802CFB0C
lbl_802CF9FC:
/* 802CF9FC 40 81 00 D0 */ ble lbl_802CFACC
/* 802CFA00 3B 80 00 00 */ li r28, 0
/* 802CFA04 80 7D 00 78 */ lwz r3, 0x78(r29)
/* 802CFA08 38 1F 00 10 */ addi r0, r31, 0x10
/* 802CFA0C 7C 00 22 14 */ add r0, r0, r4
/* 802CFA10 48 00 00 18 */ b lbl_802CFA28
lbl_802CFA14:
/* 802CFA14 7C 03 00 40 */ cmplw r3, r0
/* 802CFA18 40 82 00 0C */ bne lbl_802CFA24
/* 802CFA1C 7C 7C 1B 78 */ mr r28, r3
/* 802CFA20 48 00 00 10 */ b lbl_802CFA30
lbl_802CFA24:
/* 802CFA24 80 63 00 0C */ lwz r3, 0xc(r3)
lbl_802CFA28:
/* 802CFA28 28 03 00 00 */ cmplwi r3, 0
/* 802CFA2C 40 82 FF E8 */ bne lbl_802CFA14
lbl_802CFA30:
/* 802CFA30 28 1C 00 00 */ cmplwi r28, 0
/* 802CFA34 40 82 00 14 */ bne lbl_802CFA48
/* 802CFA38 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFA3C 48 06 F6 E1 */ bl OSUnlockMutex
/* 802CFA40 38 60 FF FF */ li r3, -1
/* 802CFA44 48 00 00 C8 */ b lbl_802CFB0C
lbl_802CFA48:
/* 802CFA48 80 1C 00 04 */ lwz r0, 4(r28)
/* 802CFA4C 7C 64 02 14 */ add r3, r4, r0
/* 802CFA50 38 03 00 10 */ addi r0, r3, 0x10
/* 802CFA54 7C 1E 00 40 */ cmplw r30, r0
/* 802CFA58 40 81 00 14 */ ble lbl_802CFA6C
/* 802CFA5C 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFA60 48 06 F6 BD */ bl OSUnlockMutex
/* 802CFA64 38 60 FF FF */ li r3, -1
/* 802CFA68 48 00 00 A4 */ b lbl_802CFB0C
lbl_802CFA6C:
/* 802CFA6C 7F A3 EB 78 */ mr r3, r29
/* 802CFA70 7F 84 E3 78 */ mr r4, r28
/* 802CFA74 48 00 04 41 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CFA78 80 7F 00 04 */ lwz r3, 4(r31)
/* 802CFA7C 80 1C 00 04 */ lwz r0, 4(r28)
/* 802CFA80 7C 60 1A 14 */ add r3, r0, r3
/* 802CFA84 38 03 00 10 */ addi r0, r3, 0x10
/* 802CFA88 90 1F 00 04 */ stw r0, 4(r31)
/* 802CFA8C 80 1F 00 04 */ lwz r0, 4(r31)
/* 802CFA90 7C 1E 00 50 */ subf r0, r30, r0
/* 802CFA94 28 00 00 10 */ cmplwi r0, 0x10
/* 802CFA98 40 81 00 68 */ ble lbl_802CFB00
/* 802CFA9C 7F E3 FB 78 */ mr r3, r31
/* 802CFAA0 7F C4 F3 78 */ mr r4, r30
/* 802CFAA4 88 BF 00 03 */ lbz r5, 3(r31)
/* 802CFAA8 88 DF 00 02 */ lbz r6, 2(r31)
/* 802CFAAC 38 E0 00 00 */ li r7, 0
/* 802CFAB0 39 00 00 00 */ li r8, 0
/* 802CFAB4 48 00 0D 7D */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CFAB8 7C 64 1B 79 */ or. r4, r3, r3
/* 802CFABC 41 82 00 44 */ beq lbl_802CFB00
/* 802CFAC0 7F A3 EB 78 */ mr r3, r29
/* 802CFAC4 48 00 04 59 */ bl recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CFAC8 48 00 00 38 */ b lbl_802CFB00
lbl_802CFACC:
/* 802CFACC 7C 1E 20 50 */ subf r0, r30, r4
/* 802CFAD0 28 00 00 10 */ cmplwi r0, 0x10
/* 802CFAD4 40 81 00 2C */ ble lbl_802CFB00
/* 802CFAD8 7F C4 F3 78 */ mr r4, r30
/* 802CFADC 88 BF 00 03 */ lbz r5, 3(r31)
/* 802CFAE0 88 DF 00 02 */ lbz r6, 2(r31)
/* 802CFAE4 38 E0 00 00 */ li r7, 0
/* 802CFAE8 39 00 00 00 */ li r8, 0
/* 802CFAEC 48 00 0D 45 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CFAF0 7C 64 1B 79 */ or. r4, r3, r3
/* 802CFAF4 41 82 00 0C */ beq lbl_802CFB00
/* 802CFAF8 7F A3 EB 78 */ mr r3, r29
/* 802CFAFC 48 00 04 21 */ bl recycleFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
lbl_802CFB00:
/* 802CFB00 38 7D 00 18 */ addi r3, r29, 0x18
/* 802CFB04 48 06 F6 19 */ bl OSUnlockMutex
/* 802CFB08 80 7F 00 04 */ lwz r3, 4(r31)
lbl_802CFB0C:
/* 802CFB0C 39 61 00 20 */ addi r11, r1, 0x20
/* 802CFB10 48 09 27 15 */ bl _restgpr_28
/* 802CFB14 80 01 00 24 */ lwz r0, 0x24(r1)
/* 802CFB18 7C 08 03 A6 */ mtlr r0
/* 802CFB1C 38 21 00 20 */ addi r1, r1, 0x20
/* 802CFB20 4E 80 00 20 */ blr