prime/asm/Kyoto/Math/CMatrix3f.s

519 lines
26 KiB
ArmAsm
Raw Normal View History

2022-04-16 07:50:32 +00:00
.include "macros.inc"
2022-10-05 16:28:37 +00:00
.comm sIdentity__9CMatrix3f, 0x24, 4
2022-08-11 02:27:22 +00:00
2022-08-10 05:34:11 +00:00
.section .ctors, "wa"
lbl_ctor:
.4byte __sinit_CMatrix3f_cpp
2022-07-14 05:36:41 +00:00
.section .text, "ax"
2022-04-16 07:50:32 +00:00
.global __as__9CMatrix3fFRC9CMatrix3f
__as__9CMatrix3fFRC9CMatrix3f:
/* 8030FFF8 0030CF58 C8 04 00 00 */ lfd f0, 0(r4)
/* 8030FFFC 0030CF5C C8 24 00 08 */ lfd f1, 8(r4)
/* 80310000 0030CF60 C8 44 00 10 */ lfd f2, 0x10(r4)
/* 80310004 0030CF64 D8 03 00 00 */ stfd f0, 0(r3)
/* 80310008 0030CF68 D8 23 00 08 */ stfd f1, 8(r3)
/* 8031000C 0030CF6C D8 43 00 10 */ stfd f2, 0x10(r3)
/* 80310010 0030CF70 C8 04 00 18 */ lfd f0, 0x18(r4)
/* 80310014 0030CF74 C0 24 00 20 */ lfs f1, 0x20(r4)
/* 80310018 0030CF78 D8 03 00 18 */ stfd f0, 0x18(r3)
/* 8031001C 0030CF7C D0 23 00 20 */ stfs f1, 0x20(r3)
2022-07-14 05:48:03 +00:00
/* 80310020 0030CF80 4E 80 00 20 */ blr
2022-04-16 07:50:32 +00:00
.global __ct__9CMatrix3fFRC9CMatrix3f
__ct__9CMatrix3fFRC9CMatrix3f:
/* 80310024 0030CF84 C8 04 00 00 */ lfd f0, 0(r4)
/* 80310028 0030CF88 C8 24 00 08 */ lfd f1, 8(r4)
/* 8031002C 0030CF8C C8 44 00 10 */ lfd f2, 0x10(r4)
/* 80310030 0030CF90 D8 03 00 00 */ stfd f0, 0(r3)
/* 80310034 0030CF94 D8 23 00 08 */ stfd f1, 8(r3)
/* 80310038 0030CF98 D8 43 00 10 */ stfd f2, 0x10(r3)
/* 8031003C 0030CF9C C8 04 00 18 */ lfd f0, 0x18(r4)
/* 80310040 0030CFA0 C0 24 00 20 */ lfs f1, 0x20(r4)
/* 80310044 0030CFA4 D8 03 00 18 */ stfd f0, 0x18(r3)
/* 80310048 0030CFA8 D0 23 00 20 */ stfs f1, 0x20(r3)
2022-07-14 05:48:03 +00:00
/* 8031004C 0030CFAC 4E 80 00 20 */ blr
2022-04-16 07:50:32 +00:00
.global AddScaledMatrix__9CMatrix3fFRC9CMatrix3ff
AddScaledMatrix__9CMatrix3fFRC9CMatrix3ff:
/* 80310050 0030CFB0 C0 44 00 00 */ lfs f2, 0(r4)
/* 80310054 0030CFB4 C0 03 00 00 */ lfs f0, 0(r3)
/* 80310058 0030CFB8 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 8031005C 0030CFBC D0 03 00 00 */ stfs f0, 0(r3)
/* 80310060 0030CFC0 C0 44 00 04 */ lfs f2, 4(r4)
/* 80310064 0030CFC4 C0 03 00 04 */ lfs f0, 4(r3)
/* 80310068 0030CFC8 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 8031006C 0030CFCC D0 03 00 04 */ stfs f0, 4(r3)
/* 80310070 0030CFD0 C0 44 00 08 */ lfs f2, 8(r4)
/* 80310074 0030CFD4 C0 03 00 08 */ lfs f0, 8(r3)
/* 80310078 0030CFD8 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 8031007C 0030CFDC D0 03 00 08 */ stfs f0, 8(r3)
/* 80310080 0030CFE0 C0 44 00 0C */ lfs f2, 0xc(r4)
/* 80310084 0030CFE4 C0 03 00 0C */ lfs f0, 0xc(r3)
/* 80310088 0030CFE8 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 8031008C 0030CFEC D0 03 00 0C */ stfs f0, 0xc(r3)
/* 80310090 0030CFF0 C0 44 00 10 */ lfs f2, 0x10(r4)
/* 80310094 0030CFF4 C0 03 00 10 */ lfs f0, 0x10(r3)
/* 80310098 0030CFF8 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 8031009C 0030CFFC D0 03 00 10 */ stfs f0, 0x10(r3)
/* 803100A0 0030D000 C0 44 00 14 */ lfs f2, 0x14(r4)
/* 803100A4 0030D004 C0 03 00 14 */ lfs f0, 0x14(r3)
/* 803100A8 0030D008 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 803100AC 0030D00C D0 03 00 14 */ stfs f0, 0x14(r3)
/* 803100B0 0030D010 C0 44 00 18 */ lfs f2, 0x18(r4)
/* 803100B4 0030D014 C0 03 00 18 */ lfs f0, 0x18(r3)
/* 803100B8 0030D018 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 803100BC 0030D01C D0 03 00 18 */ stfs f0, 0x18(r3)
/* 803100C0 0030D020 C0 44 00 1C */ lfs f2, 0x1c(r4)
/* 803100C4 0030D024 C0 03 00 1C */ lfs f0, 0x1c(r3)
/* 803100C8 0030D028 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 803100CC 0030D02C D0 03 00 1C */ stfs f0, 0x1c(r3)
/* 803100D0 0030D030 C0 44 00 20 */ lfs f2, 0x20(r4)
/* 803100D4 0030D034 C0 03 00 20 */ lfs f0, 0x20(r3)
/* 803100D8 0030D038 EC 02 00 7A */ fmadds f0, f2, f1, f0
/* 803100DC 0030D03C D0 03 00 20 */ stfs f0, 0x20(r3)
2022-07-14 05:48:03 +00:00
/* 803100E0 0030D040 4E 80 00 20 */ blr
2022-04-16 07:50:32 +00:00
.global Determinant__9CMatrix3fCFv
Determinant__9CMatrix3fCFv:
/* 803100E4 0030D044 C1 23 00 0C */ lfs f9, 0xc(r3)
/* 803100E8 0030D048 C0 C3 00 20 */ lfs f6, 0x20(r3)
/* 803100EC 0030D04C C0 83 00 18 */ lfs f4, 0x18(r3)
/* 803100F0 0030D050 EC 09 01 B2 */ fmuls f0, f9, f6
/* 803100F4 0030D054 C0 63 00 14 */ lfs f3, 0x14(r3)
/* 803100F8 0030D058 C1 03 00 1C */ lfs f8, 0x1c(r3)
/* 803100FC 0030D05C C0 E3 00 10 */ lfs f7, 0x10(r3)
/* 80310100 0030D060 EC 43 02 32 */ fmuls f2, f3, f8
/* 80310104 0030D064 C0 23 00 04 */ lfs f1, 4(r3)
/* 80310108 0030D068 EC 03 01 38 */ fmsubs f0, f3, f4, f0
/* 8031010C 0030D06C C0 63 00 00 */ lfs f3, 0(r3)
/* 80310110 0030D070 EC 87 01 32 */ fmuls f4, f7, f4
/* 80310114 0030D074 C0 A3 00 08 */ lfs f5, 8(r3)
/* 80310118 0030D078 EC 47 11 B8 */ fmsubs f2, f7, f6, f2
/* 8031011C 0030D07C EC 01 00 32 */ fmuls f0, f1, f0
/* 80310120 0030D080 EC 29 22 38 */ fmsubs f1, f9, f8, f4
/* 80310124 0030D084 EC 03 00 BA */ fmadds f0, f3, f2, f0
/* 80310128 0030D088 EC 25 00 7A */ fmadds f1, f5, f1, f0
2022-07-14 05:48:03 +00:00
/* 8031012C 0030D08C 4E 80 00 20 */ blr
2022-04-16 07:50:32 +00:00
.global __ml__9CMatrix3fCFRC9CMatrix3f
__ml__9CMatrix3fCFRC9CMatrix3f:
/* 80310130 0030D090 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 80310134 0030D094 DB E1 00 80 */ stfd f31, 0x80(r1)
/* 80310138 0030D098 F3 E1 00 88 */ psq_st f31, 136(r1), 0, qr0
/* 8031013C 0030D09C DB C1 00 70 */ stfd f30, 0x70(r1)
/* 80310140 0030D0A0 F3 C1 00 78 */ psq_st f30, 120(r1), 0, qr0
/* 80310144 0030D0A4 DB A1 00 60 */ stfd f29, 0x60(r1)
/* 80310148 0030D0A8 F3 A1 00 68 */ psq_st f29, 104(r1), 0, qr0
/* 8031014C 0030D0AC DB 81 00 50 */ stfd f28, 0x50(r1)
/* 80310150 0030D0B0 F3 81 00 58 */ psq_st f28, 88(r1), 0, qr0
/* 80310154 0030D0B4 DB 61 00 40 */ stfd f27, 0x40(r1)
/* 80310158 0030D0B8 F3 61 00 48 */ psq_st f27, 72(r1), 0, qr0
/* 8031015C 0030D0BC DB 41 00 30 */ stfd f26, 0x30(r1)
/* 80310160 0030D0C0 F3 41 00 38 */ psq_st f26, 56(r1), 0, qr0
/* 80310164 0030D0C4 DB 21 00 20 */ stfd f25, 0x20(r1)
/* 80310168 0030D0C8 F3 21 00 28 */ psq_st f25, 40(r1), 0, qr0
/* 8031016C 0030D0CC DB 01 00 10 */ stfd f24, 0x10(r1)
/* 80310170 0030D0D0 F3 01 00 18 */ psq_st f24, 24(r1), 0, qr0
/* 80310174 0030D0D4 C3 05 00 0C */ lfs f24, 0xc(r5)
/* 80310178 0030D0D8 C0 C4 00 04 */ lfs f6, 4(r4)
/* 8031017C 0030D0DC C0 85 00 10 */ lfs f4, 0x10(r5)
/* 80310180 0030D0E0 EC 66 06 32 */ fmuls f3, f6, f24
/* 80310184 0030D0E4 C0 25 00 00 */ lfs f1, 0(r5)
/* 80310188 0030D0E8 C3 44 00 00 */ lfs f26, 0(r4)
/* 8031018C 0030D0EC EC 06 01 32 */ fmuls f0, f6, f4
/* 80310190 0030D0F0 C0 A5 00 14 */ lfs f5, 0x14(r5)
/* 80310194 0030D0F4 C1 04 00 10 */ lfs f8, 0x10(r4)
/* 80310198 0030D0F8 C0 45 00 04 */ lfs f2, 4(r5)
/* 8031019C 0030D0FC ED 7A 18 7A */ fmadds f11, f26, f1, f3
/* 803101A0 0030D100 ED A6 01 72 */ fmuls f13, f6, f5
/* 803101A4 0030D104 C0 65 00 08 */ lfs f3, 8(r5)
/* 803101A8 0030D108 C3 A4 00 1C */ lfs f29, 0x1c(r4)
/* 803101AC 0030D10C ED 9A 00 BA */ fmadds f12, f26, f2, f0
/* 803101B0 0030D110 C0 C5 00 18 */ lfs f6, 0x18(r5)
/* 803101B4 0030D114 C3 24 00 08 */ lfs f25, 8(r4)
/* 803101B8 0030D118 C0 E5 00 1C */ lfs f7, 0x1c(r5)
/* 803101BC 0030D11C ED 48 06 32 */ fmuls f10, f8, f24
/* 803101C0 0030D120 C3 64 00 0C */ lfs f27, 0xc(r4)
/* 803101C4 0030D124 ED 28 01 32 */ fmuls f9, f8, f4
/* 803101C8 0030D128 EF C8 01 72 */ fmuls f30, f8, f5
/* 803101CC 0030D12C C1 05 00 20 */ lfs f8, 0x20(r5)
/* 803101D0 0030D130 EF FA 68 FA */ fmadds f31, f26, f3, f13
/* 803101D4 0030D134 ED B9 59 BA */ fmadds f13, f25, f6, f11
/* 803101D8 0030D138 C0 04 00 20 */ lfs f0, 0x20(r4)
/* 803101DC 0030D13C C3 84 00 18 */ lfs f28, 0x18(r4)
/* 803101E0 0030D140 C3 44 00 14 */ lfs f26, 0x14(r4)
/* 803101E4 0030D144 ED 7B 50 7A */ fmadds f11, f27, f1, f10
/* 803101E8 0030D148 ED 5B 48 BA */ fmadds f10, f27, f2, f9
/* 803101EC 0030D14C ED 3D 06 32 */ fmuls f9, f29, f24
/* 803101F0 0030D150 D1 A3 00 00 */ stfs f13, 0(r3)
/* 803101F4 0030D154 ED 99 61 FA */ fmadds f12, f25, f7, f12
/* 803101F8 0030D158 ED BB F0 FA */ fmadds f13, f27, f3, f30
/* 803101FC 0030D15C EC 9D 01 32 */ fmuls f4, f29, f4
/* 80310200 0030D160 ED 3C 48 7A */ fmadds f9, f28, f1, f9
/* 80310204 0030D164 D1 83 00 04 */ stfs f12, 4(r3)
/* 80310208 0030D168 ED 99 FA 3A */ fmadds f12, f25, f8, f31
/* 8031020C 0030D16C EC BD 01 72 */ fmuls f5, f29, f5
/* 80310210 0030D170 EC 3C 20 BA */ fmadds f1, f28, f2, f4
/* 80310214 0030D174 EC 5A 59 BA */ fmadds f2, f26, f6, f11
/* 80310218 0030D178 D1 83 00 08 */ stfs f12, 8(r3)
/* 8031021C 0030D17C EC 9C 28 FA */ fmadds f4, f28, f3, f5
/* 80310220 0030D180 EC 7A 51 FA */ fmadds f3, f26, f7, f10
/* 80310224 0030D184 D0 43 00 0C */ stfs f2, 0xc(r3)
/* 80310228 0030D188 EC BA 6A 3A */ fmadds f5, f26, f8, f13
/* 8031022C 0030D18C EC 40 49 BA */ fmadds f2, f0, f6, f9
/* 80310230 0030D190 D0 63 00 10 */ stfs f3, 0x10(r3)
/* 80310234 0030D194 EC 20 09 FA */ fmadds f1, f0, f7, f1
/* 80310238 0030D198 EC 00 22 3A */ fmadds f0, f0, f8, f4
/* 8031023C 0030D19C D0 A3 00 14 */ stfs f5, 0x14(r3)
/* 80310240 0030D1A0 D0 43 00 18 */ stfs f2, 0x18(r3)
/* 80310244 0030D1A4 D0 23 00 1C */ stfs f1, 0x1c(r3)
/* 80310248 0030D1A8 D0 03 00 20 */ stfs f0, 0x20(r3)
/* 8031024C 0030D1AC E3 E1 00 88 */ psq_l f31, 136(r1), 0, qr0
/* 80310250 0030D1B0 CB E1 00 80 */ lfd f31, 0x80(r1)
/* 80310254 0030D1B4 E3 C1 00 78 */ psq_l f30, 120(r1), 0, qr0
/* 80310258 0030D1B8 CB C1 00 70 */ lfd f30, 0x70(r1)
/* 8031025C 0030D1BC E3 A1 00 68 */ psq_l f29, 104(r1), 0, qr0
/* 80310260 0030D1C0 CB A1 00 60 */ lfd f29, 0x60(r1)
/* 80310264 0030D1C4 E3 81 00 58 */ psq_l f28, 88(r1), 0, qr0
/* 80310268 0030D1C8 CB 81 00 50 */ lfd f28, 0x50(r1)
/* 8031026C 0030D1CC E3 61 00 48 */ psq_l f27, 72(r1), 0, qr0
/* 80310270 0030D1D0 CB 61 00 40 */ lfd f27, 0x40(r1)
/* 80310274 0030D1D4 E3 41 00 38 */ psq_l f26, 56(r1), 0, qr0
/* 80310278 0030D1D8 CB 41 00 30 */ lfd f26, 0x30(r1)
/* 8031027C 0030D1DC E3 21 00 28 */ psq_l f25, 40(r1), 0, qr0
/* 80310280 0030D1E0 CB 21 00 20 */ lfd f25, 0x20(r1)
/* 80310284 0030D1E4 E3 01 00 18 */ psq_l f24, 24(r1), 0, qr0
/* 80310288 0030D1E8 CB 01 00 10 */ lfd f24, 0x10(r1)
/* 8031028C 0030D1EC 38 21 00 90 */ addi r1, r1, 0x90
2022-07-14 05:48:03 +00:00
/* 80310290 0030D1F0 4E 80 00 20 */ blr
2022-04-16 07:50:32 +00:00
.global __ml__9CMatrix3fCFRC9CVector3f
__ml__9CMatrix3fCFRC9CVector3f:
/* 80310294 0030D1F4 C0 65 00 04 */ lfs f3, 4(r5)
/* 80310298 0030D1F8 C0 04 00 04 */ lfs f0, 4(r4)
/* 8031029C 0030D1FC C0 44 00 10 */ lfs f2, 0x10(r4)
/* 803102A0 0030D200 EC 03 00 32 */ fmuls f0, f3, f0
/* 803102A4 0030D204 C0 E5 00 00 */ lfs f7, 0(r5)
/* 803102A8 0030D208 C0 24 00 00 */ lfs f1, 0(r4)
/* 803102AC 0030D20C EC 83 00 B2 */ fmuls f4, f3, f2
/* 803102B0 0030D210 C0 44 00 1C */ lfs f2, 0x1c(r4)
/* 803102B4 0030D214 C0 A4 00 0C */ lfs f5, 0xc(r4)
/* 803102B8 0030D218 EC 07 00 7A */ fmadds f0, f7, f1, f0
/* 803102BC 0030D21C C1 05 00 08 */ lfs f8, 8(r5)
/* 803102C0 0030D220 C0 24 00 08 */ lfs f1, 8(r4)
/* 803102C4 0030D224 EC 43 00 B2 */ fmuls f2, f3, f2
/* 803102C8 0030D228 C0 64 00 18 */ lfs f3, 0x18(r4)
/* 803102CC 0030D22C EC A7 21 7A */ fmadds f5, f7, f5, f4
/* 803102D0 0030D230 C0 C4 00 14 */ lfs f6, 0x14(r4)
/* 803102D4 0030D234 EC 08 00 7A */ fmadds f0, f8, f1, f0
/* 803102D8 0030D238 C0 84 00 20 */ lfs f4, 0x20(r4)
/* 803102DC 0030D23C EC 27 10 FA */ fmadds f1, f7, f3, f2
/* 803102E0 0030D240 EC 48 29 BA */ fmadds f2, f8, f6, f5
/* 803102E4 0030D244 D0 03 00 00 */ stfs f0, 0(r3)
/* 803102E8 0030D248 EC 08 09 3A */ fmadds f0, f8, f4, f1
/* 803102EC 0030D24C D0 43 00 04 */ stfs f2, 4(r3)
/* 803102F0 0030D250 D0 03 00 08 */ stfs f0, 8(r3)
2022-07-14 05:48:03 +00:00
/* 803102F4 0030D254 4E 80 00 20 */ blr
2022-04-16 07:50:32 +00:00
.global Orthonormalized__9CMatrix3fCFv
Orthonormalized__9CMatrix3fCFv:
/* 803102F8 0030D258 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 803102FC 0030D25C 7C 08 02 A6 */ mflr r0
/* 80310300 0030D260 90 01 00 44 */ stw r0, 0x44(r1)
/* 80310304 0030D264 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 80310308 0030D268 7C 9F 23 78 */ mr r31, r4
/* 8031030C 0030D26C 93 C1 00 38 */ stw r30, 0x38(r1)
/* 80310310 0030D270 7C 7E 1B 78 */ mr r30, r3
/* 80310314 0030D274 38 61 00 20 */ addi r3, r1, 0x20
/* 80310318 0030D278 C0 44 00 18 */ lfs f2, 0x18(r4)
/* 8031031C 0030D27C C0 24 00 0C */ lfs f1, 0xc(r4)
/* 80310320 0030D280 C0 04 00 00 */ lfs f0, 0(r4)
/* 80310324 0030D284 D0 21 00 24 */ stfs f1, 0x24(r1)
/* 80310328 0030D288 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8031032C 0030D28C D0 41 00 28 */ stfs f2, 0x28(r1)
/* 80310330 0030D290 48 00 45 C9 */ bl Normalize__9CVector3fFv
/* 80310334 0030D294 C0 5F 00 1C */ lfs f2, 0x1c(r31)
/* 80310338 0030D298 38 61 00 14 */ addi r3, r1, 0x14
/* 8031033C 0030D29C C0 3F 00 10 */ lfs f1, 0x10(r31)
/* 80310340 0030D2A0 C0 1F 00 04 */ lfs f0, 4(r31)
/* 80310344 0030D2A4 D0 21 00 18 */ stfs f1, 0x18(r1)
/* 80310348 0030D2A8 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8031034C 0030D2AC D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 80310350 0030D2B0 48 00 45 A9 */ bl Normalize__9CVector3fFv
/* 80310354 0030D2B4 C0 61 00 24 */ lfs f3, 0x24(r1)
/* 80310358 0030D2B8 38 61 00 08 */ addi r3, r1, 8
/* 8031035C 0030D2BC C0 E1 00 14 */ lfs f7, 0x14(r1)
/* 80310360 0030D2C0 C0 81 00 28 */ lfs f4, 0x28(r1)
/* 80310364 0030D2C4 C0 41 00 18 */ lfs f2, 0x18(r1)
/* 80310368 0030D2C8 EC 07 00 F2 */ fmuls f0, f7, f3
/* 8031036C 0030D2CC C0 C1 00 20 */ lfs f6, 0x20(r1)
/* 80310370 0030D2D0 C0 A1 00 1C */ lfs f5, 0x1c(r1)
/* 80310374 0030D2D4 EC 22 01 32 */ fmuls f1, f2, f4
/* 80310378 0030D2D8 EC 46 00 B8 */ fmsubs f2, f6, f2, f0
/* 8031037C 0030D2DC EC 05 01 B2 */ fmuls f0, f5, f6
/* 80310380 0030D2E0 EC 23 09 78 */ fmsubs f1, f3, f5, f1
/* 80310384 0030D2E4 D0 41 00 10 */ stfs f2, 0x10(r1)
/* 80310388 0030D2E8 EC 04 01 F8 */ fmsubs f0, f4, f7, f0
/* 8031038C 0030D2EC D0 21 00 08 */ stfs f1, 8(r1)
/* 80310390 0030D2F0 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 80310394 0030D2F4 48 00 45 65 */ bl Normalize__9CVector3fFv
/* 80310398 0030D2F8 C0 61 00 0C */ lfs f3, 0xc(r1)
/* 8031039C 0030D2FC 38 61 00 14 */ addi r3, r1, 0x14
/* 803103A0 0030D300 C0 E1 00 20 */ lfs f7, 0x20(r1)
/* 803103A4 0030D304 C0 81 00 10 */ lfs f4, 0x10(r1)
/* 803103A8 0030D308 C0 41 00 24 */ lfs f2, 0x24(r1)
/* 803103AC 0030D30C EC 07 00 F2 */ fmuls f0, f7, f3
/* 803103B0 0030D310 C0 C1 00 08 */ lfs f6, 8(r1)
/* 803103B4 0030D314 C0 A1 00 28 */ lfs f5, 0x28(r1)
/* 803103B8 0030D318 EC 22 01 32 */ fmuls f1, f2, f4
/* 803103BC 0030D31C EC 46 00 B8 */ fmsubs f2, f6, f2, f0
/* 803103C0 0030D320 EC 05 01 B2 */ fmuls f0, f5, f6
/* 803103C4 0030D324 EC 23 09 78 */ fmsubs f1, f3, f5, f1
/* 803103C8 0030D328 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 803103CC 0030D32C EC 04 01 F8 */ fmsubs f0, f4, f7, f0
/* 803103D0 0030D330 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 803103D4 0030D334 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 803103D8 0030D338 48 00 45 21 */ bl Normalize__9CVector3fFv
/* 803103DC 0030D33C 7F C3 F3 78 */ mr r3, r30
/* 803103E0 0030D340 38 81 00 20 */ addi r4, r1, 0x20
/* 803103E4 0030D344 38 A1 00 14 */ addi r5, r1, 0x14
/* 803103E8 0030D348 38 C1 00 08 */ addi r6, r1, 8
/* 803103EC 0030D34C 48 00 02 91 */ bl __ct__9CMatrix3fFRC9CVector3fRC9CVector3fRC9CVector3f
/* 803103F0 0030D350 80 01 00 44 */ lwz r0, 0x44(r1)
/* 803103F4 0030D354 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 803103F8 0030D358 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 803103FC 0030D35C 7C 08 03 A6 */ mtlr r0
/* 80310400 0030D360 38 21 00 40 */ addi r1, r1, 0x40
2022-07-14 05:48:03 +00:00
/* 80310404 0030D364 4E 80 00 20 */ blr
2022-04-16 07:50:32 +00:00
.global RotateZ__9CMatrix3fFRC9CRelAngle
RotateZ__9CMatrix3fFRC9CRelAngle:
/* 80310408 0030D368 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 8031040C 0030D36C 7C 08 02 A6 */ mflr r0
/* 80310410 0030D370 90 01 00 24 */ stw r0, 0x24(r1)
/* 80310414 0030D374 DB E1 00 10 */ stfd f31, 0x10(r1)
/* 80310418 0030D378 F3 E1 00 18 */ psq_st f31, 24(r1), 0, qr0
/* 8031041C 0030D37C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80310420 0030D380 93 C1 00 08 */ stw r30, 8(r1)
/* 80310424 0030D384 7C 9F 23 78 */ mr r31, r4
/* 80310428 0030D388 7C 7E 1B 78 */ mr r30, r3
/* 8031042C 0030D38C C0 24 00 00 */ lfs f1, 0(r4)
/* 80310430 0030D390 48 08 46 AD */ bl sin
/* 80310434 0030D394 FF E0 08 18 */ frsp f31, f1
/* 80310438 0030D398 C0 3F 00 00 */ lfs f1, 0(r31)
/* 8031043C 0030D39C 48 08 3F B5 */ bl cos
/* 80310440 0030D3A0 FC 60 08 18 */ frsp f3, f1
/* 80310444 0030D3A4 C0 22 C8 50 */ lfs f1, lbl_805AE570@sda21(r2)
/* 80310448 0030D3A8 FC 40 F8 50 */ fneg f2, f31
/* 8031044C 0030D3AC C0 02 C8 54 */ lfs f0, lbl_805AE574@sda21(r2)
/* 80310450 0030D3B0 D0 7E 00 00 */ stfs f3, 0(r30)
/* 80310454 0030D3B4 D0 5E 00 04 */ stfs f2, 4(r30)
/* 80310458 0030D3B8 D0 3E 00 08 */ stfs f1, 8(r30)
/* 8031045C 0030D3BC D3 FE 00 0C */ stfs f31, 0xc(r30)
/* 80310460 0030D3C0 D0 7E 00 10 */ stfs f3, 0x10(r30)
/* 80310464 0030D3C4 D0 3E 00 14 */ stfs f1, 0x14(r30)
/* 80310468 0030D3C8 D0 3E 00 18 */ stfs f1, 0x18(r30)
/* 8031046C 0030D3CC D0 3E 00 1C */ stfs f1, 0x1c(r30)
/* 80310470 0030D3D0 D0 1E 00 20 */ stfs f0, 0x20(r30)
/* 80310474 0030D3D4 E3 E1 00 18 */ psq_l f31, 24(r1), 0, qr0
/* 80310478 0030D3D8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8031047C 0030D3DC CB E1 00 10 */ lfd f31, 0x10(r1)
/* 80310480 0030D3E0 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80310484 0030D3E4 83 C1 00 08 */ lwz r30, 8(r1)
/* 80310488 0030D3E8 7C 08 03 A6 */ mtlr r0
/* 8031048C 0030D3EC 38 21 00 20 */ addi r1, r1, 0x20
2022-07-14 05:48:03 +00:00
/* 80310490 0030D3F0 4E 80 00 20 */ blr
2022-04-16 07:50:32 +00:00
.global RotateY__9CMatrix3fFRC9CRelAngle
RotateY__9CMatrix3fFRC9CRelAngle:
/* 80310494 0030D3F4 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80310498 0030D3F8 7C 08 02 A6 */ mflr r0
/* 8031049C 0030D3FC 90 01 00 24 */ stw r0, 0x24(r1)
/* 803104A0 0030D400 DB E1 00 10 */ stfd f31, 0x10(r1)
/* 803104A4 0030D404 F3 E1 00 18 */ psq_st f31, 24(r1), 0, qr0
/* 803104A8 0030D408 93 E1 00 0C */ stw r31, 0xc(r1)
/* 803104AC 0030D40C 93 C1 00 08 */ stw r30, 8(r1)
/* 803104B0 0030D410 7C 9F 23 78 */ mr r31, r4
/* 803104B4 0030D414 7C 7E 1B 78 */ mr r30, r3
/* 803104B8 0030D418 C0 24 00 00 */ lfs f1, 0(r4)
/* 803104BC 0030D41C 48 08 46 21 */ bl sin
/* 803104C0 0030D420 FF E0 08 18 */ frsp f31, f1
/* 803104C4 0030D424 C0 3F 00 00 */ lfs f1, 0(r31)
/* 803104C8 0030D428 48 08 3F 29 */ bl cos
/* 803104CC 0030D42C FC 60 08 18 */ frsp f3, f1
/* 803104D0 0030D430 C0 42 C8 50 */ lfs f2, lbl_805AE570@sda21(r2)
/* 803104D4 0030D434 C0 22 C8 54 */ lfs f1, lbl_805AE574@sda21(r2)
/* 803104D8 0030D438 FC 00 F8 50 */ fneg f0, f31
/* 803104DC 0030D43C D0 7E 00 00 */ stfs f3, 0(r30)
/* 803104E0 0030D440 D0 5E 00 04 */ stfs f2, 4(r30)
/* 803104E4 0030D444 D3 FE 00 08 */ stfs f31, 8(r30)
/* 803104E8 0030D448 D0 5E 00 0C */ stfs f2, 0xc(r30)
/* 803104EC 0030D44C D0 3E 00 10 */ stfs f1, 0x10(r30)
/* 803104F0 0030D450 D0 5E 00 14 */ stfs f2, 0x14(r30)
/* 803104F4 0030D454 D0 1E 00 18 */ stfs f0, 0x18(r30)
/* 803104F8 0030D458 D0 5E 00 1C */ stfs f2, 0x1c(r30)
/* 803104FC 0030D45C D0 7E 00 20 */ stfs f3, 0x20(r30)
/* 80310500 0030D460 E3 E1 00 18 */ psq_l f31, 24(r1), 0, qr0
/* 80310504 0030D464 80 01 00 24 */ lwz r0, 0x24(r1)
/* 80310508 0030D468 CB E1 00 10 */ lfd f31, 0x10(r1)
/* 8031050C 0030D46C 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 80310510 0030D470 83 C1 00 08 */ lwz r30, 8(r1)
/* 80310514 0030D474 7C 08 03 A6 */ mtlr r0
/* 80310518 0030D478 38 21 00 20 */ addi r1, r1, 0x20
2022-07-14 05:48:03 +00:00
/* 8031051C 0030D47C 4E 80 00 20 */ blr
2022-04-16 07:50:32 +00:00
.global __ct__9CMatrix3fFR12CInputStream
__ct__9CMatrix3fFR12CInputStream:
/* 80310520 0030D480 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80310524 0030D484 7C 08 02 A6 */ mflr r0
/* 80310528 0030D488 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031052C 0030D48C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 80310530 0030D490 7C 9F 23 78 */ mr r31, r4
/* 80310534 0030D494 93 C1 00 08 */ stw r30, 8(r1)
/* 80310538 0030D498 7C 7E 1B 78 */ mr r30, r3
/* 8031053C 0030D49C 7F E3 FB 78 */ mr r3, r31
/* 80310540 0030D4A0 48 02 E6 E9 */ bl ReadFloat__12CInputStreamFv
/* 80310544 0030D4A4 D0 3E 00 00 */ stfs f1, 0(r30)
/* 80310548 0030D4A8 7F E3 FB 78 */ mr r3, r31
/* 8031054C 0030D4AC 48 02 E6 DD */ bl ReadFloat__12CInputStreamFv
/* 80310550 0030D4B0 D0 3E 00 04 */ stfs f1, 4(r30)
/* 80310554 0030D4B4 7F E3 FB 78 */ mr r3, r31
/* 80310558 0030D4B8 48 02 E6 D1 */ bl ReadFloat__12CInputStreamFv
/* 8031055C 0030D4BC D0 3E 00 08 */ stfs f1, 8(r30)
/* 80310560 0030D4C0 7F E3 FB 78 */ mr r3, r31
/* 80310564 0030D4C4 48 02 E6 C5 */ bl ReadFloat__12CInputStreamFv
/* 80310568 0030D4C8 D0 3E 00 0C */ stfs f1, 0xc(r30)
/* 8031056C 0030D4CC 7F E3 FB 78 */ mr r3, r31
/* 80310570 0030D4D0 48 02 E6 B9 */ bl ReadFloat__12CInputStreamFv
/* 80310574 0030D4D4 D0 3E 00 10 */ stfs f1, 0x10(r30)
/* 80310578 0030D4D8 7F E3 FB 78 */ mr r3, r31
/* 8031057C 0030D4DC 48 02 E6 AD */ bl ReadFloat__12CInputStreamFv
/* 80310580 0030D4E0 D0 3E 00 14 */ stfs f1, 0x14(r30)
/* 80310584 0030D4E4 7F E3 FB 78 */ mr r3, r31
/* 80310588 0030D4E8 48 02 E6 A1 */ bl ReadFloat__12CInputStreamFv
/* 8031058C 0030D4EC D0 3E 00 18 */ stfs f1, 0x18(r30)
/* 80310590 0030D4F0 7F E3 FB 78 */ mr r3, r31
/* 80310594 0030D4F4 48 02 E6 95 */ bl ReadFloat__12CInputStreamFv
/* 80310598 0030D4F8 D0 3E 00 1C */ stfs f1, 0x1c(r30)
/* 8031059C 0030D4FC 7F E3 FB 78 */ mr r3, r31
/* 803105A0 0030D500 48 02 E6 89 */ bl ReadFloat__12CInputStreamFv
/* 803105A4 0030D504 D0 3E 00 20 */ stfs f1, 0x20(r30)
/* 803105A8 0030D508 7F C3 F3 78 */ mr r3, r30
/* 803105AC 0030D50C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803105B0 0030D510 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 803105B4 0030D514 83 C1 00 08 */ lwz r30, 8(r1)
/* 803105B8 0030D518 7C 08 03 A6 */ mtlr r0
/* 803105BC 0030D51C 38 21 00 10 */ addi r1, r1, 0x10
2022-07-14 05:48:03 +00:00
/* 803105C0 0030D520 4E 80 00 20 */ blr
2022-04-16 07:50:32 +00:00
.global __ct__9CMatrix3fFRC9CMatrix3ffRC9CMatrix3ff
__ct__9CMatrix3fFRC9CMatrix3ffRC9CMatrix3ff:
/* 803105C4 0030D524 C0 05 00 00 */ lfs f0, 0(r5)
/* 803105C8 0030D528 C0 64 00 00 */ lfs f3, 0(r4)
/* 803105CC 0030D52C EC 00 00 B2 */ fmuls f0, f0, f2
/* 803105D0 0030D530 EC 03 00 7A */ fmadds f0, f3, f1, f0
/* 803105D4 0030D534 D0 03 00 00 */ stfs f0, 0(r3)
/* 803105D8 0030D538 C0 05 00 04 */ lfs f0, 4(r5)
/* 803105DC 0030D53C C0 64 00 04 */ lfs f3, 4(r4)
/* 803105E0 0030D540 EC 00 00 B2 */ fmuls f0, f0, f2
/* 803105E4 0030D544 EC 03 00 7A */ fmadds f0, f3, f1, f0
/* 803105E8 0030D548 D0 03 00 04 */ stfs f0, 4(r3)
/* 803105EC 0030D54C C0 05 00 08 */ lfs f0, 8(r5)
/* 803105F0 0030D550 C0 64 00 08 */ lfs f3, 8(r4)
/* 803105F4 0030D554 EC 00 00 B2 */ fmuls f0, f0, f2
/* 803105F8 0030D558 EC 03 00 7A */ fmadds f0, f3, f1, f0
/* 803105FC 0030D55C D0 03 00 08 */ stfs f0, 8(r3)
/* 80310600 0030D560 C0 05 00 0C */ lfs f0, 0xc(r5)
/* 80310604 0030D564 C0 64 00 0C */ lfs f3, 0xc(r4)
/* 80310608 0030D568 EC 00 00 B2 */ fmuls f0, f0, f2
/* 8031060C 0030D56C EC 03 00 7A */ fmadds f0, f3, f1, f0
/* 80310610 0030D570 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 80310614 0030D574 C0 05 00 10 */ lfs f0, 0x10(r5)
/* 80310618 0030D578 C0 64 00 10 */ lfs f3, 0x10(r4)
/* 8031061C 0030D57C EC 00 00 B2 */ fmuls f0, f0, f2
/* 80310620 0030D580 EC 03 00 7A */ fmadds f0, f3, f1, f0
/* 80310624 0030D584 D0 03 00 10 */ stfs f0, 0x10(r3)
/* 80310628 0030D588 C0 05 00 14 */ lfs f0, 0x14(r5)
/* 8031062C 0030D58C C0 64 00 14 */ lfs f3, 0x14(r4)
/* 80310630 0030D590 EC 00 00 B2 */ fmuls f0, f0, f2
/* 80310634 0030D594 EC 03 00 7A */ fmadds f0, f3, f1, f0
/* 80310638 0030D598 D0 03 00 14 */ stfs f0, 0x14(r3)
/* 8031063C 0030D59C C0 05 00 18 */ lfs f0, 0x18(r5)
/* 80310640 0030D5A0 C0 64 00 18 */ lfs f3, 0x18(r4)
/* 80310644 0030D5A4 EC 00 00 B2 */ fmuls f0, f0, f2
/* 80310648 0030D5A8 EC 03 00 7A */ fmadds f0, f3, f1, f0
/* 8031064C 0030D5AC D0 03 00 18 */ stfs f0, 0x18(r3)
/* 80310650 0030D5B0 C0 05 00 1C */ lfs f0, 0x1c(r5)
/* 80310654 0030D5B4 C0 64 00 1C */ lfs f3, 0x1c(r4)
/* 80310658 0030D5B8 EC 00 00 B2 */ fmuls f0, f0, f2
/* 8031065C 0030D5BC EC 03 00 7A */ fmadds f0, f3, f1, f0
/* 80310660 0030D5C0 D0 03 00 1C */ stfs f0, 0x1c(r3)
/* 80310664 0030D5C4 C0 05 00 20 */ lfs f0, 0x20(r5)
/* 80310668 0030D5C8 C0 64 00 20 */ lfs f3, 0x20(r4)
/* 8031066C 0030D5CC EC 00 00 B2 */ fmuls f0, f0, f2
/* 80310670 0030D5D0 EC 03 00 7A */ fmadds f0, f3, f1, f0
/* 80310674 0030D5D4 D0 03 00 20 */ stfs f0, 0x20(r3)
2022-07-14 05:48:03 +00:00
/* 80310678 0030D5D8 4E 80 00 20 */ blr
2022-04-16 07:50:32 +00:00
.global __ct__9CMatrix3fFRC9CVector3fRC9CVector3fRC9CVector3f
__ct__9CMatrix3fFRC9CVector3fRC9CVector3fRC9CVector3f:
/* 8031067C 0030D5DC C0 04 00 00 */ lfs f0, 0(r4)
/* 80310680 0030D5E0 D0 03 00 00 */ stfs f0, 0(r3)
/* 80310684 0030D5E4 C0 04 00 04 */ lfs f0, 4(r4)
/* 80310688 0030D5E8 D0 03 00 04 */ stfs f0, 4(r3)
/* 8031068C 0030D5EC C0 04 00 08 */ lfs f0, 8(r4)
/* 80310690 0030D5F0 D0 03 00 08 */ stfs f0, 8(r3)
/* 80310694 0030D5F4 C0 05 00 00 */ lfs f0, 0(r5)
/* 80310698 0030D5F8 D0 03 00 0C */ stfs f0, 0xc(r3)
/* 8031069C 0030D5FC C0 05 00 04 */ lfs f0, 4(r5)
/* 803106A0 0030D600 D0 03 00 10 */ stfs f0, 0x10(r3)
/* 803106A4 0030D604 C0 05 00 08 */ lfs f0, 8(r5)
/* 803106A8 0030D608 D0 03 00 14 */ stfs f0, 0x14(r3)
/* 803106AC 0030D60C C0 06 00 00 */ lfs f0, 0(r6)
/* 803106B0 0030D610 D0 03 00 18 */ stfs f0, 0x18(r3)
/* 803106B4 0030D614 C0 06 00 04 */ lfs f0, 4(r6)
/* 803106B8 0030D618 D0 03 00 1C */ stfs f0, 0x1c(r3)
/* 803106BC 0030D61C C0 06 00 08 */ lfs f0, 8(r6)
/* 803106C0 0030D620 D0 03 00 20 */ stfs f0, 0x20(r3)
2022-07-14 05:48:03 +00:00
/* 803106C4 0030D624 4E 80 00 20 */ blr
2022-04-16 07:50:32 +00:00
.global __sinit_CMatrix3f_cpp
__sinit_CMatrix3f_cpp:
/* 803106C8 0030D628 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 803106CC 0030D62C 7C 08 02 A6 */ mflr r0
2022-10-05 16:28:37 +00:00
/* 803106D0 0030D630 3C 60 80 5A */ lis r3, sIdentity__9CMatrix3f@ha
2022-04-16 07:50:32 +00:00
/* 803106D4 0030D634 C0 02 C8 50 */ lfs f0, lbl_805AE570@sda21(r2)
/* 803106D8 0030D638 90 01 00 34 */ stw r0, 0x34(r1)
2022-10-05 16:28:37 +00:00
/* 803106DC 0030D63C 38 63 65 FC */ addi r3, r3, sIdentity__9CMatrix3f@l
2022-04-16 07:50:32 +00:00
/* 803106E0 0030D640 C0 22 C8 54 */ lfs f1, lbl_805AE574@sda21(r2)
/* 803106E4 0030D644 38 81 00 08 */ addi r4, r1, 8
/* 803106E8 0030D648 D0 01 00 0C */ stfs f0, 0xc(r1)
/* 803106EC 0030D64C D0 21 00 08 */ stfs f1, 8(r1)
/* 803106F0 0030D650 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 803106F4 0030D654 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 803106F8 0030D658 D0 21 00 18 */ stfs f1, 0x18(r1)
/* 803106FC 0030D65C D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 80310700 0030D660 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 80310704 0030D664 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 80310708 0030D668 D0 21 00 28 */ stfs f1, 0x28(r1)
/* 8031070C 0030D66C 4B FF F9 19 */ bl __ct__9CMatrix3fFRC9CMatrix3f
/* 80310710 0030D670 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80310714 0030D674 7C 08 03 A6 */ mtlr r0
/* 80310718 0030D678 38 21 00 30 */ addi r1, r1, 0x30
/* 8031071C 0030D67C 4E 80 00 20 */ blr
2022-07-18 05:20:04 +00:00
.section .sdata2, "a"
.balign 8
2022-07-18 05:20:04 +00:00
.global lbl_805AE570
lbl_805AE570:
# ROM: 0x3FAE10
.4byte 0
.global lbl_805AE574
lbl_805AE574:
# ROM: 0x3FAE14
.float 1.0