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

169 lines
8.7 KiB
ArmAsm

/* allocFromHead__10JKRExpHeapFUli __ct__10JKRExpHeapFPvUlP7JKRHeapb::allocFromHead(unsigned long, int) */
/* JKRExpHeap_NS_allocFromHead */
/* 802CF234 002CC174 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 802CF238 002CC178 7C 08 02 A6 */ mflr r0
/* 802CF23C 002CC17C 90 01 00 34 */ stw r0, 0x34(r1)
/* 802CF240 002CC180 39 61 00 30 */ addi r11, r1, 0x30
/* 802CF244 002CC184 48 09 2F 89 */ bl func_803621CC
/* 802CF248 002CC188 7C 7D 1B 78 */ mr r29, r3
/* 802CF24C 002CC18C 38 04 00 03 */ addi r0, r4, 3
/* 802CF250 002CC190 54 1E 00 3A */ rlwinm r30, r0, 0, 0, 0x1d
/* 802CF254 002CC194 38 C0 FF FF */ li r6, -1
/* 802CF258 002CC198 3B 60 00 00 */ li r27, 0
/* 802CF25C 002CC19C 3B E0 00 00 */ li r31, 0
/* 802CF260 002CC1A0 80 E3 00 78 */ lwz r7, 0x78(r3)
/* 802CF264 002CC1A4 38 65 FF FF */ addi r3, r5, -1
/* 802CF268 002CC1A8 7C 64 18 F8 */ nor r4, r3, r3
/* 802CF26C 002CC1AC 48 00 00 50 */ b lbl_802CF2BC
lbl_802CF270:
/* 802CF270 002CC1B0 38 A7 00 10 */ addi r5, r7, 0x10
/* 802CF274 002CC1B4 7C 03 2A 14 */ add r0, r3, r5
/* 802CF278 002CC1B8 7C 80 00 38 */ and r0, r4, r0
/* 802CF27C 002CC1BC 7D 05 00 50 */ subf r8, r5, r0
/* 802CF280 002CC1C0 80 A7 00 04 */ lwz r5, 4(r7)
/* 802CF284 002CC1C4 7C 1E 42 14 */ add r0, r30, r8
/* 802CF288 002CC1C8 7C 05 00 40 */ cmplw r5, r0
/* 802CF28C 002CC1CC 41 80 00 2C */ blt lbl_802CF2B8
/* 802CF290 002CC1D0 7C 06 28 40 */ cmplw r6, r5
/* 802CF294 002CC1D4 40 81 00 24 */ ble lbl_802CF2B8
/* 802CF298 002CC1D8 7C A6 2B 78 */ mr r6, r5
/* 802CF29C 002CC1DC 7C FF 3B 78 */ mr r31, r7
/* 802CF2A0 002CC1E0 7D 1B 43 78 */ mr r27, r8
/* 802CF2A4 002CC1E4 88 1D 00 6C */ lbz r0, 0x6c(r29)
/* 802CF2A8 002CC1E8 28 00 00 00 */ cmplwi r0, 0
/* 802CF2AC 002CC1EC 40 82 00 18 */ bne lbl_802CF2C4
/* 802CF2B0 002CC1F0 7C 05 F0 40 */ cmplw r5, r30
/* 802CF2B4 002CC1F4 41 82 00 10 */ beq lbl_802CF2C4
lbl_802CF2B8:
/* 802CF2B8 002CC1F8 80 E7 00 0C */ lwz r7, 0xc(r7)
lbl_802CF2BC:
/* 802CF2BC 002CC1FC 28 07 00 00 */ cmplwi r7, 0
/* 802CF2C0 002CC200 40 82 FF B0 */ bne lbl_802CF270
lbl_802CF2C4:
/* 802CF2C4 002CC204 90 CD 8E 18 */ stw r6, lbl_80451398-_SDA_BASE_(r13)
/* 802CF2C8 002CC208 93 6D 8E 1C */ stw r27, lbl_8045139C-_SDA_BASE_(r13)
/* 802CF2CC 002CC20C 93 ED 8E 20 */ stw r31, lbl_804513A0-_SDA_BASE_(r13)
/* 802CF2D0 002CC210 28 1F 00 00 */ cmplwi r31, 0
/* 802CF2D4 002CC214 41 82 01 A0 */ beq lbl_802CF474
/* 802CF2D8 002CC218 28 1B 00 10 */ cmplwi r27, 0x10
/* 802CF2DC 002CC21C 41 80 00 C0 */ blt lbl_802CF39C
/* 802CF2E0 002CC220 83 5F 00 08 */ lwz r26, 8(r31)
/* 802CF2E4 002CC224 83 3F 00 0C */ lwz r25, 0xc(r31)
/* 802CF2E8 002CC228 7F E3 FB 78 */ mr r3, r31
/* 802CF2EC 002CC22C 38 9B FF F0 */ addi r4, r27, -16
/* 802CF2F0 002CC230 38 A0 00 00 */ li r5, 0
/* 802CF2F4 002CC234 38 C0 00 00 */ li r6, 0
/* 802CF2F8 002CC238 38 E0 00 00 */ li r7, 0
/* 802CF2FC 002CC23C 39 00 00 00 */ li r8, 0
/* 802CF300 002CC240 48 00 15 31 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF304 002CC244 7C 7C 1B 79 */ or. r28, r3, r3
/* 802CF308 002CC248 41 82 00 24 */ beq lbl_802CF32C
/* 802CF30C 002CC24C 7F C4 F3 78 */ mr r4, r30
/* 802CF310 002CC250 88 BD 00 6D */ lbz r5, 0x6d(r29)
/* 802CF314 002CC254 38 C0 00 00 */ li r6, 0
/* 802CF318 002CC258 38 E0 00 00 */ li r7, 0
/* 802CF31C 002CC25C 39 00 00 00 */ li r8, 0
/* 802CF320 002CC260 48 00 15 11 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF324 002CC264 7C 66 1B 78 */ mr r6, r3
/* 802CF328 002CC268 48 00 00 08 */ b lbl_802CF330
lbl_802CF32C:
/* 802CF32C 002CC26C 38 C0 00 00 */ li r6, 0
lbl_802CF330:
/* 802CF330 002CC270 7C DB 33 78 */ mr r27, r6
/* 802CF334 002CC274 28 06 00 00 */ cmplwi r6, 0
/* 802CF338 002CC278 41 82 00 18 */ beq lbl_802CF350
/* 802CF33C 002CC27C 7F A3 EB 78 */ mr r3, r29
/* 802CF340 002CC280 7F E4 FB 78 */ mr r4, r31
/* 802CF344 002CC284 7F 45 D3 78 */ mr r5, r26
/* 802CF348 002CC288 48 00 0B 21 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
/* 802CF34C 002CC28C 48 00 00 18 */ b lbl_802CF364
lbl_802CF350:
/* 802CF350 002CC290 7F A3 EB 78 */ mr r3, r29
/* 802CF354 002CC294 7F E4 FB 78 */ mr r4, r31
/* 802CF358 002CC298 7F 45 D3 78 */ mr r5, r26
/* 802CF35C 002CC29C 7F 26 CB 78 */ mr r6, r25
/* 802CF360 002CC2A0 48 00 0B 09 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
lbl_802CF364:
/* 802CF364 002CC2A4 28 1B 00 00 */ cmplwi r27, 0
/* 802CF368 002CC2A8 41 82 00 18 */ beq lbl_802CF380
/* 802CF36C 002CC2AC 7F A3 EB 78 */ mr r3, r29
/* 802CF370 002CC2B0 7F 64 DB 78 */ mr r4, r27
/* 802CF374 002CC2B4 7F E5 FB 78 */ mr r5, r31
/* 802CF378 002CC2B8 7F 26 CB 78 */ mr r6, r25
/* 802CF37C 002CC2BC 48 00 0A ED */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
lbl_802CF380:
/* 802CF380 002CC2C0 7F A3 EB 78 */ mr r3, r29
/* 802CF384 002CC2C4 7F 84 E3 78 */ mr r4, r28
/* 802CF388 002CC2C8 48 00 0A 45 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF38C 002CC2CC 93 6D 8E 24 */ stw r27, lbl_804513A4-_SDA_BASE_(r13)
/* 802CF390 002CC2D0 93 8D 8E 28 */ stw r28, lbl_804513A8-_SDA_BASE_(r13)
/* 802CF394 002CC2D4 38 7C 00 10 */ addi r3, r28, 0x10
/* 802CF398 002CC2D8 48 00 00 E0 */ b lbl_802CF478
lbl_802CF39C:
/* 802CF39C 002CC2DC 28 1B 00 00 */ cmplwi r27, 0
/* 802CF3A0 002CC2E0 41 82 00 70 */ beq lbl_802CF410
/* 802CF3A4 002CC2E4 83 3F 00 08 */ lwz r25, 8(r31)
/* 802CF3A8 002CC2E8 83 5F 00 0C */ lwz r26, 0xc(r31)
/* 802CF3AC 002CC2EC 7F A3 EB 78 */ mr r3, r29
/* 802CF3B0 002CC2F0 7F E4 FB 78 */ mr r4, r31
/* 802CF3B4 002CC2F4 48 00 0B 01 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF3B8 002CC2F8 7F 9F DA 14 */ add r28, r31, r27
/* 802CF3BC 002CC2FC 80 1F 00 04 */ lwz r0, 4(r31)
/* 802CF3C0 002CC300 7C 1B 00 50 */ subf r0, r27, r0
/* 802CF3C4 002CC304 90 1C 00 04 */ stw r0, 4(r28)
/* 802CF3C8 002CC308 7F 83 E3 78 */ mr r3, r28
/* 802CF3CC 002CC30C 7F C4 F3 78 */ mr r4, r30
/* 802CF3D0 002CC310 88 BD 00 6D */ lbz r5, 0x6d(r29)
/* 802CF3D4 002CC314 57 66 06 3E */ clrlwi r6, r27, 0x18
/* 802CF3D8 002CC318 38 E0 00 00 */ li r7, 0
/* 802CF3DC 002CC31C 39 00 00 00 */ li r8, 0
/* 802CF3E0 002CC320 48 00 14 51 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF3E4 002CC324 7C 64 1B 79 */ or. r4, r3, r3
/* 802CF3E8 002CC328 41 82 00 14 */ beq lbl_802CF3FC
/* 802CF3EC 002CC32C 7F A3 EB 78 */ mr r3, r29
/* 802CF3F0 002CC330 7F 25 CB 78 */ mr r5, r25
/* 802CF3F4 002CC334 7F 46 D3 78 */ mr r6, r26
/* 802CF3F8 002CC338 48 00 0A 71 */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
lbl_802CF3FC:
/* 802CF3FC 002CC33C 7F A3 EB 78 */ mr r3, r29
/* 802CF400 002CC340 7F 84 E3 78 */ mr r4, r28
/* 802CF404 002CC344 48 00 09 C9 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF408 002CC348 38 7C 00 10 */ addi r3, r28, 0x10
/* 802CF40C 002CC34C 48 00 00 6C */ b lbl_802CF478
lbl_802CF410:
/* 802CF410 002CC350 83 3F 00 08 */ lwz r25, 8(r31)
/* 802CF414 002CC354 83 5F 00 0C */ lwz r26, 0xc(r31)
/* 802CF418 002CC358 7F E3 FB 78 */ mr r3, r31
/* 802CF41C 002CC35C 7F C4 F3 78 */ mr r4, r30
/* 802CF420 002CC360 88 BD 00 6D */ lbz r5, 0x6d(r29)
/* 802CF424 002CC364 38 C0 00 00 */ li r6, 0
/* 802CF428 002CC368 38 E0 00 00 */ li r7, 0
/* 802CF42C 002CC36C 39 00 00 00 */ li r8, 0
/* 802CF430 002CC370 48 00 14 01 */ bl allocFore__Q210JKRExpHeap9CMemBlockFUlUcUcUcUc
/* 802CF434 002CC374 7C 7E 1B 78 */ mr r30, r3
/* 802CF438 002CC378 7F A3 EB 78 */ mr r3, r29
/* 802CF43C 002CC37C 7F E4 FB 78 */ mr r4, r31
/* 802CF440 002CC380 48 00 0A 75 */ bl removeFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF444 002CC384 28 1E 00 00 */ cmplwi r30, 0
/* 802CF448 002CC388 41 82 00 18 */ beq lbl_802CF460
/* 802CF44C 002CC38C 7F A3 EB 78 */ mr r3, r29
/* 802CF450 002CC390 7F C4 F3 78 */ mr r4, r30
/* 802CF454 002CC394 7F 25 CB 78 */ mr r5, r25
/* 802CF458 002CC398 7F 46 D3 78 */ mr r6, r26
/* 802CF45C 002CC39C 48 00 0A 0D */ bl setFreeBlock__10JKRExpHeapFPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlockPQ210JKRExpHeap9CMemBlock
lbl_802CF460:
/* 802CF460 002CC3A0 7F A3 EB 78 */ mr r3, r29
/* 802CF464 002CC3A4 7F E4 FB 78 */ mr r4, r31
/* 802CF468 002CC3A8 48 00 09 65 */ bl appendUsedList__10JKRExpHeapFPQ210JKRExpHeap9CMemBlock
/* 802CF46C 002CC3AC 38 7F 00 10 */ addi r3, r31, 0x10
/* 802CF470 002CC3B0 48 00 00 08 */ b lbl_802CF478
lbl_802CF474:
/* 802CF474 002CC3B4 38 60 00 00 */ li r3, 0
lbl_802CF478:
/* 802CF478 002CC3B8 39 61 00 30 */ addi r11, r1, 0x30
/* 802CF47C 002CC3BC 48 09 2D 9D */ bl func_80362218
/* 802CF480 002CC3C0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 802CF484 002CC3C4 7C 08 03 A6 */ mtlr r0
/* 802CF488 002CC3C8 38 21 00 30 */ addi r1, r1, 0x30
/* 802CF48C 002CC3CC 4E 80 00 20 */ blr