^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) fp_arith.h: floating-point math routines for the Linux-m68k
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) floating point emulator.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) Copyright (c) 1998 David Huggins-Daines.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9) Somewhat based on the AlphaLinux floating point emulator, by David
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) Mosberger-Tang.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #ifndef FP_ARITH_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) #define FP_ARITH_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) /* easy ones */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) fp_fabs(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) fp_fneg(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) /* straightforward arithmetic */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) fp_fadd(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) fp_fsub(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) fp_fcmp(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) fp_ftst(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) fp_fmul(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) fp_fdiv(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) /* ones that do rounding and integer conversions */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) fp_fmod(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) fp_frem(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) fp_fint(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) fp_fintrz(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) struct fp_ext *
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) fp_fscale(struct fp_ext *dest, struct fp_ext *src);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) #endif /* FP_ARITH__H */