summaryrefslogtreecommitdiff
path: root/asm/MSL_C/MSL_Common_Embedded/Math/e_acos.s
blob: a7aa083bf1d3d01a0beb5c2c154856c8a1b755e1 (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
185
186
187
188
189
190
.include "macros.inc"

.section .text, "ax"  # 0x80006980 - 0x803E1E60

.global __ieee754_acos
__ieee754_acos:
/* 801D0BFC 001CC85C  94 21 FF C0 */	stwu r1, -0x40(r1)
/* 801D0C00 001CC860  7C 08 02 A6 */	mflr r0
/* 801D0C04 001CC864  90 01 00 44 */	stw r0, 0x44(r1)
/* 801D0C08 001CC868  DB E1 00 30 */	stfd f31, 0x30(r1)
/* 801D0C0C 001CC86C  F3 E1 00 38 */	psq_st f31, 56(r1), 0, qr0
/* 801D0C10 001CC870  DB C1 00 20 */	stfd f30, 0x20(r1)
/* 801D0C14 001CC874  F3 C1 00 28 */	psq_st f30, 40(r1), 0, qr0
/* 801D0C18 001CC878  D8 21 00 08 */	stfd f1, 8(r1)
/* 801D0C1C 001CC87C  3C 00 3F F0 */	lis r0, 0x3ff0
/* 801D0C20 001CC880  80 81 00 08 */	lwz r4, 8(r1)
/* 801D0C24 001CC884  54 83 00 7E */	clrlwi r3, r4, 1
/* 801D0C28 001CC888  7C 03 00 00 */	cmpw r3, r0
/* 801D0C2C 001CC88C  41 80 00 38 */	blt lbl_801D0C64
/* 801D0C30 001CC890  80 01 00 0C */	lwz r0, 0xc(r1)
/* 801D0C34 001CC894  3C 63 C0 10 */	addis r3, r3, 0xc010
/* 801D0C38 001CC898  7C 60 03 79 */	or. r0, r3, r0
/* 801D0C3C 001CC89C  40 82 00 1C */	bne lbl_801D0C58
/* 801D0C40 001CC8A0  2C 04 00 00 */	cmpwi r4, 0
/* 801D0C44 001CC8A4  40 81 00 0C */	ble lbl_801D0C50
/* 801D0C48 001CC8A8  C8 22 91 90 */	lfd f1, lbl_80641790-_SDA2_BASE_(r2)
/* 801D0C4C 001CC8AC  48 00 02 54 */	b lbl_801D0EA0
lbl_801D0C50:
/* 801D0C50 001CC8B0  C8 22 91 98 */	lfd f1, lbl_80641798-_SDA2_BASE_(r2)
/* 801D0C54 001CC8B4  48 00 02 4C */	b lbl_801D0EA0
lbl_801D0C58:
/* 801D0C58 001CC8B8  3C 60 80 64 */	lis r3, lbl_8063D6B8@ha
/* 801D0C5C 001CC8BC  C0 23 D6 B8 */	lfs f1, lbl_8063D6B8@l(r3)
/* 801D0C60 001CC8C0  48 00 02 40 */	b lbl_801D0EA0
lbl_801D0C64:
/* 801D0C64 001CC8C4  3C 00 3F E0 */	lis r0, 0x3fe0
/* 801D0C68 001CC8C8  7C 03 00 00 */	cmpw r3, r0
/* 801D0C6C 001CC8CC  40 80 00 B4 */	bge lbl_801D0D20
/* 801D0C70 001CC8D0  3C 00 3C 60 */	lis r0, 0x3c60
/* 801D0C74 001CC8D4  7C 03 00 00 */	cmpw r3, r0
/* 801D0C78 001CC8D8  41 81 00 0C */	bgt lbl_801D0C84
/* 801D0C7C 001CC8DC  C8 22 91 A0 */	lfd f1, lbl_806417A0-_SDA2_BASE_(r2)
/* 801D0C80 001CC8E0  48 00 02 20 */	b lbl_801D0EA0
lbl_801D0C84:
/* 801D0C84 001CC8E4  FD 81 00 72 */	fmul f12, f1, f1
/* 801D0C88 001CC8E8  C8 02 91 D0 */	lfd f0, lbl_806417D0-_SDA2_BASE_(r2)
/* 801D0C8C 001CC8EC  C8 42 91 F8 */	lfd f2, lbl_806417F8-_SDA2_BASE_(r2)
/* 801D0C90 001CC8F0  C8 62 91 C8 */	lfd f3, lbl_806417C8-_SDA2_BASE_(r2)
/* 801D0C94 001CC8F4  C9 42 91 C0 */	lfd f10, lbl_806417C0-_SDA2_BASE_(r2)
/* 801D0C98 001CC8F8  FC 80 03 32 */	fmul f4, f0, f12
/* 801D0C9C 001CC8FC  C8 02 91 F0 */	lfd f0, lbl_806417F0-_SDA2_BASE_(r2)
/* 801D0CA0 001CC900  FC 42 03 32 */	fmul f2, f2, f12
/* 801D0CA4 001CC904  C8 A2 91 E8 */	lfd f5, lbl_806417E8-_SDA2_BASE_(r2)
/* 801D0CA8 001CC908  C9 22 91 B8 */	lfd f9, lbl_806417B8-_SDA2_BASE_(r2)
/* 801D0CAC 001CC90C  FC 63 20 2A */	fadd f3, f3, f4
/* 801D0CB0 001CC910  C8 82 91 E0 */	lfd f4, lbl_806417E0-_SDA2_BASE_(r2)
/* 801D0CB4 001CC914  FC 00 10 2A */	fadd f0, f0, f2
/* 801D0CB8 001CC918  FD 6C 00 F2 */	fmul f11, f12, f3
/* 801D0CBC 001CC91C  C9 02 91 B0 */	lfd f8, lbl_806417B0-_SDA2_BASE_(r2)
/* 801D0CC0 001CC920  C8 62 91 D8 */	lfd f3, lbl_806417D8-_SDA2_BASE_(r2)
/* 801D0CC4 001CC924  FC CC 00 32 */	fmul f6, f12, f0
/* 801D0CC8 001CC928  C8 E2 91 A8 */	lfd f7, lbl_806417A8-_SDA2_BASE_(r2)
/* 801D0CCC 001CC92C  C8 42 92 00 */	lfd f2, lbl_80641800-_SDA2_BASE_(r2)
/* 801D0CD0 001CC930  FD 4A 58 2A */	fadd f10, f10, f11
/* 801D0CD4 001CC934  C8 02 91 A0 */	lfd f0, lbl_806417A0-_SDA2_BASE_(r2)
/* 801D0CD8 001CC938  FC A5 30 2A */	fadd f5, f5, f6
/* 801D0CDC 001CC93C  FC CC 02 B2 */	fmul f6, f12, f10
/* 801D0CE0 001CC940  FC AC 01 72 */	fmul f5, f12, f5
/* 801D0CE4 001CC944  FC C9 30 2A */	fadd f6, f9, f6
/* 801D0CE8 001CC948  FC 84 28 2A */	fadd f4, f4, f5
/* 801D0CEC 001CC94C  FC AC 01 B2 */	fmul f5, f12, f6
/* 801D0CF0 001CC950  FC 8C 01 32 */	fmul f4, f12, f4
/* 801D0CF4 001CC954  FC A8 28 2A */	fadd f5, f8, f5
/* 801D0CF8 001CC958  FC 83 20 2A */	fadd f4, f3, f4
/* 801D0CFC 001CC95C  FC 6C 01 72 */	fmul f3, f12, f5
/* 801D0D00 001CC960  FC 67 18 2A */	fadd f3, f7, f3
/* 801D0D04 001CC964  FC 6C 00 F2 */	fmul f3, f12, f3
/* 801D0D08 001CC968  FC 63 20 24 */	fdiv f3, f3, f4
/* 801D0D0C 001CC96C  FC 61 00 F2 */	fmul f3, f1, f3
/* 801D0D10 001CC970  FC 42 18 28 */	fsub f2, f2, f3
/* 801D0D14 001CC974  FC 21 10 28 */	fsub f1, f1, f2
/* 801D0D18 001CC978  FC 20 08 28 */	fsub f1, f0, f1
/* 801D0D1C 001CC97C  48 00 01 84 */	b lbl_801D0EA0
lbl_801D0D20:
/* 801D0D20 001CC980  2C 04 00 00 */	cmpwi r4, 0
/* 801D0D24 001CC984  40 80 00 B4 */	bge lbl_801D0DD8
/* 801D0D28 001CC988  C9 62 91 D8 */	lfd f11, lbl_806417D8-_SDA2_BASE_(r2)
/* 801D0D2C 001CC98C  C8 02 92 08 */	lfd f0, lbl_80641808-_SDA2_BASE_(r2)
/* 801D0D30 001CC990  FC 2B 08 2A */	fadd f1, f11, f1
/* 801D0D34 001CC994  C8 82 91 D0 */	lfd f4, lbl_806417D0-_SDA2_BASE_(r2)
/* 801D0D38 001CC998  C9 22 91 C8 */	lfd f9, lbl_806417C8-_SDA2_BASE_(r2)
/* 801D0D3C 001CC99C  C8 62 91 F0 */	lfd f3, lbl_806417F0-_SDA2_BASE_(r2)
/* 801D0D40 001CC9A0  FC 20 00 72 */	fmul f1, f0, f1
/* 801D0D44 001CC9A4  C8 02 91 F8 */	lfd f0, lbl_806417F8-_SDA2_BASE_(r2)
/* 801D0D48 001CC9A8  C9 02 91 C0 */	lfd f8, lbl_806417C0-_SDA2_BASE_(r2)
/* 801D0D4C 001CC9AC  C8 42 91 E8 */	lfd f2, lbl_806417E8-_SDA2_BASE_(r2)
/* 801D0D50 001CC9B0  C8 E2 91 B8 */	lfd f7, lbl_806417B8-_SDA2_BASE_(r2)
/* 801D0D54 001CC9B4  FD 44 00 72 */	fmul f10, f4, f1
/* 801D0D58 001CC9B8  C8 C2 91 B0 */	lfd f6, lbl_806417B0-_SDA2_BASE_(r2)
/* 801D0D5C 001CC9BC  FC 80 00 72 */	fmul f4, f0, f1
/* 801D0D60 001CC9C0  C8 02 91 E0 */	lfd f0, lbl_806417E0-_SDA2_BASE_(r2)
/* 801D0D64 001CC9C4  C8 A2 91 A8 */	lfd f5, lbl_806417A8-_SDA2_BASE_(r2)
/* 801D0D68 001CC9C8  FD 29 50 2A */	fadd f9, f9, f10
/* 801D0D6C 001CC9CC  FC 63 20 2A */	fadd f3, f3, f4
/* 801D0D70 001CC9D0  FC 81 02 72 */	fmul f4, f1, f9
/* 801D0D74 001CC9D4  FC 61 00 F2 */	fmul f3, f1, f3
/* 801D0D78 001CC9D8  FC 88 20 2A */	fadd f4, f8, f4
/* 801D0D7C 001CC9DC  FC 42 18 2A */	fadd f2, f2, f3
/* 801D0D80 001CC9E0  FC 61 01 32 */	fmul f3, f1, f4
/* 801D0D84 001CC9E4  FC 41 00 B2 */	fmul f2, f1, f2
/* 801D0D88 001CC9E8  FC 67 18 2A */	fadd f3, f7, f3
/* 801D0D8C 001CC9EC  FC 00 10 2A */	fadd f0, f0, f2
/* 801D0D90 001CC9F0  FC 41 00 F2 */	fmul f2, f1, f3
/* 801D0D94 001CC9F4  FC 01 00 32 */	fmul f0, f1, f0
/* 801D0D98 001CC9F8  FC 46 10 2A */	fadd f2, f6, f2
/* 801D0D9C 001CC9FC  FF CB 00 2A */	fadd f30, f11, f0
/* 801D0DA0 001CCA00  FC 01 00 B2 */	fmul f0, f1, f2
/* 801D0DA4 001CCA04  FC 05 00 2A */	fadd f0, f5, f0
/* 801D0DA8 001CCA08  FF E1 00 32 */	fmul f31, f1, f0
/* 801D0DAC 001CCA0C  48 00 3A 89 */	bl sqrt
/* 801D0DB0 001CCA10  FC 9F F0 24 */	fdiv f4, f31, f30
/* 801D0DB4 001CCA14  C8 62 92 00 */	lfd f3, lbl_80641800-_SDA2_BASE_(r2)
/* 801D0DB8 001CCA18  C8 42 92 10 */	lfd f2, lbl_80641810-_SDA2_BASE_(r2)
/* 801D0DBC 001CCA1C  C8 02 91 98 */	lfd f0, lbl_80641798-_SDA2_BASE_(r2)
/* 801D0DC0 001CCA20  FC 84 00 72 */	fmul f4, f4, f1
/* 801D0DC4 001CCA24  FC 64 18 28 */	fsub f3, f4, f3
/* 801D0DC8 001CCA28  FC 21 18 2A */	fadd f1, f1, f3
/* 801D0DCC 001CCA2C  FC 22 00 72 */	fmul f1, f2, f1
/* 801D0DD0 001CCA30  FC 20 08 28 */	fsub f1, f0, f1
/* 801D0DD4 001CCA34  48 00 00 CC */	b lbl_801D0EA0
lbl_801D0DD8:
/* 801D0DD8 001CCA38  C8 42 91 D8 */	lfd f2, lbl_806417D8-_SDA2_BASE_(r2)
/* 801D0DDC 001CCA3C  C8 02 92 08 */	lfd f0, lbl_80641808-_SDA2_BASE_(r2)
/* 801D0DE0 001CCA40  FC 22 08 28 */	fsub f1, f2, f1
/* 801D0DE4 001CCA44  FF E0 00 72 */	fmul f31, f0, f1
/* 801D0DE8 001CCA48  FC 20 F8 90 */	fmr f1, f31
/* 801D0DEC 001CCA4C  48 00 3A 49 */	bl sqrt
/* 801D0DF0 001CCA50  C8 42 91 D0 */	lfd f2, lbl_806417D0-_SDA2_BASE_(r2)
/* 801D0DF4 001CCA54  38 00 00 00 */	li r0, 0
/* 801D0DF8 001CCA58  D8 21 00 10 */	stfd f1, 0x10(r1)
/* 801D0DFC 001CCA5C  FC 82 07 F2 */	fmul f4, f2, f31
/* 801D0E00 001CCA60  C8 02 91 F8 */	lfd f0, lbl_806417F8-_SDA2_BASE_(r2)
/* 801D0E04 001CCA64  C8 62 91 C8 */	lfd f3, lbl_806417C8-_SDA2_BASE_(r2)
/* 801D0E08 001CCA68  FC 40 07 F2 */	fmul f2, f0, f31
/* 801D0E0C 001CCA6C  C8 02 91 F0 */	lfd f0, lbl_806417F0-_SDA2_BASE_(r2)
/* 801D0E10 001CCA70  90 01 00 14 */	stw r0, 0x14(r1)
/* 801D0E14 001CCA74  FC 63 20 2A */	fadd f3, f3, f4
/* 801D0E18 001CCA78  C9 61 00 10 */	lfd f11, 0x10(r1)
/* 801D0E1C 001CCA7C  FC 00 10 2A */	fadd f0, f0, f2
/* 801D0E20 001CCA80  FD 4B 02 F2 */	fmul f10, f11, f11
/* 801D0E24 001CCA84  C8 C2 91 C0 */	lfd f6, lbl_806417C0-_SDA2_BASE_(r2)
/* 801D0E28 001CCA88  C9 02 91 B8 */	lfd f8, lbl_806417B8-_SDA2_BASE_(r2)
/* 801D0E2C 001CCA8C  FC 5F 00 F2 */	fmul f2, f31, f3
/* 801D0E30 001CCA90  C8 82 91 E8 */	lfd f4, lbl_806417E8-_SDA2_BASE_(r2)
/* 801D0E34 001CCA94  C8 E2 91 B0 */	lfd f7, lbl_806417B0-_SDA2_BASE_(r2)
/* 801D0E38 001CCA98  FC BF 00 32 */	fmul f5, f31, f0
/* 801D0E3C 001CCA9C  C8 62 91 E0 */	lfd f3, lbl_806417E0-_SDA2_BASE_(r2)
/* 801D0E40 001CCAA0  FC 06 10 2A */	fadd f0, f6, f2
/* 801D0E44 001CCAA4  C8 C2 91 A8 */	lfd f6, lbl_806417A8-_SDA2_BASE_(r2)
/* 801D0E48 001CCAA8  C8 42 91 D8 */	lfd f2, lbl_806417D8-_SDA2_BASE_(r2)
/* 801D0E4C 001CCAAC  FD 5F 50 28 */	fsub f10, f31, f10
/* 801D0E50 001CCAB0  FD 3F 00 32 */	fmul f9, f31, f0
/* 801D0E54 001CCAB4  C8 02 92 10 */	lfd f0, lbl_80641810-_SDA2_BASE_(r2)
/* 801D0E58 001CCAB8  FC 84 28 2A */	fadd f4, f4, f5
/* 801D0E5C 001CCABC  FC A8 48 2A */	fadd f5, f8, f9
/* 801D0E60 001CCAC0  FC 9F 01 32 */	fmul f4, f31, f4
/* 801D0E64 001CCAC4  FC BF 01 72 */	fmul f5, f31, f5
/* 801D0E68 001CCAC8  FC 63 20 2A */	fadd f3, f3, f4
/* 801D0E6C 001CCACC  FD 01 58 2A */	fadd f8, f1, f11
/* 801D0E70 001CCAD0  FC 87 28 2A */	fadd f4, f7, f5
/* 801D0E74 001CCAD4  FC 7F 00 F2 */	fmul f3, f31, f3
/* 801D0E78 001CCAD8  FC 9F 01 32 */	fmul f4, f31, f4
/* 801D0E7C 001CCADC  FC 62 18 2A */	fadd f3, f2, f3
/* 801D0E80 001CCAE0  FC AA 40 24 */	fdiv f5, f10, f8
/* 801D0E84 001CCAE4  FC 46 20 2A */	fadd f2, f6, f4
/* 801D0E88 001CCAE8  FC 5F 00 B2 */	fmul f2, f31, f2
/* 801D0E8C 001CCAEC  FC 42 18 24 */	fdiv f2, f2, f3
/* 801D0E90 001CCAF0  FC 22 00 72 */	fmul f1, f2, f1
/* 801D0E94 001CCAF4  FC 25 08 2A */	fadd f1, f5, f1
/* 801D0E98 001CCAF8  FC 2B 08 2A */	fadd f1, f11, f1
/* 801D0E9C 001CCAFC  FC 20 00 72 */	fmul f1, f0, f1
lbl_801D0EA0:
/* 801D0EA0 001CCB00  E3 E1 00 38 */	psq_l f31, 56(r1), 0, qr0
/* 801D0EA4 001CCB04  CB E1 00 30 */	lfd f31, 0x30(r1)
/* 801D0EA8 001CCB08  E3 C1 00 28 */	psq_l f30, 40(r1), 0, qr0
/* 801D0EAC 001CCB0C  80 01 00 44 */	lwz r0, 0x44(r1)
/* 801D0EB0 001CCB10  CB C1 00 20 */	lfd f30, 0x20(r1)
/* 801D0EB4 001CCB14  7C 08 03 A6 */	mtlr r0
/* 801D0EB8 001CCB18  38 21 00 40 */	addi r1, r1, 0x40
/* 801D0EBC 001CCB1C  4E 80 00 20 */	blr