summaryrefslogtreecommitdiff
path: root/asm/nw4r/math/math_triangular.s
blob: 6da9b626b3962117560e100b4c617386f3c7f701 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
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