diff options
author | 2011-07-08 22:28:32 +0000 | |
---|---|---|
committer | 2011-07-08 22:28:32 +0000 | |
commit | aeb694e3afa554db8dd44ee8140d036724efada5 (patch) | |
tree | 27134d6d85c1d25448c6bbdb4cc7222c925034fe /lib/libm | |
parent | Don't accidentally mask off the T_USER bit before calling trap(). (diff) | |
download | wireguard-openbsd-aeb694e3afa554db8dd44ee8140d036724efada5.tar.xz wireguard-openbsd-aeb694e3afa554db8dd44ee8140d036724efada5.zip |
Revert (leaving the complex math part alone). Some stuff is depending
on this historical behavior; so we're stuck in this stupid situation.
No cookie for me.
Diffstat (limited to 'lib/libm')
27 files changed, 26 insertions, 1454 deletions
diff --git a/lib/libm/Makefile b/lib/libm/Makefile index 040cf0a2e18..1651cfbe909 100644 --- a/lib/libm/Makefile +++ b/lib/libm/Makefile @@ -1,4 +1,4 @@ -# $OpenBSD: Makefile,v 1.88 2011/07/08 19:25:31 martynas Exp $ +# $OpenBSD: Makefile,v 1.89 2011/07/08 22:28:33 martynas Exp $ # $NetBSD: Makefile,v 1.28 1995/11/20 22:06:19 jtc Exp $ # # @(#)Makefile 5.1beta 93/09/24 @@ -18,7 +18,7 @@ CFLAGS+= -O0 .if (${MACHINE_ARCH} == "alpha") .PATH: ${.CURDIR}/arch/alpha -ARCH_SRCS = s_copysign.S s_copysignf.S s_fabs.S +ARCH_SRCS = s_copysign.S s_copysignf.S .elif (${MACHINE_ARCH} == "i386") .PATH: ${.CURDIR}/arch/i387 ARCH_SRCS = e_acos.S e_asin.S e_atan2.S e_exp.S e_fmod.S e_log.S e_log10.S \ @@ -26,10 +26,10 @@ ARCH_SRCS = e_acos.S e_asin.S e_atan2.S e_exp.S e_fmod.S e_log.S e_log10.S \ e_sqrtl.S \ invtrig.c \ s_atan.S s_atanf.S s_ceil.S s_ceilf.S s_copysign.S s_copysignf.S \ - s_cos.S s_cosf.S s_fabs.S s_floor.S s_floorf.S \ + s_cos.S s_cosf.S s_floor.S s_floorf.S \ s_ilogb.S s_ilogbf.S s_log1p.S s_log1pf.S s_logb.S s_logbf.S \ - s_llrint.S s_llrintf.S s_lrint.S s_lrintf.S s_modf.S s_rint.S \ - s_rintf.S s_scalbn.S s_scalbnf.S s_significand.S s_significandf.S \ + s_llrint.S s_llrintf.S s_lrint.S s_lrintf.S s_rint.S s_rintf.S\ + s_scalbn.S s_scalbnf.S s_significand.S s_significandf.S \ s_sin.S s_sinf.S s_tan.S s_tanf.S .elif (${MACHINE_ARCH} == "amd64") .PATH: ${.CURDIR}/arch/amd64 @@ -39,9 +39,9 @@ ARCH_SRCS = e_acos.S e_asin.S e_atan2.S e_exp.S e_fmod.S e_log.S e_log10.S \ e_sqrtl.S \ invtrig.c \ s_atan.S s_atanf.S s_ceil.S s_ceilf.S s_copysign.S s_copysignf.S \ - s_cos.S s_cosf.S s_fabs.S s_floor.S s_floorf.S \ + s_cos.S s_cosf.S s_floor.S s_floorf.S \ s_ilogb.S s_ilogbf.S s_log1p.S s_log1pf.S s_logb.S s_logbf.S \ - s_llrint.S s_llrintf.S s_lrint.S s_lrintf.S s_modf.S \ + s_llrint.S s_llrintf.S s_lrint.S s_lrintf.S \ s_rint.S s_rintf.S s_scalbn.S s_scalbnf.S s_significand.S \ s_significandf.S s_sin.S s_sinf.S s_tan.S s_tanf.S .elif (${MACHINE_ARCH} == "m68k") @@ -52,46 +52,38 @@ ARCH_SRCS = e_acos.S e_acosf.S e_acosl.S e_asin.S e_asinf.S e_asinl.S \ e_scalb.S e_scalbf.S e_sinh.S e_sinhf.S e_sqrt.S e_sqrtf.S \ e_sqrtl.S s_atan.S s_atanf.S s_atanl.S s_ceil.S s_ceilf.S \ s_copysign.S s_copysignf.S s_copysignl.S s_cos.S s_cosf.S s_cosl.S \ - s_expm1.S s_expm1f.S s_fabs.S s_floor.S s_floorf.S s_log1p.S \ - s_log1pf.S s_logb.S s_logbf.S s_logbl.S s_modf.S s_rint.S \ - s_rintf.S s_rintl.S s_scalbn.S s_scalbnf.S s_scalbnl.S s_sin.S \ - s_sinf.S s_sinl.S s_tan.S s_tanf.S s_tanl.S s_tanh.S s_tanhf.S + s_expm1.S s_expm1f.S s_floor.S s_floorf.S s_log1p.S s_log1pf.S \ + s_logb.S s_logbf.S s_logbl.S s_rint.S s_rintf.S s_rintl.S \ + s_scalbn.S s_scalbnf.S s_scalbnl.S s_sin.S s_sinf.S s_sinl.S \ + s_tan.S s_tanf.S s_tanl.S s_tanh.S s_tanhf.S .elif (${MACHINE_ARCH} == "hppa") .PATH: ${.CURDIR}/arch/hppa ARCH_SRCS = e_sqrt.c e_sqrtf.c e_remainder.c e_remainderf.c \ - s_ceil.c s_ceilf.c s_fabs.c s_floor.c s_floorf.c s_rint.c \ - s_rintf.c s_round.c s_roundf.c s_trunc.c s_truncf.c + s_ceil.c s_ceilf.c s_floor.c s_floorf.c s_rint.c s_rintf.c \ + s_round.c s_roundf.c s_trunc.c s_truncf.c .elif (${MACHINE_ARCH} == "sh") .PATH: ${.CURDIR}/arch/sh -ARCH_SRCS = e_sqrt.c e_sqrtf.c s_fabs.c s_fabsf.c +ARCH_SRCS = e_sqrt.c e_sqrtf.c s_fabsf.c .elif (${MACHINE_ARCH} == "arm") .PATH: ${.CURDIR}/arch/arm .elif (${MACHINE_ARCH} == "hppa64") .PATH: ${.CURDIR}/arch/hppa64 -ARCH_SRCS = s_fabs.c .elif (${MACHINE_ARCH} == "m88k") .PATH: ${.CURDIR}/arch/m88k -ARCH_SRCS = s_fabs.S .elif (${MACHINE_ARCH} == "mips64") .PATH: ${.CURDIR}/arch/mips64 -ARCH_SRCS = s_fabs.S s_modf.S .elif (${MACHINE_ARCH} == "mips64el") .PATH: ${.CURDIR}/arch/mips64 -ARCH_SRCS = s_fabs.S s_modf.S .elif (${MACHINE_ARCH} == "powerpc") .PATH: ${.CURDIR}/arch/powerpc -ARCH_SRCS = s_fabs.c .elif (${MACHINE_ARCH} == "sparc") .PATH: ${.CURDIR}/arch/sparc -ARCH_SRCS = s_fabs.S s_modf.S .elif (${MACHINE_ARCH} == "sparc64") .PATH: ${.CURDIR}/arch/sparc64 -ARCH_SRCS = s_fabs.S s_modf.S .elif (${MACHINE_ARCH} == "vax") .PATH: ${.CURDIR}/arch/vax -NOIEEE_ARCH = n_argred.S n_fabs.S n_infnan.S n_modf.S n_sqrt.S -ARCH_SRCS = n_atan2.S n_cbrt.S n_fabs.S n_hypot.S n_modf.S n_sincos.S \ - n_support.S n_tan.S +NOIEEE_ARCH = n_argred.S n_infnan.S n_sqrt.S +ARCH_SRCS = n_atan2.S n_cbrt.S n_hypot.S n_sincos.S n_support.S n_tan.S .endif .PATH: ${.CURDIR}/man @@ -123,12 +115,11 @@ COMMON_SRCS = b_exp__D.c b_log__D.c b_tgamma.c \ s_cproj.c s_cprojf.c s_creal.c s_crealf.c s_csin.c s_csinf.c s_csinh.c \ s_csinhf.c s_csqrt.c s_csqrtf.c s_ctan.c s_ctanf.c s_ctanh.c \ s_ctanhf.c s_erf.c s_erff.c s_exp2.c s_exp2f.c s_expm1.c s_expm1f.c \ - s_fabs.c s_fabsf.c s_fdim.c s_fma.c s_fmaf.c s_fmax.c s_fmaxf.c \ - s_fmin.c s_fminf.c s_floor.c s_floorf.c s_frexp.c s_frexpf.c s_ilogb.c \ - s_ilogbf.c \ + s_fabsf.c s_fdim.c s_fma.c s_fmaf.c s_fmax.c s_fmaxf.c s_fmin.c \ + s_fminf.c s_floor.c s_floorf.c s_frexpf.c s_ilogb.c s_ilogbf.c \ s_log1p.c \ s_log1pf.c s_logb.c s_logbf.c s_llrint.c s_llrintf.c s_lrint.c \ - s_lrintf.c s_modf.c s_modff.c s_nan.c s_nearbyint.c s_nextafter.c \ + s_lrintf.c s_modff.c s_nan.c s_nearbyint.c s_nextafter.c \ s_nextafterf.c s_nexttowardf.c s_remquo.c s_remquof.c s_rint.c \ s_rintf.c s_round.c s_roundf.c \ s_scalbln.c s_scalbn.c s_scalbnf.c s_signgam.c s_significand.c \ @@ -161,12 +152,15 @@ NOIEEE_SRCS = n_acosh.c n_argred.c n_asincos.c n_asinh.c n_atan.c \ n_conjf.c n_cosh.c n_cpow.c n_cproj.c n_cprojf.c n_creal.c \ n_crealf.c n_csin.c n_csinh.c n_csqrt.c n_ctan.c n_ctanh.c \ n_erf.c n_exp.c n_exp__E.c n_expm1.c n_fdim.c n_floor.c \ - n_fmax.c n_fmaxf.c n_fmin.c n_fminf.c n_fmod.c n_frexp.c n_hypot.c \ + n_fmax.c n_fmaxf.c n_fmin.c n_fminf.c n_fmod.c n_hypot.c \ n_infnan.c n_j0.c n_j1.c n_jn.c n_lgamma.c n_log.c n_log10.c \ n_log1p.c n_log__L.c n_nan.c n_pow.c n_round.c n_scalbln.c \ n_sincos.c n_sinh.c n_sqrt.c n_support.c n_tan.c n_tanh.c \ n_tgamma.c +# OpenBSD's C library supplies these functions: +#COMMON_SRCS+= s_fabs.c s_frexp.c s_modf.c + .if (${MACHINE_ARCH} == "vax") SRCS= ${NOIEEE_SRCS} ${NOIEEE_ARCH} MAN+= infnan.3 @@ -202,8 +196,8 @@ SRCS+= ${LONG_SRCS} MAN+= acos.3 acosh.3 asin.3 asinh.3 atan.3 atan2.3 atanh.3 ceil.3 \ cimag.3 conj.3 copysign.3 cos.3 cosh.3 cproj.3 erf.3 exp.3 \ fabs.3 fdim.3 feclearexcept.3 feenableexcept.3 fegetenv.3 \ - fegetround.3 floor.3 fmax.3 fmod.3 frexp.3 hypot.3 ilogb.3 j0.3 \ - lgamma.3 logb.3 lrint.3 lround.3 modf.3 nan.3 nextafter.3 \ + fegetround.3 floor.3 fmax.3 fmod.3 hypot.3 ilogb.3 j0.3 \ + lgamma.3 logb.3 lrint.3 lround.3 nan.3 nextafter.3 \ remainder.3 rint.3 round.3 scalbn.3 sin.3 sinh.3 sqrt.3 \ tan.3 tanh.3 trunc.3 @@ -269,7 +263,6 @@ MLINKS+=floor.3 floorf.3 MLINKS+=fmax.3 fmaxf.3 MLINKS+=fmax.3 fminf.3 MLINKS+=fmod.3 fmodf.3 -MLINKS+=frexp.3 frexpf.3 MLINKS+=hypot.3 cabsf.3 MLINKS+=hypot.3 hypotf.3 MLINKS+=ilogb.3 ilogbf.3 @@ -289,7 +282,6 @@ MLINKS+=lrint.3 llrintf.3 MLINKS+=lrint.3 lrintf.3 MLINKS+=lround.3 llroundf.3 MLINKS+=lround.3 lroundf.3 -MLINKS+=modf.3 modff.3 MLINKS+=nan.3 nanf.3 MLINKS+=nearbyint.3 nearbyintf.3 MLINKS+=nextafter.3 nextafterf.3 @@ -336,7 +328,6 @@ MLINKS+=floor.3 floorl.3 MLINKS+=fmax.3 fmaxl.3 MLINKS+=fmax.3 fminl.3 MLINKS+=fmod.3 fmodl.3 -MLINKS+=frexp.3 frexpl.3 MLINKS+=hypot.3 hypotl.3 MLINKS+=ilogb.3 ilogbl.3 MLINKS+=lgamma.3 lgammal.3 @@ -347,7 +338,6 @@ MLINKS+=lrint.3 llrintl.3 MLINKS+=lrint.3 lrintl.3 MLINKS+=lround.3 llroundl.3 MLINKS+=lround.3 lroundl.3 -MLINKS+=modf.3 modfl.3 MLINKS+=nan.3 nanl.3 MLINKS+=nearbyint.3 nearbyintl.3 MLINKS+=nextafter.3 nextafterl.3 diff --git a/lib/libm/arch/alpha/s_fabs.S b/lib/libm/arch/alpha/s_fabs.S deleted file mode 100644 index c97714c08c2..00000000000 --- a/lib/libm/arch/alpha/s_fabs.S +++ /dev/null @@ -1,37 +0,0 @@ -/* $OpenBSD: s_fabs.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/* $NetBSD: fabs.S,v 1.2 1996/10/17 03:08:05 cgd Exp $ */ - -/* - * Copyright (c) 1994, 1995 Carnegie-Mellon University. - * All rights reserved. - * - * Author: Chris G. Demetriou - * - * Permission to use, copy, modify and distribute this software and - * its documentation is hereby granted, provided that both the copyright - * notice and this permission notice appear in all copies of the - * software, derivative works or modified versions, and any portions - * thereof, and that both notices appear in supporting documentation. - * - * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS" - * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND - * FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. - * - * Carnegie Mellon requests users of this software to return to - * - * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU - * School of Computer Science - * Carnegie Mellon University - * Pittsburgh PA 15213-3890 - * - * any improvements or extensions that they make and grant Carnegie the - * rights to redistribute these changes. - */ - -#include <machine/asm.h> - -WEAK_ALIAS(fabsl, fabs) -LEAF(fabs, 1) - cpys fzero, fa0, fv0 - RET -END(fabs) diff --git a/lib/libm/arch/amd64/s_fabs.S b/lib/libm/arch/amd64/s_fabs.S deleted file mode 100644 index 67852816dc1..00000000000 --- a/lib/libm/arch/amd64/s_fabs.S +++ /dev/null @@ -1,17 +0,0 @@ -/* $OpenBSD: s_fabs.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/* $NetBSD: fabs.S,v 1.1 2001/06/19 00:25:02 fvdl Exp $ */ - -#include <machine/asm.h> - -/* - * Ok, this sucks. Is there really no way to push an xmm register onto - * the FP stack directly? - */ - -ENTRY(fabs) - movsd %xmm0, -8(%rsp) - fldl -8(%rsp) - fabs - fstpl -8(%rsp) - movsd -8(%rsp),%xmm0 - ret diff --git a/lib/libm/arch/amd64/s_modf.S b/lib/libm/arch/amd64/s_modf.S deleted file mode 100644 index c028b5bfe25..00000000000 --- a/lib/libm/arch/amd64/s_modf.S +++ /dev/null @@ -1,91 +0,0 @@ -/* $OpenBSD: s_modf.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/* $NetBSD: modf.S,v 1.1 2001/06/19 00:25:03 fvdl Exp $ */ - -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Sean Eric Fagan. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * from: @(#)modf.s 5.5 (Berkeley) 3/18/91 - */ - -#include <machine/asm.h> - -/* - * modf(value, iptr): return fractional part of value, and stores the - * integral part into iptr (a pointer to double). - * - * Written by Sean Eric Fagan (sef@kithrup.COM) - * Sun Mar 11 20:27:30 PST 1990 - */ - -/* With CHOP mode on, frndint behaves as TRUNC does. Useful. */ -ENTRY(modf) - - /* - * Set chop mode. - */ - fnstcw -12(%rsp) - movw -12(%rsp),%dx - orw $3072,%dx - movw %dx,-16(%rsp) - fldcw -16(%rsp) - - /* - * Get integral part. - */ - movsd %xmm0,-24(%rsp) - fldl -24(%rsp) - frndint - fstpl -8(%rsp) - - /* - * Restore control word. - */ - fldcw -12(%rsp) - - /* - * Store integral part. - */ - movsd -8(%rsp),%xmm0 - movsd %xmm0,(%rdi) - - /* - * Get fractional part and return it. - */ - fldl -24(%rsp) - fsubl -8(%rsp) - fstpl -8(%rsp) - movsd -8(%rsp),%xmm0 - - ret diff --git a/lib/libm/arch/hppa/s_fabs.c b/lib/libm/arch/hppa/s_fabs.c deleted file mode 100644 index e93635ab07b..00000000000 --- a/lib/libm/arch/hppa/s_fabs.c +++ /dev/null @@ -1,17 +0,0 @@ -/* $OpenBSD: s_fabs.c,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ - -/* - * Written by Miodrag Vallat. Public domain - */ - -#include <sys/cdefs.h> - -double -fabs(double val) -{ - - __asm__ __volatile__("fabs,dbl %0,%0" : "+f" (val)); - return (val); -} - -__weak_alias(fabsl, fabs); diff --git a/lib/libm/arch/hppa64/s_fabs.c b/lib/libm/arch/hppa64/s_fabs.c deleted file mode 100644 index 9ed0ded94ca..00000000000 --- a/lib/libm/arch/hppa64/s_fabs.c +++ /dev/null @@ -1,13 +0,0 @@ -/* $OpenBSD: s_fabs.c,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ - -/* - * Written by Miodrag Vallat. Public domain - */ - -double -fabs(double val) -{ - - __asm__ __volatile__("fabs,dbl %0,%0" : "+f" (val)); - return (val); -} diff --git a/lib/libm/arch/i387/s_fabs.S b/lib/libm/arch/i387/s_fabs.S deleted file mode 100644 index 2922728f426..00000000000 --- a/lib/libm/arch/i387/s_fabs.S +++ /dev/null @@ -1,39 +0,0 @@ -/* $OpenBSD: s_fabs.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * William Jolitz. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <machine/asm.h> - -ENTRY(fabs) - fldl 4(%esp) - fabs - ret diff --git a/lib/libm/arch/i387/s_modf.S b/lib/libm/arch/i387/s_modf.S deleted file mode 100644 index 205c157234e..00000000000 --- a/lib/libm/arch/i387/s_modf.S +++ /dev/null @@ -1,68 +0,0 @@ -/* $OpenBSD: s_modf.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Sean Eric Fagan. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <machine/asm.h> - -/* - * modf(value, iptr): return fractional part of value, and stores the - * integral part into iptr (a pointer to double). - * - * Written by Sean Eric Fagan (sef@kithrup.COM) - * Sun Mar 11 20:27:30 PST 1990 - */ - -/* With CHOP mode on, frndint behaves as TRUNC does. Useful. */ -ENTRY(modf) - pushl %ebp - movl %esp,%ebp - subl $16,%esp - fnstcw -12(%ebp) - movw -12(%ebp),%dx - orw $3072,%dx - movw %dx,-16(%ebp) - fldcw -16(%ebp) - fldl 8(%ebp) - frndint - fstpl -8(%ebp) - fldcw -12(%ebp) - movl 16(%ebp),%eax - movl -8(%ebp),%edx - movl -4(%ebp),%ecx - movl %edx,(%eax) - movl %ecx,4(%eax) - fldl 8(%ebp) - fsubl -8(%ebp) - jmp L1 -L1: - leave - ret diff --git a/lib/libm/arch/m88k/s_fabs.S b/lib/libm/arch/m88k/s_fabs.S deleted file mode 100644 index 494e6200ba5..00000000000 --- a/lib/libm/arch/m88k/s_fabs.S +++ /dev/null @@ -1,46 +0,0 @@ -/* $OpenBSD: s_fabs.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/*- - * Copyright (c) 1996 Nivas Madhur - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by Nivas Madhur. - * 4. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "DEFS.h" - -/* - * Will work only if the argument passed is in IEEE format! - */ - -ENTRY(fabs) - subu r31,r31,16 - st.d r2,r31,0 - ld.bu r4,r31,0 - mask r4,r4,0x7f /* set sign bit to 0 */ - st.b r4,r31,0 - ld.d r2,r31,0 - jmp.n r1 - addu r31,r31,16 diff --git a/lib/libm/arch/mc68881/s_fabs.S b/lib/libm/arch/mc68881/s_fabs.S deleted file mode 100644 index 082d0629c9b..00000000000 --- a/lib/libm/arch/mc68881/s_fabs.S +++ /dev/null @@ -1,47 +0,0 @@ -/* $OpenBSD: s_fabs.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * the Systems Programming Group of the University of Utah Computer - * Science Department. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* fabs - floating absolute value */ - -#include "DEFS.h" - -ENTRY(fabs) - fmoved sp@(4),fp0 - fjnlt L1 - fnegx fp0 -L1: - fmoved fp0,sp@- - movel sp@+,d0 - movel sp@+,d1 - rts diff --git a/lib/libm/arch/mc68881/s_modf.S b/lib/libm/arch/mc68881/s_modf.S deleted file mode 100644 index 038c5b86a54..00000000000 --- a/lib/libm/arch/mc68881/s_modf.S +++ /dev/null @@ -1,50 +0,0 @@ -/* $OpenBSD: s_modf.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/*- - * Copyright (c) 1990 The Regents of the University of California. - * All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * the Systems Programming Group of the University of Utah Computer - * Science Department. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "DEFS.h" - -/* - * double modf(val, iptr) - * returns: xxx and n (in *iptr) where val == n.xxx - */ -ENTRY(modf) - fmoved sp@(4),fp0 - movel sp@(12),a0 - fintrzx fp0,fp1 - fmoved fp1,a0@ - fsubx fp1,fp0 - fmoved fp0,sp@- - movel sp@+,d0 - movel sp@+,d1 - rts diff --git a/lib/libm/arch/mips64/s_fabs.S b/lib/libm/arch/mips64/s_fabs.S deleted file mode 100644 index 622052b8a14..00000000000 --- a/lib/libm/arch/mips64/s_fabs.S +++ /dev/null @@ -1,46 +0,0 @@ -/* $OpenBSD: s_fabs.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/*- - * Copyright (c) 1993 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Ralph Campbell. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <machine/asm.h> - -/* - * fabs(x) - * double x; - * - * Return absolute value of x. - */ -LEAF(fabs, 0) - .set noreorder - j ra - abs.d $f0, $f12 # compute absolute value of x -END(fabs) diff --git a/lib/libm/arch/mips64/s_modf.S b/lib/libm/arch/mips64/s_modf.S deleted file mode 100644 index c48ab11fa4f..00000000000 --- a/lib/libm/arch/mips64/s_modf.S +++ /dev/null @@ -1,71 +0,0 @@ -/* $OpenBSD: s_modf.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/*- - * Copyright (c) 1991, 1993, 1995 - * The Regents of the University of California. All rights reserved. - * - * This code is derived from software contributed to Berkeley by - * Ralph Campbell. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <machine/asm.h> - -/* - * double modf(val, iptr) - * double val, *iptr; - * returns: xxx and n (in *iptr) where val == n.xxx - */ -LEAF(modf, 0) - .set reorder - cfc1 t0, $31 # get the control register - li.d $f2, 4503599627370496e0 # f2 <- 2^52 - - or t1, t0, 0x3 # set rounding mode to round to zero - xor t1, t1, 0x2 # (i.e., 01) - ctc1 t1, $31 - - mov.d $f0, $f12 # f0 <- f12 - abs.d $f4, $f12 # f4 <- |f12| - c.olt.d $f4, $f2 # f4 ? < f2 - bc1f 1f # leave f0 alone if Nan, infinity - # or >=2^52 - c.eq.d $f12,$f4 # was f12 positive ? - add.d $f4,$f2,$f4 # round off to integer - bc1f 2f # No -> will have to negate result - sub.d $f0,$f4,$f2 # Remove fudge factor - j 1f # integer fraction got -2: - sub.d $f0,$f2,$f4 # Remove fudge factor and negate -1: - ctc1 t0, $31 # restore old rounding mode -#ifdef __mips64 - s.d $f0, 0(a1) # save the integer part -#else - s.d $f0, 0(a2) # save the integer part -#endif - sub.d $f0, $f12, $f0 # subtract val - integer part - j ra -END(modf) diff --git a/lib/libm/arch/powerpc/s_fabs.c b/lib/libm/arch/powerpc/s_fabs.c deleted file mode 100644 index cb11c544f7e..00000000000 --- a/lib/libm/arch/powerpc/s_fabs.c +++ /dev/null @@ -1,38 +0,0 @@ -/* $OpenBSD: s_fabs.c,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ - -/* - * Copyright (c) 2002 Theo de Raadt - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. - * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, - * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, - * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY - * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF - * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include <sys/cdefs.h> -#include <math.h> - -double -fabs(double x) -{ - __asm__ __volatile("fabs %0,%1" : "=f"(x) : "f"(x)); - return (x); -} - -__weak_alias(fabsl, fabs); diff --git a/lib/libm/arch/sh/s_fabs.c b/lib/libm/arch/sh/s_fabs.c deleted file mode 100644 index 4be78384eda..00000000000 --- a/lib/libm/arch/sh/s_fabs.c +++ /dev/null @@ -1,40 +0,0 @@ -/* $OpenBSD: s_fabs.c,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/* - * Copyright (c) 2006 Miodrag Vallat. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice, this permission notice, and the disclaimer below - * appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include <sys/cdefs.h> -#if !defined(__SH4__) || defined(__SH4_NOFPU__) -#include <sys/types.h> -#include <machine/ieee.h> -#endif /* !defined(__SH4__) || defined(__SH4_NOFPU__) */ - -#include <math.h> - -double -fabs(double d) -{ -#if defined(__SH4__) && !defined(__SH4_NOFPU__) - __asm__ __volatile__("fabs %0" : "+f" (d)); -#else - struct ieee_double *p = (struct ieee_double *)&d; - - p->dbl_sign = 0; -#endif - return (d); -} - -__weak_alias(fabsl, fabs); diff --git a/lib/libm/arch/sparc/s_fabs.S b/lib/libm/arch/sparc/s_fabs.S deleted file mode 100644 index 793e92c8ec7..00000000000 --- a/lib/libm/arch/sparc/s_fabs.S +++ /dev/null @@ -1,44 +0,0 @@ -/* $OpenBSD: s_fabs.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* fabs - floating absolute value */ - -#include "DEFS.h" - -WEAK_ALIAS(fabsl, fabs) -ENTRY(fabs) - std %o0, [%sp + 32] ! return value => %f0:f1 - ldd [%sp + 32], %f0 ! (via kernel %o0/%o1 slot) - retl - fabss %f0, %f0 ! return absolute value diff --git a/lib/libm/arch/sparc/s_modf.S b/lib/libm/arch/sparc/s_modf.S deleted file mode 100644 index 4b356f7c7c5..00000000000 --- a/lib/libm/arch/sparc/s_modf.S +++ /dev/null @@ -1,186 +0,0 @@ -/* $OpenBSD: s_modf.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "DEFS.h" -#include <machine/fsr.h> - -/* - * double modf(double val, double *iptr) - * - * Returns the fractional part of `val', storing the integer part of - * `val' in *iptr. Both *iptr and the return value have the same sign - * as `val'. - * - * Method: - * - * We use the fpu's normalization hardware to compute the integer portion - * of the double precision argument. Sun IEEE double precision numbers - * have 52 bits of mantissa, 11 bits of exponent, and one bit of sign, - * with the sign occupying bit 31 of word 0, and the exponent bits 30:20 - * of word 0. Thus, values >= 2^52 are by definition integers. - * - * If we take a value that is in the range [+0..2^52) and add 2^52, all - * of the fractional bits fall out and all of the integer bits are summed - * with 2^52. If we then subtract 2^52, we get those integer bits back. - * This must be done with rounding set to `towards 0' or `towards -inf'. - * `Toward -inf' fails when the value is 0 (we get -0 back).... - * - * Note that this method will work anywhere, but is machine dependent in - * various aspects. - * - * Stack usage: - * 4@[%fp - 4] saved %fsr - * 4@[%fp - 8] new %fsr with rounding set to `towards 0' - * 8@[%fp - 16] space for moving between %i and %f registers - * Register usage: - * %i0%i1 double val; - * %l0 scratch - * %l1 sign bit (0x80000000) - * %i2 double *iptr; - * %f2:f3 `magic number' 2^52, in fpu registers - * %f4:f5 double v, in fpu registers - */ - - .align 8 -Lmagic: - .word 0x43300000 ! sign = 0, exponent = 52 + 1023, mantissa = 0 - .word 0 ! (i.e., .double 0r4503599627370496e+00) - -L0: - .word 0 ! 0.0 - .word 0 - -ENTRY(modf) - save %sp, -64-16, %sp - - /* - * First, compute v = abs(val) by clearing sign bit, - * and then set up the fpu registers. This would be - * much easier if we could do alu operations on fpu registers! - */ - sethi %hi(0x80000000), %l1 ! sign bit - andn %i0, %l1, %l0 - st %l0, [%fp - 16] -#ifdef PIC - PICCY_SET(Lmagic, %l0, %o7) - ldd [%l0], %f2 -#else - sethi %hi(Lmagic), %l0 - ldd [%l0 + %lo(Lmagic)], %f2 -#endif - st %i1, [%fp - 12] - ldd [%fp - 16], %f4 ! %f4:f5 = v - - /* - * Is %f4:f5 >= %f2:f3 ? If so, it is all integer bits. - * It is probably less, though. - */ - fcmped %f4, %f2 - nop ! fpop2 delay - fbuge Lbig ! if >= (or unordered), go out - nop - - /* - * v < 2^52, so add 2^52, then subtract 2^52, but do it all - * with rounding set towards zero. We leave any enabled - * traps enabled, but change the rounding mode. This might - * not be so good. Oh well.... - */ - st %fsr, [%fp - 4] ! %l5 = current FSR mode - set FSR_RD, %l3 ! %l3 = rounding direction mask - ld [%fp - 4], %l5 - set FSR_RD_RZ << FSR_RD_SHIFT, %l4 - andn %l5, %l3, %l6 - or %l6, %l4, %l6 ! round towards zero, please - and %l5, %l3, %l5 ! save original rounding mode - st %l6, [%fp - 8] - ld [%fp - 8], %fsr - - faddd %f4, %f2, %f4 ! %f4:f5 += 2^52 - fsubd %f4, %f2, %f4 ! %f4:f5 -= 2^52 - - /* - * Restore %fsr, but leave exceptions accrued. - */ - st %fsr, [%fp - 4] - ld [%fp - 4], %l6 - andn %l6, %l3, %l6 ! %l6 = %fsr & ~FSR_RD; - or %l5, %l6, %l5 ! %l5 |= %l6; - st %l5, [%fp - 4] - ld [%fp - 4], %fsr ! restore %fsr, leaving accrued stuff - - /* - * Now insert the original sign in %f4:f5. - * This is a lot of work, so it is conditional here. - */ - btst %l1, %i0 - be 1f - nop - st %f4, [%fp - 16] - ld [%fp - 16], %g1 - or %l1, %g1, %g1 - st %g1, [%fp - 16] - ld [%fp - 16], %f4 -1: - - /* - * The value in %f4:f5 is now the integer portion of the original - * argument. We need to store this in *ival (%i2), subtract it - * from the original value argument (%i0:i1), and return the result. - */ - std %f4, [%i2] ! *ival = %f4:f5; - std %i0, [%fp - 16] - ldd [%fp - 16], %f0 ! %f0:f1 = val; - fsubd %f0, %f4, %f0 ! %f0:f1 -= %f4:f5; - ret - restore - -Lbig: - /* - * We get here if the original comparison of %f4:f5 (v) to - * %f2:f3 (2^52) came out `greater or unordered'. In this - * case the integer part is the original value, and the - * fractional part is 0. - */ -#ifdef PIC - PICCY_SET(L0, %l0, %o7) - std %f0, [%i2] ! *ival = val; - ldd [%l0], %f0 ! return 0.0; -#else - sethi %hi(L0), %l0 - std %f0, [%i2] ! *ival = val; - ldd [%l0 + %lo(L0)], %f0 ! return 0.0; -#endif - ret - restore diff --git a/lib/libm/arch/sparc64/s_fabs.S b/lib/libm/arch/sparc64/s_fabs.S deleted file mode 100644 index 4f977d8251a..00000000000 --- a/lib/libm/arch/sparc64/s_fabs.S +++ /dev/null @@ -1,42 +0,0 @@ -/* $OpenBSD: s_fabs.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/* $NetBSD: fabs.S,v 1.2 2000/07/23 07:12:22 eeh Exp $ */ -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <machine/asm.h> - -/* fabs - floating absolute value */ - -ENTRY(fabs) - retl - fabsd %f0, %f0 ! return absolute value diff --git a/lib/libm/arch/sparc64/s_modf.S b/lib/libm/arch/sparc64/s_modf.S deleted file mode 100644 index 5241b127bd3..00000000000 --- a/lib/libm/arch/sparc64/s_modf.S +++ /dev/null @@ -1,181 +0,0 @@ -/* $OpenBSD: s_modf.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/* $NetBSD: modf.S,v 1.3 2000/11/01 23:32:41 eeh Exp $ */ - -/* - * Copyright (c) 1992, 1993 - * The Regents of the University of California. All rights reserved. - * - * This software was developed by the Computer Systems Engineering group - * at Lawrence Berkeley Laboratory under DARPA contract BG 91-66 and - * contributed to Berkeley. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include <machine/asm.h> - -#include <machine/fsr.h> - -/* - * double modf(double val, double *iptr) - * - * Returns the fractional part of `val', storing the integer part of - * `val' in *iptr. Both *iptr and the return value have the same sign - * as `val'. - * - * Method: - * - * We use the fpu's normalization hardware to compute the integer portion - * of the double precision argument. Sun IEEE double precision numbers - * have 52 bits of mantissa, 11 bits of exponent, and one bit of sign, - * with the sign occupying bit 31 of word 0, and the exponent bits 30:20 - * of word 0. Thus, values >= 2^52 are by definition integers. - * - * If we take a value that is in the range [+0..2^52) and add 2^52, all - * of the fractional bits fall out and all of the integer bits are summed - * with 2^52. If we then subtract 2^52, we get those integer bits back. - * This must be done with rounding set to `towards 0' or `towards -inf'. - * `Toward -inf' fails when the value is 0 (we get -0 back).... - * - * Note that this method will work anywhere, but is machine dependent in - * various aspects. - * - * Stack usage: - * 4@[%fp + BIAS - 4] saved %fsr - * 4@[%fp + BIAS - 8] new %fsr with rounding set to `towards 0' - * 8@[%fp + BIAS - 16] space for moving between %i and %f registers - * Register usage: - * %f0:f1 double val; - * %l0 scratch - * %l1 sign bit (0x80000000) - * %i1 double *iptr; - * %f2:f3 `magic number' 2^52, in fpu registers - * %f4:f5 double v, in fpu registers - * %f6:f7 double temp. - */ - - .align 8 -Lmagic: - .word 0x43300000 ! sign = 0, exponent = 52 + 1023, mantissa = 0 - .word 0 ! (i.e., .double 0r4503599627370496e+00) - -L0: - .word 0 ! 0.0 - .word 0 - -ENTRY(modf) - save %sp, -CC64FSZ-16, %sp - - /* - * First, compute v = abs(val) - */ - fabsd %f0, %f4 ! %f4:f5 = v - fcmped %fcc1, %f0, %f4 ! %fcc1 = (val == abs(val)) -#ifdef PIC - PICCY_SET(Lmagic, %l0, %o7) - ldd [%l0], %f2 -#else - sethi %hi(Lmagic), %l0 - ldd [%l0 + %lo(Lmagic)], %f2 -#endif - - /* - * Is %f4:f5 >= %f2:f3 ? If so, it is all integer bits. - * It is probably less, though. - */ - fcmped %f4, %f2 - fbuge Lbig ! if >= (or unordered), go out - nop - - /* - * v < 2^52, so add 2^52, then subtract 2^52, but do it all - * with rounding set towards zero. We leave any enabled - * traps enabled, but change the rounding mode. This might - * not be so good. Oh well.... - */ - st %fsr, [%fp + BIAS - 4] ! %l5 = current FSR mode - set FSR_RD, %l3 ! %l3 = rounding direction mask - ld [%fp + BIAS - 4], %l5 - set FSR_RD_RZ << FSR_RD_SHIFT, %l4 - andn %l5, %l3, %l6 - or %l6, %l4, %l6 ! round towards zero, please - and %l5, %l3, %l5 ! save original rounding mode - st %l6, [%fp + BIAS - 8] - ld [%fp + BIAS - 8], %fsr - - faddd %f4, %f2, %f4 ! %f4:f5 += 2^52 - fsubd %f4, %f2, %f4 ! %f4:f5 -= 2^52 - - /* - * Restore %fsr, but leave exceptions accrued. - */ - st %fsr, [%fp + BIAS - 4] - ld [%fp + BIAS - 4], %l6 - andn %l6, %l3, %l6 ! %l6 = %fsr & ~FSR_RD; - or %l5, %l6, %l5 ! %l5 |= %l6; - st %l5, [%fp + BIAS - 4] - ld [%fp + BIAS - 4], %fsr ! restore %fsr, leaving accrued stuff - - /* - * Now insert the original sign in %f4:f5. - * %fcc1 should still have the reults of (val == abs(val)) - * from above, so we use a conditional move on %fcc1 to: - * - * %f4 = (val == abs(val)) ? %f4 : -%f4 - * - */ - fnegd %f4, %f6 - fmovdnz %fcc1, %f6, %f4 -1: - - /* - * The value in %f4:f5 is now the integer portion of the original - * argument. We need to store this in *ival (%i1), subtract it - * from the original value argument (%d0), and return the result. - */ - std %f4, [%i1] ! *ival = %f4:f5; - fsubd %f0, %f4, %f0 ! %f0:f1 -= %f4:f5; - ret - restore - -Lbig: - /* - * We get here if the original comparison of %f4:f5 (v) to - * %f2:f3 (2^52) came out `greater or unordered'. In this - * case the integer part is the original value, and the - * fractional part is 0. - */ -#ifdef PIC - PICCY_SET(L0, %l0, %o7) - std %f0, [%i1] ! *ival = val; - ldd [%l0], %f0 ! return 0.0; -#else - sethi %hi(L0), %l0 - std %f0, [%i1] ! *ival = val; - ldd [%l0 + %lo(L0)], %f0 ! return 0.0; -#endif - ret - restore - diff --git a/lib/libm/arch/vax/n_fabs.S b/lib/libm/arch/vax/n_fabs.S deleted file mode 100644 index 16c57e62a10..00000000000 --- a/lib/libm/arch/vax/n_fabs.S +++ /dev/null @@ -1,41 +0,0 @@ -/* $OpenBSD: n_fabs.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/* - * Copyright (c) 1983, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* fabs - floating absolute value */ - -#include "DEFS.h" - -WEAK_ALIAS(fabsl,fabs) -ENTRY(fabs, 0) - movd 4(ap),r0 - bgeq 1f - mnegd r0,r0 -1: - ret diff --git a/lib/libm/arch/vax/n_modf.S b/lib/libm/arch/vax/n_modf.S deleted file mode 100644 index 840c0b7d084..00000000000 --- a/lib/libm/arch/vax/n_modf.S +++ /dev/null @@ -1,54 +0,0 @@ -/* $OpenBSD: n_modf.S,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/* - * Copyright (c) 1983, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* - * double modf (value, iptr) - * double value, *iptr; - * - * Modf returns the fractional part of "value", - * and stores the integer part indirectly through "iptr". - */ - -#include "DEFS.h" - -ENTRY(modf, R2) - cvtdl 4(ap),r2 - bvs 0f - cvtld r2,*12(ap) - subd3 *12(ap),4(ap),r0 - ret -0: - emodd 4(ap),$0,$0f1.0,r2,r0 - bvs 1f # integer overflow - cvtld r2,*12(ap) - ret -1: - subd3 r0,4(ap),*12(ap) - ret diff --git a/lib/libm/man/frexp.3 b/lib/libm/man/frexp.3 deleted file mode 100644 index a8b00828925..00000000000 --- a/lib/libm/man/frexp.3 +++ /dev/null @@ -1,95 +0,0 @@ -.\" $OpenBSD: frexp.3,v 1.1 2011/07/08 19:21:42 martynas Exp $ -.\" -.\" Copyright (c) 1991, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" This code is derived from software contributed to Berkeley by -.\" the American National Standards Committee X3, on Information -.\" Processing Systems. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.Dd $Mdocdate: July 8 2011 $ -.Dt FREXP 3 -.Os -.Sh NAME -.Nm frexp , -.Nm frexpf , -.Nm frexpl -.Nd convert floating-point number to fractional and integral components -.Sh SYNOPSIS -.Fd #include <math.h> -.Ft double -.Fn frexp "double value" "int *exp" -.Ft float -.Fn frexpf "float value" "int *exp" -.Ft long double -.Fn frexpl "long double value" "int *exp" -.Sh DESCRIPTION -The -.Fn frexp -function breaks a floating-point number into a normalized -fraction and an integral power of 2. -It stores the integer in the -.Li int -object pointed to by -.Fa exp . -The -.Fn frexpf -function is a single precision version of -.Fn frexp . -The -.Fn frexpl -function is an extended precision version of -.Fn frexp . -.Sh RETURN VALUES -The -.Fn frexp , -.Fn frexpf -and -.Fn frexpl -functions return the value -.Li x , -such that -.Li x -is a -.Li double -with magnitude in the interval [1/2,\ 1) or zero, and -.Fa value -equals -.Li x -times 2 raised to the power -.Fa *exp . -If -.Fa value -is zero, both parts of the result are zero. -.Sh SEE ALSO -.Xr ldexp 3 , -.Xr modf 3 -.Sh STANDARDS -The -.Fn frexp -function conforms to -.St -ansiC . diff --git a/lib/libm/man/modf.3 b/lib/libm/man/modf.3 deleted file mode 100644 index 243f17cc662..00000000000 --- a/lib/libm/man/modf.3 +++ /dev/null @@ -1,84 +0,0 @@ -.\" $OpenBSD: modf.3,v 1.1 2011/07/08 19:21:42 martynas Exp $ -.\" -.\" Copyright (c) 1991, 1993 -.\" The Regents of the University of California. All rights reserved. -.\" -.\" This code is derived from software contributed to Berkeley by -.\" the American National Standards Committee X3, on Information -.\" Processing Systems. -.\" -.\" Redistribution and use in source and binary forms, with or without -.\" modification, are permitted provided that the following conditions -.\" are met: -.\" 1. Redistributions of source code must retain the above copyright -.\" notice, this list of conditions and the following disclaimer. -.\" 2. Redistributions in binary form must reproduce the above copyright -.\" notice, this list of conditions and the following disclaimer in the -.\" documentation and/or other materials provided with the distribution. -.\" 3. Neither the name of the University nor the names of its contributors -.\" may be used to endorse or promote products derived from this software -.\" without specific prior written permission. -.\" -.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND -.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE -.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS -.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) -.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY -.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF -.\" SUCH DAMAGE. -.\" -.Dd $Mdocdate: July 8 2011 $ -.Dt MODF 3 -.Os -.Sh NAME -.Nm modf , -.Nm modff , -.Nm modfl -.Nd extract signed integral and fractional values from floating-point number -.Sh SYNOPSIS -.Fd #include <math.h> -.Ft double -.Fn modf "double value" "double *iptr" -.Ft float -.Fn modff "float value" "float *iptr" -.Ft long double -.Fn modfl "long double value" "long double *iptr" -.Sh DESCRIPTION -The -.Fn modf -function breaks the argument -.Fa value -into integral and fractional parts, each of which has the -same sign as the argument. -It stores the integral part as a -.Li double -in the object pointed to by -.Fa iptr . -The -.Fn modff -function is a single precision version of -.Fn modf . -The -.Fn modfl -function is an extended precision version of -.Fn modf . -.Sh RETURN VALUES -The -.Fn modf , -.Fn modff -and -.Fn modfl -functions return the signed fractional part of -.Fa value . -.Sh SEE ALSO -.Xr frexp 3 , -.Xr ldexp 3 -.Sh STANDARDS -The -.Fn modf -function conforms to -.St -ansiC . diff --git a/lib/libm/noieee_src/n_frexp.c b/lib/libm/noieee_src/n_frexp.c deleted file mode 100644 index b0615647edb..00000000000 --- a/lib/libm/noieee_src/n_frexp.c +++ /dev/null @@ -1,69 +0,0 @@ -/* $OpenBSD: n_frexp.c,v 1.1 2011/07/08 19:21:42 martynas Exp $ */ -/*- - * Copyright (c) 1991, 1993 - * The Regents of the University of California. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -/* LINTLIBRARY */ - -#include <sys/cdefs.h> -#include <sys/types.h> -#include <math.h> - -double -frexp(value, eptr) - double value; - int *eptr; -{ - union { - double v; - struct { - u_int u_mant1 : 7; - u_int u_exp : 8; - u_int u_sign : 1; - u_int u_mant2 : 16; - u_int u_mant3 : 32; - } s; - } u; - - if (value) { - u.v = value; - *eptr = u.s.u_exp - 128; - u.s.u_exp = 128; - return(u.v); - } else { - *eptr = 0; - return((double)0); - } -} - -#ifdef lint -/* PROTOLIB1 */ -long double frexpl(long double, int *); -#else /* lint */ -__weak_alias(frexpl, frexp); -#endif /* lint */ diff --git a/lib/libm/shlib_version b/lib/libm/shlib_version index 9c1551636c5..5b844bbf422 100644 --- a/lib/libm/shlib_version +++ b/lib/libm/shlib_version @@ -1,2 +1,2 @@ -major=6 +major=7 minor=0 diff --git a/lib/libm/src/n_fabs.c b/lib/libm/src/n_fabs.c deleted file mode 100644 index 5f30645ff6e..00000000000 --- a/lib/libm/src/n_fabs.c +++ /dev/null @@ -1 +0,0 @@ -/* empty file for lint to chew on */ diff --git a/lib/libm/src/n_modf.c b/lib/libm/src/n_modf.c deleted file mode 100644 index 5f30645ff6e..00000000000 --- a/lib/libm/src/n_modf.c +++ /dev/null @@ -1 +0,0 @@ -/* empty file for lint to chew on */ |