Files
tp/include/d/d_attention/asm/func_80073A08.s
T
lepelog 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

190 lines
9.1 KiB
ArmAsm

/* 80073A08 00070948 94 21 FF 70 */ stwu r1, -0x90(r1)
/* 80073A0C 0007094C 7C 08 02 A6 */ mflr r0
/* 80073A10 00070950 90 01 00 94 */ stw r0, 0x94(r1)
/* 80073A14 00070954 DB E1 00 80 */ stfd f31, 0x80(r1)
/* 80073A18 00070958 F3 E1 00 88 */ psq_st f31, 136(r1), 0, 0
/* 80073A1C 0007095C DB C1 00 70 */ stfd f30, 0x70(r1)
/* 80073A20 00070960 F3 C1 00 78 */ psq_st f30, 120(r1), 0, 0
/* 80073A24 00070964 DB A1 00 60 */ stfd f29, 0x60(r1)
/* 80073A28 00070968 F3 A1 00 68 */ psq_st f29, 104(r1), 0, 0
/* 80073A2C 0007096C 39 61 00 60 */ addi r11, r1, 0x60
/* 80073A30 00070970 48 2E E7 A1 */ bl _savegpr_26
/* 80073A34 00070974 7C 7B 1B 78 */ mr r27, r3
/* 80073A38 00070978 7C 9C 23 78 */ mr r28, r4
/* 80073A3C 0007097C 7C BD 2B 78 */ mr r29, r5
/* 80073A40 00070980 FF E0 08 90 */ fmr f31, f1
/* 80073A44 00070984 FF A0 10 90 */ fmr f29, f2
/* 80073A48 00070988 FF C0 18 90 */ fmr f30, f3
/* 80073A4C 0007098C 7C DE 33 78 */ mr r30, r6
/* 80073A50 00070990 7C FF 3B 78 */ mr r31, r7
/* 80073A54 00070994 3C 60 80 40 */ lis r3, g_dComIfG_gameInfo@ha
/* 80073A58 00070998 38 63 61 C0 */ addi r3, r3, g_dComIfG_gameInfo@l
/* 80073A5C 0007099C 83 43 5D AC */ lwz r26, 0x5dac(r3)
/* 80073A60 000709A0 80 1B 00 04 */ lwz r0, 4(r27)
/* 80073A64 000709A4 7C 1F 00 00 */ cmpw r31, r0
/* 80073A68 000709A8 40 81 00 0C */ ble lbl_80073A74
/* 80073A6C 000709AC 38 60 00 00 */ li r3, 0
/* 80073A70 000709B0 48 00 02 04 */ b lbl_80073C74
lbl_80073A74:
/* 80073A74 000709B4 38 61 00 24 */ addi r3, r1, 0x24
/* 80073A78 000709B8 38 9C 05 50 */ addi r4, r28, 0x550
/* 80073A7C 000709BC 38 BA 05 50 */ addi r5, r26, 0x550
/* 80073A80 000709C0 48 1F 30 B5 */ bl __mi__4cXyzCFRC3Vec
/* 80073A84 000709C4 C0 41 00 24 */ lfs f2, 0x24(r1)
/* 80073A88 000709C8 D0 41 00 30 */ stfs f2, 0x30(r1)
/* 80073A8C 000709CC C0 01 00 28 */ lfs f0, 0x28(r1)
/* 80073A90 000709D0 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 80073A94 000709D4 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 80073A98 000709D8 D0 21 00 38 */ stfs f1, 0x38(r1)
/* 80073A9C 000709DC FC 00 F0 40 */ fcmpo cr0, f0, f30
/* 80073AA0 000709E0 41 80 00 0C */ blt lbl_80073AAC
/* 80073AA4 000709E4 FC 00 E8 40 */ fcmpo cr0, f0, f29
/* 80073AA8 000709E8 40 81 00 0C */ ble lbl_80073AB4
lbl_80073AAC:
/* 80073AAC 000709EC 38 60 00 00 */ li r3, 0
/* 80073AB0 000709F0 48 00 01 C4 */ b lbl_80073C74
lbl_80073AB4:
/* 80073AB4 000709F4 D0 41 00 18 */ stfs f2, 0x18(r1)
/* 80073AB8 000709F8 C0 02 8C 50 */ lfs f0, lbl_80452650-_SDA2_BASE_(r2)
/* 80073ABC 000709FC D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 80073AC0 00070A00 D0 21 00 20 */ stfs f1, 0x20(r1)
/* 80073AC4 00070A04 38 61 00 18 */ addi r3, r1, 0x18
/* 80073AC8 00070A08 48 2D 36 71 */ bl PSVECSquareMag
/* 80073ACC 00070A0C C0 02 8C 50 */ lfs f0, lbl_80452650-_SDA2_BASE_(r2)
/* 80073AD0 00070A10 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80073AD4 00070A14 40 81 00 58 */ ble lbl_80073B2C
/* 80073AD8 00070A18 FC 00 08 34 */ frsqrte f0, f1
/* 80073ADC 00070A1C C8 82 8C 78 */ lfd f4, lbl_80452678-_SDA2_BASE_(r2)
/* 80073AE0 00070A20 FC 44 00 32 */ fmul f2, f4, f0
/* 80073AE4 00070A24 C8 62 8C 80 */ lfd f3, lbl_80452680-_SDA2_BASE_(r2)
/* 80073AE8 00070A28 FC 00 00 32 */ fmul f0, f0, f0
/* 80073AEC 00070A2C FC 01 00 32 */ fmul f0, f1, f0
/* 80073AF0 00070A30 FC 03 00 28 */ fsub f0, f3, f0
/* 80073AF4 00070A34 FC 02 00 32 */ fmul f0, f2, f0
/* 80073AF8 00070A38 FC 44 00 32 */ fmul f2, f4, f0
/* 80073AFC 00070A3C FC 00 00 32 */ fmul f0, f0, f0
/* 80073B00 00070A40 FC 01 00 32 */ fmul f0, f1, f0
/* 80073B04 00070A44 FC 03 00 28 */ fsub f0, f3, f0
/* 80073B08 00070A48 FC 02 00 32 */ fmul f0, f2, f0
/* 80073B0C 00070A4C FC 44 00 32 */ fmul f2, f4, f0
/* 80073B10 00070A50 FC 00 00 32 */ fmul f0, f0, f0
/* 80073B14 00070A54 FC 01 00 32 */ fmul f0, f1, f0
/* 80073B18 00070A58 FC 03 00 28 */ fsub f0, f3, f0
/* 80073B1C 00070A5C FC 02 00 32 */ fmul f0, f2, f0
/* 80073B20 00070A60 FF C1 00 32 */ fmul f30, f1, f0
/* 80073B24 00070A64 FF C0 F0 18 */ frsp f30, f30
/* 80073B28 00070A68 48 00 00 90 */ b lbl_80073BB8
lbl_80073B2C:
/* 80073B2C 00070A6C C8 02 8C 88 */ lfd f0, lbl_80452688-_SDA2_BASE_(r2)
/* 80073B30 00070A70 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80073B34 00070A74 40 80 00 10 */ bge lbl_80073B44
/* 80073B38 00070A78 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
/* 80073B3C 00070A7C C3 C3 0A E0 */ lfs f30, lbl_80450AE0@l(r3)
/* 80073B40 00070A80 48 00 00 78 */ b lbl_80073BB8
lbl_80073B44:
/* 80073B44 00070A84 D0 21 00 0C */ stfs f1, 0xc(r1)
/* 80073B48 00070A88 80 81 00 0C */ lwz r4, 0xc(r1)
/* 80073B4C 00070A8C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
/* 80073B50 00070A90 3C 00 7F 80 */ lis r0, 0x7f80
/* 80073B54 00070A94 7C 03 00 00 */ cmpw r3, r0
/* 80073B58 00070A98 41 82 00 14 */ beq lbl_80073B6C
/* 80073B5C 00070A9C 40 80 00 40 */ bge lbl_80073B9C
/* 80073B60 00070AA0 2C 03 00 00 */ cmpwi r3, 0
/* 80073B64 00070AA4 41 82 00 20 */ beq lbl_80073B84
/* 80073B68 00070AA8 48 00 00 34 */ b lbl_80073B9C
lbl_80073B6C:
/* 80073B6C 00070AAC 54 80 02 7F */ clrlwi. r0, r4, 9
/* 80073B70 00070AB0 41 82 00 0C */ beq lbl_80073B7C
/* 80073B74 00070AB4 38 00 00 01 */ li r0, 1
/* 80073B78 00070AB8 48 00 00 28 */ b lbl_80073BA0
lbl_80073B7C:
/* 80073B7C 00070ABC 38 00 00 02 */ li r0, 2
/* 80073B80 00070AC0 48 00 00 20 */ b lbl_80073BA0
lbl_80073B84:
/* 80073B84 00070AC4 54 80 02 7F */ clrlwi. r0, r4, 9
/* 80073B88 00070AC8 41 82 00 0C */ beq lbl_80073B94
/* 80073B8C 00070ACC 38 00 00 05 */ li r0, 5
/* 80073B90 00070AD0 48 00 00 10 */ b lbl_80073BA0
lbl_80073B94:
/* 80073B94 00070AD4 38 00 00 03 */ li r0, 3
/* 80073B98 00070AD8 48 00 00 08 */ b lbl_80073BA0
lbl_80073B9C:
/* 80073B9C 00070ADC 38 00 00 04 */ li r0, 4
lbl_80073BA0:
/* 80073BA0 00070AE0 2C 00 00 01 */ cmpwi r0, 1
/* 80073BA4 00070AE4 40 82 00 10 */ bne lbl_80073BB4
/* 80073BA8 00070AE8 3C 60 80 45 */ lis r3, lbl_80450AE0@ha
/* 80073BAC 00070AEC C3 C3 0A E0 */ lfs f30, lbl_80450AE0@l(r3)
/* 80073BB0 00070AF0 48 00 00 08 */ b lbl_80073BB8
lbl_80073BB4:
/* 80073BB4 00070AF4 FF C0 08 90 */ fmr f30, f1
lbl_80073BB8:
/* 80073BB8 00070AF8 FC 1E F8 40 */ fcmpo cr0, f30, f31
/* 80073BBC 00070AFC 40 81 00 0C */ ble lbl_80073BC8
/* 80073BC0 00070B00 38 60 00 00 */ li r3, 0
/* 80073BC4 00070B04 48 00 00 B0 */ b lbl_80073C74
lbl_80073BC8:
/* 80073BC8 00070B08 7F C0 07 35 */ extsh. r0, r30
/* 80073BCC 00070B0C 41 82 00 60 */ beq lbl_80073C2C
/* 80073BD0 00070B10 38 61 00 10 */ addi r3, r1, 0x10
/* 80073BD4 00070B14 38 81 00 30 */ addi r4, r1, 0x30
/* 80073BD8 00070B18 48 1F DC A9 */ bl __ct__7cSGlobeFRC4cXyz
/* 80073BDC 00070B1C 38 61 00 08 */ addi r3, r1, 8
/* 80073BE0 00070B20 38 81 00 16 */ addi r4, r1, 0x16
/* 80073BE4 00070B24 A8 BA 04 E6 */ lha r5, 0x4e6(r26)
/* 80073BE8 00070B28 48 1F D6 41 */ bl __mi__7cSAngleCFs
/* 80073BEC 00070B2C A8 01 00 08 */ lha r0, 8(r1)
/* 80073BF0 00070B30 7C 00 07 35 */ extsh. r0, r0
/* 80073BF4 00070B34 7C 03 03 78 */ mr r3, r0
/* 80073BF8 00070B38 40 80 00 0C */ bge lbl_80073C04
/* 80073BFC 00070B3C 7C 00 00 D0 */ neg r0, r0
/* 80073C00 00070B40 7C 03 07 34 */ extsh r3, r0
lbl_80073C04:
/* 80073C04 00070B44 7C 60 07 34 */ extsh r0, r3
/* 80073C08 00070B48 2C 00 80 00 */ cmpwi r0, -32768
/* 80073C0C 00070B4C 40 82 00 08 */ bne lbl_80073C14
/* 80073C10 00070B50 38 60 7F FF */ li r3, 0x7fff
lbl_80073C14:
/* 80073C14 00070B54 7C 63 07 34 */ extsh r3, r3
/* 80073C18 00070B58 7F C0 07 34 */ extsh r0, r30
/* 80073C1C 00070B5C 7C 03 00 00 */ cmpw r3, r0
/* 80073C20 00070B60 40 81 00 0C */ ble lbl_80073C2C
/* 80073C24 00070B64 38 60 00 00 */ li r3, 0
/* 80073C28 00070B68 48 00 00 4C */ b lbl_80073C74
lbl_80073C2C:
/* 80073C2C 00070B6C 80 1B 00 04 */ lwz r0, 4(r27)
/* 80073C30 00070B70 7C 1F 00 00 */ cmpw r31, r0
/* 80073C34 00070B74 41 80 00 10 */ blt lbl_80073C44
/* 80073C38 00070B78 C0 1B 00 08 */ lfs f0, 8(r27)
/* 80073C3C 00070B7C FC 1E 00 40 */ fcmpo cr0, f30, f0
/* 80073C40 00070B80 40 80 00 30 */ bge lbl_80073C70
lbl_80073C44:
/* 80073C44 00070B84 93 FB 00 04 */ stw r31, 4(r27)
/* 80073C48 00070B88 9B BB 00 0C */ stb r29, 0xc(r27)
/* 80073C4C 00070B8C 28 1C 00 00 */ cmplwi r28, 0
/* 80073C50 00070B90 41 82 00 0C */ beq lbl_80073C5C
/* 80073C54 00070B94 80 1C 00 04 */ lwz r0, 4(r28)
/* 80073C58 00070B98 48 00 00 08 */ b lbl_80073C60
lbl_80073C5C:
/* 80073C5C 00070B9C 38 00 FF FF */ li r0, -1
lbl_80073C60:
/* 80073C60 00070BA0 90 1B 00 00 */ stw r0, 0(r27)
/* 80073C64 00070BA4 D3 DB 00 08 */ stfs f30, 8(r27)
/* 80073C68 00070BA8 38 60 00 01 */ li r3, 1
/* 80073C6C 00070BAC 48 00 00 08 */ b lbl_80073C74
lbl_80073C70:
/* 80073C70 00070BB0 38 60 00 00 */ li r3, 0
lbl_80073C74:
/* 80073C74 00070BB4 E3 E1 00 88 */ psq_l f31, 136(r1), 0, 0
/* 80073C78 00070BB8 CB E1 00 80 */ lfd f31, 0x80(r1)
/* 80073C7C 00070BBC E3 C1 00 78 */ psq_l f30, 120(r1), 0, 0
/* 80073C80 00070BC0 CB C1 00 70 */ lfd f30, 0x70(r1)
/* 80073C84 00070BC4 E3 A1 00 68 */ psq_l f29, 104(r1), 0, 0
/* 80073C88 00070BC8 CB A1 00 60 */ lfd f29, 0x60(r1)
/* 80073C8C 00070BCC 39 61 00 60 */ addi r11, r1, 0x60
/* 80073C90 00070BD0 48 2E E5 8D */ bl _restgpr_26
/* 80073C94 00070BD4 80 01 00 94 */ lwz r0, 0x94(r1)
/* 80073C98 00070BD8 7C 08 03 A6 */ mtlr r0
/* 80073C9C 00070BDC 38 21 00 90 */ addi r1, r1, 0x90
/* 80073CA0 00070BE0 4E 80 00 20 */ blr