Do not wrap logf, log2f and powf

The new generic logf, log2f and powf code don't need wrappers any more,
they set errno inline so only use the wrappers on targets that need it.

	* sysdeps/ieee754/flt-32/e_log2f.c (__log2f): Define without wrapper.
	* sysdeps/ieee754/flt-32/e_logf.c (__logf): Likewise
	* sysdeps/ieee754/flt-32/e_powf.c (__powf): Likewise
	* sysdeps/ieee754/flt-32/w_log2f.c: New file.
	* sysdeps/ieee754/flt-32/w_logf.c: New file.
	* sysdeps/ieee754/flt-32/w_powf.c: New file.
	* sysdeps/i386/fpu/w_log2f.c: New file.
	* sysdeps/i386/fpu/w_logf.c: New file.
	* sysdeps/i386/fpu/w_powf.c: New file.
	* sysdeps/m68k/m680x0/fpu/w_log2f.c: New file.
	* sysdeps/m68k/m680x0/fpu/w_logf.c: New file.
	* sysdeps/m68k/m680x0/fpu/w_powf.c: New file.
This commit is contained in:
Szabolcs Nagy 2017-09-13 18:14:26 +01:00
parent f7a0b063e7
commit bd4430c2a6
13 changed files with 45 additions and 6 deletions

View File

@ -1,3 +1,18 @@
2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
* sysdeps/ieee754/flt-32/e_log2f.c (__log2f): Define without wrapper.
* sysdeps/ieee754/flt-32/e_logf.c (__logf): Likewise
* sysdeps/ieee754/flt-32/e_powf.c (__powf): Likewise
* sysdeps/ieee754/flt-32/w_log2f.c: New file.
* sysdeps/ieee754/flt-32/w_logf.c: New file.
* sysdeps/ieee754/flt-32/w_powf.c: New file.
* sysdeps/i386/fpu/w_log2f.c: New file.
* sysdeps/i386/fpu/w_logf.c: New file.
* sysdeps/i386/fpu/w_powf.c: New file.
* sysdeps/m68k/m680x0/fpu/w_log2f.c: New file.
* sysdeps/m68k/m680x0/fpu/w_logf.c: New file.
* sysdeps/m68k/m680x0/fpu/w_powf.c: New file.
2017-10-02 Szabolcs Nagy <szabolcs.nagy@arm.com>
H.J. Lu <hongjiu.lu@intel.com>

View File

@ -0,0 +1 @@
#include <sysdeps/../math/w_log2f.c>

View File

@ -0,0 +1 @@
#include <sysdeps/../math/w_logf.c>

View File

@ -0,0 +1 @@
#include <sysdeps/../math/w_powf.c>

View File

@ -18,6 +18,7 @@
#include <math.h>
#include <stdint.h>
#include <shlib-compat.h>
#include "math_config.h"
/*
@ -34,7 +35,7 @@ Relative error: 1.9 * 2^-26 (before rounding.)
#define OFF 0x3f330000
float
__ieee754_log2f (float x)
__log2f (float x)
{
/* double_t for better performance on targets with FLT_EVAL_METHOD==2. */
double_t z, r, r2, p, y, y0, invc, logc;
@ -85,4 +86,8 @@ __ieee754_log2f (float x)
y = y * r2 + p;
return (float) y;
}
strong_alias (__ieee754_log2f, __log2f_finite)
#ifndef __log2f
strong_alias (__log2f, __ieee754_log2f)
strong_alias (__log2f, __log2f_finite)
versioned_symbol (libm, __log2f, log2f, GLIBC_2_27);
#endif

View File

@ -18,6 +18,7 @@
#include <math.h>
#include <stdint.h>
#include <shlib-compat.h>
#include "math_config.h"
/*
@ -35,7 +36,7 @@ Relative error: 1.957 * 2^-26 (before rounding.)
#define OFF 0x3f330000
float
__ieee754_logf (float x)
__logf (float x)
{
/* double_t for better performance on targets with FLT_EVAL_METHOD==2. */
double_t z, r, r2, y, y0, invc, logc;
@ -84,4 +85,8 @@ __ieee754_logf (float x)
y = y * r2 + (y0 + r);
return (float) y;
}
strong_alias (__ieee754_logf, __logf_finite)
#ifndef __logf
strong_alias (__logf, __ieee754_logf)
strong_alias (__logf, __logf_finite)
versioned_symbol (libm, __logf, logf, GLIBC_2_27);
#endif

View File

@ -18,6 +18,7 @@
#include <math.h>
#include <stdint.h>
#include <shlib-compat.h>
#include "math_config.h"
/*
@ -139,7 +140,7 @@ zeroinfnan (uint32_t ix)
}
float
__ieee754_powf (float x, float y)
__powf (float x, float y)
{
unsigned long sign_bias = 0;
uint32_t ix, iy;
@ -214,4 +215,8 @@ __ieee754_powf (float x, float y)
}
return (float) exp2_inline (ylogx, sign_bias);
}
strong_alias (__ieee754_powf, __powf_finite)
#ifndef __powf
strong_alias (__powf, __ieee754_powf)
strong_alias (__powf, __powf_finite)
versioned_symbol (libm, __powf, powf, GLIBC_2_27);
#endif

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
/* Not needed. */

View File

@ -0,0 +1 @@
#include <sysdeps/../math/w_log2f.c>

View File

@ -0,0 +1 @@
#include <sysdeps/../math/w_logf.c>

View File

@ -0,0 +1 @@
#include <sysdeps/../math/w_powf.c>