diff options
author | Martynas Venckus <martynas@cvs.openbsd.org> | 2008-07-25 08:00:02 +0000 |
---|---|---|
committer | Martynas Venckus <martynas@cvs.openbsd.org> | 2008-07-25 08:00:02 +0000 |
commit | 388086a40831978adb631cb9e647c852d4964d31 (patch) | |
tree | de547e786abf0c6d42e17d7cb19c23880c9fc4ad /lib/libc/arch/mips64 | |
parent | ae2afe8806d268c37f4053755402a87d0b0f279b (diff) |
fix apps that use isinff, isnanf; use ieee 754 mi code, as all
other ieee fp archs do; pointed out by theo. tested by theo
Diffstat (limited to 'lib/libc/arch/mips64')
-rw-r--r-- | lib/libc/arch/mips64/gen/Makefile.inc | 4 | ||||
-rw-r--r-- | lib/libc/arch/mips64/gen/isinf.S | 58 | ||||
-rw-r--r-- | lib/libc/arch/mips64/gen/isnan.S | 59 |
3 files changed, 2 insertions, 119 deletions
diff --git a/lib/libc/arch/mips64/gen/Makefile.inc b/lib/libc/arch/mips64/gen/Makefile.inc index 46d871e0704..3063795496a 100644 --- a/lib/libc/arch/mips64/gen/Makefile.inc +++ b/lib/libc/arch/mips64/gen/Makefile.inc @@ -1,6 +1,6 @@ -# $OpenBSD: Makefile.inc,v 1.4 2008/07/24 09:31:06 martynas Exp $ +# $OpenBSD: Makefile.inc,v 1.5 2008/07/25 08:00:01 martynas Exp $ -SRCS+= _setjmp.S fabs.S infinity.c isinf.S isnan.S ldexp.S modf.S nan.c +SRCS+= _setjmp.S fabs.S infinity.c ldexp.S modf.S nan.c SRCS+= flt_rounds.c fpgetmask.c fpgetround.c fpgetsticky.c fpsetmask.c \ fpsetround.c fpsetsticky.c SRCS+= setjmp.S sigsetjmp.S diff --git a/lib/libc/arch/mips64/gen/isinf.S b/lib/libc/arch/mips64/gen/isinf.S deleted file mode 100644 index 5e5321406f0..00000000000 --- a/lib/libc/arch/mips64/gen/isinf.S +++ /dev/null @@ -1,58 +0,0 @@ -/* $OpenBSD: isinf.S,v 1.5 2008/07/24 09:31:06 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> - -#define DEXP_INF 0x7ff - -/* - * int - * __isinf(double x) - * - * Return true if x is infinity. - */ -LEAF(__isinf, 0) - .set noreorder - dmfc1 t3, $f12 # get LSW of x - dsll t1, t3, 1 # get x exponent - dsrl t1, t1, 64 - 11 - bne t1, DEXP_INF, 1f # is it a finite number? - sll t2, t3, 64 - 52 # get x fraction - bne t2, zero, 1f # is it a NAN? - nop - j ra - li v0, 1 # x is infinity -1: - j ra - move v0, zero # x is NOT infinity -END(__isinf) diff --git a/lib/libc/arch/mips64/gen/isnan.S b/lib/libc/arch/mips64/gen/isnan.S deleted file mode 100644 index 12487675cbe..00000000000 --- a/lib/libc/arch/mips64/gen/isnan.S +++ /dev/null @@ -1,59 +0,0 @@ -/* $OpenBSD: isnan.S,v 1.1 2008/07/24 09:31:06 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> - -#define DEXP_INF 0x7ff - -/* - * int - * __isnan(double x) - * - * Return true if x is a NAN. - */ -LEAF(__isnan, 0) - .set noreorder - dmfc1 t3, $f12 # get x - dsll t1, t3, 1 # get x exponent - dsrl t1, t1, 64 - 11 - bne t1, DEXP_INF, 1f # is it a finite number? - sll t2, t3, 64 - 52 # get x fraction - beq t2, zero, 1f # its infinity - nop - - j ra - li v0, 1 # x is a NAN -1: - j ra - move v0, zero # x is NOT a NAN -END(__isnan) |