.include "macros.inc" .comm lbl_805A6620, 0x40, 4 .section .ctors, "wa" lbl_ctor: .4byte __sinit_CMatrix4f_cpp .section .text, "ax" .global MultiplyGetW__9CMatrix4fCFRC9CVector3f MultiplyGetW__9CMatrix4fCFRC9CVector3f: /* 80310720 0030D680 C0 24 00 04 */ lfs f1, 4(r4) /* 80310724 0030D684 C0 03 00 34 */ lfs f0, 0x34(r3) /* 80310728 0030D688 C0 44 00 00 */ lfs f2, 0(r4) /* 8031072C 0030D68C EC 01 00 32 */ fmuls f0, f1, f0 /* 80310730 0030D690 C0 23 00 30 */ lfs f1, 0x30(r3) /* 80310734 0030D694 C0 84 00 08 */ lfs f4, 8(r4) /* 80310738 0030D698 C0 63 00 38 */ lfs f3, 0x38(r3) /* 8031073C 0030D69C EC 02 00 7A */ fmadds f0, f2, f1, f0 /* 80310740 0030D6A0 C0 23 00 3C */ lfs f1, 0x3c(r3) /* 80310744 0030D6A4 EC 04 00 FA */ fmadds f0, f4, f3, f0 /* 80310748 0030D6A8 EC 21 00 2A */ fadds f1, f1, f0 /* 8031074C 0030D6AC 4E 80 00 20 */ blr .global MultiplyOneOverW__9CMatrix4fCFRC9CVector3f MultiplyOneOverW__9CMatrix4fCFRC9CVector3f: /* 80310750 0030D6B0 C0 E5 00 04 */ lfs f7, 4(r5) /* 80310754 0030D6B4 C0 04 00 34 */ lfs f0, 0x34(r4) /* 80310758 0030D6B8 C0 44 00 04 */ lfs f2, 4(r4) /* 8031075C 0030D6BC EC 07 00 32 */ fmuls f0, f7, f0 /* 80310760 0030D6C0 C1 65 00 00 */ lfs f11, 0(r5) /* 80310764 0030D6C4 C0 24 00 30 */ lfs f1, 0x30(r4) /* 80310768 0030D6C8 EC A7 00 B2 */ fmuls f5, f7, f2 /* 8031076C 0030D6CC C0 44 00 14 */ lfs f2, 0x14(r4) /* 80310770 0030D6D0 EC 0B 00 7A */ fmadds f0, f11, f1, f0 /* 80310774 0030D6D4 C1 85 00 08 */ lfs f12, 8(r5) /* 80310778 0030D6D8 EC 87 00 B2 */ fmuls f4, f7, f2 /* 8031077C 0030D6DC C0 24 00 38 */ lfs f1, 0x38(r4) /* 80310780 0030D6E0 C0 44 00 3C */ lfs f2, 0x3c(r4) /* 80310784 0030D6E4 EC 0C 00 7A */ fmadds f0, f12, f1, f0 /* 80310788 0030D6E8 C0 C4 00 00 */ lfs f6, 0(r4) /* 8031078C 0030D6EC C0 64 00 24 */ lfs f3, 0x24(r4) /* 80310790 0030D6F0 C0 22 C8 58 */ lfs f1, lbl_805AE578@sda21(r2) /* 80310794 0030D6F4 ED 0B 29 BA */ fmadds f8, f11, f6, f5 /* 80310798 0030D6F8 EC 02 00 2A */ fadds f0, f2, f0 /* 8031079C 0030D6FC C0 A4 00 10 */ lfs f5, 0x10(r4) /* 803107A0 0030D700 EC 47 00 F2 */ fmuls f2, f7, f3 /* 803107A4 0030D704 C1 24 00 08 */ lfs f9, 8(r4) /* 803107A8 0030D708 ED A1 00 24 */ fdivs f13, f1, f0 /* 803107AC 0030D70C C0 04 00 20 */ lfs f0, 0x20(r4) /* 803107B0 0030D710 C0 C4 00 18 */ lfs f6, 0x18(r4) /* 803107B4 0030D714 C1 44 00 0C */ lfs f10, 0xc(r4) /* 803107B8 0030D718 C0 24 00 28 */ lfs f1, 0x28(r4) /* 803107BC 0030D71C C0 E4 00 1C */ lfs f7, 0x1c(r4) /* 803107C0 0030D720 EC 8B 21 7A */ fmadds f4, f11, f5, f4 /* 803107C4 0030D724 C0 64 00 2C */ lfs f3, 0x2c(r4) /* 803107C8 0030D728 EC AC 42 7A */ fmadds f5, f12, f9, f8 /* 803107CC 0030D72C EC 0B 10 3A */ fmadds f0, f11, f0, f2 /* 803107D0 0030D730 EC 4C 21 BA */ fmadds f2, f12, f6, f4 /* 803107D4 0030D734 EC 8A 28 2A */ fadds f4, f10, f5 /* 803107D8 0030D738 EC 0C 00 7A */ fmadds f0, f12, f1, f0 /* 803107DC 0030D73C EC 27 10 2A */ fadds f1, f7, f2 /* 803107E0 0030D740 EC 84 03 72 */ fmuls f4, f4, f13 /* 803107E4 0030D744 EC 03 00 2A */ fadds f0, f3, f0 /* 803107E8 0030D748 EC 21 03 72 */ fmuls f1, f1, f13 /* 803107EC 0030D74C D0 83 00 00 */ stfs f4, 0(r3) /* 803107F0 0030D750 EC 00 03 72 */ fmuls f0, f0, f13 /* 803107F4 0030D754 D0 23 00 04 */ stfs f1, 4(r3) /* 803107F8 0030D758 D0 03 00 08 */ stfs f0, 8(r3) /* 803107FC 0030D75C 4E 80 00 20 */ blr .global __ml__9CMatrix4fCFRC9CVector3f __ml__9CMatrix4fCFRC9CVector3f: /* 80310800 0030D760 C0 65 00 04 */ lfs f3, 4(r5) /* 80310804 0030D764 C0 04 00 04 */ lfs f0, 4(r4) /* 80310808 0030D768 C0 44 00 14 */ lfs f2, 0x14(r4) /* 8031080C 0030D76C EC 03 00 32 */ fmuls f0, f3, f0 /* 80310810 0030D770 C0 C5 00 00 */ lfs f6, 0(r5) /* 80310814 0030D774 C0 24 00 00 */ lfs f1, 0(r4) /* 80310818 0030D778 EC 83 00 B2 */ fmuls f4, f3, f2 /* 8031081C 0030D77C C0 44 00 24 */ lfs f2, 0x24(r4) /* 80310820 0030D780 C0 A4 00 10 */ lfs f5, 0x10(r4) /* 80310824 0030D784 EC 06 00 7A */ fmadds f0, f6, f1, f0 /* 80310828 0030D788 C0 E5 00 08 */ lfs f7, 8(r5) /* 8031082C 0030D78C C0 24 00 08 */ lfs f1, 8(r4) /* 80310830 0030D790 EC 43 00 B2 */ fmuls f2, f3, f2 /* 80310834 0030D794 C0 64 00 20 */ lfs f3, 0x20(r4) /* 80310838 0030D798 EC 86 21 7A */ fmadds f4, f6, f5, f4 /* 8031083C 0030D79C C0 A4 00 18 */ lfs f5, 0x18(r4) /* 80310840 0030D7A0 EC 07 00 7A */ fmadds f0, f7, f1, f0 /* 80310844 0030D7A4 C0 24 00 0C */ lfs f1, 0xc(r4) /* 80310848 0030D7A8 EC 46 10 FA */ fmadds f2, f6, f3, f2 /* 8031084C 0030D7AC C0 64 00 28 */ lfs f3, 0x28(r4) /* 80310850 0030D7B0 EC A7 21 7A */ fmadds f5, f7, f5, f4 /* 80310854 0030D7B4 C0 C4 00 1C */ lfs f6, 0x1c(r4) /* 80310858 0030D7B8 EC 01 00 2A */ fadds f0, f1, f0 /* 8031085C 0030D7BC C0 84 00 2C */ lfs f4, 0x2c(r4) /* 80310860 0030D7C0 EC 27 10 FA */ fmadds f1, f7, f3, f2 /* 80310864 0030D7C4 EC 46 28 2A */ fadds f2, f6, f5 /* 80310868 0030D7C8 D0 03 00 00 */ stfs f0, 0(r3) /* 8031086C 0030D7CC EC 04 08 2A */ fadds f0, f4, f1 /* 80310870 0030D7D0 D0 43 00 04 */ stfs f2, 4(r3) /* 80310874 0030D7D4 D0 03 00 08 */ stfs f0, 8(r3) /* 80310878 0030D7D8 4E 80 00 20 */ blr .global __ct__9CMatrix4fFffffffffffffffff __ct__9CMatrix4fFffffffffffffffff: /* 8031087C 0030D7DC D0 23 00 00 */ stfs f1, 0(r3) /* 80310880 0030D7E0 C1 61 00 08 */ lfs f11, 8(r1) /* 80310884 0030D7E4 D0 43 00 04 */ stfs f2, 4(r3) /* 80310888 0030D7E8 C1 41 00 0C */ lfs f10, 0xc(r1) /* 8031088C 0030D7EC D0 63 00 08 */ stfs f3, 8(r3) /* 80310890 0030D7F0 C1 21 00 10 */ lfs f9, 0x10(r1) /* 80310894 0030D7F4 D0 83 00 0C */ stfs f4, 0xc(r3) /* 80310898 0030D7F8 C0 81 00 14 */ lfs f4, 0x14(r1) /* 8031089C 0030D7FC D0 A3 00 10 */ stfs f5, 0x10(r3) /* 803108A0 0030D800 C0 61 00 18 */ lfs f3, 0x18(r1) /* 803108A4 0030D804 D0 C3 00 14 */ stfs f6, 0x14(r3) /* 803108A8 0030D808 C0 41 00 1C */ lfs f2, 0x1c(r1) /* 803108AC 0030D80C D0 E3 00 18 */ stfs f7, 0x18(r3) /* 803108B0 0030D810 C0 21 00 20 */ lfs f1, 0x20(r1) /* 803108B4 0030D814 D1 03 00 1C */ stfs f8, 0x1c(r3) /* 803108B8 0030D818 C0 01 00 24 */ lfs f0, 0x24(r1) /* 803108BC 0030D81C D1 63 00 20 */ stfs f11, 0x20(r3) /* 803108C0 0030D820 D1 43 00 24 */ stfs f10, 0x24(r3) /* 803108C4 0030D824 D1 23 00 28 */ stfs f9, 0x28(r3) /* 803108C8 0030D828 D0 83 00 2C */ stfs f4, 0x2c(r3) /* 803108CC 0030D82C D0 63 00 30 */ stfs f3, 0x30(r3) /* 803108D0 0030D830 D0 43 00 34 */ stfs f2, 0x34(r3) /* 803108D4 0030D834 D0 23 00 38 */ stfs f1, 0x38(r3) /* 803108D8 0030D838 D0 03 00 3C */ stfs f0, 0x3c(r3) /* 803108DC 0030D83C 4E 80 00 20 */ blr .global __sinit_CMatrix4f_cpp __sinit_CMatrix4f_cpp: /* 803108E0 0030D840 94 21 FF 70 */ stwu r1, -0x90(r1) /* 803108E4 0030D844 7C 08 02 A6 */ mflr r0 /* 803108E8 0030D848 90 01 00 94 */ stw r0, 0x94(r1) /* 803108EC 0030D84C DB E1 00 80 */ stfd f31, 0x80(r1) /* 803108F0 0030D850 F3 E1 00 88 */ psq_st f31, 136(r1), 0, qr0 /* 803108F4 0030D854 DB C1 00 70 */ stfd f30, 0x70(r1) /* 803108F8 0030D858 F3 C1 00 78 */ psq_st f30, 120(r1), 0, qr0 /* 803108FC 0030D85C C0 42 C8 5C */ lfs f2, lbl_805AE57C@sda21(r2) /* 80310900 0030D860 38 61 00 28 */ addi r3, r1, 0x28 /* 80310904 0030D864 C0 22 C8 58 */ lfs f1, lbl_805AE578@sda21(r2) /* 80310908 0030D868 D0 41 00 08 */ stfs f2, 8(r1) /* 8031090C 0030D86C FC 60 10 90 */ fmr f3, f2 /* 80310910 0030D870 FC 80 10 90 */ fmr f4, f2 /* 80310914 0030D874 D0 41 00 0C */ stfs f2, 0xc(r1) /* 80310918 0030D878 FC A0 10 90 */ fmr f5, f2 /* 8031091C 0030D87C FC C0 08 90 */ fmr f6, f1 /* 80310920 0030D880 D0 21 00 10 */ stfs f1, 0x10(r1) /* 80310924 0030D884 FC E0 10 90 */ fmr f7, f2 /* 80310928 0030D888 FD 00 10 90 */ fmr f8, f2 /* 8031092C 0030D88C D0 41 00 14 */ stfs f2, 0x14(r1) /* 80310930 0030D890 D0 41 00 18 */ stfs f2, 0x18(r1) /* 80310934 0030D894 D0 41 00 1C */ stfs f2, 0x1c(r1) /* 80310938 0030D898 D0 41 00 20 */ stfs f2, 0x20(r1) /* 8031093C 0030D89C D0 21 00 24 */ stfs f1, 0x24(r1) /* 80310940 0030D8A0 4B FF FF 3D */ bl __ct__9CMatrix4fFffffffffffffffff /* 80310944 0030D8A4 C3 C1 00 28 */ lfs f30, 0x28(r1) /* 80310948 0030D8A8 3C 60 80 5A */ lis r3, lbl_805A6620@ha /* 8031094C 0030D8AC C3 E1 00 2C */ lfs f31, 0x2c(r1) /* 80310950 0030D8B0 D7 C3 66 20 */ stfsu f30, lbl_805A6620@l(r3) /* 80310954 0030D8B4 C1 A1 00 30 */ lfs f13, 0x30(r1) /* 80310958 0030D8B8 C1 81 00 34 */ lfs f12, 0x34(r1) /* 8031095C 0030D8BC C1 61 00 38 */ lfs f11, 0x38(r1) /* 80310960 0030D8C0 C1 41 00 3C */ lfs f10, 0x3c(r1) /* 80310964 0030D8C4 C1 21 00 40 */ lfs f9, 0x40(r1) /* 80310968 0030D8C8 C1 01 00 44 */ lfs f8, 0x44(r1) /* 8031096C 0030D8CC C0 E1 00 48 */ lfs f7, 0x48(r1) /* 80310970 0030D8D0 C0 C1 00 4C */ lfs f6, 0x4c(r1) /* 80310974 0030D8D4 C0 A1 00 50 */ lfs f5, 0x50(r1) /* 80310978 0030D8D8 C0 81 00 54 */ lfs f4, 0x54(r1) /* 8031097C 0030D8DC C0 61 00 58 */ lfs f3, 0x58(r1) /* 80310980 0030D8E0 C0 41 00 5C */ lfs f2, 0x5c(r1) /* 80310984 0030D8E4 C0 21 00 60 */ lfs f1, 0x60(r1) /* 80310988 0030D8E8 C0 01 00 64 */ lfs f0, 0x64(r1) /* 8031098C 0030D8EC D3 E3 00 04 */ stfs f31, 4(r3) /* 80310990 0030D8F0 D1 A3 00 08 */ stfs f13, 8(r3) /* 80310994 0030D8F4 D1 83 00 0C */ stfs f12, 0xc(r3) /* 80310998 0030D8F8 D1 63 00 10 */ stfs f11, 0x10(r3) /* 8031099C 0030D8FC D1 43 00 14 */ stfs f10, 0x14(r3) /* 803109A0 0030D900 D1 23 00 18 */ stfs f9, 0x18(r3) /* 803109A4 0030D904 D1 03 00 1C */ stfs f8, 0x1c(r3) /* 803109A8 0030D908 D0 E3 00 20 */ stfs f7, 0x20(r3) /* 803109AC 0030D90C D0 C3 00 24 */ stfs f6, 0x24(r3) /* 803109B0 0030D910 D0 A3 00 28 */ stfs f5, 0x28(r3) /* 803109B4 0030D914 D0 83 00 2C */ stfs f4, 0x2c(r3) /* 803109B8 0030D918 D0 63 00 30 */ stfs f3, 0x30(r3) /* 803109BC 0030D91C D0 43 00 34 */ stfs f2, 0x34(r3) /* 803109C0 0030D920 D0 23 00 38 */ stfs f1, 0x38(r3) /* 803109C4 0030D924 D0 03 00 3C */ stfs f0, 0x3c(r3) /* 803109C8 0030D928 E3 E1 00 88 */ psq_l f31, 136(r1), 0, qr0 /* 803109CC 0030D92C CB E1 00 80 */ lfd f31, 0x80(r1) /* 803109D0 0030D930 E3 C1 00 78 */ psq_l f30, 120(r1), 0, qr0 /* 803109D4 0030D934 80 01 00 94 */ lwz r0, 0x94(r1) /* 803109D8 0030D938 CB C1 00 70 */ lfd f30, 0x70(r1) /* 803109DC 0030D93C 7C 08 03 A6 */ mtlr r0 /* 803109E0 0030D940 38 21 00 90 */ addi r1, r1, 0x90 /* 803109E4 0030D944 4E 80 00 20 */ blr .section .sdata2, "a" .balign 8 .global lbl_805AE578 lbl_805AE578: # ROM: 0x3FAE18 .float 1.0 .global lbl_805AE57C lbl_805AE57C: # ROM: 0x3FAE1C .4byte 0