glibc/sysdeps/powerpc/fpu
Adhemerval Zanella 41e8926aa4 PowerPC: Set/restore rounding mode only when needed
This patch helps some math functions performance by adding the libc_fexxx
variant of inline functions to handle both FPU round and exception set/restore
and by using them on the libc_fexxx_ctx functions. It is based on already coded
fexxx family functions for PPC with fpu.

Here is the summary of performance improvements due this patch (measured on a
POWER7 machine):

Before:

cos(): ITERS:9.5895e+07: TOTAL:5116.03Mcy, MAX:77.6cy, MIN:49.792cy, 18744 calls/Mcy
exp(): ITERS:2.827e+07: TOTAL:5187.15Mcy, MAX:494.018cy, MIN:38.422cy, 5450.01 calls/Mcy
pow(): ITERS:6.1705e+07: TOTAL:5144.26Mcy, MAX:171.95cy, MIN:29.935cy, 11994.9 calls/Mcy
sin(): ITERS:8.6898e+07: TOTAL:5117.06Mcy, MAX:83.841cy, MIN:46.582cy, 16982 calls/Mcy
tan(): ITERS:2.9473e+07: TOTAL:5115.39Mcy, MAX:191.017cy, MIN:172.352cy, 5761.63 calls/Mcy

After:

cos(): ITERS:2.05265e+08: TOTAL:5111.37Mcy, MAX:78.754cy, MIN:24.196cy, 40158.5 calls/Mcy
exp(): ITERS:3.341e+07: TOTAL:5170.84Mcy, MAX:476.317cy, MIN:15.574cy, 6461.23 calls/Mcy
pow(): ITERS:7.6153e+07: TOTAL:5129.1Mcy, MAX:147.5cy, MIN:30.916cy, 14847.2 calls/Mcy
sin(): ITERS:1.58816e+08: TOTAL:5115.11Mcy, MAX:1490.39cy, MIN:22.341cy, 31048.4 calls/Mcy
tan(): ITERS:3.4964e+07: TOTAL:5114.18Mcy, MAX:177.422cy, MIN:146.115cy, 6836.68 calls/Mcy
2013-11-25 06:34:41 -06:00
..
e_hypot.c PowerPC: fix hypot/hypotf check for -INF 2013-05-17 08:15:59 -05:00
e_hypotf.c PowerPC: fix hypot/hypotf check for -INF 2013-05-17 08:15:59 -05:00
e_rem_pio2f.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
e_sqrt.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
e_sqrtf.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
fclrexcpt.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
fe_mask.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
fe_nomask.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
fedisblxcpt.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
feenablxcpt.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
fegetenv.c Remove bp-sym.h and BP_SYM uses from C code. 2013-02-14 13:12:02 +00:00
fegetexcept.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
fegetround.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
feholdexcpt.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
fenv_const.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
fenv_libc.h PowerPC: Set/restore rounding mode only when needed 2013-11-25 06:34:41 -06:00
fenv_private.h PowerPC: Set/restore rounding mode only when needed 2013-11-25 06:34:41 -06:00
fesetenv.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
fesetround.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
feupdateenv.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
fgetexcptflg.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
fraiseexcpt.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
fsetexcptflg.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
ftestexcept.c PowerPC floating point little-endian [8 of 15] 2013-10-04 10:34:26 +09:30
k_cosf.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
k_rem_pio2f.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
k_sinf.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
libm-test-ulps PowerPC floating point little-endian [3 of 15] 2013-10-04 10:32:36 +09:30
Makefile Link extra-libs consistently with libc and ld.so. 2013-05-31 16:16:33 +00:00
math_ldbl.h PowerPC: unify math_ldbl.h implementations 2013-03-08 11:07:15 -03:00
math_private.h PowerPC: Set/restore rounding mode only when needed 2013-11-25 06:34:41 -06:00
s_cosf.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
s_fabs.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
s_fabsf.S
s_fdim.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
s_fdimf.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
s_float_bitwise.h PowerPC floating point little-endian [9 of 15] 2013-10-04 10:34:57 +09:30
s_fma.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
s_fmaf.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
s_fmax.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
s_fmaxf.S
s_fmin.S Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
s_fminf.S
s_isnan.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
s_isnanf.S
s_llround.c PowerPC floating point little-endian [10 of 15] 2013-10-04 10:35:10 +09:30
s_llroundf.c PowerPC floating point little-endian [10 of 15] 2013-10-04 10:35:10 +09:30
s_lrintf.S
s_rint.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
s_rintf.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
s_sinf.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
t_sqrt.c Remove trailing whitespace. 2013-06-05 20:44:03 +00:00
tst-setcontext-fpscr.c PowerPC floating point little-endian [11 of 15] 2013-10-04 10:35:21 +09:30
w_sqrt.c PowerPC: fix sqrtl ABI issue 2013-03-21 14:15:45 -03:00
w_sqrtf.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00