svn commit: r239529 - stable/9/lib/msun/src

Dimitry Andric dim at FreeBSD.org
Tue Aug 21 19:45:49 UTC 2012


Author: dim
Date: Tue Aug 21 19:45:48 2012
New Revision: 239529
URL: http://svn.freebsd.org/changeset/base/239529

Log:
  MFC r239192:
  
    Change a few extern inline functions in libm to static inline, since
    they need to refer to static constants, which C99 does not allow for
    extern inline functions.
  
    While here, change a comment in e_rem_pio2f.c to mention the correct
    number of bits.
  
    Reviewed by:	bde
  
  MFC r239195:
  
    Add __always_inline to __ieee754_rem_pio2() and __ieee754_rem_pio2f(),
    since some older versions of gcc refuse to inline these otherwise.
  
    Requested by:	bde

Modified:
  stable/9/lib/msun/src/e_rem_pio2.c
  stable/9/lib/msun/src/e_rem_pio2f.c
  stable/9/lib/msun/src/k_cosf.c
  stable/9/lib/msun/src/k_sinf.c
  stable/9/lib/msun/src/k_tanf.c
  stable/9/lib/msun/src/math_private.h
Directory Properties:
  stable/9/lib/msun/   (props changed)

Modified: stable/9/lib/msun/src/e_rem_pio2.c
==============================================================================
--- stable/9/lib/msun/src/e_rem_pio2.c	Tue Aug 21 19:45:19 2012	(r239528)
+++ stable/9/lib/msun/src/e_rem_pio2.c	Tue Aug 21 19:45:48 2012	(r239529)
@@ -48,10 +48,10 @@ pio2_2t =  2.02226624879595063154e-21, /
 pio2_3  =  2.02226624871116645580e-21, /* 0x3BA3198A, 0x2E000000 */
 pio2_3t =  8.47842766036889956997e-32; /* 0x397B839A, 0x252049C1 */
 
-#ifndef INLINE_REM_PIO2
-extern
+#ifdef INLINE_REM_PIO2
+static __inline __always_inline
 #endif
-__inline int
+int
 __ieee754_rem_pio2(double x, double *y)
 {
 	double z,w,t,r,fn;

Modified: stable/9/lib/msun/src/e_rem_pio2f.c
==============================================================================
--- stable/9/lib/msun/src/e_rem_pio2f.c	Tue Aug 21 19:45:19 2012	(r239528)
+++ stable/9/lib/msun/src/e_rem_pio2f.c	Tue Aug 21 19:45:48 2012	(r239529)
@@ -31,7 +31,7 @@ __FBSDID("$FreeBSD$");
 
 /*
  * invpio2:  53 bits of 2/pi
- * pio2_1:   first  33 bit of pi/2
+ * pio2_1:   first 25 bits of pi/2
  * pio2_1t:  pi/2 - pio2_1
  */
 
@@ -40,10 +40,10 @@ invpio2 =  6.36619772367581382433e-01, /
 pio2_1  =  1.57079631090164184570e+00, /* 0x3FF921FB, 0x50000000 */
 pio2_1t =  1.58932547735281966916e-08; /* 0x3E5110b4, 0x611A6263 */
 
-#ifndef INLINE_REM_PIO2F
-extern
+#ifdef INLINE_REM_PIO2F
+static __inline __always_inline
 #endif
-__inline int
+int
 __ieee754_rem_pio2f(float x, double *y)
 {
 	double w,r,fn;

Modified: stable/9/lib/msun/src/k_cosf.c
==============================================================================
--- stable/9/lib/msun/src/k_cosf.c	Tue Aug 21 19:45:19 2012	(r239528)
+++ stable/9/lib/msun/src/k_cosf.c	Tue Aug 21 19:45:48 2012	(r239529)
@@ -30,10 +30,10 @@ C1  =  0x155553e1053a42.0p-57,	/*  0.041
 C2  = -0x16c087e80f1e27.0p-62,	/* -0.00138867637746099294692 */
 C3  =  0x199342e0ee5069.0p-68;	/*  0.0000243904487962774090654 */
 
-#ifndef INLINE_KERNEL_COSDF
-extern
+#ifdef INLINE_KERNEL_COSDF
+static __inline
 #endif
-__inline float
+float
 __kernel_cosdf(double x)
 {
 	double r, w, z;

Modified: stable/9/lib/msun/src/k_sinf.c
==============================================================================
--- stable/9/lib/msun/src/k_sinf.c	Tue Aug 21 19:45:19 2012	(r239528)
+++ stable/9/lib/msun/src/k_sinf.c	Tue Aug 21 19:45:48 2012	(r239529)
@@ -29,10 +29,10 @@ S2 =  0x111110896efbb2.0p-59,	/*  0.0083
 S3 = -0x1a00f9e2cae774.0p-65,	/* -0.000198393348360966317347 */
 S4 =  0x16cd878c3b46a7.0p-71;	/*  0.0000027183114939898219064 */
 
-#ifndef INLINE_KERNEL_SINDF
-extern
+#ifdef INLINE_KERNEL_SINDF
+static __inline
 #endif
-__inline float
+float
 __kernel_sindf(double x)
 {
 	double r, s, w, z;

Modified: stable/9/lib/msun/src/k_tanf.c
==============================================================================
--- stable/9/lib/msun/src/k_tanf.c	Tue Aug 21 19:45:19 2012	(r239528)
+++ stable/9/lib/msun/src/k_tanf.c	Tue Aug 21 19:45:48 2012	(r239529)
@@ -32,10 +32,10 @@ T[] =  {
   0x1362b9bf971bcd.0p-59,	/* 0.00946564784943673166728 */
 };
 
-#ifndef INLINE_KERNEL_TANDF
-extern
+#ifdef INLINE_KERNEL_TANDF
+static __inline
 #endif
-__inline float
+float
 __kernel_tandf(double x, int iy)
 {
 	double z,r,w,s,t,u;

Modified: stable/9/lib/msun/src/math_private.h
==============================================================================
--- stable/9/lib/msun/src/math_private.h	Tue Aug 21 19:45:19 2012	(r239528)
+++ stable/9/lib/msun/src/math_private.h	Tue Aug 21 19:45:48 2012	(r239529)
@@ -371,31 +371,26 @@ irint(double x)
 int	__kernel_rem_pio2(double*,double*,int,int,int);
 
 /* double precision kernel functions */
-#ifdef INLINE_REM_PIO2
-__inline
-#endif
+#ifndef INLINE_REM_PIO2
 int	__ieee754_rem_pio2(double,double*);
+#endif
 double	__kernel_sin(double,double,int);
 double	__kernel_cos(double,double);
 double	__kernel_tan(double,double,int);
 
 /* float precision kernel functions */
-#ifdef INLINE_REM_PIO2F
-__inline
-#endif
+#ifndef INLINE_REM_PIO2F
 int	__ieee754_rem_pio2f(float,double*);
-#ifdef INLINE_KERNEL_SINDF
-__inline
 #endif
+#ifndef INLINE_KERNEL_SINDF
 float	__kernel_sindf(double);
-#ifdef INLINE_KERNEL_COSDF
-__inline
 #endif
+#ifndef INLINE_KERNEL_COSDF
 float	__kernel_cosdf(double);
-#ifdef INLINE_KERNEL_TANDF
-__inline
 #endif
+#ifndef INLINE_KERNEL_TANDF
 float	__kernel_tandf(double,int);
+#endif
 
 /* long double precision kernel functions */
 long double __kernel_sinl(long double, long double, int);


More information about the svn-src-all mailing list