mirror of https://github.com/zeldaret/tp.git
243 lines
11 KiB
ArmAsm
243 lines
11 KiB
ArmAsm
lbl_802785F8:
|
|
/* 802785F8 94 21 FF 40 */ stwu r1, -0xc0(r1)
|
|
/* 802785FC 7C 08 02 A6 */ mflr r0
|
|
/* 80278600 90 01 00 C4 */ stw r0, 0xc4(r1)
|
|
/* 80278604 DB E1 00 B0 */ stfd f31, 0xb0(r1)
|
|
/* 80278608 F3 E1 00 B8 */ psq_st f31, 184(r1), 0, 0 /* qr0 */
|
|
/* 8027860C DB C1 00 A0 */ stfd f30, 0xa0(r1)
|
|
/* 80278610 F3 C1 00 A8 */ psq_st f30, 168(r1), 0, 0 /* qr0 */
|
|
/* 80278614 DB A1 00 90 */ stfd f29, 0x90(r1)
|
|
/* 80278618 F3 A1 00 98 */ psq_st f29, 152(r1), 0, 0 /* qr0 */
|
|
/* 8027861C DB 81 00 80 */ stfd f28, 0x80(r1)
|
|
/* 80278620 F3 81 00 88 */ psq_st f28, 136(r1), 0, 0 /* qr0 */
|
|
/* 80278624 DB 61 00 70 */ stfd f27, 0x70(r1)
|
|
/* 80278628 F3 61 00 78 */ psq_st f27, 120(r1), 0, 0 /* qr0 */
|
|
/* 8027862C DB 41 00 60 */ stfd f26, 0x60(r1)
|
|
/* 80278630 F3 41 00 68 */ psq_st f26, 104(r1), 0, 0 /* qr0 */
|
|
/* 80278634 39 61 00 60 */ addi r11, r1, 0x60
|
|
/* 80278638 48 0E 9B A5 */ bl _savegpr_29
|
|
/* 8027863C 7C 7E 1B 78 */ mr r30, r3
|
|
/* 80278640 7C 9D 23 78 */ mr r29, r4
|
|
/* 80278644 3C A0 80 3C */ lis r5, jpa_dl@ha /* 0x803C42E0@ha */
|
|
/* 80278648 3B E5 42 E0 */ addi r31, r5, jpa_dl@l /* 0x803C42E0@l */
|
|
/* 8027864C 80 04 00 7C */ lwz r0, 0x7c(r4)
|
|
/* 80278650 54 00 07 39 */ rlwinm. r0, r0, 0, 0x1c, 0x1c
|
|
/* 80278654 40 82 02 F8 */ bne lbl_8027894C
|
|
/* 80278658 38 A1 00 14 */ addi r5, r1, 0x14
|
|
/* 8027865C 80 1E 02 00 */ lwz r0, 0x200(r30)
|
|
/* 80278660 54 00 10 3A */ slwi r0, r0, 2
|
|
/* 80278664 38 DF 00 4C */ addi r6, r31, 0x4c
|
|
/* 80278668 7D 86 00 2E */ lwzx r12, r6, r0
|
|
/* 8027866C 7D 89 03 A6 */ mtctr r12
|
|
/* 80278670 4E 80 04 21 */ bctrl
|
|
/* 80278674 E0 01 00 14 */ psq_l f0, 20(r1), 0, 0 /* qr0 */
|
|
/* 80278678 10 00 00 32 */ ps_mul f0, f0, f0
|
|
/* 8027867C C3 41 00 1C */ lfs f26, 0x1c(r1)
|
|
/* 80278680 10 5A 06 BA */ ps_madd f2, f26, f26, f0
|
|
/* 80278684 10 42 00 14 */ ps_sum0 f2, f2, f0, f0
|
|
/* 80278688 C0 22 B8 D8 */ lfs f1, lit_3281(r2)
|
|
/* 8027868C 3C 60 80 45 */ lis r3, __float_epsilon@ha /* 0x80450AEC@ha */
|
|
/* 80278690 C0 03 0A EC */ lfs f0, __float_epsilon@l(r3) /* 0x80450AEC@l */
|
|
/* 80278694 EC 01 00 32 */ fmuls f0, f1, f0
|
|
/* 80278698 FC 02 00 40 */ fcmpo cr0, f2, f0
|
|
/* 8027869C 4C 40 13 82 */ cror 2, 0, 2
|
|
/* 802786A0 41 82 02 AC */ beq lbl_8027894C
|
|
/* 802786A4 E0 21 00 14 */ psq_l f1, 20(r1), 0, 0 /* qr0 */
|
|
/* 802786A8 10 21 00 72 */ ps_mul f1, f1, f1
|
|
/* 802786AC 10 9A 0E BA */ ps_madd f4, f26, f26, f1
|
|
/* 802786B0 10 84 08 54 */ ps_sum0 f4, f4, f1, f1
|
|
/* 802786B4 FC 04 00 40 */ fcmpo cr0, f4, f0
|
|
/* 802786B8 4C 40 13 82 */ cror 2, 0, 2
|
|
/* 802786BC 41 82 00 5C */ beq lbl_80278718
|
|
/* 802786C0 C0 02 B8 C0 */ lfs f0, lit_2742(r2)
|
|
/* 802786C4 FC 04 00 40 */ fcmpo cr0, f4, f0
|
|
/* 802786C8 4C 40 13 82 */ cror 2, 0, 2
|
|
/* 802786CC 40 82 00 0C */ bne lbl_802786D8
|
|
/* 802786D0 FF 60 20 90 */ fmr f27, f4
|
|
/* 802786D4 48 00 00 2C */ b lbl_80278700
|
|
lbl_802786D8:
|
|
/* 802786D8 FC 60 20 34 */ frsqrte f3, f4
|
|
/* 802786DC FC 60 18 18 */ frsp f3, f3
|
|
/* 802786E0 C0 02 B8 B8 */ lfs f0, lit_2740(r2)
|
|
/* 802786E4 EC 40 00 F2 */ fmuls f2, f0, f3
|
|
/* 802786E8 C0 22 B8 DC */ lfs f1, lit_3282(r2)
|
|
/* 802786EC EC 03 00 F2 */ fmuls f0, f3, f3
|
|
/* 802786F0 EC 04 00 32 */ fmuls f0, f4, f0
|
|
/* 802786F4 EC 01 00 28 */ fsubs f0, f1, f0
|
|
/* 802786F8 EC 02 00 32 */ fmuls f0, f2, f0
|
|
/* 802786FC FF 60 00 90 */ fmr f27, f0
|
|
lbl_80278700:
|
|
/* 80278700 E0 01 00 14 */ psq_l f0, 20(r1), 0, 0 /* qr0 */
|
|
/* 80278704 E0 21 80 1C */ psq_l f1, 28(r1), 1, 0 /* qr0 */
|
|
/* 80278708 10 00 06 D8 */ ps_muls0 f0, f0, f27
|
|
/* 8027870C F0 01 00 14 */ psq_st f0, 20(r1), 0, 0 /* qr0 */
|
|
/* 80278710 10 01 06 D8 */ ps_muls0 f0, f1, f27
|
|
/* 80278714 F0 01 80 1C */ psq_st f0, 28(r1), 1, 0 /* qr0 */
|
|
lbl_80278718:
|
|
/* 80278718 38 7D 00 54 */ addi r3, r29, 0x54
|
|
/* 8027871C 38 81 00 14 */ addi r4, r1, 0x14
|
|
/* 80278720 38 A1 00 08 */ addi r5, r1, 8
|
|
/* 80278724 48 0C EA 91 */ bl PSVECCrossProduct
|
|
/* 80278728 E0 01 00 08 */ psq_l f0, 8(r1), 0, 0 /* qr0 */
|
|
/* 8027872C 10 00 00 32 */ ps_mul f0, f0, f0
|
|
/* 80278730 C3 A1 00 10 */ lfs f29, 0x10(r1)
|
|
/* 80278734 10 5D 07 7A */ ps_madd f2, f29, f29, f0
|
|
/* 80278738 10 42 00 14 */ ps_sum0 f2, f2, f0, f0
|
|
/* 8027873C C0 22 B8 D8 */ lfs f1, lit_3281(r2)
|
|
/* 80278740 3C 60 80 45 */ lis r3, __float_epsilon@ha /* 0x80450AEC@ha */
|
|
/* 80278744 C0 03 0A EC */ lfs f0, __float_epsilon@l(r3) /* 0x80450AEC@l */
|
|
/* 80278748 EC 01 00 32 */ fmuls f0, f1, f0
|
|
/* 8027874C FC 02 00 40 */ fcmpo cr0, f2, f0
|
|
/* 80278750 4C 40 13 82 */ cror 2, 0, 2
|
|
/* 80278754 41 82 01 F8 */ beq lbl_8027894C
|
|
/* 80278758 E0 21 00 08 */ psq_l f1, 8(r1), 0, 0 /* qr0 */
|
|
/* 8027875C 10 21 00 72 */ ps_mul f1, f1, f1
|
|
/* 80278760 10 9D 0F 7A */ ps_madd f4, f29, f29, f1
|
|
/* 80278764 10 84 08 54 */ ps_sum0 f4, f4, f1, f1
|
|
/* 80278768 FC 04 00 40 */ fcmpo cr0, f4, f0
|
|
/* 8027876C 4C 40 13 82 */ cror 2, 0, 2
|
|
/* 80278770 41 82 00 5C */ beq lbl_802787CC
|
|
/* 80278774 C0 02 B8 C0 */ lfs f0, lit_2742(r2)
|
|
/* 80278778 FC 04 00 40 */ fcmpo cr0, f4, f0
|
|
/* 8027877C 4C 40 13 82 */ cror 2, 0, 2
|
|
/* 80278780 40 82 00 0C */ bne lbl_8027878C
|
|
/* 80278784 FF E0 20 90 */ fmr f31, f4
|
|
/* 80278788 48 00 00 2C */ b lbl_802787B4
|
|
lbl_8027878C:
|
|
/* 8027878C FC 60 20 34 */ frsqrte f3, f4
|
|
/* 80278790 FC 60 18 18 */ frsp f3, f3
|
|
/* 80278794 C0 02 B8 B8 */ lfs f0, lit_2740(r2)
|
|
/* 80278798 EC 40 00 F2 */ fmuls f2, f0, f3
|
|
/* 8027879C C0 22 B8 DC */ lfs f1, lit_3282(r2)
|
|
/* 802787A0 EC 03 00 F2 */ fmuls f0, f3, f3
|
|
/* 802787A4 EC 04 00 32 */ fmuls f0, f4, f0
|
|
/* 802787A8 EC 01 00 28 */ fsubs f0, f1, f0
|
|
/* 802787AC EC 02 00 32 */ fmuls f0, f2, f0
|
|
/* 802787B0 FF E0 00 90 */ fmr f31, f0
|
|
lbl_802787B4:
|
|
/* 802787B4 E0 01 00 08 */ psq_l f0, 8(r1), 0, 0 /* qr0 */
|
|
/* 802787B8 E0 21 80 10 */ psq_l f1, 16(r1), 1, 0 /* qr0 */
|
|
/* 802787BC 10 00 07 D8 */ ps_muls0 f0, f0, f31
|
|
/* 802787C0 F0 01 00 08 */ psq_st f0, 8(r1), 0, 0 /* qr0 */
|
|
/* 802787C4 10 01 07 D8 */ ps_muls0 f0, f1, f31
|
|
/* 802787C8 F0 01 80 10 */ psq_st f0, 16(r1), 1, 0 /* qr0 */
|
|
lbl_802787CC:
|
|
/* 802787CC 38 61 00 14 */ addi r3, r1, 0x14
|
|
/* 802787D0 38 81 00 08 */ addi r4, r1, 8
|
|
/* 802787D4 38 BD 00 54 */ addi r5, r29, 0x54
|
|
/* 802787D8 48 0C E9 DD */ bl PSVECCrossProduct
|
|
/* 802787DC E0 1D 00 54 */ psq_l f0, 84(r29), 0, 0 /* qr0 */
|
|
/* 802787E0 10 00 00 32 */ ps_mul f0, f0, f0
|
|
/* 802787E4 C3 9D 00 5C */ lfs f28, 0x5c(r29)
|
|
/* 802787E8 10 9C 07 3A */ ps_madd f4, f28, f28, f0
|
|
/* 802787EC 10 84 00 14 */ ps_sum0 f4, f4, f0, f0
|
|
/* 802787F0 C0 22 B8 D8 */ lfs f1, lit_3281(r2)
|
|
/* 802787F4 3C 60 80 45 */ lis r3, __float_epsilon@ha /* 0x80450AEC@ha */
|
|
/* 802787F8 C0 03 0A EC */ lfs f0, __float_epsilon@l(r3) /* 0x80450AEC@l */
|
|
/* 802787FC EC 01 00 32 */ fmuls f0, f1, f0
|
|
/* 80278800 FC 04 00 40 */ fcmpo cr0, f4, f0
|
|
/* 80278804 4C 40 13 82 */ cror 2, 0, 2
|
|
/* 80278808 41 82 00 5C */ beq lbl_80278864
|
|
/* 8027880C C0 02 B8 C0 */ lfs f0, lit_2742(r2)
|
|
/* 80278810 FC 04 00 40 */ fcmpo cr0, f4, f0
|
|
/* 80278814 4C 40 13 82 */ cror 2, 0, 2
|
|
/* 80278818 40 82 00 0C */ bne lbl_80278824
|
|
/* 8027881C FF C0 20 90 */ fmr f30, f4
|
|
/* 80278820 48 00 00 2C */ b lbl_8027884C
|
|
lbl_80278824:
|
|
/* 80278824 FC 60 20 34 */ frsqrte f3, f4
|
|
/* 80278828 FC 60 18 18 */ frsp f3, f3
|
|
/* 8027882C C0 02 B8 B8 */ lfs f0, lit_2740(r2)
|
|
/* 80278830 EC 40 00 F2 */ fmuls f2, f0, f3
|
|
/* 80278834 C0 22 B8 DC */ lfs f1, lit_3282(r2)
|
|
/* 80278838 EC 03 00 F2 */ fmuls f0, f3, f3
|
|
/* 8027883C EC 04 00 32 */ fmuls f0, f4, f0
|
|
/* 80278840 EC 01 00 28 */ fsubs f0, f1, f0
|
|
/* 80278844 EC 02 00 32 */ fmuls f0, f2, f0
|
|
/* 80278848 FF C0 00 90 */ fmr f30, f0
|
|
lbl_8027884C:
|
|
/* 8027884C E0 1D 00 54 */ psq_l f0, 84(r29), 0, 0 /* qr0 */
|
|
/* 80278850 E0 3D 80 5C */ psq_l f1, 92(r29), 1, 0 /* qr0 */
|
|
/* 80278854 10 00 07 98 */ ps_muls0 f0, f0, f30
|
|
/* 80278858 F0 1D 00 54 */ psq_st f0, 84(r29), 0, 0 /* qr0 */
|
|
/* 8027885C 10 01 07 98 */ ps_muls0 f0, f1, f30
|
|
/* 80278860 F0 1D 80 5C */ psq_st f0, 92(r29), 1, 0 /* qr0 */
|
|
lbl_80278864:
|
|
/* 80278864 C0 3E 01 44 */ lfs f1, 0x144(r30)
|
|
/* 80278868 C0 1D 00 60 */ lfs f0, 0x60(r29)
|
|
/* 8027886C EC 21 00 32 */ fmuls f1, f1, f0
|
|
/* 80278870 C0 5E 01 48 */ lfs f2, 0x148(r30)
|
|
/* 80278874 C0 1D 00 64 */ lfs f0, 0x64(r29)
|
|
/* 80278878 EC 42 00 32 */ fmuls f2, f2, f0
|
|
/* 8027887C C0 1D 00 54 */ lfs f0, 0x54(r29)
|
|
/* 80278880 D0 01 00 20 */ stfs f0, 0x20(r1)
|
|
/* 80278884 C0 01 00 14 */ lfs f0, 0x14(r1)
|
|
/* 80278888 D0 01 00 24 */ stfs f0, 0x24(r1)
|
|
/* 8027888C C0 01 00 08 */ lfs f0, 8(r1)
|
|
/* 80278890 D0 01 00 28 */ stfs f0, 0x28(r1)
|
|
/* 80278894 C0 1D 00 00 */ lfs f0, 0(r29)
|
|
/* 80278898 D0 01 00 2C */ stfs f0, 0x2c(r1)
|
|
/* 8027889C C0 1D 00 58 */ lfs f0, 0x58(r29)
|
|
/* 802788A0 D0 01 00 30 */ stfs f0, 0x30(r1)
|
|
/* 802788A4 C0 01 00 18 */ lfs f0, 0x18(r1)
|
|
/* 802788A8 D0 01 00 34 */ stfs f0, 0x34(r1)
|
|
/* 802788AC C0 01 00 0C */ lfs f0, 0xc(r1)
|
|
/* 802788B0 D0 01 00 38 */ stfs f0, 0x38(r1)
|
|
/* 802788B4 C0 1D 00 04 */ lfs f0, 4(r29)
|
|
/* 802788B8 D0 01 00 3C */ stfs f0, 0x3c(r1)
|
|
/* 802788BC C0 1D 00 5C */ lfs f0, 0x5c(r29)
|
|
/* 802788C0 D0 01 00 40 */ stfs f0, 0x40(r1)
|
|
/* 802788C4 C0 01 00 1C */ lfs f0, 0x1c(r1)
|
|
/* 802788C8 D0 01 00 44 */ stfs f0, 0x44(r1)
|
|
/* 802788CC C0 01 00 10 */ lfs f0, 0x10(r1)
|
|
/* 802788D0 D0 01 00 48 */ stfs f0, 0x48(r1)
|
|
/* 802788D4 C0 1D 00 08 */ lfs f0, 8(r29)
|
|
/* 802788D8 D0 01 00 4C */ stfs f0, 0x4c(r1)
|
|
/* 802788DC 38 61 00 20 */ addi r3, r1, 0x20
|
|
/* 802788E0 80 1E 02 08 */ lwz r0, 0x208(r30)
|
|
/* 802788E4 54 00 10 3A */ slwi r0, r0, 2
|
|
/* 802788E8 38 9F 00 74 */ addi r4, r31, 0x74
|
|
/* 802788EC 7D 84 00 2E */ lwzx r12, r4, r0
|
|
/* 802788F0 7D 89 03 A6 */ mtctr r12
|
|
/* 802788F4 4E 80 04 21 */ bctrl
|
|
/* 802788F8 38 7E 01 84 */ addi r3, r30, 0x184
|
|
/* 802788FC 38 81 00 20 */ addi r4, r1, 0x20
|
|
/* 80278900 7C 85 23 78 */ mr r5, r4
|
|
/* 80278904 48 0C DB E1 */ bl PSMTXConcat
|
|
/* 80278908 38 61 00 20 */ addi r3, r1, 0x20
|
|
/* 8027890C 38 80 00 00 */ li r4, 0
|
|
/* 80278910 48 0E 79 3D */ bl GXLoadPosMtxImm
|
|
/* 80278914 7F C3 F3 78 */ mr r3, r30
|
|
/* 80278918 38 81 00 20 */ addi r4, r1, 0x20
|
|
/* 8027891C 80 1E 02 10 */ lwz r0, 0x210(r30)
|
|
/* 80278920 54 00 10 3A */ slwi r0, r0, 2
|
|
/* 80278924 38 BF 00 40 */ addi r5, r31, 0x40
|
|
/* 80278928 7D 85 00 2E */ lwzx r12, r5, r0
|
|
/* 8027892C 7D 89 03 A6 */ mtctr r12
|
|
/* 80278930 4E 80 04 21 */ bctrl
|
|
/* 80278934 80 1E 02 0C */ lwz r0, 0x20c(r30)
|
|
/* 80278938 54 00 10 3A */ slwi r0, r0, 2
|
|
/* 8027893C 38 6D 82 20 */ la r3, p_dl(r13) /* 804507A0-_SDA_BASE_ */
|
|
/* 80278940 7C 63 00 2E */ lwzx r3, r3, r0
|
|
/* 80278944 38 80 00 20 */ li r4, 0x20
|
|
/* 80278948 48 0E 75 A9 */ bl GXCallDisplayList
|
|
lbl_8027894C:
|
|
/* 8027894C E3 E1 00 B8 */ psq_l f31, 184(r1), 0, 0 /* qr0 */
|
|
/* 80278950 CB E1 00 B0 */ lfd f31, 0xb0(r1)
|
|
/* 80278954 E3 C1 00 A8 */ psq_l f30, 168(r1), 0, 0 /* qr0 */
|
|
/* 80278958 CB C1 00 A0 */ lfd f30, 0xa0(r1)
|
|
/* 8027895C E3 A1 00 98 */ psq_l f29, 152(r1), 0, 0 /* qr0 */
|
|
/* 80278960 CB A1 00 90 */ lfd f29, 0x90(r1)
|
|
/* 80278964 E3 81 00 88 */ psq_l f28, 136(r1), 0, 0 /* qr0 */
|
|
/* 80278968 CB 81 00 80 */ lfd f28, 0x80(r1)
|
|
/* 8027896C E3 61 00 78 */ psq_l f27, 120(r1), 0, 0 /* qr0 */
|
|
/* 80278970 CB 61 00 70 */ lfd f27, 0x70(r1)
|
|
/* 80278974 E3 41 00 68 */ psq_l f26, 104(r1), 0, 0 /* qr0 */
|
|
/* 80278978 CB 41 00 60 */ lfd f26, 0x60(r1)
|
|
/* 8027897C 39 61 00 60 */ addi r11, r1, 0x60
|
|
/* 80278980 48 0E 98 A9 */ bl _restgpr_29
|
|
/* 80278984 80 01 00 C4 */ lwz r0, 0xc4(r1)
|
|
/* 80278988 7C 08 03 A6 */ mtlr r0
|
|
/* 8027898C 38 21 00 C0 */ addi r1, r1, 0xc0
|
|
/* 80278990 4E 80 00 20 */ blr
|