tp/asm/d/d_camera/func_8015FBF8.s

182 lines
8.0 KiB
ArmAsm

lbl_8015FBF8:
/* 8015FBF8 94 21 FE C0 */ stwu r1, -0x140(r1)
/* 8015FBFC 7C 08 02 A6 */ mflr r0
/* 8015FC00 90 01 01 44 */ stw r0, 0x144(r1)
/* 8015FC04 DB E1 01 30 */ stfd f31, 0x130(r1)
/* 8015FC08 F3 E1 01 38 */ psq_st f31, 312(r1), 0, 0 /* qr0 */
/* 8015FC0C DB C1 01 20 */ stfd f30, 0x120(r1)
/* 8015FC10 F3 C1 01 28 */ psq_st f30, 296(r1), 0, 0 /* qr0 */
/* 8015FC14 39 61 01 20 */ addi r11, r1, 0x120
/* 8015FC18 48 20 25 BD */ bl _savegpr_27
/* 8015FC1C 7C 7F 1B 78 */ mr r31, r3
/* 8015FC20 7C 9B 23 79 */ or. r27, r4, r4
/* 8015FC24 7C BC 2B 78 */ mr r28, r5
/* 8015FC28 7C DD 33 78 */ mr r29, r6
/* 8015FC2C FF E0 08 90 */ fmr f31, f1
/* 8015FC30 7C FE 3B 78 */ mr r30, r7
/* 8015FC34 41 82 00 0C */ beq lbl_8015FC40
/* 8015FC38 28 1C 00 00 */ cmplwi r28, 0
/* 8015FC3C 40 82 00 24 */ bne lbl_8015FC60
lbl_8015FC40:
/* 8015FC40 3C 60 80 43 */ lis r3, Zero__4cXyz@ha /* 0x80430CF4@ha */
/* 8015FC44 C4 03 0C F4 */ lfsu f0, Zero__4cXyz@l(r3) /* 0x80430CF4@l */
/* 8015FC48 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8015FC4C C0 03 00 04 */ lfs f0, 4(r3)
/* 8015FC50 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8015FC54 C0 03 00 08 */ lfs f0, 8(r3)
/* 8015FC58 D0 1F 00 08 */ stfs f0, 8(r31)
/* 8015FC5C 48 00 02 34 */ b lbl_8015FE90
lbl_8015FC60:
/* 8015FC60 C0 1B 05 50 */ lfs f0, 0x550(r27)
/* 8015FC64 D0 01 00 E8 */ stfs f0, 0xe8(r1)
/* 8015FC68 C0 1B 05 54 */ lfs f0, 0x554(r27)
/* 8015FC6C D0 01 00 EC */ stfs f0, 0xec(r1)
/* 8015FC70 C0 1B 05 58 */ lfs f0, 0x558(r27)
/* 8015FC74 D0 01 00 F0 */ stfs f0, 0xf0(r1)
/* 8015FC78 C0 1C 05 50 */ lfs f0, 0x550(r28)
/* 8015FC7C D0 01 00 DC */ stfs f0, 0xdc(r1)
/* 8015FC80 C0 1C 05 54 */ lfs f0, 0x554(r28)
/* 8015FC84 D0 01 00 E0 */ stfs f0, 0xe0(r1)
/* 8015FC88 C0 1C 05 58 */ lfs f0, 0x558(r28)
/* 8015FC8C D0 01 00 E4 */ stfs f0, 0xe4(r1)
/* 8015FC90 38 61 00 A0 */ addi r3, r1, 0xa0
/* 8015FC94 38 81 00 DC */ addi r4, r1, 0xdc
/* 8015FC98 38 A1 00 E8 */ addi r5, r1, 0xe8
/* 8015FC9C 48 10 6E 99 */ bl __mi__4cXyzCFRC3Vec
/* 8015FCA0 C0 01 00 A0 */ lfs f0, 0xa0(r1)
/* 8015FCA4 D0 01 00 D0 */ stfs f0, 0xd0(r1)
/* 8015FCA8 C0 01 00 A4 */ lfs f0, 0xa4(r1)
/* 8015FCAC D0 01 00 D4 */ stfs f0, 0xd4(r1)
/* 8015FCB0 C0 01 00 A8 */ lfs f0, 0xa8(r1)
/* 8015FCB4 D0 01 00 D8 */ stfs f0, 0xd8(r1)
/* 8015FCB8 38 61 00 20 */ addi r3, r1, 0x20
/* 8015FCBC 38 81 00 D0 */ addi r4, r1, 0xd0
/* 8015FCC0 48 11 1B C1 */ bl __ct__7cSGlobeFRC4cXyz
/* 8015FCC4 38 61 00 94 */ addi r3, r1, 0x94
/* 8015FCC8 38 81 00 D0 */ addi r4, r1, 0xd0
/* 8015FCCC 48 10 72 29 */ bl normalize__4cXyzFv
/* 8015FCD0 38 61 00 88 */ addi r3, r1, 0x88
/* 8015FCD4 38 81 00 D0 */ addi r4, r1, 0xd0
/* 8015FCD8 A8 1B 05 4E */ lha r0, 0x54e(r27)
/* 8015FCDC C8 22 9C 98 */ lfd f1, lit_4448(r2)
/* 8015FCE0 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8015FCE4 90 01 00 FC */ stw r0, 0xfc(r1)
/* 8015FCE8 3C 00 43 30 */ lis r0, 0x4330
/* 8015FCEC 90 01 00 F8 */ stw r0, 0xf8(r1)
/* 8015FCF0 C8 01 00 F8 */ lfd f0, 0xf8(r1)
/* 8015FCF4 EC 20 08 28 */ fsubs f1, f0, f1
/* 8015FCF8 48 10 6E 8D */ bl __ml__4cXyzCFf
/* 8015FCFC 38 61 00 E8 */ addi r3, r1, 0xe8
/* 8015FD00 38 81 00 88 */ addi r4, r1, 0x88
/* 8015FD04 7C 65 1B 78 */ mr r5, r3
/* 8015FD08 48 1E 73 AD */ bl PSVECSubtract
/* 8015FD0C 38 61 00 7C */ addi r3, r1, 0x7c
/* 8015FD10 38 81 00 D0 */ addi r4, r1, 0xd0
/* 8015FD14 A8 1C 05 4E */ lha r0, 0x54e(r28)
/* 8015FD18 C8 22 9C 98 */ lfd f1, lit_4448(r2)
/* 8015FD1C 6C 00 80 00 */ xoris r0, r0, 0x8000
/* 8015FD20 90 01 01 04 */ stw r0, 0x104(r1)
/* 8015FD24 3C 00 43 30 */ lis r0, 0x4330
/* 8015FD28 90 01 01 00 */ stw r0, 0x100(r1)
/* 8015FD2C C8 01 01 00 */ lfd f0, 0x100(r1)
/* 8015FD30 EC 20 08 28 */ fsubs f1, f0, f1
/* 8015FD34 48 10 6E 51 */ bl __ml__4cXyzCFf
/* 8015FD38 38 61 00 DC */ addi r3, r1, 0xdc
/* 8015FD3C 38 81 00 7C */ addi r4, r1, 0x7c
/* 8015FD40 7C 65 1B 78 */ mr r5, r3
/* 8015FD44 48 1E 73 4D */ bl PSVECAdd
/* 8015FD48 38 61 00 70 */ addi r3, r1, 0x70
/* 8015FD4C 38 81 00 DC */ addi r4, r1, 0xdc
/* 8015FD50 38 A1 00 E8 */ addi r5, r1, 0xe8
/* 8015FD54 48 10 6D E1 */ bl __mi__4cXyzCFRC3Vec
/* 8015FD58 38 61 00 64 */ addi r3, r1, 0x64
/* 8015FD5C 38 81 00 70 */ addi r4, r1, 0x70
/* 8015FD60 C0 22 9C 90 */ lfs f1, lit_4445(r2)
/* 8015FD64 48 10 6E 21 */ bl __ml__4cXyzCFf
/* 8015FD68 38 61 00 58 */ addi r3, r1, 0x58
/* 8015FD6C 38 81 00 E8 */ addi r4, r1, 0xe8
/* 8015FD70 38 A1 00 64 */ addi r5, r1, 0x64
/* 8015FD74 48 10 6D 71 */ bl __pl__4cXyzCFRC3Vec
/* 8015FD78 C0 01 00 58 */ lfs f0, 0x58(r1)
/* 8015FD7C D0 01 00 C4 */ stfs f0, 0xc4(r1)
/* 8015FD80 C0 01 00 5C */ lfs f0, 0x5c(r1)
/* 8015FD84 D0 01 00 C8 */ stfs f0, 0xc8(r1)
/* 8015FD88 C0 01 00 60 */ lfs f0, 0x60(r1)
/* 8015FD8C D0 01 00 CC */ stfs f0, 0xcc(r1)
/* 8015FD90 C0 1D 00 00 */ lfs f0, 0(r29)
/* 8015FD94 D0 01 00 B8 */ stfs f0, 0xb8(r1)
/* 8015FD98 C0 1D 00 04 */ lfs f0, 4(r29)
/* 8015FD9C D0 01 00 BC */ stfs f0, 0xbc(r1)
/* 8015FDA0 C0 1D 00 08 */ lfs f0, 8(r29)
/* 8015FDA4 D0 01 00 C0 */ stfs f0, 0xc0(r1)
/* 8015FDA8 38 61 00 10 */ addi r3, r1, 0x10
/* 8015FDAC 7F C4 F3 78 */ mr r4, r30
/* 8015FDB0 3B C1 00 26 */ addi r30, r1, 0x26
/* 8015FDB4 7F C5 F3 78 */ mr r5, r30
/* 8015FDB8 48 11 13 ED */ bl __mi__7cSAngleCFRC7cSAngle
/* 8015FDBC 38 61 00 14 */ addi r3, r1, 0x14
/* 8015FDC0 38 81 00 10 */ addi r4, r1, 0x10
/* 8015FDC4 48 11 11 A5 */ bl __ct__7cSAngleFRC7cSAngle
/* 8015FDC8 A8 61 00 14 */ lha r3, 0x14(r1)
/* 8015FDCC A8 0D 8C 08 */ lha r0, _0__7cSAngle(r13)
/* 8015FDD0 7C 03 00 00 */ cmpw r3, r0
/* 8015FDD4 40 80 00 10 */ bge lbl_8015FDE4
/* 8015FDD8 C0 01 00 B8 */ lfs f0, 0xb8(r1)
/* 8015FDDC FC 00 00 50 */ fneg f0, f0
/* 8015FDE0 D0 01 00 B8 */ stfs f0, 0xb8(r1)
lbl_8015FDE4:
/* 8015FDE4 38 61 00 18 */ addi r3, r1, 0x18
/* 8015FDE8 38 81 00 B8 */ addi r4, r1, 0xb8
/* 8015FDEC 48 11 1A 95 */ bl __ct__7cSGlobeFRC4cXyz
/* 8015FDF0 38 61 00 0C */ addi r3, r1, 0xc
/* 8015FDF4 7F C4 F3 78 */ mr r4, r30
/* 8015FDF8 38 A1 00 1E */ addi r5, r1, 0x1e
/* 8015FDFC 48 11 13 79 */ bl __pl__7cSAngleCFRC7cSAngle
/* 8015FE00 38 61 00 08 */ addi r3, r1, 8
/* 8015FE04 A8 81 00 0C */ lha r4, 0xc(r1)
/* 8015FE08 48 11 11 91 */ bl __ct__7cSAngleFs
/* 8015FE0C A8 01 00 08 */ lha r0, 8(r1)
/* 8015FE10 B0 01 00 1E */ sth r0, 0x1e(r1)
/* 8015FE14 C3 C1 00 20 */ lfs f30, 0x20(r1)
/* 8015FE18 38 61 00 14 */ addi r3, r1, 0x14
/* 8015FE1C 48 11 13 05 */ bl Cos__7cSAngleCFv
/* 8015FE20 C0 02 9C 90 */ lfs f0, lit_4445(r2)
/* 8015FE24 EC 00 07 B2 */ fmuls f0, f0, f30
/* 8015FE28 EC 00 00 72 */ fmuls f0, f0, f1
/* 8015FE2C EC 1F 00 32 */ fmuls f0, f31, f0
/* 8015FE30 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8015FE34 38 61 00 4C */ addi r3, r1, 0x4c
/* 8015FE38 38 81 00 20 */ addi r4, r1, 0x20
/* 8015FE3C 48 11 1C 79 */ bl Xyz__7cSGlobeCFv
/* 8015FE40 38 61 00 40 */ addi r3, r1, 0x40
/* 8015FE44 38 81 00 C4 */ addi r4, r1, 0xc4
/* 8015FE48 38 A1 00 4C */ addi r5, r1, 0x4c
/* 8015FE4C 48 10 6C 99 */ bl __pl__4cXyzCFRC3Vec
/* 8015FE50 38 61 00 34 */ addi r3, r1, 0x34
/* 8015FE54 38 81 00 18 */ addi r4, r1, 0x18
/* 8015FE58 48 11 1C 5D */ bl Xyz__7cSGlobeCFv
/* 8015FE5C 38 61 00 28 */ addi r3, r1, 0x28
/* 8015FE60 38 81 00 40 */ addi r4, r1, 0x40
/* 8015FE64 38 A1 00 34 */ addi r5, r1, 0x34
/* 8015FE68 48 10 6C 7D */ bl __pl__4cXyzCFRC3Vec
/* 8015FE6C C0 41 00 28 */ lfs f2, 0x28(r1)
/* 8015FE70 D0 41 00 AC */ stfs f2, 0xac(r1)
/* 8015FE74 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 8015FE78 D0 21 00 B0 */ stfs f1, 0xb0(r1)
/* 8015FE7C C0 01 00 30 */ lfs f0, 0x30(r1)
/* 8015FE80 D0 01 00 B4 */ stfs f0, 0xb4(r1)
/* 8015FE84 D0 5F 00 00 */ stfs f2, 0(r31)
/* 8015FE88 D0 3F 00 04 */ stfs f1, 4(r31)
/* 8015FE8C D0 1F 00 08 */ stfs f0, 8(r31)
lbl_8015FE90:
/* 8015FE90 E3 E1 01 38 */ psq_l f31, 312(r1), 0, 0 /* qr0 */
/* 8015FE94 CB E1 01 30 */ lfd f31, 0x130(r1)
/* 8015FE98 E3 C1 01 28 */ psq_l f30, 296(r1), 0, 0 /* qr0 */
/* 8015FE9C CB C1 01 20 */ lfd f30, 0x120(r1)
/* 8015FEA0 39 61 01 20 */ addi r11, r1, 0x120
/* 8015FEA4 48 20 23 7D */ bl _restgpr_27
/* 8015FEA8 80 01 01 44 */ lwz r0, 0x144(r1)
/* 8015FEAC 7C 08 03 A6 */ mtlr r0
/* 8015FEB0 38 21 01 40 */ addi r1, r1, 0x140
/* 8015FEB4 4E 80 00 20 */ blr