prime/asm/Kyoto/Math/RMathUtils.s

855 lines
36 KiB
ArmAsm

.include "macros.inc"
.section .text, "ax"
.global FloorPowerOfTwo__5CMathFi
FloorPowerOfTwo__5CMathFi:
/* 80314C58 00311BB8 2C 03 00 00 */ cmpwi r3, 0
/* 80314C5C 00311BBC 40 82 00 0C */ bne lbl_80314C68
/* 80314C60 00311BC0 38 60 00 00 */ li r3, 0
/* 80314C64 00311BC4 4E 80 00 20 */ blr
lbl_80314C68:
/* 80314C68 00311BC8 3C A0 00 01 */ lis r5, 0x0000FFFF@ha
/* 80314C6C 00311BCC 38 80 00 01 */ li r4, 1
/* 80314C70 00311BD0 38 05 FF FF */ addi r0, r5, 0x0000FFFF@l
/* 80314C74 00311BD4 7C 03 00 50 */ subf r0, r3, r0
/* 80314C78 00311BD8 54 05 2E F6 */ rlwinm r5, r0, 5, 0x1b, 0x1b
/* 80314C7C 00311BDC 7C 60 2C 30 */ srw r0, r3, r5
/* 80314C80 00311BE0 54 03 04 3E */ clrlwi r3, r0, 0x10
/* 80314C84 00311BE4 20 03 00 FF */ subfic r0, r3, 0xff
/* 80314C88 00311BE8 54 06 27 38 */ rlwinm r6, r0, 4, 0x1c, 0x1c
/* 80314C8C 00311BEC 7C 60 34 30 */ srw r0, r3, r6
/* 80314C90 00311BF0 54 03 06 3E */ clrlwi r3, r0, 0x18
/* 80314C94 00311BF4 20 03 00 0F */ subfic r0, r3, 0xf
/* 80314C98 00311BF8 54 07 1F 7A */ rlwinm r7, r0, 3, 0x1d, 0x1d
/* 80314C9C 00311BFC 7C 60 3C 30 */ srw r0, r3, r7
/* 80314CA0 00311C00 54 08 07 3E */ clrlwi r8, r0, 0x1c
/* 80314CA4 00311C04 7C 06 3A 14 */ add r0, r6, r7
/* 80314CA8 00311C08 20 68 00 03 */ subfic r3, r8, 3
/* 80314CAC 00311C0C 54 66 17 BC */ rlwinm r6, r3, 2, 0x1e, 0x1e
/* 80314CB0 00311C10 7D 03 34 30 */ srw r3, r8, r6
/* 80314CB4 00311C14 54 63 07 BE */ clrlwi r3, r3, 0x1e
/* 80314CB8 00311C18 7C 00 32 14 */ add r0, r0, r6
/* 80314CBC 00311C1C 20 63 00 01 */ subfic r3, r3, 1
/* 80314CC0 00311C20 54 63 0F FE */ srwi r3, r3, 0x1f
/* 80314CC4 00311C24 7C 00 1A 14 */ add r0, r0, r3
/* 80314CC8 00311C28 7C 05 02 14 */ add r0, r5, r0
/* 80314CCC 00311C2C 7C 83 00 30 */ slw r3, r4, r0
/* 80314CD0 00311C30 4E 80 00 20 */ blr
.global FastArcCosR__5CMathFf
FastArcCosR__5CMathFf:
/* 80314CD4 00311C34 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80314CD8 00311C38 7C 08 02 A6 */ mflr r0
/* 80314CDC 00311C3C FC 40 0A 10 */ fabs f2, f1
/* 80314CE0 00311C40 C8 02 C9 40 */ lfd f0, lbl_805AE660@sda21(r2)
/* 80314CE4 00311C44 90 01 00 14 */ stw r0, 0x14(r1)
/* 80314CE8 00311C48 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 80314CEC 00311C4C 40 81 00 10 */ ble lbl_80314CFC
/* 80314CF0 00311C50 48 07 FF 3D */ bl acos
/* 80314CF4 00311C54 FC 20 08 18 */ frsp f1, f1
/* 80314CF8 00311C58 48 00 00 3C */ b lbl_80314D34
lbl_80314CFC:
/* 80314CFC 00311C5C EC 81 00 72 */ fmuls f4, f1, f1
/* 80314D00 00311C60 C0 A2 C9 28 */ lfs f5, lbl_805AE648@sda21(r2)
/* 80314D04 00311C64 C0 02 C9 2C */ lfs f0, lbl_805AE64C@sda21(r2)
/* 80314D08 00311C68 C0 62 C9 30 */ lfs f3, lbl_805AE650@sda21(r2)
/* 80314D0C 00311C6C EC A1 28 3A */ fmadds f5, f1, f0, f5
/* 80314D10 00311C70 C0 42 C9 34 */ lfs f2, lbl_805AE654@sda21(r2)
/* 80314D14 00311C74 EC 21 01 32 */ fmuls f1, f1, f4
/* 80314D18 00311C78 C0 02 C9 38 */ lfs f0, lbl_805AE658@sda21(r2)
/* 80314D1C 00311C7C EC A1 28 FA */ fmadds f5, f1, f3, f5
/* 80314D20 00311C80 EC 21 01 32 */ fmuls f1, f1, f4
/* 80314D24 00311C84 EC A1 28 BA */ fmadds f5, f1, f2, f5
/* 80314D28 00311C88 EC 21 01 32 */ fmuls f1, f1, f4
/* 80314D2C 00311C8C EC A1 28 3A */ fmadds f5, f1, f0, f5
/* 80314D30 00311C90 FC 20 28 90 */ fmr f1, f5
lbl_80314D34:
/* 80314D34 00311C94 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80314D38 00311C98 7C 08 03 A6 */ mtlr r0
/* 80314D3C 00311C9C 38 21 00 10 */ addi r1, r1, 0x10
/* 80314D40 00311CA0 4E 80 00 20 */ blr
.global FastCosR__5CMathFf
FastCosR__5CMathFf:
/* 80314D44 00311CA4 FC 40 0A 10 */ fabs f2, f1
/* 80314D48 00311CA8 C8 02 C9 60 */ lfd f0, lbl_805AE680@sda21(r2)
/* 80314D4C 00311CAC 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80314D50 00311CB0 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 80314D54 00311CB4 40 81 00 60 */ ble lbl_80314DB4
/* 80314D58 00311CB8 C0 02 C9 68 */ lfs f0, lbl_805AE688@sda21(r2)
/* 80314D5C 00311CBC 3C 00 43 30 */ lis r0, 0x4330
/* 80314D60 00311CC0 90 01 00 10 */ stw r0, 0x10(r1)
/* 80314D64 00311CC4 EC 61 00 32 */ fmuls f3, f1, f0
/* 80314D68 00311CC8 C8 82 C9 78 */ lfd f4, lbl_805AE698@sda21(r2)
/* 80314D6C 00311CCC C0 42 C9 6C */ lfs f2, lbl_805AE68C@sda21(r2)
/* 80314D70 00311CD0 C0 02 C9 70 */ lfs f0, lbl_805AE690@sda21(r2)
/* 80314D74 00311CD4 FC 60 18 1E */ fctiwz f3, f3
/* 80314D78 00311CD8 D8 61 00 08 */ stfd f3, 8(r1)
/* 80314D7C 00311CDC 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80314D80 00311CE0 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80314D84 00311CE4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80314D88 00311CE8 C8 61 00 10 */ lfd f3, 0x10(r1)
/* 80314D8C 00311CEC EC 63 20 28 */ fsubs f3, f3, f4
/* 80314D90 00311CF0 EC 23 08 BC */ fnmsubs f1, f3, f2, f1
/* 80314D94 00311CF4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80314D98 00311CF8 40 81 00 0C */ ble lbl_80314DA4
/* 80314D9C 00311CFC EC 21 10 28 */ fsubs f1, f1, f2
/* 80314DA0 00311D00 48 00 00 14 */ b lbl_80314DB4
lbl_80314DA4:
/* 80314DA4 00311D04 C0 02 C9 74 */ lfs f0, lbl_805AE694@sda21(r2)
/* 80314DA8 00311D08 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80314DAC 00311D0C 40 80 00 08 */ bge lbl_80314DB4
/* 80314DB0 00311D10 EC 22 08 2A */ fadds f1, f2, f1
lbl_80314DB4:
/* 80314DB4 00311D14 EC 81 00 72 */ fmuls f4, f1, f1
/* 80314DB8 00311D18 C0 22 C9 48 */ lfs f1, lbl_805AE668@sda21(r2)
/* 80314DBC 00311D1C C0 02 C9 4C */ lfs f0, lbl_805AE66C@sda21(r2)
/* 80314DC0 00311D20 C0 62 C9 50 */ lfs f3, lbl_805AE670@sda21(r2)
/* 80314DC4 00311D24 EC 24 08 3A */ fmadds f1, f4, f0, f1
/* 80314DC8 00311D28 C0 42 C9 54 */ lfs f2, lbl_805AE674@sda21(r2)
/* 80314DCC 00311D2C EC A4 01 32 */ fmuls f5, f4, f4
/* 80314DD0 00311D30 C0 02 C9 58 */ lfs f0, lbl_805AE678@sda21(r2)
/* 80314DD4 00311D34 EC 25 08 FA */ fmadds f1, f5, f3, f1
/* 80314DD8 00311D38 EC A5 01 32 */ fmuls f5, f5, f4
/* 80314DDC 00311D3C EC 25 08 BA */ fmadds f1, f5, f2, f1
/* 80314DE0 00311D40 EC A5 01 32 */ fmuls f5, f5, f4
/* 80314DE4 00311D44 EC 25 08 3A */ fmadds f1, f5, f0, f1
/* 80314DE8 00311D48 38 21 00 20 */ addi r1, r1, 0x20
/* 80314DEC 00311D4C 4E 80 00 20 */ blr
.global FastSinR__5CMathFf
FastSinR__5CMathFf:
/* 80314DF0 00311D50 FC 40 0A 10 */ fabs f2, f1
/* 80314DF4 00311D54 C8 02 C9 60 */ lfd f0, lbl_805AE680@sda21(r2)
/* 80314DF8 00311D58 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80314DFC 00311D5C FC 02 00 40 */ fcmpo cr0, f2, f0
/* 80314E00 00311D60 40 81 00 60 */ ble lbl_80314E60
/* 80314E04 00311D64 C0 02 C9 68 */ lfs f0, lbl_805AE688@sda21(r2)
/* 80314E08 00311D68 3C 00 43 30 */ lis r0, 0x4330
/* 80314E0C 00311D6C 90 01 00 10 */ stw r0, 0x10(r1)
/* 80314E10 00311D70 EC 61 00 32 */ fmuls f3, f1, f0
/* 80314E14 00311D74 C8 82 C9 78 */ lfd f4, lbl_805AE698@sda21(r2)
/* 80314E18 00311D78 C0 42 C9 6C */ lfs f2, lbl_805AE68C@sda21(r2)
/* 80314E1C 00311D7C C0 02 C9 70 */ lfs f0, lbl_805AE690@sda21(r2)
/* 80314E20 00311D80 FC 60 18 1E */ fctiwz f3, f3
/* 80314E24 00311D84 D8 61 00 08 */ stfd f3, 8(r1)
/* 80314E28 00311D88 80 01 00 0C */ lwz r0, 0xc(r1)
/* 80314E2C 00311D8C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 80314E30 00311D90 90 01 00 14 */ stw r0, 0x14(r1)
/* 80314E34 00311D94 C8 61 00 10 */ lfd f3, 0x10(r1)
/* 80314E38 00311D98 EC 63 20 28 */ fsubs f3, f3, f4
/* 80314E3C 00311D9C EC 23 08 BC */ fnmsubs f1, f3, f2, f1
/* 80314E40 00311DA0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80314E44 00311DA4 40 81 00 0C */ ble lbl_80314E50
/* 80314E48 00311DA8 EC 21 10 28 */ fsubs f1, f1, f2
/* 80314E4C 00311DAC 48 00 00 14 */ b lbl_80314E60
lbl_80314E50:
/* 80314E50 00311DB0 C0 02 C9 74 */ lfs f0, lbl_805AE694@sda21(r2)
/* 80314E54 00311DB4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80314E58 00311DB8 40 80 00 08 */ bge lbl_80314E60
/* 80314E5C 00311DBC EC 22 08 2A */ fadds f1, f2, f1
lbl_80314E60:
/* 80314E60 00311DC0 EC 81 00 72 */ fmuls f4, f1, f1
/* 80314E64 00311DC4 C0 02 C9 80 */ lfs f0, lbl_805AE6A0@sda21(r2)
/* 80314E68 00311DC8 C0 62 C9 84 */ lfs f3, lbl_805AE6A4@sda21(r2)
/* 80314E6C 00311DCC EC A1 00 32 */ fmuls f5, f1, f0
/* 80314E70 00311DD0 C0 42 C9 88 */ lfs f2, lbl_805AE6A8@sda21(r2)
/* 80314E74 00311DD4 EC 21 01 32 */ fmuls f1, f1, f4
/* 80314E78 00311DD8 C0 02 C9 8C */ lfs f0, lbl_805AE6AC@sda21(r2)
/* 80314E7C 00311DDC EC A1 28 FA */ fmadds f5, f1, f3, f5
/* 80314E80 00311DE0 EC 21 01 32 */ fmuls f1, f1, f4
/* 80314E84 00311DE4 EC A1 28 BA */ fmadds f5, f1, f2, f5
/* 80314E88 00311DE8 EC 21 01 32 */ fmuls f1, f1, f4
/* 80314E8C 00311DEC EC A1 28 3A */ fmadds f5, f1, f0, f5
/* 80314E90 00311DF0 FC 20 28 90 */ fmr f1, f5
/* 80314E94 00311DF4 38 21 00 20 */ addi r1, r1, 0x20
/* 80314E98 00311DF8 4E 80 00 20 */ blr
.global BaryToWorld__5CMathFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3f
BaryToWorld__5CMathFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3f:
/* 80314E9C 00311DFC C0 A7 00 04 */ lfs f5, 4(r7)
/* 80314EA0 00311E00 C0 05 00 00 */ lfs f0, 0(r5)
/* 80314EA4 00311E04 C0 45 00 04 */ lfs f2, 4(r5)
/* 80314EA8 00311E08 C0 87 00 00 */ lfs f4, 0(r7)
/* 80314EAC 00311E0C EC 25 00 32 */ fmuls f1, f5, f0
/* 80314EB0 00311E10 C0 04 00 00 */ lfs f0, 0(r4)
/* 80314EB4 00311E14 EC C5 00 B2 */ fmuls f6, f5, f2
/* 80314EB8 00311E18 C0 64 00 04 */ lfs f3, 4(r4)
/* 80314EBC 00311E1C EC 44 00 32 */ fmuls f2, f4, f0
/* 80314EC0 00311E20 C0 04 00 08 */ lfs f0, 8(r4)
/* 80314EC4 00311E24 EC E4 00 F2 */ fmuls f7, f4, f3
/* 80314EC8 00311E28 C0 65 00 08 */ lfs f3, 8(r5)
/* 80314ECC 00311E2C C1 07 00 08 */ lfs f8, 8(r7)
/* 80314ED0 00311E30 EC 84 00 32 */ fmuls f4, f4, f0
/* 80314ED4 00311E34 C0 06 00 00 */ lfs f0, 0(r6)
/* 80314ED8 00311E38 EC 65 00 F2 */ fmuls f3, f5, f3
/* 80314EDC 00311E3C C0 A6 00 04 */ lfs f5, 4(r6)
/* 80314EE0 00311E40 EC 22 08 2A */ fadds f1, f2, f1
/* 80314EE4 00311E44 EC 08 00 32 */ fmuls f0, f8, f0
/* 80314EE8 00311E48 C0 46 00 08 */ lfs f2, 8(r6)
/* 80314EEC 00311E4C EC C7 30 2A */ fadds f6, f7, f6
/* 80314EF0 00311E50 EC A8 01 72 */ fmuls f5, f8, f5
/* 80314EF4 00311E54 EC 01 00 2A */ fadds f0, f1, f0
/* 80314EF8 00311E58 EC 64 18 2A */ fadds f3, f4, f3
/* 80314EFC 00311E5C EC 28 00 B2 */ fmuls f1, f8, f2
/* 80314F00 00311E60 EC 46 28 2A */ fadds f2, f6, f5
/* 80314F04 00311E64 D0 03 00 00 */ stfs f0, 0(r3)
/* 80314F08 00311E68 EC 03 08 2A */ fadds f0, f3, f1
/* 80314F0C 00311E6C D0 43 00 04 */ stfs f2, 4(r3)
/* 80314F10 00311E70 D0 03 00 08 */ stfs f0, 8(r3)
/* 80314F14 00311E74 4E 80 00 20 */ blr
.global GetBezierPoint__5CMathFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3ff
GetBezierPoint__5CMathFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3ff:
/* 80314F18 00311E78 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80314F1C 00311E7C DB E1 00 20 */ stfd f31, 0x20(r1)
/* 80314F20 00311E80 F3 E1 00 28 */ psq_st f31, 40(r1), 0, qr0
/* 80314F24 00311E84 DB C1 00 10 */ stfd f30, 0x10(r1)
/* 80314F28 00311E88 F3 C1 00 18 */ psq_st f30, 24(r1), 0, qr0
/* 80314F2C 00311E8C C0 02 C9 90 */ lfs f0, lbl_805AE6B0@sda21(r2)
/* 80314F30 00311E90 C0 47 00 00 */ lfs f2, 0(r7)
/* 80314F34 00311E94 C0 87 00 04 */ lfs f4, 4(r7)
/* 80314F38 00311E98 EC 00 08 28 */ fsubs f0, f0, f1
/* 80314F3C 00311E9C C0 A6 00 00 */ lfs f5, 0(r6)
/* 80314F40 00311EA0 EC 42 00 72 */ fmuls f2, f2, f1
/* 80314F44 00311EA4 C0 67 00 08 */ lfs f3, 8(r7)
/* 80314F48 00311EA8 EC 84 00 72 */ fmuls f4, f4, f1
/* 80314F4C 00311EAC C1 26 00 04 */ lfs f9, 4(r6)
/* 80314F50 00311EB0 EC 45 10 3A */ fmadds f2, f5, f0, f2
/* 80314F54 00311EB4 C0 E5 00 00 */ lfs f7, 0(r5)
/* 80314F58 00311EB8 EC C5 00 72 */ fmuls f6, f5, f1
/* 80314F5C 00311EBC C3 E6 00 08 */ lfs f31, 8(r6)
/* 80314F60 00311EC0 EC 63 00 72 */ fmuls f3, f3, f1
/* 80314F64 00311EC4 C1 05 00 04 */ lfs f8, 4(r5)
/* 80314F68 00311EC8 EC A9 00 72 */ fmuls f5, f9, f1
/* 80314F6C 00311ECC C1 A5 00 08 */ lfs f13, 8(r5)
/* 80314F70 00311ED0 EC 89 20 3A */ fmadds f4, f9, f0, f4
/* 80314F74 00311ED4 C1 84 00 00 */ lfs f12, 0(r4)
/* 80314F78 00311ED8 ED 67 00 72 */ fmuls f11, f7, f1
/* 80314F7C 00311EDC C1 44 00 04 */ lfs f10, 4(r4)
/* 80314F80 00311EE0 EF C7 30 3A */ fmadds f30, f7, f0, f6
/* 80314F84 00311EE4 C1 24 00 08 */ lfs f9, 8(r4)
/* 80314F88 00311EE8 EC 42 00 72 */ fmuls f2, f2, f1
/* 80314F8C 00311EEC EC DF 00 72 */ fmuls f6, f31, f1
/* 80314F90 00311EF0 EC 7F 18 3A */ fmadds f3, f31, f0, f3
/* 80314F94 00311EF4 EC E8 00 72 */ fmuls f7, f8, f1
/* 80314F98 00311EF8 EF E8 28 3A */ fmadds f31, f8, f0, f5
/* 80314F9C 00311EFC EC A4 00 72 */ fmuls f5, f4, f1
/* 80314FA0 00311F00 EC 5E 10 3A */ fmadds f2, f30, f0, f2
/* 80314FA4 00311F04 ED 0D 00 72 */ fmuls f8, f13, f1
/* 80314FA8 00311F08 ED AD 30 3A */ fmadds f13, f13, f0, f6
/* 80314FAC 00311F0C EC 83 00 72 */ fmuls f4, f3, f1
/* 80314FB0 00311F10 EC DF 28 3A */ fmadds f6, f31, f0, f5
/* 80314FB4 00311F14 EC AC 58 3A */ fmadds f5, f12, f0, f11
/* 80314FB8 00311F18 EC 7E 00 72 */ fmuls f3, f30, f1
/* 80314FBC 00311F1C EC 8D 20 3A */ fmadds f4, f13, f0, f4
/* 80314FC0 00311F20 ED 4A 38 3A */ fmadds f10, f10, f0, f7
/* 80314FC4 00311F24 EC FF 00 72 */ fmuls f7, f31, f1
/* 80314FC8 00311F28 EC 65 18 3A */ fmadds f3, f5, f0, f3
/* 80314FCC 00311F2C EC 42 00 72 */ fmuls f2, f2, f1
/* 80314FD0 00311F30 ED 09 40 3A */ fmadds f8, f9, f0, f8
/* 80314FD4 00311F34 EC AD 00 72 */ fmuls f5, f13, f1
/* 80314FD8 00311F38 EC 43 10 3A */ fmadds f2, f3, f0, f2
/* 80314FDC 00311F3C EC EA 38 3A */ fmadds f7, f10, f0, f7
/* 80314FE0 00311F40 EC C6 00 72 */ fmuls f6, f6, f1
/* 80314FE4 00311F44 EC 68 28 3A */ fmadds f3, f8, f0, f5
/* 80314FE8 00311F48 D0 43 00 00 */ stfs f2, 0(r3)
/* 80314FEC 00311F4C EC 24 00 72 */ fmuls f1, f4, f1
/* 80314FF0 00311F50 EC 47 30 3A */ fmadds f2, f7, f0, f6
/* 80314FF4 00311F54 EC 03 08 3A */ fmadds f0, f3, f0, f1
/* 80314FF8 00311F58 D0 43 00 04 */ stfs f2, 4(r3)
/* 80314FFC 00311F5C D0 03 00 08 */ stfs f0, 8(r3)
/* 80315000 00311F60 E3 E1 00 28 */ psq_l f31, 40(r1), 0, qr0
/* 80315004 00311F64 CB E1 00 20 */ lfd f31, 0x20(r1)
/* 80315008 00311F68 E3 C1 00 18 */ psq_l f30, 24(r1), 0, qr0
/* 8031500C 00311F6C CB C1 00 10 */ lfd f30, 0x10(r1)
/* 80315010 00311F70 38 21 00 30 */ addi r1, r1, 0x30
/* 80315014 00311F74 4E 80 00 20 */ blr
.global GetCatmullRomSplinePoint__5CMathFfffff
GetCatmullRomSplinePoint__5CMathFfffff:
/* 80315018 00311F78 C0 02 C9 94 */ lfs f0, lbl_805AE6B4@sda21(r2)
/* 8031501C 00311F7C FC 05 00 40 */ fcmpo cr0, f5, f0
/* 80315020 00311F80 4C 40 13 82 */ cror 2, 0, 2
/* 80315024 00311F84 40 82 00 0C */ bne lbl_80315030
/* 80315028 00311F88 FC 20 10 90 */ fmr f1, f2
/* 8031502C 00311F8C 4E 80 00 20 */ blr
lbl_80315030:
/* 80315030 00311F90 C1 82 C9 90 */ lfs f12, lbl_805AE6B0@sda21(r2)
/* 80315034 00311F94 FC 05 60 40 */ fcmpo cr0, f5, f12
/* 80315038 00311F98 4C 41 13 82 */ cror 2, 1, 2
/* 8031503C 00311F9C 40 82 00 0C */ bne lbl_80315048
/* 80315040 00311FA0 FC 20 18 90 */ fmr f1, f3
/* 80315044 00311FA4 4E 80 00 20 */ blr
lbl_80315048:
/* 80315048 00311FA8 C0 C2 C9 A8 */ lfs f6, lbl_805AE6C8@sda21(r2)
/* 8031504C 00311FAC EC E5 01 72 */ fmuls f7, f5, f5
/* 80315050 00311FB0 C0 02 C9 AC */ lfs f0, lbl_805AE6CC@sda21(r2)
/* 80315054 00311FB4 EC C6 01 72 */ fmuls f6, f6, f5
/* 80315058 00311FB8 C1 02 C9 A4 */ lfs f8, lbl_805AE6C4@sda21(r2)
/* 8031505C 00311FBC EC 00 01 72 */ fmuls f0, f0, f5
/* 80315060 00311FC0 C1 42 C9 9C */ lfs f10, lbl_805AE6BC@sda21(r2)
/* 80315064 00311FC4 ED 08 01 72 */ fmuls f8, f8, f5
/* 80315068 00311FC8 C1 22 C9 A0 */ lfs f9, lbl_805AE6C0@sda21(r2)
/* 8031506C 00311FCC EC C6 01 72 */ fmuls f6, f6, f5
/* 80315070 00311FD0 C1 62 C9 98 */ lfs f11, lbl_805AE6B8@sda21(r2)
/* 80315074 00311FD4 EC 00 01 72 */ fmuls f0, f0, f5
/* 80315078 00311FD8 ED 4A 01 72 */ fmuls f10, f10, f5
/* 8031507C 00311FDC ED 29 01 72 */ fmuls f9, f9, f5
/* 80315080 00311FE0 ED 08 01 72 */ fmuls f8, f8, f5
/* 80315084 00311FE4 EC 05 01 BA */ fmadds f0, f5, f6, f0
/* 80315088 00311FE8 ED 6B 01 72 */ fmuls f11, f11, f5
/* 8031508C 00311FEC EC C5 3A 3A */ fmadds f6, f5, f8, f7
/* 80315090 00311FF0 EC 0C 00 2A */ fadds f0, f12, f0
/* 80315094 00311FF4 ED 0A 01 72 */ fmuls f8, f10, f5
/* 80315098 00311FF8 EC E9 01 72 */ fmuls f7, f9, f5
/* 8031509C 00311FFC ED 2B 01 72 */ fmuls f9, f11, f5
/* 803150A0 00312000 EC C6 58 28 */ fsubs f6, f6, f11
/* 803150A4 00312004 EC E5 3A 3A */ fmadds f7, f5, f8, f7
/* 803150A8 00312008 EC 02 00 32 */ fmuls f0, f2, f0
/* 803150AC 0031200C EC A5 4A 78 */ fmsubs f5, f5, f9, f9
/* 803150B0 00312010 EC 4B 38 2A */ fadds f2, f11, f7
/* 803150B4 00312014 EC 01 01 BA */ fmadds f0, f1, f6, f0
/* 803150B8 00312018 EC 03 00 BA */ fmadds f0, f3, f2, f0
/* 803150BC 0031201C EC 24 01 7A */ fmadds f1, f4, f5, f0
/* 803150C0 00312020 4E 80 00 20 */ blr
.global GetCatmullRomSplinePoint__5CMathFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3ff
GetCatmullRomSplinePoint__5CMathFRC9CVector3fRC9CVector3fRC9CVector3fRC9CVector3ff:
/* 803150C4 00312024 94 21 FF C0 */ stwu r1, -0x40(r1)
/* 803150C8 00312028 DB E1 00 30 */ stfd f31, 0x30(r1)
/* 803150CC 0031202C F3 E1 00 38 */ psq_st f31, 56(r1), 0, qr0
/* 803150D0 00312030 DB C1 00 20 */ stfd f30, 0x20(r1)
/* 803150D4 00312034 F3 C1 00 28 */ psq_st f30, 40(r1), 0, qr0
/* 803150D8 00312038 DB A1 00 10 */ stfd f29, 0x10(r1)
/* 803150DC 0031203C F3 A1 00 18 */ psq_st f29, 24(r1), 0, qr0
/* 803150E0 00312040 C0 02 C9 94 */ lfs f0, lbl_805AE6B4@sda21(r2)
/* 803150E4 00312044 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 803150E8 00312048 4C 40 13 82 */ cror 2, 0, 2
/* 803150EC 0031204C 40 82 00 20 */ bne lbl_8031510C
/* 803150F0 00312050 C0 05 00 00 */ lfs f0, 0(r5)
/* 803150F4 00312054 D0 03 00 00 */ stfs f0, 0(r3)
/* 803150F8 00312058 C0 05 00 04 */ lfs f0, 4(r5)
/* 803150FC 0031205C D0 03 00 04 */ stfs f0, 4(r3)
/* 80315100 00312060 C0 05 00 08 */ lfs f0, 8(r5)
/* 80315104 00312064 D0 03 00 08 */ stfs f0, 8(r3)
/* 80315108 00312068 48 00 01 28 */ b lbl_80315230
lbl_8031510C:
/* 8031510C 0031206C C1 22 C9 90 */ lfs f9, lbl_805AE6B0@sda21(r2)
/* 80315110 00312070 FC 01 48 40 */ fcmpo cr0, f1, f9
/* 80315114 00312074 4C 41 13 82 */ cror 2, 1, 2
/* 80315118 00312078 40 82 00 20 */ bne lbl_80315138
/* 8031511C 0031207C C0 06 00 00 */ lfs f0, 0(r6)
/* 80315120 00312080 D0 03 00 00 */ stfs f0, 0(r3)
/* 80315124 00312084 C0 06 00 04 */ lfs f0, 4(r6)
/* 80315128 00312088 D0 03 00 04 */ stfs f0, 4(r3)
/* 8031512C 0031208C C0 06 00 08 */ lfs f0, 8(r6)
/* 80315130 00312090 D0 03 00 08 */ stfs f0, 8(r3)
/* 80315134 00312094 48 00 00 FC */ b lbl_80315230
lbl_80315138:
/* 80315138 00312098 C0 82 C9 A8 */ lfs f4, lbl_805AE6C8@sda21(r2)
/* 8031513C 0031209C EC 01 00 72 */ fmuls f0, f1, f1
/* 80315140 003120A0 C0 62 C9 AC */ lfs f3, lbl_805AE6CC@sda21(r2)
/* 80315144 003120A4 C0 42 C9 A4 */ lfs f2, lbl_805AE6C4@sda21(r2)
/* 80315148 003120A8 EC 84 00 72 */ fmuls f4, f4, f1
/* 8031514C 003120AC EC 63 00 72 */ fmuls f3, f3, f1
/* 80315150 003120B0 C0 C2 C9 9C */ lfs f6, lbl_805AE6BC@sda21(r2)
/* 80315154 003120B4 EC 42 00 72 */ fmuls f2, f2, f1
/* 80315158 003120B8 C0 A2 C9 A0 */ lfs f5, lbl_805AE6C0@sda21(r2)
/* 8031515C 003120BC ED 06 00 72 */ fmuls f8, f6, f1
/* 80315160 003120C0 EC E5 00 72 */ fmuls f7, f5, f1
/* 80315164 003120C4 EC 42 00 72 */ fmuls f2, f2, f1
/* 80315168 003120C8 C0 A2 C9 98 */ lfs f5, lbl_805AE6B8@sda21(r2)
/* 8031516C 003120CC EC 84 00 72 */ fmuls f4, f4, f1
/* 80315170 003120D0 C0 C5 00 00 */ lfs f6, 0(r5)
/* 80315174 003120D4 EC 63 00 72 */ fmuls f3, f3, f1
/* 80315178 003120D8 ED 45 00 72 */ fmuls f10, f5, f1
/* 8031517C 003120DC EC 01 00 BA */ fmadds f0, f1, f2, f0
/* 80315180 003120E0 C0 A4 00 00 */ lfs f5, 0(r4)
/* 80315184 003120E4 EC 61 19 3A */ fmadds f3, f1, f4, f3
/* 80315188 003120E8 C0 44 00 04 */ lfs f2, 4(r4)
/* 8031518C 003120EC ED 08 00 72 */ fmuls f8, f8, f1
/* 80315190 003120F0 EF A0 50 28 */ fsubs f29, f0, f10
/* 80315194 003120F4 EC E7 00 72 */ fmuls f7, f7, f1
/* 80315198 003120F8 C0 05 00 04 */ lfs f0, 4(r5)
/* 8031519C 003120FC EF C9 18 2A */ fadds f30, f9, f3
/* 803151A0 00312100 C0 84 00 08 */ lfs f4, 8(r4)
/* 803151A4 00312104 ED 2A 00 72 */ fmuls f9, f10, f1
/* 803151A8 00312108 EC E1 3A 3A */ fmadds f7, f1, f8, f7
/* 803151AC 0031210C C0 65 00 08 */ lfs f3, 8(r5)
/* 803151B0 00312110 ED 7E 01 B2 */ fmuls f11, f30, f6
/* 803151B4 00312114 ED 9D 01 72 */ fmuls f12, f29, f5
/* 803151B8 00312118 C0 A6 00 00 */ lfs f5, 0(r6)
/* 803151BC 0031211C EF EA 38 2A */ fadds f31, f10, f7
/* 803151C0 00312120 C0 C6 00 04 */ lfs f6, 4(r6)
/* 803151C4 00312124 ED 1D 00 B2 */ fmuls f8, f29, f2
/* 803151C8 00312128 EC FE 00 32 */ fmuls f7, f30, f0
/* 803151CC 0031212C C0 46 00 08 */ lfs f2, 8(r6)
/* 803151D0 00312130 ED A1 4A 78 */ fmsubs f13, f1, f9, f9
/* 803151D4 00312134 C1 27 00 00 */ lfs f9, 0(r7)
/* 803151D8 00312138 ED 5F 01 72 */ fmuls f10, f31, f5
/* 803151DC 0031213C EC 0C 58 2A */ fadds f0, f12, f11
/* 803151E0 00312140 C0 A7 00 04 */ lfs f5, 4(r7)
/* 803151E4 00312144 EC 9D 01 32 */ fmuls f4, f29, f4
/* 803151E8 00312148 EC 7E 00 F2 */ fmuls f3, f30, f3
/* 803151EC 0031214C C0 27 00 08 */ lfs f1, 8(r7)
/* 803151F0 00312150 EC E8 38 2A */ fadds f7, f8, f7
/* 803151F4 00312154 EC DF 01 B2 */ fmuls f6, f31, f6
/* 803151F8 00312158 ED 0D 02 72 */ fmuls f8, f13, f9
/* 803151FC 0031215C EC 00 50 2A */ fadds f0, f0, f10
/* 80315200 00312160 EC 64 18 2A */ fadds f3, f4, f3
/* 80315204 00312164 EC 5F 00 B2 */ fmuls f2, f31, f2
/* 80315208 00312168 EC 00 40 2A */ fadds f0, f0, f8
/* 8031520C 0031216C EC C7 30 2A */ fadds f6, f7, f6
/* 80315210 00312170 EC 8D 01 72 */ fmuls f4, f13, f5
/* 80315214 00312174 EC 43 10 2A */ fadds f2, f3, f2
/* 80315218 00312178 D0 03 00 00 */ stfs f0, 0(r3)
/* 8031521C 0031217C EC 0D 00 72 */ fmuls f0, f13, f1
/* 80315220 00312180 EC 26 20 2A */ fadds f1, f6, f4
/* 80315224 00312184 EC 02 00 2A */ fadds f0, f2, f0
/* 80315228 00312188 D0 23 00 04 */ stfs f1, 4(r3)
/* 8031522C 0031218C D0 03 00 08 */ stfs f0, 8(r3)
lbl_80315230:
/* 80315230 00312190 E3 E1 00 38 */ psq_l f31, 56(r1), 0, qr0
/* 80315234 00312194 CB E1 00 30 */ lfd f31, 0x30(r1)
/* 80315238 00312198 E3 C1 00 28 */ psq_l f30, 40(r1), 0, qr0
/* 8031523C 0031219C CB C1 00 20 */ lfd f30, 0x20(r1)
/* 80315240 003121A0 E3 A1 00 18 */ psq_l f29, 24(r1), 0, qr0
/* 80315244 003121A4 CB A1 00 10 */ lfd f29, 0x10(r1)
/* 80315248 003121A8 38 21 00 40 */ addi r1, r1, 0x40
/* 8031524C 003121AC 4E 80 00 20 */ blr
.global CeilingF__5CMathFf
CeilingF__5CMathFf:
/* 80315250 003121B0 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80315254 003121B4 7C 08 02 A6 */ mflr r0
/* 80315258 003121B8 90 01 00 24 */ stw r0, 0x24(r1)
/* 8031525C 003121BC DB E1 00 10 */ stfd f31, 0x10(r1)
/* 80315260 003121C0 F3 E1 00 18 */ psq_st f31, 24(r1), 0, qr0
/* 80315264 003121C4 FF E0 08 90 */ fmr f31, f1
/* 80315268 003121C8 48 00 00 35 */ bl FloorF__5CMathFf
/* 8031526C 003121CC FC 01 F8 00 */ fcmpu cr0, f1, f31
/* 80315270 003121D0 40 82 00 0C */ bne lbl_8031527C
/* 80315274 003121D4 FC 20 F8 90 */ fmr f1, f31
/* 80315278 003121D8 48 00 00 0C */ b lbl_80315284
lbl_8031527C:
/* 8031527C 003121DC C0 02 C9 90 */ lfs f0, lbl_805AE6B0@sda21(r2)
/* 80315280 003121E0 EC 20 08 2A */ fadds f1, f0, f1
lbl_80315284:
/* 80315284 003121E4 E3 E1 00 18 */ psq_l f31, 24(r1), 0, qr0
/* 80315288 003121E8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8031528C 003121EC CB E1 00 10 */ lfd f31, 0x10(r1)
/* 80315290 003121F0 7C 08 03 A6 */ mtlr r0
/* 80315294 003121F4 38 21 00 20 */ addi r1, r1, 0x20
/* 80315298 003121F8 4E 80 00 20 */ blr
.global FloorF__5CMathFf
FloorF__5CMathFf:
/* 8031529C 003121FC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803152A0 00312200 7C 08 02 A6 */ mflr r0
/* 803152A4 00312204 90 01 00 14 */ stw r0, 0x14(r1)
/* 803152A8 00312208 48 07 F2 1D */ bl floor
/* 803152AC 0031220C 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803152B0 00312210 FC 20 08 18 */ frsp f1, f1
/* 803152B4 00312214 7C 08 03 A6 */ mtlr r0
/* 803152B8 00312218 38 21 00 10 */ addi r1, r1, 0x10
/* 803152BC 0031221C 4E 80 00 20 */ blr
.global SlowTangentR__5CMathFf
SlowTangentR__5CMathFf:
/* 803152C0 00312220 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803152C4 00312224 7C 08 02 A6 */ mflr r0
/* 803152C8 00312228 90 01 00 14 */ stw r0, 0x14(r1)
/* 803152CC 0031222C 48 07 F8 E9 */ bl tan
/* 803152D0 00312230 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803152D4 00312234 FC 20 08 18 */ frsp f1, f1
/* 803152D8 00312238 7C 08 03 A6 */ mtlr r0
/* 803152DC 0031223C 38 21 00 10 */ addi r1, r1, 0x10
/* 803152E0 00312240 4E 80 00 20 */ blr
.global SlowCosineR__5CMathFf
SlowCosineR__5CMathFf:
/* 803152E4 00312244 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803152E8 00312248 7C 08 02 A6 */ mflr r0
/* 803152EC 0031224C 90 01 00 14 */ stw r0, 0x14(r1)
/* 803152F0 00312250 48 07 F1 01 */ bl cos
/* 803152F4 00312254 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803152F8 00312258 FC 20 08 18 */ frsp f1, f1
/* 803152FC 0031225C 7C 08 03 A6 */ mtlr r0
/* 80315300 00312260 38 21 00 10 */ addi r1, r1, 0x10
/* 80315304 00312264 4E 80 00 20 */ blr
.global SlowSineR__5CMathFf
SlowSineR__5CMathFf:
/* 80315308 00312268 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8031530C 0031226C 7C 08 02 A6 */ mflr r0
/* 80315310 00312270 90 01 00 14 */ stw r0, 0x14(r1)
/* 80315314 00312274 48 07 F7 C9 */ bl sin
/* 80315318 00312278 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8031531C 0031227C FC 20 08 18 */ frsp f1, f1
/* 80315320 00312280 7C 08 03 A6 */ mtlr r0
/* 80315324 00312284 38 21 00 10 */ addi r1, r1, 0x10
/* 80315328 00312288 4E 80 00 20 */ blr
.global PowF__5CMathFff
PowF__5CMathFff:
/* 8031532C 0031228C 94 21 FF E0 */ stwu r1, -0x20(r1)
/* 80315330 00312290 7C 08 02 A6 */ mflr r0
/* 80315334 00312294 90 01 00 24 */ stw r0, 0x24(r1)
/* 80315338 00312298 DB E1 00 10 */ stfd f31, 0x10(r1)
/* 8031533C 0031229C F3 E1 00 18 */ psq_st f31, 24(r1), 0, qr0
/* 80315340 003122A0 FF E0 10 90 */ fmr f31, f2
/* 80315344 003122A4 48 07 F9 89 */ bl log
/* 80315348 003122A8 FC 3F 00 72 */ fmul f1, f31, f1
/* 8031534C 003122AC 48 07 F9 41 */ bl exp
/* 80315350 003122B0 FC 20 08 18 */ frsp f1, f1
/* 80315354 003122B4 E3 E1 00 18 */ psq_l f31, 24(r1), 0, qr0
/* 80315358 003122B8 80 01 00 24 */ lwz r0, 0x24(r1)
/* 8031535C 003122BC CB E1 00 10 */ lfd f31, 0x10(r1)
/* 80315360 003122C0 7C 08 03 A6 */ mtlr r0
/* 80315364 003122C4 38 21 00 20 */ addi r1, r1, 0x20
/* 80315368 003122C8 4E 80 00 20 */ blr
.global ArcTangentR__5CMathFf
ArcTangentR__5CMathFf:
/* 8031536C 003122CC 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80315370 003122D0 7C 08 02 A6 */ mflr r0
/* 80315374 003122D4 90 01 00 14 */ stw r0, 0x14(r1)
/* 80315378 003122D8 48 07 EE 51 */ bl atan
/* 8031537C 003122DC 80 01 00 14 */ lwz r0, 0x14(r1)
/* 80315380 003122E0 FC 20 08 18 */ frsp f1, f1
/* 80315384 003122E4 7C 08 03 A6 */ mtlr r0
/* 80315388 003122E8 38 21 00 10 */ addi r1, r1, 0x10
/* 8031538C 003122EC 4E 80 00 20 */ blr
.global ArcCosineR__5CMathFf
ArcCosineR__5CMathFf:
/* 80315390 003122F0 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 80315394 003122F4 7C 08 02 A6 */ mflr r0
/* 80315398 003122F8 90 01 00 14 */ stw r0, 0x14(r1)
/* 8031539C 003122FC 48 07 F8 91 */ bl acos
/* 803153A0 00312300 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803153A4 00312304 FC 20 08 18 */ frsp f1, f1
/* 803153A8 00312308 7C 08 03 A6 */ mtlr r0
/* 803153AC 0031230C 38 21 00 10 */ addi r1, r1, 0x10
/* 803153B0 00312310 4E 80 00 20 */ blr
.global ArcSineR__5CMathFf
ArcSineR__5CMathFf:
/* 803153B4 00312314 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 803153B8 00312318 7C 08 02 A6 */ mflr r0
/* 803153BC 0031231C 90 01 00 14 */ stw r0, 0x14(r1)
/* 803153C0 00312320 48 07 F8 8D */ bl asin
/* 803153C4 00312324 80 01 00 14 */ lwz r0, 0x14(r1)
/* 803153C8 00312328 FC 20 08 18 */ frsp f1, f1
/* 803153CC 0031232C 7C 08 03 A6 */ mtlr r0
/* 803153D0 00312330 38 21 00 10 */ addi r1, r1, 0x10
/* 803153D4 00312334 4E 80 00 20 */ blr
.global InvSqrtF__5CMathFf
InvSqrtF__5CMathFf:
/* 803153D8 00312338 C8 42 C9 B0 */ lfd f2, lbl_805AE6D0@sda21(r2)
/* 803153DC 0031233C FC 01 10 40 */ fcmpo cr0, f1, f2
/* 803153E0 00312340 40 81 00 58 */ ble lbl_80315438
/* 803153E4 00312344 FC 40 08 34 */ frsqrte f2, f1
/* 803153E8 00312348 C8 82 C9 B8 */ lfd f4, lbl_805AE6D8@sda21(r2)
/* 803153EC 0031234C C8 62 C9 C0 */ lfd f3, lbl_805AE6E0@sda21(r2)
/* 803153F0 00312350 FC 02 00 B2 */ fmul f0, f2, f2
/* 803153F4 00312354 FC 44 00 B2 */ fmul f2, f4, f2
/* 803153F8 00312358 FC 01 18 3C */ fnmsub f0, f1, f0, f3
/* 803153FC 0031235C FC 42 00 32 */ fmul f2, f2, f0
/* 80315400 00312360 FC 02 00 B2 */ fmul f0, f2, f2
/* 80315404 00312364 FC 44 00 B2 */ fmul f2, f4, f2
/* 80315408 00312368 FC 01 18 3C */ fnmsub f0, f1, f0, f3
/* 8031540C 0031236C FC 42 00 32 */ fmul f2, f2, f0
/* 80315410 00312370 FC 02 00 B2 */ fmul f0, f2, f2
/* 80315414 00312374 FC 44 00 B2 */ fmul f2, f4, f2
/* 80315418 00312378 FC 01 18 3C */ fnmsub f0, f1, f0, f3
/* 8031541C 0031237C FC 42 00 32 */ fmul f2, f2, f0
/* 80315420 00312380 FC 02 00 B2 */ fmul f0, f2, f2
/* 80315424 00312384 FC 44 00 B2 */ fmul f2, f4, f2
/* 80315428 00312388 FC 01 18 3C */ fnmsub f0, f1, f0, f3
/* 8031542C 0031238C FC 02 00 32 */ fmul f0, f2, f0
/* 80315430 00312390 FC 41 00 32 */ fmul f2, f1, f0
/* 80315434 00312394 48 00 00 2C */ b lbl_80315460
lbl_80315438:
/* 80315438 00312398 FC 02 08 00 */ fcmpu cr0, f2, f1
/* 8031543C 0031239C 40 82 00 08 */ bne lbl_80315444
/* 80315440 003123A0 48 00 00 20 */ b lbl_80315460
lbl_80315444:
/* 80315444 003123A4 FC 01 10 00 */ fcmpu cr0, f1, f2
/* 80315448 003123A8 41 82 00 10 */ beq lbl_80315458
/* 8031544C 003123AC 3C 60 80 5B */ lis r3, __float_nan@ha
/* 80315450 003123B0 C0 43 8B A0 */ lfs f2, __float_nan@l(r3)
/* 80315454 003123B4 48 00 00 0C */ b lbl_80315460
lbl_80315458:
/* 80315458 003123B8 3C 60 80 5B */ lis r3, __float_huge@ha
/* 8031545C 003123BC C0 43 8B A4 */ lfs f2, __float_huge@l(r3)
lbl_80315460:
/* 80315460 003123C0 C8 02 C9 C8 */ lfd f0, lbl_805AE6E8@sda21(r2)
/* 80315464 003123C4 FC 20 10 24 */ fdiv f1, f0, f2
/* 80315468 003123C8 FC 20 08 18 */ frsp f1, f1
/* 8031546C 003123CC 4E 80 00 20 */ blr
.global SqrtD__5CMathFd
SqrtD__5CMathFd:
/* 80315470 003123D0 C8 02 C9 B0 */ lfd f0, lbl_805AE6D0@sda21(r2)
/* 80315474 003123D4 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80315478 003123D8 40 81 00 58 */ ble lbl_803154D0
/* 8031547C 003123DC FC 40 08 34 */ frsqrte f2, f1
/* 80315480 003123E0 C8 82 C9 B8 */ lfd f4, lbl_805AE6D8@sda21(r2)
/* 80315484 003123E4 C8 62 C9 C0 */ lfd f3, lbl_805AE6E0@sda21(r2)
/* 80315488 003123E8 FC 02 00 B2 */ fmul f0, f2, f2
/* 8031548C 003123EC FC 44 00 B2 */ fmul f2, f4, f2
/* 80315490 003123F0 FC 01 18 3C */ fnmsub f0, f1, f0, f3
/* 80315494 003123F4 FC 42 00 32 */ fmul f2, f2, f0
/* 80315498 003123F8 FC 02 00 B2 */ fmul f0, f2, f2
/* 8031549C 003123FC FC 44 00 B2 */ fmul f2, f4, f2
/* 803154A0 00312400 FC 01 18 3C */ fnmsub f0, f1, f0, f3
/* 803154A4 00312404 FC 42 00 32 */ fmul f2, f2, f0
/* 803154A8 00312408 FC 02 00 B2 */ fmul f0, f2, f2
/* 803154AC 0031240C FC 44 00 B2 */ fmul f2, f4, f2
/* 803154B0 00312410 FC 01 18 3C */ fnmsub f0, f1, f0, f3
/* 803154B4 00312414 FC 42 00 32 */ fmul f2, f2, f0
/* 803154B8 00312418 FC 02 00 B2 */ fmul f0, f2, f2
/* 803154BC 0031241C FC 44 00 B2 */ fmul f2, f4, f2
/* 803154C0 00312420 FC 01 18 3C */ fnmsub f0, f1, f0, f3
/* 803154C4 00312424 FC 02 00 32 */ fmul f0, f2, f0
/* 803154C8 00312428 FC 01 00 32 */ fmul f0, f1, f0
/* 803154CC 0031242C 48 00 00 2C */ b lbl_803154F8
lbl_803154D0:
/* 803154D0 00312430 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 803154D4 00312434 40 82 00 08 */ bne lbl_803154DC
/* 803154D8 00312438 48 00 00 20 */ b lbl_803154F8
lbl_803154DC:
/* 803154DC 0031243C FC 01 00 00 */ fcmpu cr0, f1, f0
/* 803154E0 00312440 41 82 00 10 */ beq lbl_803154F0
/* 803154E4 00312444 3C 60 80 5B */ lis r3, __float_nan@ha
/* 803154E8 00312448 C0 03 8B A0 */ lfs f0, __float_nan@l(r3)
/* 803154EC 0031244C 48 00 00 0C */ b lbl_803154F8
lbl_803154F0:
/* 803154F0 00312450 3C 60 80 5B */ lis r3, __float_huge@ha
/* 803154F4 00312454 C0 03 8B A4 */ lfs f0, __float_huge@l(r3)
lbl_803154F8:
/* 803154F8 00312458 FC 20 00 90 */ fmr f1, f0
/* 803154FC 0031245C 4E 80 00 20 */ blr
.global SqrtF__5CMathFf
SqrtF__5CMathFf:
/* 80315500 00312460 C8 02 C9 B0 */ lfd f0, lbl_805AE6D0@sda21(r2)
/* 80315504 00312464 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80315508 00312468 40 81 00 58 */ ble lbl_80315560
/* 8031550C 0031246C FC 40 08 34 */ frsqrte f2, f1
/* 80315510 00312470 C8 82 C9 B8 */ lfd f4, lbl_805AE6D8@sda21(r2)
/* 80315514 00312474 C8 62 C9 C0 */ lfd f3, lbl_805AE6E0@sda21(r2)
/* 80315518 00312478 FC 02 00 B2 */ fmul f0, f2, f2
/* 8031551C 0031247C FC 44 00 B2 */ fmul f2, f4, f2
/* 80315520 00312480 FC 01 18 3C */ fnmsub f0, f1, f0, f3
/* 80315524 00312484 FC 42 00 32 */ fmul f2, f2, f0
/* 80315528 00312488 FC 02 00 B2 */ fmul f0, f2, f2
/* 8031552C 0031248C FC 44 00 B2 */ fmul f2, f4, f2
/* 80315530 00312490 FC 01 18 3C */ fnmsub f0, f1, f0, f3
/* 80315534 00312494 FC 42 00 32 */ fmul f2, f2, f0
/* 80315538 00312498 FC 02 00 B2 */ fmul f0, f2, f2
/* 8031553C 0031249C FC 44 00 B2 */ fmul f2, f4, f2
/* 80315540 003124A0 FC 01 18 3C */ fnmsub f0, f1, f0, f3
/* 80315544 003124A4 FC 42 00 32 */ fmul f2, f2, f0
/* 80315548 003124A8 FC 02 00 B2 */ fmul f0, f2, f2
/* 8031554C 003124AC FC 44 00 B2 */ fmul f2, f4, f2
/* 80315550 003124B0 FC 01 18 3C */ fnmsub f0, f1, f0, f3
/* 80315554 003124B4 FC 02 00 32 */ fmul f0, f2, f0
/* 80315558 003124B8 FC 01 00 32 */ fmul f0, f1, f0
/* 8031555C 003124BC 48 00 00 2C */ b lbl_80315588
lbl_80315560:
/* 80315560 003124C0 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 80315564 003124C4 40 82 00 08 */ bne lbl_8031556C
/* 80315568 003124C8 48 00 00 20 */ b lbl_80315588
lbl_8031556C:
/* 8031556C 003124CC FC 01 00 00 */ fcmpu cr0, f1, f0
/* 80315570 003124D0 41 82 00 10 */ beq lbl_80315580
/* 80315574 003124D4 3C 60 80 5B */ lis r3, __float_nan@ha
/* 80315578 003124D8 C0 03 8B A0 */ lfs f0, __float_nan@l(r3)
/* 8031557C 003124DC 48 00 00 0C */ b lbl_80315588
lbl_80315580:
/* 80315580 003124E0 3C 60 80 5B */ lis r3, __float_huge@ha
/* 80315584 003124E4 C0 03 8B A4 */ lfs f0, __float_huge@l(r3)
lbl_80315588:
/* 80315588 003124E8 FC 20 00 18 */ frsp f1, f0
/* 8031558C 003124EC 4E 80 00 20 */ blr
.section .sdata2, "a"
.balign 8
.global lbl_805AE648
lbl_805AE648:
# ROM: 0x3FAEE8
.4byte 0x3FC90FDB
.global lbl_805AE64C
lbl_805AE64C:
# ROM: 0x3FAEEC
.4byte 0xBF7F8BD1
.global lbl_805AE650
lbl_805AE650:
# ROM: 0x3FAEF0
.4byte 0xBE52CE8C
.global lbl_805AE654
lbl_805AE654:
# ROM: 0x3FAEF4
.4byte 0x3DE9FE20
.global lbl_805AE658
lbl_805AE658:
# ROM: 0x3FAEF8
.4byte 0xBE980D88
.4byte 0
.global lbl_805AE660
lbl_805AE660:
# ROM: 0x3FAF00
.4byte 0x3FED9999
.4byte 0xA0000000
.global lbl_805AE668
lbl_805AE668:
# ROM: 0x3FAF08
.float 1.0
.global lbl_805AE66C
lbl_805AE66C:
# ROM: 0x3FAF0C
.4byte 0xBEFFFD62
.global lbl_805AE670
lbl_805AE670:
# ROM: 0x3FAF10
.4byte 0x3D2A7A18
.global lbl_805AE674
lbl_805AE674:
# ROM: 0x3FAF14
.4byte 0xBAB2BB2B
.global lbl_805AE678
lbl_805AE678:
# ROM: 0x3FAF18
.4byte 0x37A93188
.4byte 0
.global lbl_805AE680
lbl_805AE680:
# ROM: 0x3FAF20
.4byte 0x400921FB
.4byte 0x60000000
.global lbl_805AE688
lbl_805AE688:
# ROM: 0x3FAF28
.4byte 0x3E22F983
.global lbl_805AE68C
lbl_805AE68C:
# ROM: 0x3FAF2C
.float 6.2831855
.global lbl_805AE690
lbl_805AE690:
# ROM: 0x3FAF30
.4byte 0x40490FDB
.global lbl_805AE694
lbl_805AE694:
# ROM: 0x3FAF34
.4byte 0xC0490FDB
.global lbl_805AE698
lbl_805AE698:
# ROM: 0x3FAF38
.double 4.503601774854144E15
.global lbl_805AE6A0
lbl_805AE6A0:
# ROM: 0x3FAF40
.4byte 0x3F7FF347
.global lbl_805AE6A4
lbl_805AE6A4:
# ROM: 0x3FAF44
.4byte 0xBE2A34AE
.global lbl_805AE6A8
lbl_805AE6A8:
# ROM: 0x3FAF48
.4byte 0x3C047FCA
.global lbl_805AE6AC
lbl_805AE6AC:
# ROM: 0x3FAF4C
.4byte 0xB9206873
.global lbl_805AE6B0
lbl_805AE6B0:
# ROM: 0x3FAF50
.float 1.0
.global lbl_805AE6B4
lbl_805AE6B4:
# ROM: 0x3FAF54
.4byte 0
.global lbl_805AE6B8
lbl_805AE6B8:
# ROM: 0x3FAF58
.float 0.5
.global lbl_805AE6BC
lbl_805AE6BC:
# ROM: 0x3FAF5C
.4byte 0xBFC00000
.global lbl_805AE6C0
lbl_805AE6C0:
# ROM: 0x3FAF60
.float 2.0
.global lbl_805AE6C4
lbl_805AE6C4:
# ROM: 0x3FAF64
.4byte 0xBF000000
.global lbl_805AE6C8
lbl_805AE6C8:
# ROM: 0x3FAF68
.float 1.5
.global lbl_805AE6CC
lbl_805AE6CC:
# ROM: 0x3FAF6C
.4byte 0xC0200000
.global lbl_805AE6D0
lbl_805AE6D0:
# ROM: 0x3FAF70
.4byte 0
.4byte 0
.global lbl_805AE6D8
lbl_805AE6D8:
# ROM: 0x3FAF78
.4byte 0x3FE00000
.4byte 0
.global lbl_805AE6E0
lbl_805AE6E0:
# ROM: 0x3FAF80
.4byte 0x40080000
.4byte 0
.global lbl_805AE6E8
lbl_805AE6E8:
# ROM: 0x3FAF88
.double 1.0