Sat Apr 27 17:20:36 2013 UTC ()
Move scalbnl back to s_scalbln.c to match the assembler implementations.


(joerg)
diff -r1.4 -r1.5 src/lib/libm/src/s_scalbln.c
diff -r1.4 -r1.5 src/lib/libm/src/s_scalbnl.c

cvs diff -r1.4 -r1.5 src/lib/libm/src/Attic/s_scalbln.c (expand / switch to unified diff)

--- src/lib/libm/src/Attic/s_scalbln.c 2013/04/27 17:19:47 1.4
+++ src/lib/libm/src/Attic/s_scalbln.c 2013/04/27 17:20:36 1.5
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: s_scalbln.c,v 1.4 2013/04/27 17:19:47 joerg Exp $ */ 1/* $NetBSD: s_scalbln.c,v 1.5 2013/04/27 17:20:36 joerg Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2004 David Schultz <das@FreeBSD.ORG> 4 * Copyright (c) 2004 David Schultz <das@FreeBSD.ORG>
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * Redistribution and use in source and binary forms, with or without 7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions 8 * modification, are permitted provided that the following conditions
9 * are met: 9 * are met:
10 * 1. Redistributions of source code must retain the above copyright 10 * 1. Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer. 11 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright 12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in the 13 * notice, this list of conditions and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution. 14 * documentation and/or other materials provided with the distribution.
@@ -20,27 +20,27 @@ @@ -20,27 +20,27 @@
20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE. 26 * SUCH DAMAGE.
27 */ 27 */
28 28
29#include <sys/cdefs.h> 29#include <sys/cdefs.h>
30#if 0 30#if 0
31__FBSDID("$FreeBSD: src/lib/msun/src/s_scalbln.c,v 1.2 2005/03/07 04:57:50 das Exp $"); 31__FBSDID("$FreeBSD: src/lib/msun/src/s_scalbln.c,v 1.2 2005/03/07 04:57:50 das Exp $");
32#else 32#else
33__RCSID("$NetBSD: s_scalbln.c,v 1.4 2013/04/27 17:19:47 joerg Exp $"); 33__RCSID("$NetBSD: s_scalbln.c,v 1.5 2013/04/27 17:20:36 joerg Exp $");
34#endif 34#endif
35 35
36#include "namespace.h" 36#include "namespace.h"
37 37
38#include <limits.h> 38#include <limits.h>
39#include <math.h> 39#include <math.h>
40 40
41__weak_alias(scalbln, _scalbln) 41__weak_alias(scalbln, _scalbln)
42double 42double
43scalbln (double x, long n) 43scalbln (double x, long n)
44{ 44{
45 45
46 if (n > INT_MAX) 46 if (n > INT_MAX)
@@ -52,26 +52,24 @@ scalbln (double x, long n) @@ -52,26 +52,24 @@ scalbln (double x, long n)
52 52
53__weak_alias(scalblnf, _scalblnf) 53__weak_alias(scalblnf, _scalblnf)
54float 54float
55scalblnf (float x, long n) 55scalblnf (float x, long n)
56{ 56{
57 57
58 if (n > INT_MAX) 58 if (n > INT_MAX)
59 n = INT_MAX; 59 n = INT_MAX;
60 else if (n < INT_MIN) 60 else if (n < INT_MIN)
61 n = INT_MIN; 61 n = INT_MIN;
62 return (scalbnf(x, n)); 62 return (scalbnf(x, n));
63} 63}
64 64
65#ifndef _LP64 
66__weak_alias(scalblnl, _scalblnl) 65__weak_alias(scalblnl, _scalblnl)
67 66
68long double 67long double
69scalblnl (long double x, long n) 68scalblnl (long double x, long n)
70{ 69{
71 if (n > INT_MAX) 70 if (n > INT_MAX)
72 n = INT_MAX; 71 n = INT_MAX;
73 else if (n < INT_MIN) 72 else if (n < INT_MIN)
74 n = INT_MIN; 73 n = INT_MIN;
75 return (scalbnl(x, n)); 74 return (scalbnl(x, n));
76} 75}
77#endif 

cvs diff -r1.4 -r1.5 src/lib/libm/src/s_scalbnl.c (expand / switch to unified diff)

--- src/lib/libm/src/s_scalbnl.c 2013/02/11 02:45:15 1.4
+++ src/lib/libm/src/s_scalbnl.c 2013/04/27 17:20:36 1.5
@@ -1,14 +1,14 @@ @@ -1,14 +1,14 @@
1/* $NetBSD: s_scalbnl.c,v 1.4 2013/02/11 02:45:15 christos Exp $ */ 1/* $NetBSD: s_scalbnl.c,v 1.5 2013/04/27 17:20:36 joerg Exp $ */
2 2
3/*- 3/*-
4 * Copyright (c) 2011 The NetBSD Foundation, Inc. 4 * Copyright (c) 2011 The NetBSD Foundation, Inc.
5 * All rights reserved. 5 * All rights reserved.
6 * 6 *
7 * This code is derived from software contributed to The NetBSD Foundation 7 * This code is derived from software contributed to The NetBSD Foundation
8 * by Joerg Sonnenberger. 8 * by Joerg Sonnenberger.
9 * 9 *
10 * Redistribution and use in source and binary forms, with or without 10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions 11 * modification, are permitted provided that the following conditions
12 * are met: 12 * are met:
13 * 1. Redistributions of source code must retain the above copyright 13 * 1. Redistributions of source code must retain the above copyright
14 * notice, this list of conditions and the following disclaimer. 14 * notice, this list of conditions and the following disclaimer.
@@ -20,27 +20,27 @@ @@ -20,27 +20,27 @@
20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 * POSSIBILITY OF SUCH DAMAGE. 29 * POSSIBILITY OF SUCH DAMAGE.
30 */ 30 */
31 31
32#include <sys/cdefs.h> 32#include <sys/cdefs.h>
33__RCSID("$NetBSD: s_scalbnl.c,v 1.4 2013/02/11 02:45:15 christos Exp $"); 33__RCSID("$NetBSD: s_scalbnl.c,v 1.5 2013/04/27 17:20:36 joerg Exp $");
34 34
35#include "namespace.h" 35#include "namespace.h"
36 36
37#include <float.h> 37#include <float.h>
38#include <math.h> 38#include <math.h>
39#include <machine/ieee.h> 39#include <machine/ieee.h>
40 40
41#ifdef __HAVE_LONG_DOUBLE 41#ifdef __HAVE_LONG_DOUBLE
42 42
43#ifndef _LP64 43#ifndef _LP64
44__strong_alias(_scalbnl, _scalblnl) 44__strong_alias(_scalbnl, _scalblnl)
45#endif 45#endif
46 46
@@ -48,34 +48,26 @@ __weak_alias(scalbnl, _scalbnl) @@ -48,34 +48,26 @@ __weak_alias(scalbnl, _scalbnl)
48__weak_alias(scalblnl, _scalblnl) 48__weak_alias(scalblnl, _scalblnl)
49__weak_alias(ldexpl, _scalblnl);  49__weak_alias(ldexpl, _scalblnl);
50 50
51#if LDBL_MANT_DIG == 64 51#if LDBL_MANT_DIG == 64
52#define FROM_UNDERFLOW 0x1p65L 52#define FROM_UNDERFLOW 0x1p65L
53#define TO_UNDERFLOW 0x1p-65L 53#define TO_UNDERFLOW 0x1p-65L
54#elif LDBL_MANT_DIG == 113 54#elif LDBL_MANT_DIG == 113
55#define FROM_UNDERFLOW 0x1p114L 55#define FROM_UNDERFLOW 0x1p114L
56#define TO_UNDERFLOW 0x1p-114L 56#define TO_UNDERFLOW 0x1p-114L
57#else 57#else
58#error Unsupported long double format 58#error Unsupported long double format
59#endif 59#endif
60 60
61#ifdef _LP64 
62long double 
63scalbnl(long double x, int n) 
64{ 
65 return scalblnl(x, n); 
66} 
67#endif 
68 
69long double 61long double
70scalblnl(long double x, long n) 62scalblnl(long double x, long n)
71{ 63{
72 union ieee_ext_u u; 64 union ieee_ext_u u;
73 65
74 /* Trivial cases first */ 66 /* Trivial cases first */
75 if (n == 0 || x == 0.0L) 67 if (n == 0 || x == 0.0L)
76 return x; 68 return x;
77 69
78 u.extu_ld = x; 70 u.extu_ld = x;
79 71
80 /* NaN and infinite don't change either, but trigger exception */ 72 /* NaN and infinite don't change either, but trigger exception */
81 if (u.extu_ext.ext_exp == EXT_EXP_INFNAN) 73 if (u.extu_ext.ext_exp == EXT_EXP_INFNAN)