1/*
2Copyright (c) 1990 The Regents of the University of California.
3All rights reserved.
4
5Redistribution and use in source and binary forms are permitted
6provided that the above copyright notice and this paragraph are
7duplicated in all such forms and that any documentation,
8and/or other materials related to such
9distribution and use acknowledge that the software was developed
10by the University of California, Berkeley.  The name of the
11University may not be used to endorse or promote products derived
12from this software without specific prior written permission.
13THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
14IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
15WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
16 */
17#include <picolibc.h>
18
19	.globl	_fast_sin
20_fast_sin:
21	fsin.l	[ap],[ap]
22	mov.d	[ap],r0
23	ret	#0
24
25
26	.globl	_fast_sinf
27_fast_sinf:
28	fsin.s	[ap],[ap]
29	mov.w	[ap],r0
30	ret	#0
31
32
33	.globl	_fast_cos
34_fast_cos:
35	fcos.l	[ap],[ap]
36	mov.d	[ap],r0
37	ret	#0
38
39
40	.globl	_fast_cosf
41_fast_cosf:
42	fcos.s	[ap],[ap]
43	mov.w	[ap],r0
44	ret	#0
45
46
47	.globl	_fast_tan
48_fast_tan:
49	ftan.l	[ap],[ap]
50	mov.d	[ap],r0
51	ret	#0
52
53
54	.globl	_fast_tanf
55_fast_tanf:
56	ftan.s	[ap],[ap]
57	mov.w	[ap],r0
58	ret	#0
59
60
61
62	.globl	_fast_fabs
63_fast_fabs:
64	fabs.l	[ap],[ap]
65	mov.d	[ap],r0
66	ret	#0
67
68
69	.globl	_fast_fabsf
70_fast_fabsf:
71	fabs.s	[ap],[ap]
72	mov.w	[ap],r0
73	ret	#0
74
75
76	.globl	_fast_sqrt
77_fast_sqrt:
78	fsqrt.l	[ap],[ap]
79	mov.d	[ap],r0
80	ret	#0
81
82
83	.globl	_fast_sqrtf
84_fast_sqrtf:
85	fsqrt.s	[ap],[ap]
86	mov.w	[ap],r0
87	ret	#0
88
89
90	.globl	_fast_acos
91_fast_acos:
92	facos.l	[ap],[ap]
93	mov.d	[ap],r0
94	ret	#0
95
96
97	.globl	_fast_acosf
98_fast_acosf:
99	facos.s	[ap],[ap]
100	mov.w	[ap],r0
101	ret	#0
102
103
104	.globl	_fast_asin
105_fast_asin:
106	fasin.l	[ap],[ap]
107	mov.d	[ap],r0
108	ret	#0
109
110
111	.globl	_fast_asinf
112_fast_asinf:
113	fasin.s	[ap],[ap]
114	mov.w	[ap],r0
115	ret	#0
116
117
118	.globl	_fast_atan
119_fast_atan:
120	fatan.l	[ap],[ap]
121	mov.d	[ap],r0
122	ret	#0
123
124
125	.globl	_fast_atanf
126_fast_atanf:
127	fatan.s	[ap],[ap]
128	mov.w	[ap],r0
129	ret	#0
130
131
132	.globl	_fast_cosh
133_fast_cosh:
134	fcosh.l	[ap],[ap]
135	mov.d	[ap],r0
136	ret	#0
137
138
139	.globl	_fast_coshf
140_fast_coshf:
141	fcosh.s	[ap],[ap]
142	mov.w	[ap],r0
143	ret	#0
144
145
146	.globl	_fast_sinh
147_fast_sinh:
148	fsin.l	[ap],[ap]
149	mov.d	[ap],r0
150	ret	#0
151
152
153	.globl	_fast_sinhf
154_fast_sinhf:
155	fsin.s	[ap],[ap]
156	mov.w	[ap],r0
157	ret	#0
158
159
160	.globl	_fast_tanh
161_fast_tanh:
162	ftanh.l	[ap],[ap]
163	mov.d	[ap],r0
164	ret	#0
165
166
167	.globl	_fast_tanhf
168_fast_tanhf:
169	ftanh.s	[ap],[ap]
170	mov.w	[ap],r0
171	ret	#0
172
173
174	.globl	_fast_atanh
175_fast_atanh:
176	fatanh.l	[ap],[ap]
177	mov.d	[ap],r0
178	ret	#0
179
180
181	.globl	_fast_atanhf
182_fast_atanhf:
183	fatanh.s	[ap],[ap]
184	mov.w	[ap],r0
185	ret	#0
186
187	.globl	_fast_exp2
188_fast_exp2:
189	fexp2.l	[ap],[ap]
190	mov.d	[ap],r0
191	ret	#0
192
193
194	.globl	_fast_exp2f
195_fast_exp2f:
196	fexp2.s	[ap],[ap]
197	mov.w	[ap],r0
198	ret	#0
199
200
201	.globl	_fast_exp10
202_fast_exp10:
203	fexp10.l	[ap],[ap]
204	mov.d	[ap],r0
205	ret	#0
206
207
208	.globl	_fast_exp10f
209_fast_exp10f:
210	fexp10.s	[ap],[ap]
211	mov.w	[ap],r0
212	ret	#0
213
214
215	.globl	_fast_expe
216_fast_expe:
217	fexpe.l	[ap],[ap]
218	mov.d	[ap],r0
219	ret	#0
220
221
222	.globl	_fast_expef
223_fast_expef:
224	fexpe.s	[ap],[ap]
225	mov.w	[ap],r0
226	ret	#0
227
228
229	.globl	_fast_log2
230_fast_log2:
231	flog2.l	[ap],[ap]
232	mov.d	[ap],r0
233	ret	#0
234
235
236	.globl	_fast_log2f
237_fast_log2f:
238	flog2.s	[ap],[ap]
239	mov.w	[ap],r0
240	ret	#0
241
242	.globl	_fast_log10
243_fast_log10:
244	flog10.l	[ap],[ap]
245	mov.d	[ap],r0
246	ret	#0
247
248
249	.globl	_fast_log10f
250_fast_log10f:
251	flog10.s	[ap],[ap]
252	mov.w	[ap],r0
253	ret	#0
254
255
256	.globl	_fast_loge
257_fast_loge:
258	floge.l	[ap],[ap]
259	mov.d	[ap],r0
260	ret	#0
261
262
263	.globl	_fast_logef
264_fast_logef:
265	floge.s	[ap],[ap]
266	mov.w	[ap],r0
267	ret	#0
268
269
270