From 65b14bcee2da7f56299357d1dab9f0ab986c2255 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 25 Aug 2009 16:46:34 -0700 Subject: [PATCH] Optimize out duplicated scalbln code for x86-64. --- ChangeLog | 5 ++++- .../ieee754/dbl-64/wordsize-64/{s_scalbln.c => s_scalbn.c} | 12 ++++++------ sysdeps/x86_64/fpu/s_scalbln.c | 2 ++ sysdeps/x86_64/fpu/s_scalbn.c | 9 +++++++++ 4 files changed, 21 insertions(+), 7 deletions(-) rename sysdeps/ieee754/dbl-64/wordsize-64/{s_scalbln.c => s_scalbn.c} (90%) create mode 100644 sysdeps/x86_64/fpu/s_scalbln.c create mode 100644 sysdeps/x86_64/fpu/s_scalbn.c diff --git a/ChangeLog b/ChangeLog index 365b0b893b..4b1faea4e7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -4,7 +4,10 @@ 2009-08-25 Ulrich Drepper - * sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c: New file. + * sysdeps/x86_64/fpu/s_scalbln.c: New file. + * sysdeps/x86_64/fpu/s_scalbn.c: New file. + + * sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c: New file. * sysdeps/x86_64/fpu/s_signbit.S: New file. * sysdeps/x86_64/fpu/s_signbitf.S: New file. diff --git a/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c b/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c similarity index 90% rename from sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c rename to sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c index 25b283f288..25cf3b1699 100644 --- a/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbln.c +++ b/sysdeps/ieee754/dbl-64/wordsize-64/s_scalbn.c @@ -31,10 +31,10 @@ huge = 1.0e+300, tiny = 1.0e-300; #ifdef __STDC__ - double __scalbln (double x, long int n) + double __scalbn (double x, int n) #else - double __scalbln (x,n) - double x; long int n; + double __scalbn (x,n) + double x; int n; #endif { int64_t ix; @@ -61,8 +61,8 @@ tiny = 1.0e-300; INSERT_WORDS64(x,(ix&INT64_C(0x800fffffffffffff))|(k<<52)); return x*twom54; } -weak_alias (__scalbln, scalbln) +weak_alias (__scalbn, scalbn) #ifdef NO_LONG_DOUBLE -strong_alias (__scalbln, __scalblnl) -weak_alias (__scalbln, scalblnl) +strong_alias (__scalbn, __scalbnl) +weak_alias (__scalbn, scalbnl) #endif diff --git a/sysdeps/x86_64/fpu/s_scalbln.c b/sysdeps/x86_64/fpu/s_scalbln.c new file mode 100644 index 0000000000..1009713fbc --- /dev/null +++ b/sysdeps/x86_64/fpu/s_scalbln.c @@ -0,0 +1,2 @@ +/* Nothing to do. This function is the same as scalbn. So we define an + alias. */ diff --git a/sysdeps/x86_64/fpu/s_scalbn.c b/sysdeps/x86_64/fpu/s_scalbn.c new file mode 100644 index 0000000000..74d34655ad --- /dev/null +++ b/sysdeps/x86_64/fpu/s_scalbn.c @@ -0,0 +1,9 @@ +#define scalbln __renamed_scalbln +#define __scalbln __renamed___scalbln + +#include + +#undef scalbln +#undef __scalbln +strong_alias (__scalbn, __scalbln) +weak_alias (__scalbn, scalbln) -- 2.11.4.GIT