;; Copyright (C) 2019-2020 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_ */