diff options
Diffstat (limited to 'sysdeps/ieee754/flt-32')
-rw-r--r-- | sysdeps/ieee754/flt-32/s_totalorderf.c | 33 | ||||
-rw-r--r-- | sysdeps/ieee754/flt-32/s_totalordermagf.c | 33 |
2 files changed, 60 insertions, 6 deletions
diff --git a/sysdeps/ieee754/flt-32/s_totalorderf.c b/sysdeps/ieee754/flt-32/s_totalorderf.c index 71ea5968ab..250f2289ce 100644 --- a/sysdeps/ieee754/flt-32/s_totalorderf.c +++ b/sysdeps/ieee754/flt-32/s_totalorderf.c @@ -21,13 +21,15 @@ #include <libm-alias-float.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalorderf (float x, float y) +__totalorderf (const float *x, const float *y) { int32_t ix, iy; - GET_FLOAT_WORD (ix, x); - GET_FLOAT_WORD (iy, y); + GET_FLOAT_WORD (ix, *x); + GET_FLOAT_WORD (iy, *y); #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN /* For the preferred quiet NaN convention, this operation is a comparison of the representations of the arguments interpreted as @@ -45,4 +47,29 @@ __totalorderf (float x, float y) iy ^= iy_sign >> 1; return ix <= iy; } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_float (__totalorder, totalorder) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalorder_compatf (float x, float y) +{ + return __totalorderf (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_float (__totalorder_compat, totalorder) +#endif diff --git a/sysdeps/ieee754/flt-32/s_totalordermagf.c b/sysdeps/ieee754/flt-32/s_totalordermagf.c index 3733a2597c..5d1729b54f 100644 --- a/sysdeps/ieee754/flt-32/s_totalordermagf.c +++ b/sysdeps/ieee754/flt-32/s_totalordermagf.c @@ -21,13 +21,15 @@ #include <libm-alias-float.h> #include <nan-high-order-bit.h> #include <stdint.h> +#include <shlib-compat.h> +#include <first-versions.h> int -__totalordermagf (float x, float y) +__totalordermagf (const float *x, const float *y) { uint32_t ix, iy; - GET_FLOAT_WORD (ix, x); - GET_FLOAT_WORD (iy, y); + GET_FLOAT_WORD (ix, *x); + GET_FLOAT_WORD (iy, *y); ix &= 0x7fffffff; iy &= 0x7fffffff; #if HIGH_ORDER_BIT_IS_SET_FOR_SNAN @@ -43,4 +45,29 @@ __totalordermagf (float x, float y) #endif return ix <= iy; } +#ifdef SHARED +# define CONCATX(x, y) x ## y +# define CONCAT(x, y) CONCATX (x, y) +# define UNIQUE_ALIAS(name) CONCAT (name, __COUNTER__) +# define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + versioned_symbol (libm, name, aliasname, GLIBC_2_31) +# undef weak_alias +# define weak_alias(name, aliasname) \ + do_symbol (name, UNIQUE_ALIAS (name), aliasname); +#endif libm_alias_float (__totalordermag, totalordermag) +#if SHLIB_COMPAT (libm, GLIBC_2_25, GLIBC_2_31) +int +attribute_compat_text_section +__totalordermag_compatf (float x, float y) +{ + return __totalordermagf (&x, &y); +} +#undef do_symbol +#define do_symbol(orig_name, name, aliasname) \ + strong_alias (orig_name, name) \ + compat_symbol (libm, name, aliasname, \ + CONCAT (FIRST_VERSION_libm_, aliasname)) +libm_alias_float (__totalordermag_compat, totalordermag) +#endif |