diff options
author | Max <mparisi@stevens.edu> | 2020-09-27 12:14:11 -0400 |
---|---|---|
committer | Max <mparisi@stevens.edu> | 2020-09-27 12:14:11 -0400 |
commit | 8eda84b6bff5d3ba6c2fe3289ec7cd469e766e80 (patch) | |
tree | 64d7033782ee7dcc7304f23595e424fe37dbf320 | |
parent | fce7f2a6c59167d462e3198e5c57a19826591655 (diff) |
split math_triangular.s and create asm/nw4r/math directory
-rw-r--r-- | Makefile | 6 | ||||
-rw-r--r-- | asm/nw4r/math/math_triangular.s | 184 | ||||
-rw-r--r-- | asm/text_11.s | 205 | ||||
-rw-r--r-- | obj_files.mk | 1 |
4 files changed, 201 insertions, 195 deletions
@@ -29,9 +29,11 @@ TARGET := pbr_pal BUILD_DIR := build/$(TARGET) SRC_DIRS := src src/SDK/OS src/libstdc++ src/MetroTRK src/GameSpy \ - src/nw4r/ut src/nw4r/snd src/nw4r/ut/detail src/nw4r/snd/detail + src/nw4r/ut src/nw4r/snd src/nw4r/ut/detail src/nw4r/snd/detail \ + src/nw4r/math ASM_DIRS := asm asm/SDK/OS asm/libstdc++ asm/MetroTRK asm/GameSpy \ - asm/nw4r/ut asm/nw4r/snd asm/nw4r/ut/detail asm/nw4r/snd/detail + asm/nw4r/ut asm/nw4r/snd asm/nw4r/ut/detail asm/nw4r/snd/detail \ + asm/nw4r/math # Inputs S_FILES := $(wildcard asm/*.s) diff --git a/asm/nw4r/math/math_triangular.s b/asm/nw4r/math/math_triangular.s new file mode 100644 index 0000000..6da9b62 --- /dev/null +++ b/asm/nw4r/math/math_triangular.s @@ -0,0 +1,184 @@ +.include "macros.inc"
+
+.section .text, "ax" # 0x80006980 - 0x803E1E60
+
+.global SinFIdx__Q24nw4r4mathFf
+SinFIdx__Q24nw4r4mathFf:
+/* 80384CDC 0038093C FC 60 0A 10 */ fabs f3, f1
+/* 80384CE0 00380940 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80384CE4 00380944 C0 02 A8 20 */ lfs f0, lbl_80642E20-_SDA2_BASE_(r2)
+/* 80384CE8 00380948 48 00 00 08 */ b lbl_80384CF0
+lbl_80384CEC:
+/* 80384CEC 0038094C EC 63 00 28 */ fsubs f3, f3, f0
+lbl_80384CF0:
+/* 80384CF0 00380950 FC 03 00 40 */ fcmpo cr0, f3, f0
+/* 80384CF4 00380954 4C 41 13 82 */ cror 2, 1, 2
+/* 80384CF8 00380958 41 82 FF F4 */ beq lbl_80384CEC
+/* 80384CFC 0038095C F0 61 B0 0C */ psq_st f3, 12(r1), 1, qr3
+/* 80384D00 00380960 A0 01 00 0C */ lhz r0, 0xc(r1)
+/* 80384D04 00380964 B0 01 00 08 */ sth r0, 8(r1)
+/* 80384D08 00380968 E0 41 B0 08 */ psq_l f2, 8(r1), 1, qr3
+/* 80384D0C 0038096C 3C 80 80 45 */ lis r4, lbl_8044D120@ha
+/* 80384D10 00380970 54 00 25 36 */ rlwinm r0, r0, 4, 0x14, 0x1b
+/* 80384D14 00380974 C0 02 A8 24 */ lfs f0, lbl_80642E24-_SDA2_BASE_(r2)
+/* 80384D18 00380978 38 84 D1 20 */ addi r4, r4, lbl_8044D120@l
+/* 80384D1C 0038097C EC 83 10 28 */ fsubs f4, f3, f2
+/* 80384D20 00380980 7C 64 02 14 */ add r3, r4, r0
+/* 80384D24 00380984 FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80384D28 00380988 C0 63 00 08 */ lfs f3, 8(r3)
+/* 80384D2C 0038098C 7C 44 04 2E */ lfsx f2, r4, r0
+/* 80384D30 00380990 EC 04 00 F2 */ fmuls f0, f4, f3
+/* 80384D34 00380994 EC 22 00 2A */ fadds f1, f2, f0
+/* 80384D38 00380998 40 80 00 08 */ bge lbl_80384D40
+/* 80384D3C 0038099C FC 20 08 50 */ fneg f1, f1
+lbl_80384D40:
+/* 80384D40 003809A0 38 21 00 10 */ addi r1, r1, 0x10
+/* 80384D44 003809A4 4E 80 00 20 */ blr
+
+.global CosFIdx__Q24nw4r4mathFf
+CosFIdx__Q24nw4r4mathFf:
+/* 80384D48 003809A8 FC 20 0A 10 */ fabs f1, f1
+/* 80384D4C 003809AC 94 21 FF F0 */ stwu r1, -0x10(r1)
+/* 80384D50 003809B0 C0 02 A8 20 */ lfs f0, lbl_80642E20-_SDA2_BASE_(r2)
+/* 80384D54 003809B4 48 00 00 08 */ b lbl_80384D5C
+lbl_80384D58:
+/* 80384D58 003809B8 EC 21 00 28 */ fsubs f1, f1, f0
+lbl_80384D5C:
+/* 80384D5C 003809BC FC 01 00 40 */ fcmpo cr0, f1, f0
+/* 80384D60 003809C0 4C 41 13 82 */ cror 2, 1, 2
+/* 80384D64 003809C4 41 82 FF F4 */ beq lbl_80384D58
+/* 80384D68 003809C8 F0 21 B0 0C */ psq_st f1, 12(r1), 1, qr3
+/* 80384D6C 003809CC A0 01 00 0C */ lhz r0, 0xc(r1)
+/* 80384D70 003809D0 B0 01 00 08 */ sth r0, 8(r1)
+/* 80384D74 003809D4 E0 01 B0 08 */ psq_l f0, 8(r1), 1, qr3
+/* 80384D78 003809D8 3C 60 80 45 */ lis r3, lbl_8044D120@ha
+/* 80384D7C 003809DC 54 00 25 36 */ rlwinm r0, r0, 4, 0x14, 0x1b
+/* 80384D80 003809E0 38 63 D1 20 */ addi r3, r3, lbl_8044D120@l
+/* 80384D84 003809E4 EC 41 00 28 */ fsubs f2, f1, f0
+/* 80384D88 003809E8 7C 63 02 14 */ add r3, r3, r0
+/* 80384D8C 003809EC C0 23 00 0C */ lfs f1, 0xc(r3)
+/* 80384D90 003809F0 C0 03 00 04 */ lfs f0, 4(r3)
+/* 80384D94 003809F4 EC 22 00 72 */ fmuls f1, f2, f1
+/* 80384D98 003809F8 EC 20 08 2A */ fadds f1, f0, f1
+/* 80384D9C 003809FC 38 21 00 10 */ addi r1, r1, 0x10
+/* 80384DA0 00380A00 4E 80 00 20 */ blr
+
+.global Atan2FIdx__Q24nw4r4mathFff
+Atan2FIdx__Q24nw4r4mathFff:
+/* 80384DA4 00380A04 C0 02 A8 24 */ lfs f0, lbl_80642E24-_SDA2_BASE_(r2)
+/* 80384DA8 00380A08 94 21 FF E0 */ stwu r1, -0x20(r1)
+/* 80384DAC 00380A0C FC 00 10 00 */ fcmpu cr0, f0, f2
+/* 80384DB0 00380A10 40 82 00 14 */ bne lbl_80384DC4
+/* 80384DB4 00380A14 FC 00 08 00 */ fcmpu cr0, f0, f1
+/* 80384DB8 00380A18 40 82 00 0C */ bne lbl_80384DC4
+/* 80384DBC 00380A1C FC 20 00 90 */ fmr f1, f0
+/* 80384DC0 00380A20 48 00 01 84 */ b lbl_80384F44
+lbl_80384DC4:
+/* 80384DC4 00380A24 C0 82 A8 24 */ lfs f4, lbl_80642E24-_SDA2_BASE_(r2)
+/* 80384DC8 00380A28 FC 02 20 40 */ fcmpo cr0, f2, f4
+/* 80384DCC 00380A2C 4C 41 13 82 */ cror 2, 1, 2
+/* 80384DD0 00380A30 40 82 00 6C */ bne lbl_80384E3C
+/* 80384DD4 00380A34 FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 80384DD8 00380A38 4C 41 13 82 */ cror 2, 1, 2
+/* 80384DDC 00380A3C 40 82 00 30 */ bne lbl_80384E0C
+/* 80384DE0 00380A40 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 80384DE4 00380A44 4C 41 13 82 */ cror 2, 1, 2
+/* 80384DE8 00380A48 40 82 00 10 */ bne lbl_80384DF8
+/* 80384DEC 00380A4C FC 60 10 90 */ fmr f3, f2
+/* 80384DF0 00380A50 38 00 00 00 */ li r0, 0
+/* 80384DF4 00380A54 48 00 00 BC */ b lbl_80384EB0
+lbl_80384DF8:
+/* 80384DF8 00380A58 FC 60 08 90 */ fmr f3, f1
+/* 80384DFC 00380A5C C0 82 A8 2C */ lfs f4, lbl_80642E2C-_SDA2_BASE_(r2)
+/* 80384E00 00380A60 FC 20 10 90 */ fmr f1, f2
+/* 80384E04 00380A64 38 00 00 01 */ li r0, 1
+/* 80384E08 00380A68 48 00 00 A8 */ b lbl_80384EB0
+lbl_80384E0C:
+/* 80384E0C 00380A6C FC 20 08 50 */ fneg f1, f1
+/* 80384E10 00380A70 FC 02 08 40 */ fcmpo cr0, f2, f1
+/* 80384E14 00380A74 4C 41 13 82 */ cror 2, 1, 2
+/* 80384E18 00380A78 40 82 00 10 */ bne lbl_80384E28
+/* 80384E1C 00380A7C FC 60 10 90 */ fmr f3, f2
+/* 80384E20 00380A80 38 00 00 01 */ li r0, 1
+/* 80384E24 00380A84 48 00 00 8C */ b lbl_80384EB0
+lbl_80384E28:
+/* 80384E28 00380A88 FC 60 08 90 */ fmr f3, f1
+/* 80384E2C 00380A8C C0 82 A8 30 */ lfs f4, lbl_80642E30-_SDA2_BASE_(r2)
+/* 80384E30 00380A90 FC 20 10 90 */ fmr f1, f2
+/* 80384E34 00380A94 38 00 00 00 */ li r0, 0
+/* 80384E38 00380A98 48 00 00 78 */ b lbl_80384EB0
+lbl_80384E3C:
+/* 80384E3C 00380A9C FC 01 20 40 */ fcmpo cr0, f1, f4
+/* 80384E40 00380AA0 4C 41 13 82 */ cror 2, 1, 2
+/* 80384E44 00380AA4 40 82 00 38 */ bne lbl_80384E7C
+/* 80384E48 00380AA8 FC 00 10 50 */ fneg f0, f2
+/* 80384E4C 00380AAC FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 80384E50 00380AB0 4C 41 13 82 */ cror 2, 1, 2
+/* 80384E54 00380AB4 40 82 00 14 */ bne lbl_80384E68
+/* 80384E58 00380AB8 FC 60 00 90 */ fmr f3, f0
+/* 80384E5C 00380ABC C0 82 A8 34 */ lfs f4, lbl_80642E34-_SDA2_BASE_(r2)
+/* 80384E60 00380AC0 38 00 00 01 */ li r0, 1
+/* 80384E64 00380AC4 48 00 00 4C */ b lbl_80384EB0
+lbl_80384E68:
+/* 80384E68 00380AC8 FC 60 08 90 */ fmr f3, f1
+/* 80384E6C 00380ACC C0 82 A8 2C */ lfs f4, lbl_80642E2C-_SDA2_BASE_(r2)
+/* 80384E70 00380AD0 FC 20 00 90 */ fmr f1, f0
+/* 80384E74 00380AD4 38 00 00 00 */ li r0, 0
+/* 80384E78 00380AD8 48 00 00 38 */ b lbl_80384EB0
+lbl_80384E7C:
+/* 80384E7C 00380ADC FC 00 10 50 */ fneg f0, f2
+/* 80384E80 00380AE0 FC 20 08 50 */ fneg f1, f1
+/* 80384E84 00380AE4 FC 00 08 40 */ fcmpo cr0, f0, f1
+/* 80384E88 00380AE8 4C 41 13 82 */ cror 2, 1, 2
+/* 80384E8C 00380AEC 40 82 00 14 */ bne lbl_80384EA0
+/* 80384E90 00380AF0 FC 60 00 90 */ fmr f3, f0
+/* 80384E94 00380AF4 C0 82 A8 38 */ lfs f4, lbl_80642E38-_SDA2_BASE_(r2)
+/* 80384E98 00380AF8 38 00 00 00 */ li r0, 0
+/* 80384E9C 00380AFC 48 00 00 14 */ b lbl_80384EB0
+lbl_80384EA0:
+/* 80384EA0 00380B00 FC 60 08 90 */ fmr f3, f1
+/* 80384EA4 00380B04 C0 82 A8 30 */ lfs f4, lbl_80642E30-_SDA2_BASE_(r2)
+/* 80384EA8 00380B08 FC 20 00 90 */ fmr f1, f0
+/* 80384EAC 00380B0C 38 00 00 01 */ li r0, 1
+lbl_80384EB0:
+/* 80384EB0 00380B10 2C 00 00 00 */ cmpwi r0, 0
+/* 80384EB4 00380B14 41 82 00 4C */ beq lbl_80384F00
+/* 80384EB8 00380B18 EC 21 18 24 */ fdivs f1, f1, f3
+/* 80384EBC 00380B1C C0 02 A8 28 */ lfs f0, lbl_80642E28-_SDA2_BASE_(r2)
+/* 80384EC0 00380B20 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80384EC4 00380B24 F0 21 B0 10 */ psq_st f1, 16(r1), 1, qr3
+/* 80384EC8 00380B28 A0 01 00 10 */ lhz r0, 0x10(r1)
+/* 80384ECC 00380B2C B0 01 00 0A */ sth r0, 0xa(r1)
+/* 80384ED0 00380B30 E0 01 B0 0A */ psq_l f0, 10(r1), 1, qr3
+/* 80384ED4 00380B34 3C 80 80 45 */ lis r4, lbl_8044E130@ha
+/* 80384ED8 00380B38 54 00 18 38 */ slwi r0, r0, 3
+/* 80384EDC 00380B3C 38 84 E1 30 */ addi r4, r4, lbl_8044E130@l
+/* 80384EE0 00380B40 EC 41 00 28 */ fsubs f2, f1, f0
+/* 80384EE4 00380B44 7C 64 02 14 */ add r3, r4, r0
+/* 80384EE8 00380B48 7C 04 04 2E */ lfsx f0, r4, r0
+/* 80384EEC 00380B4C C0 23 00 04 */ lfs f1, 4(r3)
+/* 80384EF0 00380B50 EC 22 00 72 */ fmuls f1, f2, f1
+/* 80384EF4 00380B54 EC 00 08 2A */ fadds f0, f0, f1
+/* 80384EF8 00380B58 EC 24 00 28 */ fsubs f1, f4, f0
+/* 80384EFC 00380B5C 48 00 00 48 */ b lbl_80384F44
+lbl_80384F00:
+/* 80384F00 00380B60 EC 21 18 24 */ fdivs f1, f1, f3
+/* 80384F04 00380B64 C0 02 A8 28 */ lfs f0, lbl_80642E28-_SDA2_BASE_(r2)
+/* 80384F08 00380B68 EC 21 00 32 */ fmuls f1, f1, f0
+/* 80384F0C 00380B6C F0 21 B0 0C */ psq_st f1, 12(r1), 1, qr3
+/* 80384F10 00380B70 A0 01 00 0C */ lhz r0, 0xc(r1)
+/* 80384F14 00380B74 B0 01 00 08 */ sth r0, 8(r1)
+/* 80384F18 00380B78 E0 01 B0 08 */ psq_l f0, 8(r1), 1, qr3
+/* 80384F1C 00380B7C 3C 80 80 45 */ lis r4, lbl_8044E130@ha
+/* 80384F20 00380B80 54 00 18 38 */ slwi r0, r0, 3
+/* 80384F24 00380B84 38 84 E1 30 */ addi r4, r4, lbl_8044E130@l
+/* 80384F28 00380B88 EC 41 00 28 */ fsubs f2, f1, f0
+/* 80384F2C 00380B8C 7C 64 02 14 */ add r3, r4, r0
+/* 80384F30 00380B90 7C 04 04 2E */ lfsx f0, r4, r0
+/* 80384F34 00380B94 C0 23 00 04 */ lfs f1, 4(r3)
+/* 80384F38 00380B98 EC 22 00 72 */ fmuls f1, f2, f1
+/* 80384F3C 00380B9C EC 00 08 2A */ fadds f0, f0, f1
+/* 80384F40 00380BA0 EC 24 00 2A */ fadds f1, f4, f0
+lbl_80384F44:
+/* 80384F44 00380BA4 38 21 00 20 */ addi r1, r1, 0x20
+/* 80384F48 00380BA8 4E 80 00 20 */ blr
diff --git a/asm/text_11.s b/asm/text_11.s index 9c25f8f..d4e7324 100644 --- a/asm/text_11.s +++ b/asm/text_11.s @@ -2,189 +2,8 @@ .section .text, "ax" # 0x80006980 - 0x803E1E60 -.global func_80384CDC -func_80384CDC: -/* 80384CDC 0038093C FC 60 0A 10 */ fabs f3, f1 -/* 80384CE0 00380940 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80384CE4 00380944 C0 02 A8 20 */ lfs f0, lbl_80642E20-_SDA2_BASE_(r2) -/* 80384CE8 00380948 48 00 00 08 */ b lbl_80384CF0 -lbl_80384CEC: -/* 80384CEC 0038094C EC 63 00 28 */ fsubs f3, f3, f0 -lbl_80384CF0: -/* 80384CF0 00380950 FC 03 00 40 */ fcmpo cr0, f3, f0 -/* 80384CF4 00380954 4C 41 13 82 */ cror 2, 1, 2 -/* 80384CF8 00380958 41 82 FF F4 */ beq lbl_80384CEC -/* 80384CFC 0038095C F0 61 B0 0C */ psq_st f3, 12(r1), 1, qr3 -/* 80384D00 00380960 A0 01 00 0C */ lhz r0, 0xc(r1) -/* 80384D04 00380964 B0 01 00 08 */ sth r0, 8(r1) -/* 80384D08 00380968 E0 41 B0 08 */ psq_l f2, 8(r1), 1, qr3 -/* 80384D0C 0038096C 3C 80 80 45 */ lis r4, lbl_8044D120@ha -/* 80384D10 00380970 54 00 25 36 */ rlwinm r0, r0, 4, 0x14, 0x1b -/* 80384D14 00380974 C0 02 A8 24 */ lfs f0, lbl_80642E24-_SDA2_BASE_(r2) -/* 80384D18 00380978 38 84 D1 20 */ addi r4, r4, lbl_8044D120@l -/* 80384D1C 0038097C EC 83 10 28 */ fsubs f4, f3, f2 -/* 80384D20 00380980 7C 64 02 14 */ add r3, r4, r0 -/* 80384D24 00380984 FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80384D28 00380988 C0 63 00 08 */ lfs f3, 8(r3) -/* 80384D2C 0038098C 7C 44 04 2E */ lfsx f2, r4, r0 -/* 80384D30 00380990 EC 04 00 F2 */ fmuls f0, f4, f3 -/* 80384D34 00380994 EC 22 00 2A */ fadds f1, f2, f0 -/* 80384D38 00380998 40 80 00 08 */ bge lbl_80384D40 -/* 80384D3C 0038099C FC 20 08 50 */ fneg f1, f1 -lbl_80384D40: -/* 80384D40 003809A0 38 21 00 10 */ addi r1, r1, 0x10 -/* 80384D44 003809A4 4E 80 00 20 */ blr - -.global func_80384D48 -func_80384D48: -/* 80384D48 003809A8 FC 20 0A 10 */ fabs f1, f1 -/* 80384D4C 003809AC 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 80384D50 003809B0 C0 02 A8 20 */ lfs f0, lbl_80642E20-_SDA2_BASE_(r2) -/* 80384D54 003809B4 48 00 00 08 */ b lbl_80384D5C -lbl_80384D58: -/* 80384D58 003809B8 EC 21 00 28 */ fsubs f1, f1, f0 -lbl_80384D5C: -/* 80384D5C 003809BC FC 01 00 40 */ fcmpo cr0, f1, f0 -/* 80384D60 003809C0 4C 41 13 82 */ cror 2, 1, 2 -/* 80384D64 003809C4 41 82 FF F4 */ beq lbl_80384D58 -/* 80384D68 003809C8 F0 21 B0 0C */ psq_st f1, 12(r1), 1, qr3 -/* 80384D6C 003809CC A0 01 00 0C */ lhz r0, 0xc(r1) -/* 80384D70 003809D0 B0 01 00 08 */ sth r0, 8(r1) -/* 80384D74 003809D4 E0 01 B0 08 */ psq_l f0, 8(r1), 1, qr3 -/* 80384D78 003809D8 3C 60 80 45 */ lis r3, lbl_8044D120@ha -/* 80384D7C 003809DC 54 00 25 36 */ rlwinm r0, r0, 4, 0x14, 0x1b -/* 80384D80 003809E0 38 63 D1 20 */ addi r3, r3, lbl_8044D120@l -/* 80384D84 003809E4 EC 41 00 28 */ fsubs f2, f1, f0 -/* 80384D88 003809E8 7C 63 02 14 */ add r3, r3, r0 -/* 80384D8C 003809EC C0 23 00 0C */ lfs f1, 0xc(r3) -/* 80384D90 003809F0 C0 03 00 04 */ lfs f0, 4(r3) -/* 80384D94 003809F4 EC 22 00 72 */ fmuls f1, f2, f1 -/* 80384D98 003809F8 EC 20 08 2A */ fadds f1, f0, f1 -/* 80384D9C 003809FC 38 21 00 10 */ addi r1, r1, 0x10 -/* 80384DA0 00380A00 4E 80 00 20 */ blr - -.global func_80384DA4 -func_80384DA4: -/* 80384DA4 00380A04 C0 02 A8 24 */ lfs f0, lbl_80642E24-_SDA2_BASE_(r2) -/* 80384DA8 00380A08 94 21 FF E0 */ stwu r1, -0x20(r1) -/* 80384DAC 00380A0C FC 00 10 00 */ fcmpu cr0, f0, f2 -/* 80384DB0 00380A10 40 82 00 14 */ bne lbl_80384DC4 -/* 80384DB4 00380A14 FC 00 08 00 */ fcmpu cr0, f0, f1 -/* 80384DB8 00380A18 40 82 00 0C */ bne lbl_80384DC4 -/* 80384DBC 00380A1C FC 20 00 90 */ fmr f1, f0 -/* 80384DC0 00380A20 48 00 01 84 */ b lbl_80384F44 -lbl_80384DC4: -/* 80384DC4 00380A24 C0 82 A8 24 */ lfs f4, lbl_80642E24-_SDA2_BASE_(r2) -/* 80384DC8 00380A28 FC 02 20 40 */ fcmpo cr0, f2, f4 -/* 80384DCC 00380A2C 4C 41 13 82 */ cror 2, 1, 2 -/* 80384DD0 00380A30 40 82 00 6C */ bne lbl_80384E3C -/* 80384DD4 00380A34 FC 01 20 40 */ fcmpo cr0, f1, f4 -/* 80384DD8 00380A38 4C 41 13 82 */ cror 2, 1, 2 -/* 80384DDC 00380A3C 40 82 00 30 */ bne lbl_80384E0C -/* 80384DE0 00380A40 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 80384DE4 00380A44 4C 41 13 82 */ cror 2, 1, 2 -/* 80384DE8 00380A48 40 82 00 10 */ bne lbl_80384DF8 -/* 80384DEC 00380A4C FC 60 10 90 */ fmr f3, f2 -/* 80384DF0 00380A50 38 00 00 00 */ li r0, 0 -/* 80384DF4 00380A54 48 00 00 BC */ b lbl_80384EB0 -lbl_80384DF8: -/* 80384DF8 00380A58 FC 60 08 90 */ fmr f3, f1 -/* 80384DFC 00380A5C C0 82 A8 2C */ lfs f4, lbl_80642E2C-_SDA2_BASE_(r2) -/* 80384E00 00380A60 FC 20 10 90 */ fmr f1, f2 -/* 80384E04 00380A64 38 00 00 01 */ li r0, 1 -/* 80384E08 00380A68 48 00 00 A8 */ b lbl_80384EB0 -lbl_80384E0C: -/* 80384E0C 00380A6C FC 20 08 50 */ fneg f1, f1 -/* 80384E10 00380A70 FC 02 08 40 */ fcmpo cr0, f2, f1 -/* 80384E14 00380A74 4C 41 13 82 */ cror 2, 1, 2 -/* 80384E18 00380A78 40 82 00 10 */ bne lbl_80384E28 -/* 80384E1C 00380A7C FC 60 10 90 */ fmr f3, f2 -/* 80384E20 00380A80 38 00 00 01 */ li r0, 1 -/* 80384E24 00380A84 48 00 00 8C */ b lbl_80384EB0 -lbl_80384E28: -/* 80384E28 00380A88 FC 60 08 90 */ fmr f3, f1 -/* 80384E2C 00380A8C C0 82 A8 30 */ lfs f4, lbl_80642E30-_SDA2_BASE_(r2) -/* 80384E30 00380A90 FC 20 10 90 */ fmr f1, f2 -/* 80384E34 00380A94 38 00 00 00 */ li r0, 0 -/* 80384E38 00380A98 48 00 00 78 */ b lbl_80384EB0 -lbl_80384E3C: -/* 80384E3C 00380A9C FC 01 20 40 */ fcmpo cr0, f1, f4 -/* 80384E40 00380AA0 4C 41 13 82 */ cror 2, 1, 2 -/* 80384E44 00380AA4 40 82 00 38 */ bne lbl_80384E7C -/* 80384E48 00380AA8 FC 00 10 50 */ fneg f0, f2 -/* 80384E4C 00380AAC FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80384E50 00380AB0 4C 41 13 82 */ cror 2, 1, 2 -/* 80384E54 00380AB4 40 82 00 14 */ bne lbl_80384E68 -/* 80384E58 00380AB8 FC 60 00 90 */ fmr f3, f0 -/* 80384E5C 00380ABC C0 82 A8 34 */ lfs f4, lbl_80642E34-_SDA2_BASE_(r2) -/* 80384E60 00380AC0 38 00 00 01 */ li r0, 1 -/* 80384E64 00380AC4 48 00 00 4C */ b lbl_80384EB0 -lbl_80384E68: -/* 80384E68 00380AC8 FC 60 08 90 */ fmr f3, f1 -/* 80384E6C 00380ACC C0 82 A8 2C */ lfs f4, lbl_80642E2C-_SDA2_BASE_(r2) -/* 80384E70 00380AD0 FC 20 00 90 */ fmr f1, f0 -/* 80384E74 00380AD4 38 00 00 00 */ li r0, 0 -/* 80384E78 00380AD8 48 00 00 38 */ b lbl_80384EB0 -lbl_80384E7C: -/* 80384E7C 00380ADC FC 00 10 50 */ fneg f0, f2 -/* 80384E80 00380AE0 FC 20 08 50 */ fneg f1, f1 -/* 80384E84 00380AE4 FC 00 08 40 */ fcmpo cr0, f0, f1 -/* 80384E88 00380AE8 4C 41 13 82 */ cror 2, 1, 2 -/* 80384E8C 00380AEC 40 82 00 14 */ bne lbl_80384EA0 -/* 80384E90 00380AF0 FC 60 00 90 */ fmr f3, f0 -/* 80384E94 00380AF4 C0 82 A8 38 */ lfs f4, lbl_80642E38-_SDA2_BASE_(r2) -/* 80384E98 00380AF8 38 00 00 00 */ li r0, 0 -/* 80384E9C 00380AFC 48 00 00 14 */ b lbl_80384EB0 -lbl_80384EA0: -/* 80384EA0 00380B00 FC 60 08 90 */ fmr f3, f1 -/* 80384EA4 00380B04 C0 82 A8 30 */ lfs f4, lbl_80642E30-_SDA2_BASE_(r2) -/* 80384EA8 00380B08 FC 20 00 90 */ fmr f1, f0 -/* 80384EAC 00380B0C 38 00 00 01 */ li r0, 1 -lbl_80384EB0: -/* 80384EB0 00380B10 2C 00 00 00 */ cmpwi r0, 0 -/* 80384EB4 00380B14 41 82 00 4C */ beq lbl_80384F00 -/* 80384EB8 00380B18 EC 21 18 24 */ fdivs f1, f1, f3 -/* 80384EBC 00380B1C C0 02 A8 28 */ lfs f0, lbl_80642E28-_SDA2_BASE_(r2) -/* 80384EC0 00380B20 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80384EC4 00380B24 F0 21 B0 10 */ psq_st f1, 16(r1), 1, qr3 -/* 80384EC8 00380B28 A0 01 00 10 */ lhz r0, 0x10(r1) -/* 80384ECC 00380B2C B0 01 00 0A */ sth r0, 0xa(r1) -/* 80384ED0 00380B30 E0 01 B0 0A */ psq_l f0, 10(r1), 1, qr3 -/* 80384ED4 00380B34 3C 80 80 45 */ lis r4, lbl_8044E130@ha -/* 80384ED8 00380B38 54 00 18 38 */ slwi r0, r0, 3 -/* 80384EDC 00380B3C 38 84 E1 30 */ addi r4, r4, lbl_8044E130@l -/* 80384EE0 00380B40 EC 41 00 28 */ fsubs f2, f1, f0 -/* 80384EE4 00380B44 7C 64 02 14 */ add r3, r4, r0 -/* 80384EE8 00380B48 7C 04 04 2E */ lfsx f0, r4, r0 -/* 80384EEC 00380B4C C0 23 00 04 */ lfs f1, 4(r3) -/* 80384EF0 00380B50 EC 22 00 72 */ fmuls f1, f2, f1 -/* 80384EF4 00380B54 EC 00 08 2A */ fadds f0, f0, f1 -/* 80384EF8 00380B58 EC 24 00 28 */ fsubs f1, f4, f0 -/* 80384EFC 00380B5C 48 00 00 48 */ b lbl_80384F44 -lbl_80384F00: -/* 80384F00 00380B60 EC 21 18 24 */ fdivs f1, f1, f3 -/* 80384F04 00380B64 C0 02 A8 28 */ lfs f0, lbl_80642E28-_SDA2_BASE_(r2) -/* 80384F08 00380B68 EC 21 00 32 */ fmuls f1, f1, f0 -/* 80384F0C 00380B6C F0 21 B0 0C */ psq_st f1, 12(r1), 1, qr3 -/* 80384F10 00380B70 A0 01 00 0C */ lhz r0, 0xc(r1) -/* 80384F14 00380B74 B0 01 00 08 */ sth r0, 8(r1) -/* 80384F18 00380B78 E0 01 B0 08 */ psq_l f0, 8(r1), 1, qr3 -/* 80384F1C 00380B7C 3C 80 80 45 */ lis r4, lbl_8044E130@ha -/* 80384F20 00380B80 54 00 18 38 */ slwi r0, r0, 3 -/* 80384F24 00380B84 38 84 E1 30 */ addi r4, r4, lbl_8044E130@l -/* 80384F28 00380B88 EC 41 00 28 */ fsubs f2, f1, f0 -/* 80384F2C 00380B8C 7C 64 02 14 */ add r3, r4, r0 -/* 80384F30 00380B90 7C 04 04 2E */ lfsx f0, r4, r0 -/* 80384F34 00380B94 C0 23 00 04 */ lfs f1, 4(r3) -/* 80384F38 00380B98 EC 22 00 72 */ fmuls f1, f2, f1 -/* 80384F3C 00380B9C EC 00 08 2A */ fadds f0, f0, f1 -/* 80384F40 00380BA0 EC 24 00 2A */ fadds f1, f4, f0 -lbl_80384F44: -/* 80384F44 00380BA4 38 21 00 20 */ addi r1, r1, 0x20 -/* 80384F48 00380BA8 4E 80 00 20 */ blr - -.global func_80384F4C -func_80384F4C: +.global __ct__Q34nw4r3lyt4PaneFPCQ44nw4r3lyt3res4Pane +__ct__Q34nw4r3lyt4PaneFPCQ44nw4r3lyt3res4Pane: /* 80384F4C 00380BAC 94 21 FF E0 */ stwu r1, -0x20(r1) /* 80384F50 00380BB0 7C 08 02 A6 */ mflr r0 /* 80384F54 00380BB4 3C C0 80 45 */ lis r6, lbl_8044E238@ha @@ -2290,7 +2109,7 @@ lbl_80386C1C: /* 80386C30 00382890 41 82 00 14 */ beq lbl_80386C44 /* 80386C34 00382894 41 82 01 6C */ beq lbl_80386DA0 /* 80386C38 00382898 7F E4 FB 78 */ mr r4, r31 -/* 80386C3C 0038289C 4B FF E3 11 */ bl func_80384F4C +/* 80386C3C 0038289C 4B FF E3 11 */ bl __ct__Q34nw4r3lyt4PaneFPCQ44nw4r3lyt3res4Pane /* 80386C40 003828A0 48 00 01 60 */ b lbl_80386DA0 lbl_80386C44: /* 80386C44 003828A4 38 60 00 00 */ li r3, 0 @@ -2414,7 +2233,7 @@ func_80386DC0: /* 80386DDC 00382A3C 7C 9D 23 78 */ mr r29, r4 /* 80386DE0 00382A40 93 81 00 10 */ stw r28, 0x10(r1) /* 80386DE4 00382A44 7C 7C 1B 78 */ mr r28, r3 -/* 80386DE8 00382A48 4B FF E1 65 */ bl func_80384F4C +/* 80386DE8 00382A48 4B FF E1 65 */ bl __ct__Q34nw4r3lyt4PaneFPCQ44nw4r3lyt3res4Pane /* 80386DEC 00382A4C 3C 60 80 45 */ lis r3, lbl_8044E2E8@ha /* 80386DF0 00382A50 3C 80 80 38 */ lis r4, cAIPad___ct@ha /* 80386DF4 00382A54 38 63 E2 E8 */ addi r3, r3, lbl_8044E2E8@l @@ -2814,7 +2633,7 @@ func_80387390: /* 803873A4 00383004 7C 7C 1B 78 */ mr r28, r3 /* 803873A8 00383008 7C 9D 23 78 */ mr r29, r4 /* 803873AC 0038300C 7C BE 2B 78 */ mr r30, r5 -/* 803873B0 00383010 4B FF DB 9D */ bl func_80384F4C +/* 803873B0 00383010 4B FF DB 9D */ bl __ct__Q34nw4r3lyt4PaneFPCQ44nw4r3lyt3res4Pane /* 803873B4 00383014 3C 60 80 45 */ lis r3, lbl_8044E350@ha /* 803873B8 00383018 3C 80 80 38 */ lis r4, cAIPad___ct@ha /* 803873BC 0038301C 38 63 E3 50 */ addi r3, r3, lbl_8044E350@l @@ -3579,7 +3398,7 @@ func_80387EB4: /* 80387EC8 00383B28 7C 78 1B 78 */ mr r24, r3 /* 80387ECC 00383B2C 7C 99 23 78 */ mr r25, r4 /* 80387ED0 00383B30 7C BA 2B 78 */ mr r26, r5 -/* 80387ED4 00383B34 4B FF D0 79 */ bl func_80384F4C +/* 80387ED4 00383B34 4B FF D0 79 */ bl __ct__Q34nw4r3lyt4PaneFPCQ44nw4r3lyt3res4Pane /* 80387ED8 00383B38 3C 60 80 45 */ lis r3, lbl_8044E404@ha /* 80387EDC 00383B3C 3C 80 80 38 */ lis r4, cAIPad___ct@ha /* 80387EE0 00383B40 38 63 E4 04 */ addi r3, r3, lbl_8044E404@l @@ -5968,7 +5787,7 @@ func_8038A32C: /* 8038A334 00385F94 90 01 00 14 */ stw r0, 0x14(r1) /* 8038A338 00385F98 93 E1 00 0C */ stw r31, 0xc(r1) /* 8038A33C 00385F9C 7C 7F 1B 78 */ mr r31, r3 -/* 8038A340 00385FA0 4B FF AC 0D */ bl func_80384F4C +/* 8038A340 00385FA0 4B FF AC 0D */ bl __ct__Q34nw4r3lyt4PaneFPCQ44nw4r3lyt3res4Pane /* 8038A344 00385FA4 3C 80 80 45 */ lis r4, lbl_8044E480@ha /* 8038A348 00385FA8 7F E3 FB 78 */ mr r3, r31 /* 8038A34C 00385FAC 38 84 E4 80 */ addi r4, r4, lbl_8044E480@l @@ -6028,12 +5847,12 @@ func_8038A3D8: /* 8038A408 00386068 EC 20 00 72 */ fmuls f1, f0, f1 /* 8038A40C 0038606C D0 41 00 08 */ stfs f2, 8(r1) /* 8038A410 00386070 D0 41 00 0C */ stfs f2, 0xc(r1) -/* 8038A414 00386074 4B FF A9 35 */ bl func_80384D48 +/* 8038A414 00386074 4B FF A9 35 */ bl CosFIdx__Q24nw4r4mathFf /* 8038A418 00386078 C0 5F 00 08 */ lfs f2, 8(r31) /* 8038A41C 0038607C FF E0 08 90 */ fmr f31, f1 /* 8038A420 00386080 C0 02 A8 A4 */ lfs f0, lbl_80642EA4-_SDA2_BASE_(r2) /* 8038A424 00386084 EC 20 00 B2 */ fmuls f1, f0, f2 -/* 8038A428 00386088 4B FF A8 B5 */ bl func_80384CDC +/* 8038A428 00386088 4B FF A8 B5 */ bl SinFIdx__Q24nw4r4mathFf /* 8038A42C 0038608C C0 7F 00 0C */ lfs f3, 0xc(r31) /* 8038A430 00386090 FC A0 08 50 */ fneg f5, f1 /* 8038A434 00386094 C0 41 00 08 */ lfs f2, 8(r1) @@ -8952,11 +8771,11 @@ lbl_8038CEF0: /* 8038CEF8 00388B58 41 82 00 70 */ beq lbl_8038CF68 /* 8038CEFC 00388B5C C0 18 00 08 */ lfs f0, 8(r24) /* 8038CF00 00388B60 EC 3E 00 32 */ fmuls f1, f30, f0 -/* 8038CF04 00388B64 4B FF 7E 45 */ bl func_80384D48 +/* 8038CF04 00388B64 4B FF 7E 45 */ bl CosFIdx__Q24nw4r4mathFf /* 8038CF08 00388B68 C0 18 00 08 */ lfs f0, 8(r24) /* 8038CF0C 00388B6C FF E0 08 90 */ fmr f31, f1 /* 8038CF10 00388B70 EC 3E 00 32 */ fmuls f1, f30, f0 -/* 8038CF14 00388B74 4B FF 7D C9 */ bl func_80384CDC +/* 8038CF14 00388B74 4B FF 7D C9 */ bl SinFIdx__Q24nw4r4mathFf /* 8038CF18 00388B78 C0 18 00 0C */ lfs f0, 0xc(r24) /* 8038CF1C 00388B7C FC 40 08 50 */ fneg f2, f1 /* 8038CF20 00388B80 38 7C 00 01 */ addi r3, r28, 1 @@ -30244,7 +30063,7 @@ lbl_8039E464: /* 8039E474 0039A0D4 90 61 00 18 */ stw r3, 0x18(r1) /* 8039E478 0039A0D8 FC 20 00 50 */ fneg f1, f0 /* 8039E47C 0039A0DC C0 41 00 18 */ lfs f2, 0x18(r1) -/* 8039E480 0039A0E0 4B FE 69 25 */ bl func_80384DA4 +/* 8039E480 0039A0E0 4B FE 69 25 */ bl Atan2FIdx__Q24nw4r4mathFff /* 8039E484 0039A0E4 EC 1D 00 72 */ fmuls f0, f29, f1 /* 8039E488 0039A0E8 D3 C1 00 3C */ stfs f30, 0x3c(r1) /* 8039E48C 0039A0EC D3 C1 00 40 */ stfs f30, 0x40(r1) diff --git a/obj_files.mk b/obj_files.mk index 1699640..e7d176f 100644 --- a/obj_files.mk +++ b/obj_files.mk @@ -165,6 +165,7 @@ TEXT_O_FILES := \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_WsdFile.o \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_WsdPlayer.o \ $(BUILD_DIR)/asm/nw4r/snd/detail/snd_adpcm.o \ + $(BUILD_DIR)/asm/nw4r/math/math_triangular.o \ $(BUILD_DIR)/asm/text_11.o CTORS_O_FILES := \ |