diff options
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/alpha/gen/Makefile.inc | 2 | ||||
-rw-r--r-- | lib/libc/alpha/gen/fpsetsticky.c | 62 | ||||
-rw-r--r-- | lib/libc/amd64/gen/Makefile.inc | 2 | ||||
-rw-r--r-- | lib/libc/amd64/gen/fpsetsticky.c | 8 | ||||
-rw-r--r-- | lib/libc/powerpc/gen/Makefile.inc | 2 | ||||
-rw-r--r-- | lib/libc/powerpc/gen/fpsetsticky.c | 57 | ||||
-rw-r--r-- | lib/libc/softfloat/Makefile.inc | 2 | ||||
-rw-r--r-- | lib/libc/sparc64/gen/Makefile.inc | 2 | ||||
-rw-r--r-- | lib/libc/sparc64/gen/fpsetsticky.c | 30 |
9 files changed, 5 insertions, 162 deletions
diff --git a/lib/libc/alpha/gen/Makefile.inc b/lib/libc/alpha/gen/Makefile.inc index 96a92ce..8f8caf8 100644 --- a/lib/libc/alpha/gen/Makefile.inc +++ b/lib/libc/alpha/gen/Makefile.inc @@ -2,7 +2,7 @@ SRCS+= _setjmp.S _set_tp.c fabs.S infinity.c ldexp.c modf.c setjmp.S SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \ - fpsetround.c fpsetsticky.c + fpsetround.c SRCS+= sigsetjmp.S SRCS+= __divqu.S __divq.S __divlu.S __divl.S diff --git a/lib/libc/alpha/gen/fpsetsticky.c b/lib/libc/alpha/gen/fpsetsticky.c deleted file mode 100644 index 698109f..0000000 --- a/lib/libc/alpha/gen/fpsetsticky.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 1995 Christopher G. Demetriou - * 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 Christopher G. Demetriou - * for the NetBSD Project. - * 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. - * - * $NetBSD: fpsetsticky.c,v 1.1 1995/04/29 05:11:04 cgd Exp $ - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <ieeefp.h> -#include <machine/fpu.h> - -fp_except_t -fpsetsticky(sticky) - fp_except_t sticky; -{ - union { - double fpcrval; - u_int64_t intval; - } u; - u_int64_t old, new; - - GET_FPCR(u.fpcrval); - - old = u.intval; - new = old & ~ (IEEE_STATUS_MASK << IEEE_STATUS_TO_FPCR_SHIFT); - new |= ((sticky << IEEE_STATUS_TO_EXCSUM_SHIFT) & IEEE_STATUS_MASK) - << IEEE_STATUS_TO_FPCR_SHIFT; - u.intval = new; - SET_FPCR(u.fpcrval); - - return (((old >> IEEE_STATUS_TO_FPCR_SHIFT) & IEEE_STATUS_MASK) - >> IEEE_STATUS_TO_EXCSUM_SHIFT); -} diff --git a/lib/libc/amd64/gen/Makefile.inc b/lib/libc/amd64/gen/Makefile.inc index 3d28e66..38fe7e1 100644 --- a/lib/libc/amd64/gen/Makefile.inc +++ b/lib/libc/amd64/gen/Makefile.inc @@ -5,4 +5,4 @@ SRCS+= _setjmp.S _set_tp.c rfork_thread.S setjmp.S sigsetjmp.S \ fabs.S modf.S \ infinity.c ldexp.c makecontext.c signalcontext.c \ flt_rounds.c fpgetmask.c fpsetmask.c fpgetprec.c fpsetprec.c \ - fpgetround.c fpsetround.c fpgetsticky.c fpsetsticky.c + fpgetround.c fpsetround.c fpgetsticky.c diff --git a/lib/libc/amd64/gen/fpsetsticky.c b/lib/libc/amd64/gen/fpsetsticky.c deleted file mode 100644 index 95b1655..0000000 --- a/lib/libc/amd64/gen/fpsetsticky.c +++ /dev/null @@ -1,8 +0,0 @@ -/* $FreeBSD$ */ -#define __IEEEFP_NOINLINES__ 1 -#include <ieeefp.h> - -fp_except_t fpsetsticky(fp_except_t m) -{ - return (__fpsetsticky(m)); -} diff --git a/lib/libc/powerpc/gen/Makefile.inc b/lib/libc/powerpc/gen/Makefile.inc index 4f8f0ea..4b381c3 100644 --- a/lib/libc/powerpc/gen/Makefile.inc +++ b/lib/libc/powerpc/gen/Makefile.inc @@ -1,7 +1,7 @@ # $FreeBSD$ SRCS += _ctx_start.S fabs.S flt_rounds.c fpgetmask.c fpgetround.c \ - fpgetsticky.c fpsetmask.c fpsetround.c fpsetsticky.c \ + fpgetsticky.c fpsetmask.c fpsetround.c \ infinity.c ldexp.c makecontext.c modf.c _setjmp.S \ setjmp.S sigsetjmp.S signalcontext.c syncicache.c \ _set_tp.c diff --git a/lib/libc/powerpc/gen/fpsetsticky.c b/lib/libc/powerpc/gen/fpsetsticky.c deleted file mode 100644 index d464ca8..0000000 --- a/lib/libc/powerpc/gen/fpsetsticky.c +++ /dev/null @@ -1,57 +0,0 @@ -/* $NetBSD: fpsetsticky.c,v 1.3 2002/01/13 21:45:48 thorpej Exp $ */ - -/* - * Copyright (c) 1999 The NetBSD Foundation, Inc. - * All rights reserved. - * - * This code is derived from software contributed to The NetBSD Foundation - * by Dan Winship. - * - * 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 NetBSD - * Foundation, Inc. and its contributors. - * 4. Neither the name of The NetBSD Foundation 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 NETBSD FOUNDATION, INC. 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 FOUNDATION 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 <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <sys/types.h> -#include <ieeefp.h> - -fp_except_t -fpsetsticky(fp_except_t mask) -{ - u_int64_t fpscr; - fp_rnd_t old; - - __asm__ __volatile("mffs %0" : "=f"(fpscr)); - old = (fp_except_t)((fpscr >> 25) & 0x1f); - fpscr = (fpscr & 0xc1ffffff) | (mask << 25); - __asm__ __volatile("mtfsf 0xff,%0" :: "f"(fpscr)); - return (old); -} diff --git a/lib/libc/softfloat/Makefile.inc b/lib/libc/softfloat/Makefile.inc index f984ae2..5e40916 100644 --- a/lib/libc/softfloat/Makefile.inc +++ b/lib/libc/softfloat/Makefile.inc @@ -11,7 +11,7 @@ CFLAGS+= -DSOFTFLOAT_FOR_GCC SRCS+= softfloat.c SRCS+= fpgetround.c fpsetround.c fpgetmask.c fpsetmask.c \ - fpgetsticky.c fpsetsticky.c + fpgetsticky.c SRCS+= eqsf2.c nesf2.c gtsf2.c gesf2.c ltsf2.c lesf2.c negsf2.c \ eqdf2.c nedf2.c gtdf2.c gedf2.c ltdf2.c ledf2.c negdf2.c \ diff --git a/lib/libc/sparc64/gen/Makefile.inc b/lib/libc/sparc64/gen/Makefile.inc index c228fc0..979c182 100644 --- a/lib/libc/sparc64/gen/Makefile.inc +++ b/lib/libc/sparc64/gen/Makefile.inc @@ -1,6 +1,6 @@ # $FreeBSD$ SRCS+= _ctx_start.S _setjmp.S fabs.S fixunsdfsi.S flt_rounds.c fpgetmask.c \ - fpgetround.c fpgetsticky.c fpsetmask.c fpsetround.c fpsetsticky.c \ + fpgetround.c fpgetsticky.c fpsetmask.c fpsetround.c \ infinity.c ldexp.c makecontext.c modf.S \ signalcontext.c setjmp.S sigsetjmp.S _set_tp.c diff --git a/lib/libc/sparc64/gen/fpsetsticky.c b/lib/libc/sparc64/gen/fpsetsticky.c deleted file mode 100644 index 61d3d1b..0000000 --- a/lib/libc/sparc64/gen/fpsetsticky.c +++ /dev/null @@ -1,30 +0,0 @@ -/* $NetBSD: fpsetsticky.c,v 1.2 2002/01/13 21:45:51 thorpej Exp $ */ - -/* - * Written by J.T. Conklin, Apr 10, 1995 - * Public domain. - */ - -#include <sys/cdefs.h> -__FBSDID("$FreeBSD$"); - -#include <machine/fsr.h> -#include <ieeefp.h> - -fp_except_t -fpsetsticky(sticky) - fp_except_t sticky; -{ - unsigned int old; - unsigned int new; - - __asm__("st %%fsr,%0" : "=m" (old)); - - new = old; - new &= ~FSR_AEXC_MASK; - new |= FSR_AEXC(sticky & FSR_EXC_MASK); - - __asm__("ld %0,%%fsr" : : "m" (new)); - - return (FSR_GET_AEXC(old)); -} |