mirror of https://github.com/zeldaret/tp.git
168 lines
7.4 KiB
ArmAsm
168 lines
7.4 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text, "ax" # 80314924
|
|
|
|
|
|
.global J3DShapeDraw_NS_countVertex
|
|
J3DShapeDraw_NS_countVertex:
|
|
/* 80314924 00311864 38 A0 00 00 */ li r5, 0
|
|
/* 80314928 00311868 80 C3 00 08 */ lwz r6, 8(r3)
|
|
/* 8031492C 0031186C 7C C7 33 78 */ mr r7, r6
|
|
/* 80314930 00311870 80 63 00 04 */ lwz r3, 4(r3)
|
|
/* 80314934 00311874 48 00 00 2C */ b lbl_80314960
|
|
lbl_80314938:
|
|
/* 80314938 00311878 88 07 00 00 */ lbz r0, 0(r7)
|
|
/* 8031493C 0031187C 28 00 00 A0 */ cmplwi r0, 0xa0
|
|
/* 80314940 00311880 41 82 00 0C */ beq lbl_8031494C
|
|
/* 80314944 00311884 28 00 00 98 */ cmplwi r0, 0x98
|
|
/* 80314948 00311888 40 82 00 24 */ bne lbl_8031496C
|
|
lbl_8031494C:
|
|
/* 8031494C 0031188C A0 07 00 01 */ lhz r0, 1(r7)
|
|
/* 80314950 00311890 7C A5 02 14 */ add r5, r5, r0
|
|
/* 80314954 00311894 7C 04 01 D6 */ mullw r0, r4, r0
|
|
/* 80314958 00311898 7C E7 02 14 */ add r7, r7, r0
|
|
/* 8031495C 0031189C 38 E7 00 03 */ addi r7, r7, 3
|
|
lbl_80314960:
|
|
/* 80314960 003118A0 7C 06 38 50 */ subf r0, r6, r7
|
|
/* 80314964 003118A4 7C 00 18 40 */ cmplw r0, r3
|
|
/* 80314968 003118A8 41 80 FF D0 */ blt lbl_80314938
|
|
lbl_8031496C:
|
|
/* 8031496C 003118AC 7C A3 2B 78 */ mr r3, r5
|
|
/* 80314970 003118B0 4E 80 00 20 */ blr
|
|
|
|
.global J3DShapeDraw_NS_addTexMtxIndexInDL
|
|
J3DShapeDraw_NS_addTexMtxIndexInDL:
|
|
/* 80314974 003118B4 94 21 FF C0 */ stwu r1, -0x40(r1)
|
|
/* 80314978 003118B8 7C 08 02 A6 */ mflr r0
|
|
/* 8031497C 003118BC 90 01 00 44 */ stw r0, 0x44(r1)
|
|
/* 80314980 003118C0 39 61 00 40 */ addi r11, r1, 0x40
|
|
/* 80314984 003118C4 48 04 D8 2D */ bl _savegpr_18
|
|
/* 80314988 003118C8 7C 79 1B 78 */ mr r25, r3
|
|
/* 8031498C 003118CC 7C 9A 23 78 */ mr r26, r4
|
|
/* 80314990 003118D0 7C BB 2B 78 */ mr r27, r5
|
|
/* 80314994 003118D4 7C DC 33 78 */ mr r28, r6
|
|
/* 80314998 003118D8 4B FF FF 8D */ bl J3DShapeDraw_NS_countVertex
|
|
/* 8031499C 003118DC 80 99 00 04 */ lwz r4, 4(r25)
|
|
/* 803149A0 003118E0 38 03 00 1F */ addi r0, r3, 0x1f
|
|
/* 803149A4 003118E4 7C 04 02 14 */ add r0, r4, r0
|
|
/* 803149A8 003118E8 54 1F 00 34 */ rlwinm r31, r0, 0, 0, 0x1a
|
|
/* 803149AC 003118EC 7F E3 FB 78 */ mr r3, r31
|
|
/* 803149B0 003118F0 38 80 00 20 */ li r4, 0x20
|
|
/* 803149B4 003118F4 4B FB A3 39 */ bl __nwa__FUli
|
|
/* 803149B8 003118F8 7C 7E 1B 78 */ mr r30, r3
|
|
/* 803149BC 003118FC 82 F9 00 08 */ lwz r23, 8(r25)
|
|
/* 803149C0 00311900 7E F6 BB 78 */ mr r22, r23
|
|
/* 803149C4 00311904 7F DD F3 78 */ mr r29, r30
|
|
/* 803149C8 00311908 7F 1B D0 50 */ subf r24, r27, r26
|
|
/* 803149CC 0031190C 48 00 00 8C */ b lbl_80314A58
|
|
lbl_803149D0:
|
|
/* 803149D0 00311910 88 16 00 00 */ lbz r0, 0(r22)
|
|
/* 803149D4 00311914 98 1D 00 00 */ stb r0, 0(r29)
|
|
/* 803149D8 00311918 28 00 00 A0 */ cmplwi r0, 0xa0
|
|
/* 803149DC 0031191C 3B BD 00 01 */ addi r29, r29, 1
|
|
/* 803149E0 00311920 41 82 00 0C */ beq lbl_803149EC
|
|
/* 803149E4 00311924 28 00 00 98 */ cmplwi r0, 0x98
|
|
/* 803149E8 00311928 40 82 00 80 */ bne lbl_80314A68
|
|
lbl_803149EC:
|
|
/* 803149EC 0031192C A2 B6 00 01 */ lhz r21, 1(r22)
|
|
/* 803149F0 00311930 B2 BD 00 00 */ sth r21, 0(r29)
|
|
/* 803149F4 00311934 3A 80 00 00 */ li r20, 0
|
|
/* 803149F8 00311938 3B BD 00 02 */ addi r29, r29, 2
|
|
/* 803149FC 0031193C 48 00 00 48 */ b lbl_80314A44
|
|
lbl_80314A00:
|
|
/* 80314A00 00311940 7C 1A A1 D6 */ mullw r0, r26, r20
|
|
/* 80314A04 00311944 7E 76 02 14 */ add r19, r22, r0
|
|
/* 80314A08 00311948 8E 53 00 03 */ lbzu r18, 3(r19)
|
|
/* 80314A0C 0031194C 7F A3 EB 78 */ mr r3, r29
|
|
/* 80314A10 00311950 7E 64 9B 78 */ mr r4, r19
|
|
/* 80314A14 00311954 7F 65 DB 78 */ mr r5, r27
|
|
/* 80314A18 00311958 4B CE EB 29 */ bl memcpy
|
|
/* 80314A1C 0031195C 7F BD DA 14 */ add r29, r29, r27
|
|
/* 80314A20 00311960 7C 1C 92 14 */ add r0, r28, r18
|
|
/* 80314A24 00311964 98 1D 00 00 */ stb r0, 0(r29)
|
|
/* 80314A28 00311968 3B BD 00 01 */ addi r29, r29, 1
|
|
/* 80314A2C 0031196C 7F A3 EB 78 */ mr r3, r29
|
|
/* 80314A30 00311970 7C 93 DA 14 */ add r4, r19, r27
|
|
/* 80314A34 00311974 7F 05 C3 78 */ mr r5, r24
|
|
/* 80314A38 00311978 4B CE EB 09 */ bl memcpy
|
|
/* 80314A3C 0031197C 7F BD C2 14 */ add r29, r29, r24
|
|
/* 80314A40 00311980 3A 94 00 01 */ addi r20, r20, 1
|
|
lbl_80314A44:
|
|
/* 80314A44 00311984 7C 14 A8 00 */ cmpw r20, r21
|
|
/* 80314A48 00311988 41 80 FF B8 */ blt lbl_80314A00
|
|
/* 80314A4C 0031198C 7C 1A A9 D6 */ mullw r0, r26, r21
|
|
/* 80314A50 00311990 7E D6 02 14 */ add r22, r22, r0
|
|
/* 80314A54 00311994 3A D6 00 03 */ addi r22, r22, 3
|
|
lbl_80314A58:
|
|
/* 80314A58 00311998 7C 77 B0 50 */ subf r3, r23, r22
|
|
/* 80314A5C 0031199C 80 19 00 04 */ lwz r0, 4(r25)
|
|
/* 80314A60 003119A0 7C 03 00 40 */ cmplw r3, r0
|
|
/* 80314A64 003119A4 41 80 FF 6C */ blt lbl_803149D0
|
|
lbl_80314A68:
|
|
/* 80314A68 003119A8 7C 7E E8 50 */ subf r3, r30, r29
|
|
/* 80314A6C 003119AC 38 03 00 1F */ addi r0, r3, 0x1f
|
|
/* 80314A70 003119B0 54 04 00 34 */ rlwinm r4, r0, 0, 0, 0x1a
|
|
/* 80314A74 003119B4 38 60 00 00 */ li r3, 0
|
|
/* 80314A78 003119B8 48 00 00 0C */ b lbl_80314A84
|
|
lbl_80314A7C:
|
|
/* 80314A7C 003119BC 98 7D 00 00 */ stb r3, 0(r29)
|
|
/* 80314A80 003119C0 3B BD 00 01 */ addi r29, r29, 1
|
|
lbl_80314A84:
|
|
/* 80314A84 003119C4 7C 1E E8 50 */ subf r0, r30, r29
|
|
/* 80314A88 003119C8 7C 00 F8 40 */ cmplw r0, r31
|
|
/* 80314A8C 003119CC 41 80 FF F0 */ blt lbl_80314A7C
|
|
/* 80314A90 003119D0 90 99 00 04 */ stw r4, 4(r25)
|
|
/* 80314A94 003119D4 93 D9 00 08 */ stw r30, 8(r25)
|
|
/* 80314A98 003119D8 7F C3 F3 78 */ mr r3, r30
|
|
/* 80314A9C 003119DC 80 99 00 04 */ lwz r4, 4(r25)
|
|
/* 80314AA0 003119E0 48 02 6B 3D */ bl DCStoreRange
|
|
/* 80314AA4 003119E4 39 61 00 40 */ addi r11, r1, 0x40
|
|
/* 80314AA8 003119E8 48 04 D7 55 */ bl _restgpr_18
|
|
/* 80314AAC 003119EC 80 01 00 44 */ lwz r0, 0x44(r1)
|
|
/* 80314AB0 003119F0 7C 08 03 A6 */ mtlr r0
|
|
/* 80314AB4 003119F4 38 21 00 40 */ addi r1, r1, 0x40
|
|
/* 80314AB8 003119F8 4E 80 00 20 */ blr
|
|
|
|
.global J3DShapeDraw
|
|
J3DShapeDraw:
|
|
/* 80314ABC 003119FC 3C C0 80 3D */ lis r6, lbl_803CDC68@ha
|
|
/* 80314AC0 00311A00 38 06 DC 68 */ addi r0, r6, lbl_803CDC68@l
|
|
/* 80314AC4 00311A04 90 03 00 00 */ stw r0, 0(r3)
|
|
/* 80314AC8 00311A08 90 83 00 08 */ stw r4, 8(r3)
|
|
/* 80314ACC 00311A0C 90 A3 00 04 */ stw r5, 4(r3)
|
|
/* 80314AD0 00311A10 4E 80 00 20 */ blr
|
|
|
|
.global J3DShapeDraw_NS_draw
|
|
J3DShapeDraw_NS_draw:
|
|
/* 80314AD4 00311A14 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80314AD8 00311A18 7C 08 02 A6 */ mflr r0
|
|
/* 80314ADC 00311A1C 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80314AE0 00311A20 7C 64 1B 78 */ mr r4, r3
|
|
/* 80314AE4 00311A24 80 63 00 08 */ lwz r3, 8(r3)
|
|
/* 80314AE8 00311A28 80 84 00 04 */ lwz r4, 4(r4)
|
|
/* 80314AEC 00311A2C 48 04 B4 05 */ bl GXCallDisplayList
|
|
/* 80314AF0 00311A30 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 80314AF4 00311A34 7C 08 03 A6 */ mtlr r0
|
|
/* 80314AF8 00311A38 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 80314AFC 00311A3C 4E 80 00 20 */ blr
|
|
/* 80314B00 00311A40 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 80314B04 00311A44 7C 08 02 A6 */ mflr r0
|
|
/* 80314B08 00311A48 90 01 00 14 */ stw r0, 0x14(r1)
|
|
/* 80314B0C 00311A4C 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 80314B10 00311A50 7C 7F 1B 79 */ or. r31, r3, r3
|
|
/* 80314B14 00311A54 41 82 00 1C */ beq lbl_80314B30
|
|
/* 80314B18 00311A58 3C A0 80 3D */ lis r5, lbl_803CDC68@ha
|
|
/* 80314B1C 00311A5C 38 05 DC 68 */ addi r0, r5, lbl_803CDC68@l
|
|
/* 80314B20 00311A60 90 1F 00 00 */ stw r0, 0(r31)
|
|
/* 80314B24 00311A64 7C 80 07 35 */ extsh. r0, r4
|
|
/* 80314B28 00311A68 40 81 00 08 */ ble lbl_80314B30
|
|
/* 80314B2C 00311A6C 4B FB A2 11 */ bl __dl__FPv
|
|
lbl_80314B30:
|
|
/* 80314B30 00311A70 7F E3 FB 78 */ mr r3, r31
|
|
/* 80314B34 00311A74 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 80314B38 00311A78 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 80314B3C 00311A7C 7C 08 03 A6 */ mtlr r0
|
|
/* 80314B40 00311A80 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 80314B44 00311A84 4E 80 00 20 */ blr
|
|
|