Home | History | Annotate | Line # | Download | only in libf7
      1 ;; Copyright (C) 2019-2024 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