mirror of https://github.com/zeldaret/tp.git
251 lines
12 KiB
ArmAsm
251 lines
12 KiB
ArmAsm
.include "macros.inc"
|
|
|
|
.section .text, "ax" # 8035c6e4
|
|
|
|
|
|
.global __GXSetDirtyState
|
|
__GXSetDirtyState:
|
|
/* 8035C6E4 00359624 7C 08 02 A6 */ mflr r0
|
|
/* 8035C6E8 00359628 90 01 00 04 */ stw r0, 4(r1)
|
|
/* 8035C6EC 0035962C 94 21 FF F0 */ stwu r1, -0x10(r1)
|
|
/* 8035C6F0 00359630 93 E1 00 0C */ stw r31, 0xc(r1)
|
|
/* 8035C6F4 00359634 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C6F8 00359638 83 E3 05 AC */ lwz r31, 0x5ac(r3)
|
|
/* 8035C6FC 0035963C 57 E0 07 FF */ clrlwi. r0, r31, 0x1f
|
|
/* 8035C700 00359640 41 82 00 08 */ beq lbl_8035C708
|
|
/* 8035C704 00359644 48 00 20 ED */ bl __GXSetSUTexRegs
|
|
lbl_8035C708:
|
|
/* 8035C708 00359648 57 E0 07 BD */ rlwinm. r0, r31, 0, 0x1e, 0x1e
|
|
/* 8035C70C 0035964C 41 82 00 08 */ beq lbl_8035C714
|
|
/* 8035C710 00359650 48 00 2A 31 */ bl __GXUpdateBPMask
|
|
lbl_8035C714:
|
|
/* 8035C714 00359654 57 E0 07 7B */ rlwinm. r0, r31, 0, 0x1d, 0x1d
|
|
/* 8035C718 00359658 41 82 00 08 */ beq lbl_8035C720
|
|
/* 8035C71C 0035965C 48 00 02 C5 */ bl __GXSetGenMode
|
|
lbl_8035C720:
|
|
/* 8035C720 00359660 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c
|
|
/* 8035C724 00359664 41 82 00 08 */ beq lbl_8035C72C
|
|
/* 8035C728 00359668 4B FF EC 85 */ bl __GXSetVCD
|
|
lbl_8035C72C:
|
|
/* 8035C72C 0035966C 57 E0 06 F7 */ rlwinm. r0, r31, 0, 0x1b, 0x1b
|
|
/* 8035C730 00359670 41 82 00 08 */ beq lbl_8035C738
|
|
/* 8035C734 00359674 4B FF F3 6D */ bl __GXSetVAT
|
|
lbl_8035C738:
|
|
/* 8035C738 00359678 57 E0 06 F9 */ rlwinm. r0, r31, 0, 0x1b, 0x1c
|
|
/* 8035C73C 0035967C 41 82 00 08 */ beq lbl_8035C744
|
|
/* 8035C740 00359680 4B FF ED 29 */ bl __GXCalculateVLim
|
|
lbl_8035C744:
|
|
/* 8035C744 00359684 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C748 00359688 38 00 00 00 */ li r0, 0
|
|
/* 8035C74C 0035968C 90 03 05 AC */ stw r0, 0x5ac(r3)
|
|
/* 8035C750 00359690 80 01 00 14 */ lwz r0, 0x14(r1)
|
|
/* 8035C754 00359694 83 E1 00 0C */ lwz r31, 0xc(r1)
|
|
/* 8035C758 00359698 38 21 00 10 */ addi r1, r1, 0x10
|
|
/* 8035C75C 0035969C 7C 08 03 A6 */ mtlr r0
|
|
/* 8035C760 003596A0 4E 80 00 20 */ blr
|
|
|
|
.global GXBegin
|
|
GXBegin:
|
|
/* 8035C764 003596A4 7C 08 02 A6 */ mflr r0
|
|
/* 8035C768 003596A8 90 01 00 04 */ stw r0, 4(r1)
|
|
/* 8035C76C 003596AC 94 21 FF D8 */ stwu r1, -0x28(r1)
|
|
/* 8035C770 003596B0 93 E1 00 24 */ stw r31, 0x24(r1)
|
|
/* 8035C774 003596B4 93 C1 00 20 */ stw r30, 0x20(r1)
|
|
/* 8035C778 003596B8 3B C5 00 00 */ addi r30, r5, 0
|
|
/* 8035C77C 003596BC 93 A1 00 1C */ stw r29, 0x1c(r1)
|
|
/* 8035C780 003596C0 3B A4 00 00 */ addi r29, r4, 0
|
|
/* 8035C784 003596C4 93 81 00 18 */ stw r28, 0x18(r1)
|
|
/* 8035C788 003596C8 3B 83 00 00 */ addi r28, r3, 0
|
|
/* 8035C78C 003596CC 80 C2 CB 80 */ lwz r6, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C790 003596D0 83 E6 05 AC */ lwz r31, 0x5ac(r6)
|
|
/* 8035C794 003596D4 28 1F 00 00 */ cmplwi r31, 0
|
|
/* 8035C798 003596D8 41 82 00 58 */ beq lbl_8035C7F0
|
|
/* 8035C79C 003596DC 57 E0 07 FF */ clrlwi. r0, r31, 0x1f
|
|
/* 8035C7A0 003596E0 41 82 00 08 */ beq lbl_8035C7A8
|
|
/* 8035C7A4 003596E4 48 00 20 4D */ bl __GXSetSUTexRegs
|
|
lbl_8035C7A8:
|
|
/* 8035C7A8 003596E8 57 E0 07 BD */ rlwinm. r0, r31, 0, 0x1e, 0x1e
|
|
/* 8035C7AC 003596EC 41 82 00 08 */ beq lbl_8035C7B4
|
|
/* 8035C7B0 003596F0 48 00 29 91 */ bl __GXUpdateBPMask
|
|
lbl_8035C7B4:
|
|
/* 8035C7B4 003596F4 57 E0 07 7B */ rlwinm. r0, r31, 0, 0x1d, 0x1d
|
|
/* 8035C7B8 003596F8 41 82 00 08 */ beq lbl_8035C7C0
|
|
/* 8035C7BC 003596FC 48 00 02 25 */ bl __GXSetGenMode
|
|
lbl_8035C7C0:
|
|
/* 8035C7C0 00359700 57 E0 07 39 */ rlwinm. r0, r31, 0, 0x1c, 0x1c
|
|
/* 8035C7C4 00359704 41 82 00 08 */ beq lbl_8035C7CC
|
|
/* 8035C7C8 00359708 4B FF EB E5 */ bl __GXSetVCD
|
|
lbl_8035C7CC:
|
|
/* 8035C7CC 0035970C 57 E0 06 F7 */ rlwinm. r0, r31, 0, 0x1b, 0x1b
|
|
/* 8035C7D0 00359710 41 82 00 08 */ beq lbl_8035C7D8
|
|
/* 8035C7D4 00359714 4B FF F2 CD */ bl __GXSetVAT
|
|
lbl_8035C7D8:
|
|
/* 8035C7D8 00359718 57 E0 06 F9 */ rlwinm. r0, r31, 0, 0x1b, 0x1c
|
|
/* 8035C7DC 0035971C 41 82 00 08 */ beq lbl_8035C7E4
|
|
/* 8035C7E0 00359720 4B FF EC 89 */ bl __GXCalculateVLim
|
|
lbl_8035C7E4:
|
|
/* 8035C7E4 00359724 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C7E8 00359728 38 00 00 00 */ li r0, 0
|
|
/* 8035C7EC 0035972C 90 03 05 AC */ stw r0, 0x5ac(r3)
|
|
lbl_8035C7F0:
|
|
/* 8035C7F0 00359730 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C7F4 00359734 80 03 00 00 */ lwz r0, 0(r3)
|
|
/* 8035C7F8 00359738 28 00 00 00 */ cmplwi r0, 0
|
|
/* 8035C7FC 0035973C 40 82 00 08 */ bne lbl_8035C804
|
|
/* 8035C800 00359740 48 00 00 35 */ bl __GXSendFlushPrim
|
|
lbl_8035C804:
|
|
/* 8035C804 00359744 7F A0 E3 78 */ or r0, r29, r28
|
|
/* 8035C808 00359748 3C 60 CC 01 */ lis r3, 0xCC008000@ha
|
|
/* 8035C80C 0035974C 98 03 80 00 */ stb r0, 0xCC008000@l(r3)
|
|
/* 8035C810 00359750 B3 C3 80 00 */ sth r30, -0x8000(r3)
|
|
/* 8035C814 00359754 80 01 00 2C */ lwz r0, 0x2c(r1)
|
|
/* 8035C818 00359758 83 E1 00 24 */ lwz r31, 0x24(r1)
|
|
/* 8035C81C 0035975C 83 C1 00 20 */ lwz r30, 0x20(r1)
|
|
/* 8035C820 00359760 83 A1 00 1C */ lwz r29, 0x1c(r1)
|
|
/* 8035C824 00359764 83 81 00 18 */ lwz r28, 0x18(r1)
|
|
/* 8035C828 00359768 38 21 00 28 */ addi r1, r1, 0x28
|
|
/* 8035C82C 0035976C 7C 08 03 A6 */ mtlr r0
|
|
/* 8035C830 00359770 4E 80 00 20 */ blr
|
|
|
|
.global __GXSendFlushPrim
|
|
__GXSendFlushPrim:
|
|
/* 8035C834 00359774 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C838 00359778 38 00 00 98 */ li r0, 0x98
|
|
/* 8035C83C 0035977C 3C A0 CC 01 */ lis r5, 0xCC008000@ha
|
|
/* 8035C840 00359780 A0 C3 00 04 */ lhz r6, 4(r3)
|
|
/* 8035C844 00359784 38 80 00 00 */ li r4, 0
|
|
/* 8035C848 00359788 A0 63 00 06 */ lhz r3, 6(r3)
|
|
/* 8035C84C 0035978C 7C E6 19 D6 */ mullw r7, r6, r3
|
|
/* 8035C850 00359790 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
|
|
/* 8035C854 00359794 B0 C5 80 00 */ sth r6, -0x8000(r5)
|
|
/* 8035C858 00359798 38 67 00 03 */ addi r3, r7, 3
|
|
/* 8035C85C 0035979C 28 07 00 00 */ cmplwi r7, 0
|
|
/* 8035C860 003597A0 54 63 F0 BE */ srwi r3, r3, 2
|
|
/* 8035C864 003597A4 40 81 00 48 */ ble lbl_8035C8AC
|
|
/* 8035C868 003597A8 54 60 E8 FF */ rlwinm. r0, r3, 0x1d, 3, 0x1f
|
|
/* 8035C86C 003597AC 7C 09 03 A6 */ mtctr r0
|
|
/* 8035C870 003597B0 41 82 00 30 */ beq lbl_8035C8A0
|
|
lbl_8035C874:
|
|
/* 8035C874 003597B4 90 85 80 00 */ stw r4, -0x8000(r5)
|
|
/* 8035C878 003597B8 90 85 80 00 */ stw r4, -0x8000(r5)
|
|
/* 8035C87C 003597BC 90 85 80 00 */ stw r4, -0x8000(r5)
|
|
/* 8035C880 003597C0 90 85 80 00 */ stw r4, -0x8000(r5)
|
|
/* 8035C884 003597C4 90 85 80 00 */ stw r4, -0x8000(r5)
|
|
/* 8035C888 003597C8 90 85 80 00 */ stw r4, -0x8000(r5)
|
|
/* 8035C88C 003597CC 90 85 80 00 */ stw r4, -0x8000(r5)
|
|
/* 8035C890 003597D0 90 85 80 00 */ stw r4, -0x8000(r5)
|
|
/* 8035C894 003597D4 42 00 FF E0 */ bdnz lbl_8035C874
|
|
/* 8035C898 003597D8 70 63 00 07 */ andi. r3, r3, 7
|
|
/* 8035C89C 003597DC 41 82 00 10 */ beq lbl_8035C8AC
|
|
lbl_8035C8A0:
|
|
/* 8035C8A0 003597E0 7C 69 03 A6 */ mtctr r3
|
|
lbl_8035C8A4:
|
|
/* 8035C8A4 003597E4 90 85 80 00 */ stw r4, -0x8000(r5)
|
|
/* 8035C8A8 003597E8 42 00 FF FC */ bdnz lbl_8035C8A4
|
|
lbl_8035C8AC:
|
|
/* 8035C8AC 003597EC 80 62 CB 80 */ lwz r3, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C8B0 003597F0 38 00 00 01 */ li r0, 1
|
|
/* 8035C8B4 003597F4 B0 03 00 02 */ sth r0, 2(r3)
|
|
/* 8035C8B8 003597F8 4E 80 00 20 */ blr
|
|
|
|
.global GXSetLineWidth
|
|
GXSetLineWidth:
|
|
/* 8035C8BC 003597FC 80 E2 CB 80 */ lwz r7, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C8C0 00359800 54 60 06 3E */ clrlwi r0, r3, 0x18
|
|
/* 8035C8C4 00359804 38 60 00 61 */ li r3, 0x61
|
|
/* 8035C8C8 00359808 80 C7 00 7C */ lwz r6, 0x7c(r7)
|
|
/* 8035C8CC 0035980C 50 06 06 3E */ rlwimi r6, r0, 0, 0x18, 0x1f
|
|
/* 8035C8D0 00359810 3C A0 CC 01 */ lis r5, 0xCC008000@ha
|
|
/* 8035C8D4 00359814 90 C7 00 7C */ stw r6, 0x7c(r7)
|
|
/* 8035C8D8 00359818 38 00 00 00 */ li r0, 0
|
|
/* 8035C8DC 0035981C 80 C7 00 7C */ lwz r6, 0x7c(r7)
|
|
/* 8035C8E0 00359820 50 86 83 5E */ rlwimi r6, r4, 0x10, 0xd, 0xf
|
|
/* 8035C8E4 00359824 90 C7 00 7C */ stw r6, 0x7c(r7)
|
|
/* 8035C8E8 00359828 98 65 80 00 */ stb r3, 0xCC008000@l(r5)
|
|
/* 8035C8EC 0035982C 80 67 00 7C */ lwz r3, 0x7c(r7)
|
|
/* 8035C8F0 00359830 90 65 80 00 */ stw r3, -0x8000(r5)
|
|
/* 8035C8F4 00359834 B0 07 00 02 */ sth r0, 2(r7)
|
|
/* 8035C8F8 00359838 4E 80 00 20 */ blr
|
|
|
|
.global GXSetPointSize
|
|
GXSetPointSize:
|
|
/* 8035C8FC 0035983C 80 E2 CB 80 */ lwz r7, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C900 00359840 54 60 06 3E */ clrlwi r0, r3, 0x18
|
|
/* 8035C904 00359844 38 60 00 61 */ li r3, 0x61
|
|
/* 8035C908 00359848 80 C7 00 7C */ lwz r6, 0x7c(r7)
|
|
/* 8035C90C 0035984C 50 06 44 2E */ rlwimi r6, r0, 8, 0x10, 0x17
|
|
/* 8035C910 00359850 3C A0 CC 01 */ lis r5, 0xCC008000@ha
|
|
/* 8035C914 00359854 90 C7 00 7C */ stw r6, 0x7c(r7)
|
|
/* 8035C918 00359858 38 00 00 00 */ li r0, 0
|
|
/* 8035C91C 0035985C 80 C7 00 7C */ lwz r6, 0x7c(r7)
|
|
/* 8035C920 00359860 50 86 9A 98 */ rlwimi r6, r4, 0x13, 0xa, 0xc
|
|
/* 8035C924 00359864 90 C7 00 7C */ stw r6, 0x7c(r7)
|
|
/* 8035C928 00359868 98 65 80 00 */ stb r3, 0xCC008000@l(r5)
|
|
/* 8035C92C 0035986C 80 67 00 7C */ lwz r3, 0x7c(r7)
|
|
/* 8035C930 00359870 90 65 80 00 */ stw r3, -0x8000(r5)
|
|
/* 8035C934 00359874 B0 07 00 02 */ sth r0, 2(r7)
|
|
/* 8035C938 00359878 4E 80 00 20 */ blr
|
|
|
|
.global GXEnableTexOffsets
|
|
GXEnableTexOffsets:
|
|
/* 8035C93C 0035987C 80 E2 CB 80 */ lwz r7, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C940 00359880 54 63 10 3A */ slwi r3, r3, 2
|
|
/* 8035C944 00359884 54 A0 06 3E */ clrlwi r0, r5, 0x18
|
|
/* 8035C948 00359888 7C C7 1A 14 */ add r6, r7, r3
|
|
/* 8035C94C 0035988C 80 66 00 B8 */ lwz r3, 0xb8(r6)
|
|
/* 8035C950 00359890 50 83 93 5A */ rlwimi r3, r4, 0x12, 0xd, 0xd
|
|
/* 8035C954 00359894 3C 80 CC 01 */ lis r4, 0xCC008000@ha
|
|
/* 8035C958 00359898 90 66 00 B8 */ stw r3, 0xb8(r6)
|
|
/* 8035C95C 0035989C 38 60 00 61 */ li r3, 0x61
|
|
/* 8035C960 003598A0 80 A6 00 B8 */ lwz r5, 0xb8(r6)
|
|
/* 8035C964 003598A4 50 05 9B 18 */ rlwimi r5, r0, 0x13, 0xc, 0xc
|
|
/* 8035C968 003598A8 38 00 00 00 */ li r0, 0
|
|
/* 8035C96C 003598AC 90 A6 00 B8 */ stw r5, 0xb8(r6)
|
|
/* 8035C970 003598B0 98 64 80 00 */ stb r3, 0xCC008000@l(r4)
|
|
/* 8035C974 003598B4 80 66 00 B8 */ lwz r3, 0xb8(r6)
|
|
/* 8035C978 003598B8 90 64 80 00 */ stw r3, -0x8000(r4)
|
|
/* 8035C97C 003598BC B0 07 00 02 */ sth r0, 2(r7)
|
|
/* 8035C980 003598C0 4E 80 00 20 */ blr
|
|
|
|
.global GXSetCullMode
|
|
GXSetCullMode:
|
|
/* 8035C984 003598C4 80 82 CB 80 */ lwz r4, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C988 003598C8 54 65 FF FE */ rlwinm r5, r3, 0x1f, 0x1f, 0x1f
|
|
/* 8035C98C 003598CC 50 65 0F BC */ rlwimi r5, r3, 1, 0x1e, 0x1e
|
|
/* 8035C990 003598D0 80 04 02 04 */ lwz r0, 0x204(r4)
|
|
/* 8035C994 003598D4 50 A0 74 22 */ rlwimi r0, r5, 0xe, 0x10, 0x11
|
|
/* 8035C998 003598D8 90 04 02 04 */ stw r0, 0x204(r4)
|
|
/* 8035C99C 003598DC 80 04 05 AC */ lwz r0, 0x5ac(r4)
|
|
/* 8035C9A0 003598E0 60 00 00 04 */ ori r0, r0, 4
|
|
/* 8035C9A4 003598E4 90 04 05 AC */ stw r0, 0x5ac(r4)
|
|
/* 8035C9A8 003598E8 4E 80 00 20 */ blr
|
|
|
|
.global GXSetCoPlanar
|
|
GXSetCoPlanar:
|
|
/* 8035C9AC 003598EC 80 C2 CB 80 */ lwz r6, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C9B0 003598F0 38 80 00 61 */ li r4, 0x61
|
|
/* 8035C9B4 003598F4 3C 00 FE 08 */ lis r0, 0xfe08
|
|
/* 8035C9B8 003598F8 80 A6 02 04 */ lwz r5, 0x204(r6)
|
|
/* 8035C9BC 003598FC 50 65 9B 18 */ rlwimi r5, r3, 0x13, 0xc, 0xc
|
|
/* 8035C9C0 00359900 3C 60 CC 01 */ lis r3, 0xCC008000@ha
|
|
/* 8035C9C4 00359904 90 A6 02 04 */ stw r5, 0x204(r6)
|
|
/* 8035C9C8 00359908 98 83 80 00 */ stb r4, 0xCC008000@l(r3)
|
|
/* 8035C9CC 0035990C 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
/* 8035C9D0 00359910 98 83 80 00 */ stb r4, -0x8000(r3)
|
|
/* 8035C9D4 00359914 80 06 02 04 */ lwz r0, 0x204(r6)
|
|
/* 8035C9D8 00359918 90 03 80 00 */ stw r0, -0x8000(r3)
|
|
/* 8035C9DC 0035991C 4E 80 00 20 */ blr
|
|
|
|
.global __GXSetGenMode
|
|
__GXSetGenMode:
|
|
/* 8035C9E0 00359920 38 00 00 61 */ li r0, 0x61
|
|
/* 8035C9E4 00359924 80 82 CB 80 */ lwz r4, lbl_80456580-_SDA2_BASE_(r2)
|
|
/* 8035C9E8 00359928 3C A0 CC 01 */ lis r5, 0xCC008000@ha
|
|
/* 8035C9EC 0035992C 98 05 80 00 */ stb r0, 0xCC008000@l(r5)
|
|
/* 8035C9F0 00359930 38 00 00 00 */ li r0, 0
|
|
/* 8035C9F4 00359934 80 64 02 04 */ lwz r3, 0x204(r4)
|
|
/* 8035C9F8 00359938 90 65 80 00 */ stw r3, -0x8000(r5)
|
|
/* 8035C9FC 0035993C B0 04 00 02 */ sth r0, 2(r4)
|
|
/* 8035CA00 00359940 4E 80 00 20 */ blr
|
|
|