1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00

Support _Float32 in libm_alias_float.

This patch makes the libm_alias_float macro support creating _Float32
aliases, in preparation for enabling glibc support for that type.

Tested for x86_64; also tested with build-many-glibcs.py in
conjunction with other _Float32 changes.

	* sysdeps/generic/libm-alias-float.h: Include <bits/floatn.h>.
	[__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32]
	(libm_alias_float_other_r): Create f32 alias.
	(libm_alias_float_r): Use semicolon before call to
	libm_alias_float_other_r.
This commit is contained in:
Joseph Myers
2017-12-06 22:14:09 +00:00
parent c191f64cd5
commit 26007a2f68
2 changed files with 15 additions and 2 deletions

View File

@ -1,5 +1,11 @@
2017-12-06 Joseph Myers <joseph@codesourcery.com> 2017-12-06 Joseph Myers <joseph@codesourcery.com>
* sysdeps/generic/libm-alias-float.h: Include <bits/floatn.h>.
[__HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32]
(libm_alias_float_other_r): Create f32 alias.
(libm_alias_float_r): Use semicolon before call to
libm_alias_float_other_r.
* sysdeps/ia64/fpu/e_exp2f.S (__exp2f): Use exp2 not __exp2 as * sysdeps/ia64/fpu/e_exp2f.S (__exp2f): Use exp2 not __exp2 as
second argument to libm_alias_float_other. second argument to libm_alias_float_other.
* sysdeps/ia64/fpu/e_log2f.S (__log2f): Use log2 not __log2 as * sysdeps/ia64/fpu/e_log2f.S (__log2f): Use log2 not __log2 as

View File

@ -19,11 +19,18 @@
#ifndef _LIBM_ALIAS_FLOAT_H #ifndef _LIBM_ALIAS_FLOAT_H
#define _LIBM_ALIAS_FLOAT_H #define _LIBM_ALIAS_FLOAT_H
#include <bits/floatn.h>
/* Define _FloatN / _FloatNx aliases for a float libm function that /* Define _FloatN / _FloatNx aliases for a float libm function that
has internal name FROM ## f ## R and public names TO ## suffix ## R has internal name FROM ## f ## R and public names TO ## suffix ## R
for each suffix of a supported _FloatN / _FloatNx floating-point for each suffix of a supported _FloatN / _FloatNx floating-point
type with the same format as float. */ type with the same format as float. */
#define libm_alias_float_other_r(from, to, r) #if __HAVE_FLOAT32 && !__HAVE_DISTINCT_FLOAT32
# define libm_alias_float_other_r(from, to, r) \
weak_alias (from ## f ## r, to ## f32 ## r)
#else
# define libm_alias_float_other_r(from, to, r)
#endif
/* Likewise, but without the R suffix. */ /* Likewise, but without the R suffix. */
#define libm_alias_float_other(from, to) \ #define libm_alias_float_other(from, to) \
@ -37,7 +44,7 @@
names (where there is one name per format, not per type) or for names (where there is one name per format, not per type) or for
obsolescent functions not provided for _FloatN types. */ obsolescent functions not provided for _FloatN types. */
#define libm_alias_float_r(from, to, r) \ #define libm_alias_float_r(from, to, r) \
weak_alias (from ## f ## r, to ## f ## r) \ weak_alias (from ## f ## r, to ## f ## r); \
libm_alias_float_other_r (from, to, r) libm_alias_float_other_r (from, to, r)
/* Likewise, but without the R suffix. */ /* Likewise, but without the R suffix. */