Files
tp/include/SComponent/c_m3d/asm/func_8026E980.s
T
0cf65151b3 Split SComponent (#45)
* split c_math

* split c_angle

* split c_API_controller_pad

* split c_API_graphic

* split c_bg_s_chk

* c_bg_s_gnd_chk split

* more c_bg split

* split c_cc_d

* delete asm

* split c_cc_s

* split c_lib

* split c_m2d and c_m3d_g_aab

* split c_m3d_g_cir

* split c_m3d_g_cps

* split rest of c_m3d_g

* split c_m3d

* split c_malloc

* split c_request

* split c_sxyz

* split and partly decompile c_xyz

* format

* c_angle.h

* begin c_angle decomp

* c_angle

* progress adding stub classes for SComponent

* more c_m3d

* remove some asm and format

* more m3d headers

* more c_angle decomp

* c_lib headers

* add public to classes

* fix csXyz member names

* c_sxyz partly OK

* move Zero csXyz to c_sxyz header

* c_API_graphic

* delete some unused asm

* move math extern data, decompile some functions

* delete unused asm

* fix duplicated c_angle.h

* fix an inlined function name, add more inlined functions for c_angle.h (currently unused)

* format

Co-authored-by: Pheenoh <pheenoh@gmail.com>
2021-01-06 20:04:53 -05:00

58 lines
2.9 KiB
ArmAsm

/* 8026E980 0026B8C0 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 8026E984 0026B8C4 7C 08 02 A6 */ mflr r0
/* 8026E988 0026B8C8 90 01 00 54 */ stw r0, 0x54(r1)
/* 8026E98C 0026B8CC DB E1 00 40 */ stfd f31, 0x40(r1)
/* 8026E990 0026B8D0 F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0
/* 8026E994 0026B8D4 39 61 00 40 */ addi r11, r1, 0x40
/* 8026E998 0026B8D8 48 0F 38 45 */ bl _savegpr_29
/* 8026E99C 0026B8DC 7C 7D 1B 78 */ mr r29, r3
/* 8026E9A0 0026B8E0 7C 9E 23 78 */ mr r30, r4
/* 8026E9A4 0026B8E4 7C BF 2B 78 */ mr r31, r5
/* 8026E9A8 0026B8E8 38 7D 00 0C */ addi r3, r29, 0xc
/* 8026E9AC 0026B8EC 7F A4 EB 78 */ mr r4, r29
/* 8026E9B0 0026B8F0 38 A1 00 20 */ addi r5, r1, 0x20
/* 8026E9B4 0026B8F4 48 0D 87 01 */ bl PSVECSubtract
/* 8026E9B8 0026B8F8 38 61 00 20 */ addi r3, r1, 0x20
/* 8026E9BC 0026B8FC 48 0D 87 7D */ bl PSVECSquareMag
/* 8026E9C0 0026B900 FF E0 08 90 */ fmr f31, f1
/* 8026E9C4 0026B904 FC 00 FA 10 */ fabs f0, f31
/* 8026E9C8 0026B908 FC 20 00 18 */ frsp f1, f0
/* 8026E9CC 0026B90C C0 0D 8C 00 */ lfs f0, lbl_80451180-_SDA_BASE_(r13)
/* 8026E9D0 0026B910 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8026E9D4 0026B914 40 80 00 24 */ bge lbl_8026E9F8
/* 8026E9D8 0026B918 C0 1E 00 00 */ lfs f0, 0(r30)
/* 8026E9DC 0026B91C D0 1F 00 00 */ stfs f0, 0(r31)
/* 8026E9E0 0026B920 C0 1E 00 04 */ lfs f0, 4(r30)
/* 8026E9E4 0026B924 D0 1F 00 04 */ stfs f0, 4(r31)
/* 8026E9E8 0026B928 C0 1E 00 08 */ lfs f0, 8(r30)
/* 8026E9EC 0026B92C D0 1F 00 08 */ stfs f0, 8(r31)
/* 8026E9F0 0026B930 C0 22 B7 18 */ lfs f1, lbl_80455118-_SDA2_BASE_(r2)
/* 8026E9F4 0026B934 48 00 00 48 */ b lbl_8026EA3C
lbl_8026E9F8:
/* 8026E9F8 0026B938 7F C3 F3 78 */ mr r3, r30
/* 8026E9FC 0026B93C 7F A4 EB 78 */ mr r4, r29
/* 8026EA00 0026B940 38 A1 00 14 */ addi r5, r1, 0x14
/* 8026EA04 0026B944 48 0D 86 B1 */ bl PSVECSubtract
/* 8026EA08 0026B948 38 61 00 14 */ addi r3, r1, 0x14
/* 8026EA0C 0026B94C 38 81 00 20 */ addi r4, r1, 0x20
/* 8026EA10 0026B950 48 0D 87 85 */ bl PSVECDotProduct
/* 8026EA14 0026B954 EF E1 F8 24 */ fdivs f31, f1, f31
/* 8026EA18 0026B958 38 61 00 20 */ addi r3, r1, 0x20
/* 8026EA1C 0026B95C 38 81 00 08 */ addi r4, r1, 8
/* 8026EA20 0026B960 FC 20 F8 90 */ fmr f1, f31
/* 8026EA24 0026B964 48 0D 86 B5 */ bl PSVECScale
/* 8026EA28 0026B968 38 61 00 08 */ addi r3, r1, 8
/* 8026EA2C 0026B96C 7F A4 EB 78 */ mr r4, r29
/* 8026EA30 0026B970 7F E5 FB 78 */ mr r5, r31
/* 8026EA34 0026B974 48 0D 86 5D */ bl PSVECAdd
/* 8026EA38 0026B978 FC 20 F8 90 */ fmr f1, f31
lbl_8026EA3C:
/* 8026EA3C 0026B97C E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0
/* 8026EA40 0026B980 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 8026EA44 0026B984 39 61 00 40 */ addi r11, r1, 0x40
/* 8026EA48 0026B988 48 0F 37 E1 */ bl _restgpr_29
/* 8026EA4C 0026B98C 80 01 00 54 */ lwz r0, 0x54(r1)
/* 8026EA50 0026B990 7C 08 03 A6 */ mtlr r0
/* 8026EA54 0026B994 38 21 00 50 */ addi r1, r1, 0x50
/* 8026EA58 0026B998 4E 80 00 20 */ blr