1 ;; Copyright (C) 2019-2021 Free Software Foundation, Inc.
2 ;;
3 ;; This file is part of LIBF7, which is part of GCC.
4 ;;
5 ;; GCC is free software; you can redistribute it and/or modify it under
6 ;; the terms of the GNU General Public License as published by the Free
7 ;; Software Foundation; either version 3, or (at your option) any later
8 ;; version.
9 ;;
10 ;; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
11 ;; WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 ;; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
13 ;; for more details.
14 ;;
15 ;; Under Section 7 of GPL version 3, you are granted additional
16 ;; permissions described in the GCC Runtime Library Exception, version
17 ;; 3.1, as published by the Free Software Foundation.
18 ;;
19 ;; You should have received a copy of the GNU General Public License and
20 ;; a copy of the GCC Runtime Library Exception along with this program;
21 ;; see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
22 ;; <http://www.gnu.org/licenses/>.  */
23 
24 ;; Auto-generated file, do not change by hand.
25 ;;
26 ;; Wrappers for double and long double functions to use functions that
27 ;; operate on f7_t, and get f7_t* and const f7_t*.
28 ;;
29 ;; Generated by: f7wraps.sh
30 ;; Included by : libf7-asm.sx
31 ;; WITH_LIBF7_MATH_FUNCTIONS=1
32 ;; WITH_LIBF7_MATH_SYMBOLS=1
33 
34 ;; Functions that usually live in libgcc: __<name>df3 for <name> in:
35 ;; add sub mul div
36 
37 ;; double __adddf3 (double, double)  ; add
38 #ifdef F7MOD_D_add_
39 _DEFUN __adddf3
40     ALIAS __add
41     .global F7_NAME(add)
42     ldi     ZH,     hi8(gs(F7_NAME(add)))
43     ldi     ZL,     lo8(gs(F7_NAME(add)))
44     F7jmp   call_ddd
45 _ENDF __adddf3
46 #endif /* F7MOD_D_add_ */
47 
48 ;; double __subdf3 (double, double)  ; sub
49 #ifdef F7MOD_D_sub_
50 _DEFUN __subdf3
51     ALIAS __sub
52     .global F7_NAME(sub)
53     ldi     ZH,     hi8(gs(F7_NAME(sub)))
54     ldi     ZL,     lo8(gs(F7_NAME(sub)))
55     F7jmp   call_ddd
56 _ENDF __subdf3
57 #endif /* F7MOD_D_sub_ */
58 
59 ;; double __muldf3 (double, double)  ; mul
60 #ifdef F7MOD_D_mul_
61 _DEFUN __muldf3
62     ALIAS __mul
63     .global F7_NAME(mul)
64     ldi     ZH,     hi8(gs(F7_NAME(mul)))
65     ldi     ZL,     lo8(gs(F7_NAME(mul)))
66     F7jmp   call_ddd
67 _ENDF __muldf3
68 #endif /* F7MOD_D_mul_ */
69 
70 ;; double __divdf3 (double, double)  ; div
71 #ifdef F7MOD_D_div_
72 _DEFUN __divdf3
73     ALIAS __div
74     .global F7_NAME(div)
75     ldi     ZH,     hi8(gs(F7_NAME(div)))
76     ldi     ZL,     lo8(gs(F7_NAME(div)))
77     F7jmp   call_ddd
78 _ENDF __divdf3
79 #endif /* F7MOD_D_div_ */
80 
81 ;; Functions that usually live in libgcc: __<name>df2 for <name> in:
82 ;; le lt ge gt ne eq unord
83 
84 ;; bool __ledf2 (double, double)  ; le
85 #ifdef F7MOD_D_le_
86 _DEFUN __ledf2
87     .global F7_NAME(le_impl)
88     ldi     ZH,     hi8(gs(F7_NAME(le_impl)))
89     ldi     ZL,     lo8(gs(F7_NAME(le_impl)))
90     F7jmp   call_xdd
91 _ENDF __ledf2
92 #endif /* F7MOD_D_le_ */
93 
94 ;; bool __ltdf2 (double, double)  ; lt
95 #ifdef F7MOD_D_lt_
96 _DEFUN __ltdf2
97     .global F7_NAME(lt_impl)
98     ldi     ZH,     hi8(gs(F7_NAME(lt_impl)))
99     ldi     ZL,     lo8(gs(F7_NAME(lt_impl)))
100     F7jmp   call_xdd
101 _ENDF __ltdf2
102 #endif /* F7MOD_D_lt_ */
103 
104 ;; bool __gedf2 (double, double)  ; ge
105 #ifdef F7MOD_D_ge_
106 _DEFUN __gedf2
107     .global F7_NAME(ge_impl)
108     ldi     ZH,     hi8(gs(F7_NAME(ge_impl)))
109     ldi     ZL,     lo8(gs(F7_NAME(ge_impl)))
110     F7jmp   call_xdd
111 _ENDF __gedf2
112 #endif /* F7MOD_D_ge_ */
113 
114 ;; bool __gtdf2 (double, double)  ; gt
115 #ifdef F7MOD_D_gt_
116 _DEFUN __gtdf2
117     .global F7_NAME(gt_impl)
118     ldi     ZH,     hi8(gs(F7_NAME(gt_impl)))
119     ldi     ZL,     lo8(gs(F7_NAME(gt_impl)))
120     F7jmp   call_xdd
121 _ENDF __gtdf2
122 #endif /* F7MOD_D_gt_ */
123 
124 ;; bool __nedf2 (double, double)  ; ne
125 #ifdef F7MOD_D_ne_
126 _DEFUN __nedf2
127     .global F7_NAME(ne_impl)
128     ldi     ZH,     hi8(gs(F7_NAME(ne_impl)))
129     ldi     ZL,     lo8(gs(F7_NAME(ne_impl)))
130     F7jmp   call_xdd
131 _ENDF __nedf2
132 #endif /* F7MOD_D_ne_ */
133 
134 ;; bool __eqdf2 (double, double)  ; eq
135 #ifdef F7MOD_D_eq_
136 _DEFUN __eqdf2
137     .global F7_NAME(eq_impl)
138     ldi     ZH,     hi8(gs(F7_NAME(eq_impl)))
139     ldi     ZL,     lo8(gs(F7_NAME(eq_impl)))
140     F7jmp   call_xdd
141 _ENDF __eqdf2
142 #endif /* F7MOD_D_eq_ */
143 
144 ;; bool __unorddf2 (double, double)  ; unord
145 #ifdef F7MOD_D_unord_
146 _DEFUN __unorddf2
147     .global F7_NAME(unord_impl)
148     ldi     ZH,     hi8(gs(F7_NAME(unord_impl)))
149     ldi     ZL,     lo8(gs(F7_NAME(unord_impl)))
150     F7jmp   call_xdd
151 _ENDF __unorddf2
152 #endif /* F7MOD_D_unord_ */
153 
154 ;; Functions that usually live in libgcc: __<name> for <name> in:
155 ;; fixdfsi fixdfdi fixunsdfdi fixunsdfsi truncdfsf2
156 
157 ;; type_t __fixdfsi (double)  ; fixdfsi
158 #ifdef F7MOD_D_fixdfsi_
159 _DEFUN __fixdfsi
160     .global F7_NAME(fixdfsi)
161     ldi     ZH,     hi8(gs(F7_NAME(fixdfsi)))
162     ldi     ZL,     lo8(gs(F7_NAME(fixdfsi)))
163     F7jmp   call_xd
164 _ENDF __fixdfsi
165 #endif /* F7MOD_D_fixdfsi_ */
166 
167 ;; type_t __fixdfdi (double)  ; fixdfdi
168 #ifdef F7MOD_D_fixdfdi_
169 _DEFUN __fixdfdi
170     .global F7_NAME(fixdfdi)
171     ldi     ZH,     hi8(gs(F7_NAME(fixdfdi)))
172     ldi     ZL,     lo8(gs(F7_NAME(fixdfdi)))
173     F7jmp   call_xd
174 _ENDF __fixdfdi
175 #endif /* F7MOD_D_fixdfdi_ */
176 
177 ;; type_t __fixunsdfdi (double)  ; fixunsdfdi
178 #ifdef F7MOD_D_fixunsdfdi_
179 _DEFUN __fixunsdfdi
180     .global F7_NAME(fixunsdfdi)
181     ldi     ZH,     hi8(gs(F7_NAME(fixunsdfdi)))
182     ldi     ZL,     lo8(gs(F7_NAME(fixunsdfdi)))
183     F7jmp   call_xd
184 _ENDF __fixunsdfdi
185 #endif /* F7MOD_D_fixunsdfdi_ */
186 
187 ;; type_t __fixunsdfsi (double)  ; fixunsdfsi
188 #ifdef F7MOD_D_fixunsdfsi_
189 _DEFUN __fixunsdfsi
190     .global F7_NAME(fixunsdfsi)
191     ldi     ZH,     hi8(gs(F7_NAME(fixunsdfsi)))
192     ldi     ZL,     lo8(gs(F7_NAME(fixunsdfsi)))
193     F7jmp   call_xd
194 _ENDF __fixunsdfsi
195 #endif /* F7MOD_D_fixunsdfsi_ */
196 
197 ;; type_t __truncdfsf2 (double)  ; truncdfsf2
198 #ifdef F7MOD_D_truncdfsf2_
199 _DEFUN __truncdfsf2
200     .global F7_NAME(truncdfsf2)
201     ldi     ZH,     hi8(gs(F7_NAME(truncdfsf2)))
202     ldi     ZL,     lo8(gs(F7_NAME(truncdfsf2)))
203     F7jmp   call_xd
204 _ENDF __truncdfsf2
205 #endif /* F7MOD_D_truncdfsf2_ */
206 
207 ;; Functions that usually live in libgcc: __<name> for <name> in:
208 ;; floatunsidf floatsidf extendsfdf2
209 
210 ;; double __floatunsidf (type_t)  ; floatunsidf
211 #ifdef F7MOD_D_floatunsidf_
212 _DEFUN __floatunsidf
213     .global F7_NAME(floatunsidf)
214     ldi     ZH,     hi8(gs(F7_NAME(floatunsidf)))
215     ldi     ZL,     lo8(gs(F7_NAME(floatunsidf)))
216     F7jmp   call_dx
217 _ENDF __floatunsidf
218 #endif /* F7MOD_D_floatunsidf_ */
219 
220 ;; double __floatsidf (type_t)  ; floatsidf
221 #ifdef F7MOD_D_floatsidf_
222 _DEFUN __floatsidf
223     .global F7_NAME(floatsidf)
224     ldi     ZH,     hi8(gs(F7_NAME(floatsidf)))
225     ldi     ZL,     lo8(gs(F7_NAME(floatsidf)))
226     F7jmp   call_dx
227 _ENDF __floatsidf
228 #endif /* F7MOD_D_floatsidf_ */
229 
230 ;; double __extendsfdf2 (type_t)  ; extendsfdf2
231 #ifdef F7MOD_D_extendsfdf2_
232 _DEFUN __extendsfdf2
233     .global F7_NAME(extendsfdf2)
234     ldi     ZH,     hi8(gs(F7_NAME(extendsfdf2)))
235     ldi     ZL,     lo8(gs(F7_NAME(extendsfdf2)))
236     F7jmp   call_dx
237 _ENDF __extendsfdf2
238 #endif /* F7MOD_D_extendsfdf2_ */
239 
240 ;; Functions that usually live in libm:  Depending on [long] double layout,
241 ;; define <name> and <name>l as weak alias(es) of __<name> for <name> in:
242 ;; pow fmin fmax fmod hypot atan2
243 
244 ;; double __pow (double, double)
245 #ifdef F7MOD_D_pow_
246 _DEFUN __pow
247     DALIAS pow
248     LALIAS powl
249     .global F7_NAME(pow)
250     ldi     ZH,     hi8(gs(F7_NAME(pow)))
251     ldi     ZL,     lo8(gs(F7_NAME(pow)))
252     F7jmp   call_ddd
253 _ENDF __pow
254 #endif /* F7MOD_D_pow_ */
255 
256 ;; double __fmin (double, double)
257 #ifdef F7MOD_D_fmin_
258 _DEFUN __fmin
259     DALIAS fmin
260     LALIAS fminl
261     .global F7_NAME(fmin)
262     ldi     ZH,     hi8(gs(F7_NAME(fmin)))
263     ldi     ZL,     lo8(gs(F7_NAME(fmin)))
264     F7jmp   call_ddd
265 _ENDF __fmin
266 #endif /* F7MOD_D_fmin_ */
267 
268 ;; double __fmax (double, double)
269 #ifdef F7MOD_D_fmax_
270 _DEFUN __fmax
271     DALIAS fmax
272     LALIAS fmaxl
273     .global F7_NAME(fmax)
274     ldi     ZH,     hi8(gs(F7_NAME(fmax)))
275     ldi     ZL,     lo8(gs(F7_NAME(fmax)))
276     F7jmp   call_ddd
277 _ENDF __fmax
278 #endif /* F7MOD_D_fmax_ */
279 
280 ;; double __fmod (double, double)
281 #ifdef F7MOD_D_fmod_
282 _DEFUN __fmod
283     DALIAS fmod
284     LALIAS fmodl
285     .global F7_NAME(fmod)
286     ldi     ZH,     hi8(gs(F7_NAME(fmod)))
287     ldi     ZL,     lo8(gs(F7_NAME(fmod)))
288     F7jmp   call_ddd
289 _ENDF __fmod
290 #endif /* F7MOD_D_fmod_ */
291 
292 ;; double __hypot (double, double)
293 #ifdef F7MOD_D_hypot_
294 _DEFUN __hypot
295     DALIAS hypot
296     LALIAS hypotl
297     .global F7_NAME(hypot)
298     ldi     ZH,     hi8(gs(F7_NAME(hypot)))
299     ldi     ZL,     lo8(gs(F7_NAME(hypot)))
300     F7jmp   call_ddd
301 _ENDF __hypot
302 #endif /* F7MOD_D_hypot_ */
303 
304 ;; double __atan2 (double, double)
305 #ifdef F7MOD_D_atan2_
306 _DEFUN __atan2
307     DALIAS atan2
308     LALIAS atan2l
309     .global F7_NAME(atan2)
310     ldi     ZH,     hi8(gs(F7_NAME(atan2)))
311     ldi     ZL,     lo8(gs(F7_NAME(atan2)))
312     F7jmp   call_ddd
313 _ENDF __atan2
314 #endif /* F7MOD_D_atan2_ */
315 
316 ;; Functions that usually live in libm:  Depending on [long] double layout,
317 ;; define <name> and <name>l as weak alias(es) of __<name> for <name> in:
318 ;; ldexp frexp
319 
320 ;; double __ldexp (double, word_t)
321 #ifdef F7MOD_D_ldexp_
322 _DEFUN __ldexp
323     DALIAS ldexp
324     LALIAS ldexpl
325     .global F7_NAME(ldexp)
326     ldi     ZH,     hi8(gs(F7_NAME(ldexp)))
327     ldi     ZL,     lo8(gs(F7_NAME(ldexp)))
328     F7jmp   call_ddx
329 _ENDF __ldexp
330 #endif /* F7MOD_D_ldexp_ */
331 
332 ;; double __frexp (double, word_t)
333 #ifdef F7MOD_D_frexp_
334 _DEFUN __frexp
335     DALIAS frexp
336     LALIAS frexpl
337     .global F7_NAME(frexp)
338     ldi     ZH,     hi8(gs(F7_NAME(frexp)))
339     ldi     ZL,     lo8(gs(F7_NAME(frexp)))
340     F7jmp   call_ddx
341 _ENDF __frexp
342 #endif /* F7MOD_D_frexp_ */
343 
344 ;; Functions that usually live in libm:  Depending on [long] double layout,
345 ;; define <name> and <name>l as weak alias(es) of __<name> for <name> in:
346 ;; sqrt cbrt exp exp10 pow10 log log10 log2 sin cos tan cotan asin acos atan ceil floor trunc round sinh cosh tanh
347 
348 ;; double __sqrt (double)
349 #ifdef F7MOD_D_sqrt_
350 _DEFUN __sqrt
351     DALIAS sqrt
352     LALIAS sqrtl
353     .global F7_NAME(sqrt)
354     ldi     ZH,     hi8(gs(F7_NAME(sqrt)))
355     ldi     ZL,     lo8(gs(F7_NAME(sqrt)))
356     F7jmp   call_dd
357 _ENDF __sqrt
358 #endif /* F7MOD_D_sqrt_ */
359 
360 ;; double __cbrt (double)
361 #ifdef F7MOD_D_cbrt_
362 _DEFUN __cbrt
363     DALIAS cbrt
364     LALIAS cbrtl
365     .global F7_NAME(cbrt)
366     ldi     ZH,     hi8(gs(F7_NAME(cbrt)))
367     ldi     ZL,     lo8(gs(F7_NAME(cbrt)))
368     F7jmp   call_dd
369 _ENDF __cbrt
370 #endif /* F7MOD_D_cbrt_ */
371 
372 ;; double __exp (double)
373 #ifdef F7MOD_D_exp_
374 _DEFUN __exp
375     DALIAS exp
376     LALIAS expl
377     .global F7_NAME(exp)
378     ldi     ZH,     hi8(gs(F7_NAME(exp)))
379     ldi     ZL,     lo8(gs(F7_NAME(exp)))
380     F7jmp   call_dd
381 _ENDF __exp
382 #endif /* F7MOD_D_exp_ */
383 
384 ;; double __exp10 (double)
385 #ifdef F7MOD_D_exp10_
386 _DEFUN __exp10
387     DALIAS exp10
388     LALIAS exp10l
389     .global F7_NAME(exp10)
390     ldi     ZH,     hi8(gs(F7_NAME(exp10)))
391     ldi     ZL,     lo8(gs(F7_NAME(exp10)))
392     F7jmp   call_dd
393 _ENDF __exp10
394 #endif /* F7MOD_D_exp10_ */
395 
396 ;; double __pow10 (double)
397 #ifdef F7MOD_D_pow10_
398 _DEFUN __pow10
399     DALIAS pow10
400     LALIAS pow10l
401     .global F7_NAME(pow10)
402     ldi     ZH,     hi8(gs(F7_NAME(pow10)))
403     ldi     ZL,     lo8(gs(F7_NAME(pow10)))
404     F7jmp   call_dd
405 _ENDF __pow10
406 #endif /* F7MOD_D_pow10_ */
407 
408 ;; double __log (double)
409 #ifdef F7MOD_D_log_
410 _DEFUN __log
411     DALIAS log
412     LALIAS logl
413     .global F7_NAME(log)
414     ldi     ZH,     hi8(gs(F7_NAME(log)))
415     ldi     ZL,     lo8(gs(F7_NAME(log)))
416     F7jmp   call_dd
417 _ENDF __log
418 #endif /* F7MOD_D_log_ */
419 
420 ;; double __log10 (double)
421 #ifdef F7MOD_D_log10_
422 _DEFUN __log10
423     DALIAS log10
424     LALIAS log10l
425     .global F7_NAME(log10)
426     ldi     ZH,     hi8(gs(F7_NAME(log10)))
427     ldi     ZL,     lo8(gs(F7_NAME(log10)))
428     F7jmp   call_dd
429 _ENDF __log10
430 #endif /* F7MOD_D_log10_ */
431 
432 ;; double __log2 (double)
433 #ifdef F7MOD_D_log2_
434 _DEFUN __log2
435     DALIAS log2
436     LALIAS log2l
437     .global F7_NAME(log2)
438     ldi     ZH,     hi8(gs(F7_NAME(log2)))
439     ldi     ZL,     lo8(gs(F7_NAME(log2)))
440     F7jmp   call_dd
441 _ENDF __log2
442 #endif /* F7MOD_D_log2_ */
443 
444 ;; double __sin (double)
445 #ifdef F7MOD_D_sin_
446 _DEFUN __sin
447     DALIAS sin
448     LALIAS sinl
449     .global F7_NAME(sin)
450     ldi     ZH,     hi8(gs(F7_NAME(sin)))
451     ldi     ZL,     lo8(gs(F7_NAME(sin)))
452     F7jmp   call_dd
453 _ENDF __sin
454 #endif /* F7MOD_D_sin_ */
455 
456 ;; double __cos (double)
457 #ifdef F7MOD_D_cos_
458 _DEFUN __cos
459     DALIAS cos
460     LALIAS cosl
461     .global F7_NAME(cos)
462     ldi     ZH,     hi8(gs(F7_NAME(cos)))
463     ldi     ZL,     lo8(gs(F7_NAME(cos)))
464     F7jmp   call_dd
465 _ENDF __cos
466 #endif /* F7MOD_D_cos_ */
467 
468 ;; double __tan (double)
469 #ifdef F7MOD_D_tan_
470 _DEFUN __tan
471     DALIAS tan
472     LALIAS tanl
473     .global F7_NAME(tan)
474     ldi     ZH,     hi8(gs(F7_NAME(tan)))
475     ldi     ZL,     lo8(gs(F7_NAME(tan)))
476     F7jmp   call_dd
477 _ENDF __tan
478 #endif /* F7MOD_D_tan_ */
479 
480 ;; double __cotan (double)
481 #ifdef F7MOD_D_cotan_
482 _DEFUN __cotan
483     DALIAS cotan
484     LALIAS cotanl
485     .global F7_NAME(cotan)
486     ldi     ZH,     hi8(gs(F7_NAME(cotan)))
487     ldi     ZL,     lo8(gs(F7_NAME(cotan)))
488     F7jmp   call_dd
489 _ENDF __cotan
490 #endif /* F7MOD_D_cotan_ */
491 
492 ;; double __asin (double)
493 #ifdef F7MOD_D_asin_
494 _DEFUN __asin
495     DALIAS asin
496     LALIAS asinl
497     .global F7_NAME(asin)
498     ldi     ZH,     hi8(gs(F7_NAME(asin)))
499     ldi     ZL,     lo8(gs(F7_NAME(asin)))
500     F7jmp   call_dd
501 _ENDF __asin
502 #endif /* F7MOD_D_asin_ */
503 
504 ;; double __acos (double)
505 #ifdef F7MOD_D_acos_
506 _DEFUN __acos
507     DALIAS acos
508     LALIAS acosl
509     .global F7_NAME(acos)
510     ldi     ZH,     hi8(gs(F7_NAME(acos)))
511     ldi     ZL,     lo8(gs(F7_NAME(acos)))
512     F7jmp   call_dd
513 _ENDF __acos
514 #endif /* F7MOD_D_acos_ */
515 
516 ;; double __atan (double)
517 #ifdef F7MOD_D_atan_
518 _DEFUN __atan
519     DALIAS atan
520     LALIAS atanl
521     .global F7_NAME(atan)
522     ldi     ZH,     hi8(gs(F7_NAME(atan)))
523     ldi     ZL,     lo8(gs(F7_NAME(atan)))
524     F7jmp   call_dd
525 _ENDF __atan
526 #endif /* F7MOD_D_atan_ */
527 
528 ;; double __ceil (double)
529 #ifdef F7MOD_D_ceil_
530 _DEFUN __ceil
531     DALIAS ceil
532     LALIAS ceill
533     .global F7_NAME(ceil)
534     ldi     ZH,     hi8(gs(F7_NAME(ceil)))
535     ldi     ZL,     lo8(gs(F7_NAME(ceil)))
536     F7jmp   call_dd
537 _ENDF __ceil
538 #endif /* F7MOD_D_ceil_ */
539 
540 ;; double __floor (double)
541 #ifdef F7MOD_D_floor_
542 _DEFUN __floor
543     DALIAS floor
544     LALIAS floorl
545     .global F7_NAME(floor)
546     ldi     ZH,     hi8(gs(F7_NAME(floor)))
547     ldi     ZL,     lo8(gs(F7_NAME(floor)))
548     F7jmp   call_dd
549 _ENDF __floor
550 #endif /* F7MOD_D_floor_ */
551 
552 ;; double __trunc (double)
553 #ifdef F7MOD_D_trunc_
554 _DEFUN __trunc
555     DALIAS trunc
556     LALIAS truncl
557     .global F7_NAME(trunc)
558     ldi     ZH,     hi8(gs(F7_NAME(trunc)))
559     ldi     ZL,     lo8(gs(F7_NAME(trunc)))
560     F7jmp   call_dd
561 _ENDF __trunc
562 #endif /* F7MOD_D_trunc_ */
563 
564 ;; double __round (double)
565 #ifdef F7MOD_D_round_
566 _DEFUN __round
567     DALIAS round
568     LALIAS roundl
569     .global F7_NAME(round)
570     ldi     ZH,     hi8(gs(F7_NAME(round)))
571     ldi     ZL,     lo8(gs(F7_NAME(round)))
572     F7jmp   call_dd
573 _ENDF __round
574 #endif /* F7MOD_D_round_ */
575 
576 ;; double __sinh (double)
577 #ifdef F7MOD_D_sinh_
578 _DEFUN __sinh
579     DALIAS sinh
580     LALIAS sinhl
581     .global F7_NAME(sinh)
582     ldi     ZH,     hi8(gs(F7_NAME(sinh)))
583     ldi     ZL,     lo8(gs(F7_NAME(sinh)))
584     F7jmp   call_dd
585 _ENDF __sinh
586 #endif /* F7MOD_D_sinh_ */
587 
588 ;; double __cosh (double)
589 #ifdef F7MOD_D_cosh_
590 _DEFUN __cosh
591     DALIAS cosh
592     LALIAS coshl
593     .global F7_NAME(cosh)
594     ldi     ZH,     hi8(gs(F7_NAME(cosh)))
595     ldi     ZL,     lo8(gs(F7_NAME(cosh)))
596     F7jmp   call_dd
597 _ENDF __cosh
598 #endif /* F7MOD_D_cosh_ */
599 
600 ;; double __tanh (double)
601 #ifdef F7MOD_D_tanh_
602 _DEFUN __tanh
603     DALIAS tanh
604     LALIAS tanhl
605     .global F7_NAME(tanh)
606     ldi     ZH,     hi8(gs(F7_NAME(tanh)))
607     ldi     ZL,     lo8(gs(F7_NAME(tanh)))
608     F7jmp   call_dd
609 _ENDF __tanh
610 #endif /* F7MOD_D_tanh_ */
611 
612 ;; Functions that usually live in libm:  Depending on [long] double layout,
613 ;; define <name> and <name>l as weak alias(es) of __<name> for <name> in:
614 ;; lrint lround
615 
616 ;; type_t __lrint (double)
617 #ifdef F7MOD_D_lrint_
618 _DEFUN __lrint
619     DALIAS lrint
620     LALIAS lrintl
621     .global F7_NAME(lrint)
622     ldi     ZH,     hi8(gs(F7_NAME(lrint)))
623     ldi     ZL,     lo8(gs(F7_NAME(lrint)))
624     F7jmp   call_xd
625 _ENDF __lrint
626 #endif /* F7MOD_D_lrint_ */
627 
628 ;; type_t __lround (double)
629 #ifdef F7MOD_D_lround_
630 _DEFUN __lround
631     DALIAS lround
632     LALIAS lroundl
633     .global F7_NAME(lround)
634     ldi     ZH,     hi8(gs(F7_NAME(lround)))
635     ldi     ZL,     lo8(gs(F7_NAME(lround)))
636     F7jmp   call_xd
637 _ENDF __lround
638 #endif /* F7MOD_D_lround_ */
639