tp/asm/JSystem/J3DGraphBase/J3DShape/drawFast__8J3DShapeCFv.s

115 lines
4.8 KiB
ArmAsm

lbl_8031544C:
/* 8031544C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80315450 7C 08 02 A6 */ mflr r0
/* 80315454 90 01 00 24 */ stw r0, 0x24(r1)
/* 80315458 39 61 00 20 */ addi r11, r1, 0x20
/* 8031545C 48 04 CD 79 */ bl _savegpr_27
/* 80315460 7C 7F 1B 78 */ mr r31, r3
/* 80315464 80 0D 90 50 */ lwz r0, sOldVcdVatCmd__8J3DShape(r13)
/* 80315468 80 63 00 2C */ lwz r3, 0x2c(r3)
/* 8031546C 7C 00 18 40 */ cmplw r0, r3
/* 80315470 41 82 00 14 */ beq lbl_80315484
/* 80315474 38 80 00 C0 */ li r4, 0xc0
/* 80315478 48 04 AA 79 */ bl GXCallDisplayList
/* 8031547C 80 1F 00 2C */ lwz r0, 0x2c(r31)
/* 80315480 90 0D 90 50 */ stw r0, sOldVcdVatCmd__8J3DShape(r13)
lbl_80315484:
/* 80315484 88 0D 90 54 */ lbz r0, data_804515D4(r13)
/* 80315488 28 00 00 00 */ cmplwi r0, 0
/* 8031548C 41 82 00 60 */ beq lbl_803154EC
/* 80315490 88 1F 00 48 */ lbz r0, 0x48(r31)
/* 80315494 28 00 00 00 */ cmplwi r0, 0
/* 80315498 40 82 00 54 */ bne lbl_803154EC
/* 8031549C 80 BF 00 40 */ lwz r5, 0x40(r31)
/* 803154A0 38 80 00 08 */ li r4, 8
/* 803154A4 3C 60 CC 01 */ lis r3, 0xCC01 /* 0xCC008000@ha */
/* 803154A8 98 83 80 00 */ stb r4, 0x8000(r3) /* 0xCC008000@l */
/* 803154AC 38 00 00 30 */ li r0, 0x30
/* 803154B0 98 03 80 00 */ stb r0, -0x8000(r3)
/* 803154B4 90 A3 80 00 */ stw r5, -0x8000(r3)
/* 803154B8 80 DF 00 44 */ lwz r6, 0x44(r31)
/* 803154BC 98 83 80 00 */ stb r4, -0x8000(r3)
/* 803154C0 38 00 00 40 */ li r0, 0x40
/* 803154C4 98 03 80 00 */ stb r0, -0x8000(r3)
/* 803154C8 90 C3 80 00 */ stw r6, -0x8000(r3)
/* 803154CC 38 00 00 10 */ li r0, 0x10
/* 803154D0 98 03 80 00 */ stb r0, -0x8000(r3)
/* 803154D4 38 00 00 01 */ li r0, 1
/* 803154D8 B0 03 80 00 */ sth r0, -0x8000(r3)
/* 803154DC 38 00 10 18 */ li r0, 0x1018
/* 803154E0 B0 03 80 00 */ sth r0, -0x8000(r3)
/* 803154E4 90 A3 80 00 */ stw r5, -0x8000(r3)
/* 803154E8 90 C3 80 00 */ stw r6, -0x8000(r3)
lbl_803154EC:
/* 803154EC 7F E3 FB 78 */ mr r3, r31
/* 803154F0 4B FF FE A9 */ bl setArrayAndBindPipeline__8J3DShapeCFv
/* 803154F4 80 1F 00 0C */ lwz r0, 0xc(r31)
/* 803154F8 54 00 05 AD */ rlwinm. r0, r0, 0, 0x16, 0x16
/* 803154FC 40 82 00 6C */ bne lbl_80315568
/* 80315500 88 0D 90 31 */ lbz r0, struct_804515B0+0x1(r13)
/* 80315504 28 00 00 00 */ cmplwi r0, 0
/* 80315508 41 82 00 08 */ beq lbl_80315510
/* 8031550C 4B FF DB 9D */ bl resetMtxLoadCache__11J3DShapeMtxFv
lbl_80315510:
/* 80315510 A3 DF 00 0A */ lhz r30, 0xa(r31)
/* 80315514 3B 60 00 00 */ li r27, 0
/* 80315518 83 BF 00 38 */ lwz r29, 0x38(r31)
/* 8031551C 83 FF 00 3C */ lwz r31, 0x3c(r31)
/* 80315520 48 00 00 38 */ b lbl_80315558
lbl_80315524:
/* 80315524 57 7C 13 BA */ rlwinm r28, r27, 2, 0xe, 0x1d
/* 80315528 7C 7D E0 2E */ lwzx r3, r29, r28
/* 8031552C 28 03 00 00 */ cmplwi r3, 0
/* 80315530 41 82 00 14 */ beq lbl_80315544
/* 80315534 81 83 00 00 */ lwz r12, 0(r3)
/* 80315538 81 8C 00 18 */ lwz r12, 0x18(r12)
/* 8031553C 7D 89 03 A6 */ mtctr r12
/* 80315540 4E 80 04 21 */ bctrl
lbl_80315544:
/* 80315544 7C 7F E0 2E */ lwzx r3, r31, r28
/* 80315548 28 03 00 00 */ cmplwi r3, 0
/* 8031554C 41 82 00 08 */ beq lbl_80315554
/* 80315550 4B FF F5 85 */ bl draw__12J3DShapeDrawCFv
lbl_80315554:
/* 80315554 3B 7B 00 01 */ addi r27, r27, 1
lbl_80315558:
/* 80315558 57 60 04 3E */ clrlwi r0, r27, 0x10
/* 8031555C 7C 00 F0 40 */ cmplw r0, r30
/* 80315560 41 80 FF C4 */ blt lbl_80315524
/* 80315564 48 00 00 64 */ b lbl_803155C8
lbl_80315568:
/* 80315568 3C 60 80 43 */ lis r3, j3dSys@ha /* 0x80434AC8@ha */
/* 8031556C 3B C3 4A C8 */ addi r30, r3, j3dSys@l /* 0x80434AC8@l */
/* 80315570 80 7E 00 40 */ lwz r3, 0x40(r30)
/* 80315574 80 63 00 30 */ lwz r3, 0x30(r3)
/* 80315578 38 80 00 00 */ li r4, 0
/* 8031557C 4B FF A5 65 */ bl J3DFifoLoadPosMtxImm__FPA4_fUl
/* 80315580 80 7E 00 40 */ lwz r3, 0x40(r30)
/* 80315584 80 63 00 30 */ lwz r3, 0x30(r3)
/* 80315588 38 80 00 00 */ li r4, 0
/* 8031558C 4B FF A5 D5 */ bl J3DFifoLoadNrmMtxImm__FPA4_fUl
/* 80315590 A0 1F 00 0A */ lhz r0, 0xa(r31)
/* 80315594 3B 60 00 00 */ li r27, 0
/* 80315598 83 DF 00 3C */ lwz r30, 0x3c(r31)
/* 8031559C 54 1F 04 3E */ clrlwi r31, r0, 0x10
/* 803155A0 48 00 00 1C */ b lbl_803155BC
lbl_803155A4:
/* 803155A4 57 60 13 BA */ rlwinm r0, r27, 2, 0xe, 0x1d
/* 803155A8 7C 7E 00 2E */ lwzx r3, r30, r0
/* 803155AC 28 03 00 00 */ cmplwi r3, 0
/* 803155B0 41 82 00 08 */ beq lbl_803155B8
/* 803155B4 4B FF F5 21 */ bl draw__12J3DShapeDrawCFv
lbl_803155B8:
/* 803155B8 3B 7B 00 01 */ addi r27, r27, 1
lbl_803155BC:
/* 803155BC 57 60 04 3E */ clrlwi r0, r27, 0x10
/* 803155C0 7C 00 F8 40 */ cmplw r0, r31
/* 803155C4 41 80 FF E0 */ blt lbl_803155A4
lbl_803155C8:
/* 803155C8 39 61 00 20 */ addi r11, r1, 0x20
/* 803155CC 48 04 CC 55 */ bl _restgpr_27
/* 803155D0 80 01 00 24 */ lwz r0, 0x24(r1)
/* 803155D4 7C 08 03 A6 */ mtlr r0
/* 803155D8 38 21 00 20 */ addi r1, r1, 0x20
/* 803155DC 4E 80 00 20 */ blr