glibc/sysdeps/powerpc
Paul A. Clarke 3db85a9814 powerpc: Use faster means to access FPSCR when possible in some cases
Using 'mffs' instruction to read the Floating Point Status Control Register
(FPSCR) can force a processor flush in some cases, with undesirable
performance impact.  If the values of the bits in the FPSCR which force the
flush are not needed, an instruction that is new to POWER9 (ISA version 3.0),
'mffsl' can be used instead.

Cases included:  get_rounding_mode, fegetround, fegetmode, fegetexcept.

	* sysdeps/powerpc/bits/fenvinline.h (__fegetround): Use
	__fegetround_ISA300() or __fegetround_ISA2() as appropriate.
	(__fegetround_ISA300) New.
	(__fegetround_ISA2) New.
	* sysdeps/powerpc/fpu_control.h (IS_ISA300): New.
	(_FPU_MFFS): Move implementation...
	(_FPU_GETCW): Here.
	(_FPU_MFFSL): Move implementation....
	(_FPU_GET_RC_ISA300): Here. New.
	(_FPU_GET_RC): Use _FPU_GET_RC_ISA300() or _FPU_GETCW() as appropriate.
	* sysdeps/powerpc/fpu/fenv_libc.h (fegetenv_status_ISA300): New.
	(fegetenv_status): New.
	* sysdeps/powerpc/fpu/fegetmode.c (fegetmode): Use fegetenv_status()
	instead of fegetenv_register().
	* sysdeps/powerpc/fpu/fegetexcept.c (__fegetexcept): Likewise.

Reviewed-by: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
2019-06-30 08:40:44 -03:00
..
bits powerpc: Use faster means to access FPSCR when possible in some cases 2019-06-30 08:40:44 -03:00
fpu powerpc: Use faster means to access FPSCR when possible in some cases 2019-06-30 08:40:44 -03:00
nofpu
nptl
power4 powerpc: Remove power4 mpa optimization 2019-04-29 08:43:03 -03:00
power5+/fpu
power6 powerpc: Use generic wcsrchr optimization 2019-04-04 16:01:14 +07:00
power7/fpu
powerpc32 powerpc: Refactor powerpc32 lround/lroundf/llround/llroundf 2019-06-26 14:32:45 -03:00
powerpc64 powerpc: Use generic e_expf 2019-06-26 14:33:58 -03:00
sys/platform
abort-instr.h
atomic-machine.h
cpu-features.c
cpu-features.h
dl-procinfo.c
dl-procinfo.h
dl-tls.c
dl-tls.h
dl-tunables.list
ffs.c
fpu_control.h powerpc: Use faster means to access FPSCR when possible in some cases 2019-06-30 08:40:44 -03:00
gccframe.h
hwcapinfo.c
hwcapinfo.h
ifunc-sel.h
jmpbuf-offsets.h
jmpbuf-unwind.h
ldsodefs.h
libc-tls.c
locale-defines.sym
longjmp.c
machine-gmon.h
Makefile powerpc: Fix build failures with current GCC 2019-05-30 11:10:48 -03:00
math-tests-snan-cast.h
memusage.h
mod-tlsopt-powerpc.c
mp_clz_tab.c
novmx-longjmp.c
novmx-sigjmp.c
novmxsetjmp.h
preconfigure Remove support for PowerPC SPE extension (powerpc*-*-*gnuspe*). 2019-05-22 10:05:40 -04:00
rtld-global-offsets.sym
sched_cpucount.c
sigjmp.c
sotruss-lib.c
stackinfo.h
sysdep.h
test-arith.c
test-arithf.c
test-get_hwcap-static.c
test-get_hwcap.c
test-gettimebase.c
tls-macros.h
tst-set_ppr.c
tst-stack-align.h
tst-tlsifunc-static.c
tst-tlsifunc.c
tst-tlsopt-powerpc.c
Versions