;; Copyright (C) 2019-2022 Free Software Foundation, Inc.
;;
;; This file is part of LIBF7, which is part of GCC.
;;
;; GCC is free software; you can redistribute it and/or modify it under
;; the terms of the GNU General Public License as published by the Free
;; Software Foundation; either version 3, or (at your option) any later
;; version.
;;
;; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
;; WARRANTY; without even the implied warranty of MERCHANTABILITY or
;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
;; for more details.
;;
;; Under Section 7 of GPL version 3, you are granted additional
;; permissions described in the GCC Runtime Library Exception, version
;; 3.1, as published by the Free Software Foundation.
;;
;; You should have received a copy of the GNU General Public License and
;; a copy of the GCC Runtime Library Exception along with this program;
;; see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
;; . */
;; Auto-generated file, do not change by hand.
;;
;; Wrappers for double and long double functions to use functions that
;; operate on f7_t, and get f7_t* and const f7_t*.
;;
;; Generated by: f7wraps.sh
;; Included by : libf7-asm.sx
;; WITH_LIBF7_MATH_FUNCTIONS=1
;; WITH_LIBF7_MATH_SYMBOLS=1
;; Functions that usually live in libgcc: __df3 for in:
;; add sub mul div
;; double __adddf3 (double, double) ; add
#ifdef F7MOD_D_add_
_DEFUN __adddf3
ALIAS __add
.global F7_NAME(add)
ldi ZH, hi8(gs(F7_NAME(add)))
ldi ZL, lo8(gs(F7_NAME(add)))
F7jmp call_ddd
_ENDF __adddf3
#endif /* F7MOD_D_add_ */
;; double __subdf3 (double, double) ; sub
#ifdef F7MOD_D_sub_
_DEFUN __subdf3
ALIAS __sub
.global F7_NAME(sub)
ldi ZH, hi8(gs(F7_NAME(sub)))
ldi ZL, lo8(gs(F7_NAME(sub)))
F7jmp call_ddd
_ENDF __subdf3
#endif /* F7MOD_D_sub_ */
;; double __muldf3 (double, double) ; mul
#ifdef F7MOD_D_mul_
_DEFUN __muldf3
ALIAS __mul
.global F7_NAME(mul)
ldi ZH, hi8(gs(F7_NAME(mul)))
ldi ZL, lo8(gs(F7_NAME(mul)))
F7jmp call_ddd
_ENDF __muldf3
#endif /* F7MOD_D_mul_ */
;; double __divdf3 (double, double) ; div
#ifdef F7MOD_D_div_
_DEFUN __divdf3
ALIAS __div
.global F7_NAME(div)
ldi ZH, hi8(gs(F7_NAME(div)))
ldi ZL, lo8(gs(F7_NAME(div)))
F7jmp call_ddd
_ENDF __divdf3
#endif /* F7MOD_D_div_ */
;; Functions that usually live in libgcc: __df2 for in:
;; le lt ge gt ne eq unord
;; bool __ledf2 (double, double) ; le
#ifdef F7MOD_D_le_
_DEFUN __ledf2
.global F7_NAME(le_impl)
ldi ZH, hi8(gs(F7_NAME(le_impl)))
ldi ZL, lo8(gs(F7_NAME(le_impl)))
F7jmp call_xdd
_ENDF __ledf2
#endif /* F7MOD_D_le_ */
;; bool __ltdf2 (double, double) ; lt
#ifdef F7MOD_D_lt_
_DEFUN __ltdf2
.global F7_NAME(lt_impl)
ldi ZH, hi8(gs(F7_NAME(lt_impl)))
ldi ZL, lo8(gs(F7_NAME(lt_impl)))
F7jmp call_xdd
_ENDF __ltdf2
#endif /* F7MOD_D_lt_ */
;; bool __gedf2 (double, double) ; ge
#ifdef F7MOD_D_ge_
_DEFUN __gedf2
.global F7_NAME(ge_impl)
ldi ZH, hi8(gs(F7_NAME(ge_impl)))
ldi ZL, lo8(gs(F7_NAME(ge_impl)))
F7jmp call_xdd
_ENDF __gedf2
#endif /* F7MOD_D_ge_ */
;; bool __gtdf2 (double, double) ; gt
#ifdef F7MOD_D_gt_
_DEFUN __gtdf2
.global F7_NAME(gt_impl)
ldi ZH, hi8(gs(F7_NAME(gt_impl)))
ldi ZL, lo8(gs(F7_NAME(gt_impl)))
F7jmp call_xdd
_ENDF __gtdf2
#endif /* F7MOD_D_gt_ */
;; bool __nedf2 (double, double) ; ne
#ifdef F7MOD_D_ne_
_DEFUN __nedf2
.global F7_NAME(ne_impl)
ldi ZH, hi8(gs(F7_NAME(ne_impl)))
ldi ZL, lo8(gs(F7_NAME(ne_impl)))
F7jmp call_xdd
_ENDF __nedf2
#endif /* F7MOD_D_ne_ */
;; bool __eqdf2 (double, double) ; eq
#ifdef F7MOD_D_eq_
_DEFUN __eqdf2
.global F7_NAME(eq_impl)
ldi ZH, hi8(gs(F7_NAME(eq_impl)))
ldi ZL, lo8(gs(F7_NAME(eq_impl)))
F7jmp call_xdd
_ENDF __eqdf2
#endif /* F7MOD_D_eq_ */
;; bool __unorddf2 (double, double) ; unord
#ifdef F7MOD_D_unord_
_DEFUN __unorddf2
.global F7_NAME(unord_impl)
ldi ZH, hi8(gs(F7_NAME(unord_impl)))
ldi ZL, lo8(gs(F7_NAME(unord_impl)))
F7jmp call_xdd
_ENDF __unorddf2
#endif /* F7MOD_D_unord_ */
;; Functions that usually live in libgcc: __ for in:
;; fixdfsi fixdfdi fixunsdfdi fixunsdfsi truncdfsf2
;; type_t __fixdfsi (double) ; fixdfsi
#ifdef F7MOD_D_fixdfsi_
_DEFUN __fixdfsi
.global F7_NAME(fixdfsi)
ldi ZH, hi8(gs(F7_NAME(fixdfsi)))
ldi ZL, lo8(gs(F7_NAME(fixdfsi)))
F7jmp call_xd
_ENDF __fixdfsi
#endif /* F7MOD_D_fixdfsi_ */
;; type_t __fixdfdi (double) ; fixdfdi
#ifdef F7MOD_D_fixdfdi_
_DEFUN __fixdfdi
.global F7_NAME(fixdfdi)
ldi ZH, hi8(gs(F7_NAME(fixdfdi)))
ldi ZL, lo8(gs(F7_NAME(fixdfdi)))
F7jmp call_xd
_ENDF __fixdfdi
#endif /* F7MOD_D_fixdfdi_ */
;; type_t __fixunsdfdi (double) ; fixunsdfdi
#ifdef F7MOD_D_fixunsdfdi_
_DEFUN __fixunsdfdi
.global F7_NAME(fixunsdfdi)
ldi ZH, hi8(gs(F7_NAME(fixunsdfdi)))
ldi ZL, lo8(gs(F7_NAME(fixunsdfdi)))
F7jmp call_xd
_ENDF __fixunsdfdi
#endif /* F7MOD_D_fixunsdfdi_ */
;; type_t __fixunsdfsi (double) ; fixunsdfsi
#ifdef F7MOD_D_fixunsdfsi_
_DEFUN __fixunsdfsi
.global F7_NAME(fixunsdfsi)
ldi ZH, hi8(gs(F7_NAME(fixunsdfsi)))
ldi ZL, lo8(gs(F7_NAME(fixunsdfsi)))
F7jmp call_xd
_ENDF __fixunsdfsi
#endif /* F7MOD_D_fixunsdfsi_ */
;; type_t __truncdfsf2 (double) ; truncdfsf2
#ifdef F7MOD_D_truncdfsf2_
_DEFUN __truncdfsf2
.global F7_NAME(truncdfsf2)
ldi ZH, hi8(gs(F7_NAME(truncdfsf2)))
ldi ZL, lo8(gs(F7_NAME(truncdfsf2)))
F7jmp call_xd
_ENDF __truncdfsf2
#endif /* F7MOD_D_truncdfsf2_ */
;; Functions that usually live in libgcc: __ for in:
;; floatunsidf floatsidf extendsfdf2
;; double __floatunsidf (type_t) ; floatunsidf
#ifdef F7MOD_D_floatunsidf_
_DEFUN __floatunsidf
.global F7_NAME(floatunsidf)
ldi ZH, hi8(gs(F7_NAME(floatunsidf)))
ldi ZL, lo8(gs(F7_NAME(floatunsidf)))
F7jmp call_dx
_ENDF __floatunsidf
#endif /* F7MOD_D_floatunsidf_ */
;; double __floatsidf (type_t) ; floatsidf
#ifdef F7MOD_D_floatsidf_
_DEFUN __floatsidf
.global F7_NAME(floatsidf)
ldi ZH, hi8(gs(F7_NAME(floatsidf)))
ldi ZL, lo8(gs(F7_NAME(floatsidf)))
F7jmp call_dx
_ENDF __floatsidf
#endif /* F7MOD_D_floatsidf_ */
;; double __extendsfdf2 (type_t) ; extendsfdf2
#ifdef F7MOD_D_extendsfdf2_
_DEFUN __extendsfdf2
.global F7_NAME(extendsfdf2)
ldi ZH, hi8(gs(F7_NAME(extendsfdf2)))
ldi ZL, lo8(gs(F7_NAME(extendsfdf2)))
F7jmp call_dx
_ENDF __extendsfdf2
#endif /* F7MOD_D_extendsfdf2_ */
;; Functions that usually live in libm: Depending on [long] double layout,
;; define and l as weak alias(es) of __ for in:
;; pow fmin fmax fmod hypot atan2
;; double __pow (double, double)
#ifdef F7MOD_D_pow_
_DEFUN __pow
DALIAS pow
LALIAS powl
.global F7_NAME(pow)
ldi ZH, hi8(gs(F7_NAME(pow)))
ldi ZL, lo8(gs(F7_NAME(pow)))
F7jmp call_ddd
_ENDF __pow
#endif /* F7MOD_D_pow_ */
;; double __fmin (double, double)
#ifdef F7MOD_D_fmin_
_DEFUN __fmin
DALIAS fmin
LALIAS fminl
.global F7_NAME(fmin)
ldi ZH, hi8(gs(F7_NAME(fmin)))
ldi ZL, lo8(gs(F7_NAME(fmin)))
F7jmp call_ddd
_ENDF __fmin
#endif /* F7MOD_D_fmin_ */
;; double __fmax (double, double)
#ifdef F7MOD_D_fmax_
_DEFUN __fmax
DALIAS fmax
LALIAS fmaxl
.global F7_NAME(fmax)
ldi ZH, hi8(gs(F7_NAME(fmax)))
ldi ZL, lo8(gs(F7_NAME(fmax)))
F7jmp call_ddd
_ENDF __fmax
#endif /* F7MOD_D_fmax_ */
;; double __fmod (double, double)
#ifdef F7MOD_D_fmod_
_DEFUN __fmod
DALIAS fmod
LALIAS fmodl
.global F7_NAME(fmod)
ldi ZH, hi8(gs(F7_NAME(fmod)))
ldi ZL, lo8(gs(F7_NAME(fmod)))
F7jmp call_ddd
_ENDF __fmod
#endif /* F7MOD_D_fmod_ */
;; double __hypot (double, double)
#ifdef F7MOD_D_hypot_
_DEFUN __hypot
DALIAS hypot
LALIAS hypotl
.global F7_NAME(hypot)
ldi ZH, hi8(gs(F7_NAME(hypot)))
ldi ZL, lo8(gs(F7_NAME(hypot)))
F7jmp call_ddd
_ENDF __hypot
#endif /* F7MOD_D_hypot_ */
;; double __atan2 (double, double)
#ifdef F7MOD_D_atan2_
_DEFUN __atan2
DALIAS atan2
LALIAS atan2l
.global F7_NAME(atan2)
ldi ZH, hi8(gs(F7_NAME(atan2)))
ldi ZL, lo8(gs(F7_NAME(atan2)))
F7jmp call_ddd
_ENDF __atan2
#endif /* F7MOD_D_atan2_ */
;; Functions that usually live in libm: Depending on [long] double layout,
;; define and l as weak alias(es) of __ for in:
;; ldexp frexp
;; double __ldexp (double, word_t)
#ifdef F7MOD_D_ldexp_
_DEFUN __ldexp
DALIAS ldexp
LALIAS ldexpl
.global F7_NAME(ldexp)
ldi ZH, hi8(gs(F7_NAME(ldexp)))
ldi ZL, lo8(gs(F7_NAME(ldexp)))
F7jmp call_ddx
_ENDF __ldexp
#endif /* F7MOD_D_ldexp_ */
;; double __frexp (double, word_t)
#ifdef F7MOD_D_frexp_
_DEFUN __frexp
DALIAS frexp
LALIAS frexpl
.global F7_NAME(frexp)
ldi ZH, hi8(gs(F7_NAME(frexp)))
ldi ZL, lo8(gs(F7_NAME(frexp)))
F7jmp call_ddx
_ENDF __frexp
#endif /* F7MOD_D_frexp_ */
;; Functions that usually live in libm: Depending on [long] double layout,
;; define and l as weak alias(es) of __ for in:
;; sqrt cbrt exp exp10 pow10 log log10 log2 sin cos tan cotan asin acos atan ceil floor trunc round sinh cosh tanh
;; double __sqrt (double)
#ifdef F7MOD_D_sqrt_
_DEFUN __sqrt
DALIAS sqrt
LALIAS sqrtl
.global F7_NAME(sqrt)
ldi ZH, hi8(gs(F7_NAME(sqrt)))
ldi ZL, lo8(gs(F7_NAME(sqrt)))
F7jmp call_dd
_ENDF __sqrt
#endif /* F7MOD_D_sqrt_ */
;; double __cbrt (double)
#ifdef F7MOD_D_cbrt_
_DEFUN __cbrt
DALIAS cbrt
LALIAS cbrtl
.global F7_NAME(cbrt)
ldi ZH, hi8(gs(F7_NAME(cbrt)))
ldi ZL, lo8(gs(F7_NAME(cbrt)))
F7jmp call_dd
_ENDF __cbrt
#endif /* F7MOD_D_cbrt_ */
;; double __exp (double)
#ifdef F7MOD_D_exp_
_DEFUN __exp
DALIAS exp
LALIAS expl
.global F7_NAME(exp)
ldi ZH, hi8(gs(F7_NAME(exp)))
ldi ZL, lo8(gs(F7_NAME(exp)))
F7jmp call_dd
_ENDF __exp
#endif /* F7MOD_D_exp_ */
;; double __exp10 (double)
#ifdef F7MOD_D_exp10_
_DEFUN __exp10
DALIAS exp10
LALIAS exp10l
.global F7_NAME(exp10)
ldi ZH, hi8(gs(F7_NAME(exp10)))
ldi ZL, lo8(gs(F7_NAME(exp10)))
F7jmp call_dd
_ENDF __exp10
#endif /* F7MOD_D_exp10_ */
;; double __pow10 (double)
#ifdef F7MOD_D_pow10_
_DEFUN __pow10
DALIAS pow10
LALIAS pow10l
.global F7_NAME(pow10)
ldi ZH, hi8(gs(F7_NAME(pow10)))
ldi ZL, lo8(gs(F7_NAME(pow10)))
F7jmp call_dd
_ENDF __pow10
#endif /* F7MOD_D_pow10_ */
;; double __log (double)
#ifdef F7MOD_D_log_
_DEFUN __log
DALIAS log
LALIAS logl
.global F7_NAME(log)
ldi ZH, hi8(gs(F7_NAME(log)))
ldi ZL, lo8(gs(F7_NAME(log)))
F7jmp call_dd
_ENDF __log
#endif /* F7MOD_D_log_ */
;; double __log10 (double)
#ifdef F7MOD_D_log10_
_DEFUN __log10
DALIAS log10
LALIAS log10l
.global F7_NAME(log10)
ldi ZH, hi8(gs(F7_NAME(log10)))
ldi ZL, lo8(gs(F7_NAME(log10)))
F7jmp call_dd
_ENDF __log10
#endif /* F7MOD_D_log10_ */
;; double __log2 (double)
#ifdef F7MOD_D_log2_
_DEFUN __log2
DALIAS log2
LALIAS log2l
.global F7_NAME(log2)
ldi ZH, hi8(gs(F7_NAME(log2)))
ldi ZL, lo8(gs(F7_NAME(log2)))
F7jmp call_dd
_ENDF __log2
#endif /* F7MOD_D_log2_ */
;; double __sin (double)
#ifdef F7MOD_D_sin_
_DEFUN __sin
DALIAS sin
LALIAS sinl
.global F7_NAME(sin)
ldi ZH, hi8(gs(F7_NAME(sin)))
ldi ZL, lo8(gs(F7_NAME(sin)))
F7jmp call_dd
_ENDF __sin
#endif /* F7MOD_D_sin_ */
;; double __cos (double)
#ifdef F7MOD_D_cos_
_DEFUN __cos
DALIAS cos
LALIAS cosl
.global F7_NAME(cos)
ldi ZH, hi8(gs(F7_NAME(cos)))
ldi ZL, lo8(gs(F7_NAME(cos)))
F7jmp call_dd
_ENDF __cos
#endif /* F7MOD_D_cos_ */
;; double __tan (double)
#ifdef F7MOD_D_tan_
_DEFUN __tan
DALIAS tan
LALIAS tanl
.global F7_NAME(tan)
ldi ZH, hi8(gs(F7_NAME(tan)))
ldi ZL, lo8(gs(F7_NAME(tan)))
F7jmp call_dd
_ENDF __tan
#endif /* F7MOD_D_tan_ */
;; double __cotan (double)
#ifdef F7MOD_D_cotan_
_DEFUN __cotan
DALIAS cotan
LALIAS cotanl
.global F7_NAME(cotan)
ldi ZH, hi8(gs(F7_NAME(cotan)))
ldi ZL, lo8(gs(F7_NAME(cotan)))
F7jmp call_dd
_ENDF __cotan
#endif /* F7MOD_D_cotan_ */
;; double __asin (double)
#ifdef F7MOD_D_asin_
_DEFUN __asin
DALIAS asin
LALIAS asinl
.global F7_NAME(asin)
ldi ZH, hi8(gs(F7_NAME(asin)))
ldi ZL, lo8(gs(F7_NAME(asin)))
F7jmp call_dd
_ENDF __asin
#endif /* F7MOD_D_asin_ */
;; double __acos (double)
#ifdef F7MOD_D_acos_
_DEFUN __acos
DALIAS acos
LALIAS acosl
.global F7_NAME(acos)
ldi ZH, hi8(gs(F7_NAME(acos)))
ldi ZL, lo8(gs(F7_NAME(acos)))
F7jmp call_dd
_ENDF __acos
#endif /* F7MOD_D_acos_ */
;; double __atan (double)
#ifdef F7MOD_D_atan_
_DEFUN __atan
DALIAS atan
LALIAS atanl
.global F7_NAME(atan)
ldi ZH, hi8(gs(F7_NAME(atan)))
ldi ZL, lo8(gs(F7_NAME(atan)))
F7jmp call_dd
_ENDF __atan
#endif /* F7MOD_D_atan_ */
;; double __ceil (double)
#ifdef F7MOD_D_ceil_
_DEFUN __ceil
DALIAS ceil
LALIAS ceill
.global F7_NAME(ceil)
ldi ZH, hi8(gs(F7_NAME(ceil)))
ldi ZL, lo8(gs(F7_NAME(ceil)))
F7jmp call_dd
_ENDF __ceil
#endif /* F7MOD_D_ceil_ */
;; double __floor (double)
#ifdef F7MOD_D_floor_
_DEFUN __floor
DALIAS floor
LALIAS floorl
.global F7_NAME(floor)
ldi ZH, hi8(gs(F7_NAME(floor)))
ldi ZL, lo8(gs(F7_NAME(floor)))
F7jmp call_dd
_ENDF __floor
#endif /* F7MOD_D_floor_ */
;; double __trunc (double)
#ifdef F7MOD_D_trunc_
_DEFUN __trunc
DALIAS trunc
LALIAS truncl
.global F7_NAME(trunc)
ldi ZH, hi8(gs(F7_NAME(trunc)))
ldi ZL, lo8(gs(F7_NAME(trunc)))
F7jmp call_dd
_ENDF __trunc
#endif /* F7MOD_D_trunc_ */
;; double __round (double)
#ifdef F7MOD_D_round_
_DEFUN __round
DALIAS round
LALIAS roundl
.global F7_NAME(round)
ldi ZH, hi8(gs(F7_NAME(round)))
ldi ZL, lo8(gs(F7_NAME(round)))
F7jmp call_dd
_ENDF __round
#endif /* F7MOD_D_round_ */
;; double __sinh (double)
#ifdef F7MOD_D_sinh_
_DEFUN __sinh
DALIAS sinh
LALIAS sinhl
.global F7_NAME(sinh)
ldi ZH, hi8(gs(F7_NAME(sinh)))
ldi ZL, lo8(gs(F7_NAME(sinh)))
F7jmp call_dd
_ENDF __sinh
#endif /* F7MOD_D_sinh_ */
;; double __cosh (double)
#ifdef F7MOD_D_cosh_
_DEFUN __cosh
DALIAS cosh
LALIAS coshl
.global F7_NAME(cosh)
ldi ZH, hi8(gs(F7_NAME(cosh)))
ldi ZL, lo8(gs(F7_NAME(cosh)))
F7jmp call_dd
_ENDF __cosh
#endif /* F7MOD_D_cosh_ */
;; double __tanh (double)
#ifdef F7MOD_D_tanh_
_DEFUN __tanh
DALIAS tanh
LALIAS tanhl
.global F7_NAME(tanh)
ldi ZH, hi8(gs(F7_NAME(tanh)))
ldi ZL, lo8(gs(F7_NAME(tanh)))
F7jmp call_dd
_ENDF __tanh
#endif /* F7MOD_D_tanh_ */
;; Functions that usually live in libm: Depending on [long] double layout,
;; define and l as weak alias(es) of __ for in:
;; lrint lround
;; type_t __lrint (double)
#ifdef F7MOD_D_lrint_
_DEFUN __lrint
DALIAS lrint
LALIAS lrintl
.global F7_NAME(lrint)
ldi ZH, hi8(gs(F7_NAME(lrint)))
ldi ZL, lo8(gs(F7_NAME(lrint)))
F7jmp call_xd
_ENDF __lrint
#endif /* F7MOD_D_lrint_ */
;; type_t __lround (double)
#ifdef F7MOD_D_lround_
_DEFUN __lround
DALIAS lround
LALIAS lroundl
.global F7_NAME(lround)
ldi ZH, hi8(gs(F7_NAME(lround)))
ldi ZL, lo8(gs(F7_NAME(lround)))
F7jmp call_xd
_ENDF __lround
#endif /* F7MOD_D_lround_ */