glibc/sysdeps/powerpc
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
..
bits PowerPC: Fix __fe_mask_env export 2013-11-13 06:45:19 -06:00
fpu PowerPC: Set/restore rounding mode only when needed 2013-11-25 06:34:41 -06:00
nofpu Make powerpc-nofpu floating-point state thread-local (bug 15483). 2013-11-19 13:39:56 +00:00
power4/fpu Remove usage of ONE macro 2013-03-29 16:53:05 +05:30
power5+/fpu PowerPC: modf optimization fix 2013-04-26 13:00:56 -05:00
powerpc32 rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
powerpc64 rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
soft-fp Make powerpc-nofpu floating-point state thread-local (bug 15483). 2013-11-19 13:39:56 +00:00
sys/platform PowerPC: Program Priority Register support 2013-05-24 13:29:30 -05:00
abort-instr.h Update. 2002-09-15 18:31:23 +00:00
configure rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
configure.ac rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
dl-procinfo.c PowerPC: Define AT_HWCAP2 bits and AT_HWCAP2 handling for POWER8. 2013-06-28 16:52:49 -05:00
dl-procinfo.h PowerPC: Define AT_HWCAP2 bits and AT_HWCAP2 handling for POWER8. 2013-06-28 16:52:49 -05:00
dl-tls.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
ffs.c Make __ffs hidden 2013-09-20 21:25:31 +02:00
fpu_control.h e500 port: fix fpu_control.h constant values. 2013-10-04 15:56:48 +00:00
gccframe.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
ifunc-sel.h Move sysdeps/powerpc/elf files 2012-03-28 09:25:31 +02:00
Implies PowerPC: unify math_ldbl.h implementations 2013-03-08 11:07:15 -03:00
jmpbuf-offsets.h PowerPC LE setjmp/longjmp 2013-10-04 10:37:59 +09:30
jmpbuf-unwind.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
ldsodefs.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
locale-defines.sym Optimized strcasecmp for Power7 2011-12-17 20:32:59 -05:00
longjmp.c PowerPC ugly symbol versioning 2013-10-04 10:38:28 +09:30
machine-gmon.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
Makefile PowerPC: Define AT_HWCAP2 bits and AT_HWCAP2 handling for POWER8. 2013-06-28 16:52:49 -05:00
math-tests.h Refer to two GCC PRs. 2013-04-03 14:13:44 +02:00
memmove.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
memusage.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
mp_clz_tab.c Update. 2002-03-14 20:48:50 +00:00
novmx-longjmp.c PowerPC ugly symbol versioning 2013-10-04 10:38:28 +09:30
novmx-sigjmp.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
novmxsetjmp.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
preconfigure Add e500 port. 2013-10-18 21:04:22 +00:00
rtld-global-offsets.sym PowerPC: Define AT_HWCAP2 bits and AT_HWCAP2 handling for POWER8. 2013-06-28 16:52:49 -05:00
sched_cpucount.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
sigjmp.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
stackinfo.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
strcat.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
sysdep.h PowerPC floating point little-endian [12 of 15] 2013-10-04 10:35:43 +09:30
test-arith.c Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
test-arithf.c Update. 1997-08-10 18:37:15 +00:00
test-gettimebase.c Add #include <stdint.h> for uint[32|64]_t usage (except installed headers). 2013-05-16 11:32:54 -05:00
tls-macros.h Split tls-macros.h in sysdeps directories. 2012-07-19 17:04:04 -03:00
tst-stack-align.h Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
Versions Update. 2004-02-14 05:16:57 +00:00