glibc/sysdeps/powerpc
Paul A. Clarke f1c56cdff0 [powerpc] SET_RESTORE_ROUND optimizations and bug fix
SET_RESTORE_ROUND brackets a block of code, temporarily setting and
restoring the rounding mode and letting everything else, including
exceptions generated within the block, pass through.

On powerpc, the current code clears the exception enables, which will hide
exceptions generated within the block.  This issue was introduced by me
in commit e905212627.

Fix this by not clearing exception enable bits in the prologue.

Also, since we are no longer changing the enable bits in either the
prologue or the epilogue, there is no need to test for entering/exiting
non-stop mode.

Also, optimize the prologue get/save/set rounding mode operations for
POWER9 and later by using 'mffscrn' when possible.

Suggested-by: Paul E. Murphy <murphyp@linux.ibm.com>
Reviewed-by: Paul E. Murphy <murphyp@linux.ibm.com>
Fixes: e905212627

2019-09-19  Paul A. Clarke  <pc@us.ibm.com>

	* sysdeps/powerpc/fpu/fenv_libc.h (fegetenv_and_set_rn): New.
	(__fe_mffscrn): New.
	* sysdeps/powerpc/fpu/fenv_private.h (libc_feholdsetround_ppc_ctx):
	Do not clear enable bits, remove obsolete code, use
	fegetenv_and_set_rn.
	(libc_feresetround_ppc): Remove obsolete code, use
	fegetenv_and_set_rn.
2019-09-19 13:02:30 -05:00
..
bits Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
fpu [powerpc] SET_RESTORE_ROUND optimizations and bug fix 2019-09-19 13:02:30 -05:00
nofpu Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
nptl Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
power4 Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
power6 Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
powerpc32 Refactor vDSO initialization code 2019-09-17 17:09:24 -03:00
powerpc64 Refactor vDSO initialization code 2019-09-17 17:09:24 -03:00
sys/platform Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
abort-instr.h Update. 2002-09-15 18:31:23 +00:00
atomic-machine.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
cpu-features.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
cpu-features.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
dl-procinfo.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
dl-procinfo.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
dl-tls.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
dl-tls.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
dl-tunables.list Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
ffs.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
fpu_control.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
gccframe.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
hwcapinfo.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
hwcapinfo.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
ifunc-sel.h Fix powerpc ifunc-sel.h build for -Os. 2018-03-02 22:27:56 +00:00
jmpbuf-offsets.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
jmpbuf-unwind.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
ldsodefs.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
libc-tls.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
locale-defines.sym powerpc: strcasestr optmization for power8 2016-04-22 19:23:13 +05:30
longjmp.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
machine-gmon.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
Makefile powerpc: Fix build failures with current GCC 2019-05-30 11:10:48 -03:00
math-tests-snan-cast.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
memusage.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
mod-tlsopt-powerpc.c tst-tlsopt-powerpc as a shared lib 2017-08-03 15:39:21 +09:30
mp_clz_tab.c Update. 2002-03-14 20:48:50 +00:00
novmx-longjmp.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
novmx-sigjmp.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
novmxsetjmp.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
preconfigure Remove support for PowerPC SPE extension (powerpc*-*-*gnuspe*). 2019-05-22 10:05:40 -04: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 Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
sigjmp.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
sotruss-lib.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
stackinfo.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
sysdep.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
test-arith.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
test-arithf.c Update. 1997-08-10 18:37:15 +00:00
test-get_hwcap-static.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
test-get_hwcap.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
test-gettimebase.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
tls-macros.h Split tls-macros.h in sysdeps directories. 2012-07-19 17:04:04 -03:00
tst-set_ppr.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
tst-stack-align.h Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
tst-tlsifunc-static.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
tst-tlsifunc.c Prefer https to http for gnu.org and fsf.org URLs 2019-09-07 02:43:31 -07:00
tst-tlsopt-powerpc.c tst-tlsopt-powerpc as a shared lib 2017-08-03 15:39:21 +09:30
Versions Add femode_t functions. 2016-09-07 16:40:09 +00:00