about summary refs log tree commit diff
path: root/nptl
diff options
context:
space:
mode:
authorPaul E. Murphy <murphyp@linux.vnet.ibm.com>2020-04-07 16:20:55 -0500
committerPaul E. Murphy <murphyp@linux.ibm.com>2020-11-30 09:56:14 -0600
commit33fc34521de970153344cfe1bfa9ce6da7a6efea (patch)
treee327104762da05a3354a89a35122fe26bdb8c439 /nptl
parentcc5d5852c65eddf92368b0845e1374bd443316e7 (diff)
downloadglibc-33fc34521de970153344cfe1bfa9ce6da7a6efea.tar.gz
glibc-33fc34521de970153344cfe1bfa9ce6da7a6efea.tar.xz
glibc-33fc34521de970153344cfe1bfa9ce6da7a6efea.zip
powerpc64le: ifunc select *f128 routines in multiarch mode
Programatically generate simple wrappers for interesting libm *f128
objects.  Selected functions are transcendental functions or
those with trivial compiler builtins.  This can result in a 2-3x
speedup (e.g logf128 and expf128).

A second set of implementation files are generated which include
the first implementation encountered along the search path.  This
usually works, except when a wrapper is overriden and makefile
search order slightly diverges from include order.  Likewise,
wrapper object files are created for each generated file.  These
hold the ifunc selection routines which export ABI.

Next, several shared headers are intercepted to control renaming of
asm function redirects are used first, and sometimes macro renames
if the former is impractical.

Notably, if the request machine supports hardware IEEE128 (i.e POWER9
and newer) this ifunc machinery is disabled.  Likewise existing
ifunc support for float128 is consolidated into this (e.g sqrtf128
and fmaf128).

Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Diffstat (limited to 'nptl')
0 files changed, 0 insertions, 0 deletions