glibc/sysdeps
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
..
aarch64 aarch64: handle STO_AARCH64_VARIANT_PCS 2019-06-13 09:45:00 +01:00
alpha alpha: Improve sysdeps/alpha/divqu.S and sysdeps/alpha/remqu.S 2019-04-01 16:00:37 +07:00
arm Break further lines before not after operators. 2019-02-26 15:01:50 +00:00
csky C-SKY: mark lr as undefined to stop unwinding 2019-03-11 09:51:14 +08:00
generic Add single-thread.h header 2019-05-14 08:41:15 -03:00
gnu Add UDP_GRO from Linux 5.0 to netinet/udp.h. 2019-03-25 13:16:46 +00:00
hppa Add some spaces before '('. 2019-02-27 13:55:45 +00:00
htl hurd: advertise *_setpshared as not supported 2019-01-02 22:21:34 +01:00
hurd Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
i386 x86: Add sysdeps/x86/dl-lookupcfg.h 2019-06-26 15:07:28 -07:00
ia64 Refactor hp-timing rtld usage 2019-03-22 17:30:44 -03:00
ieee754 math: Use wordsize-64 version for finite 2019-06-12 14:32:39 -03:00
init_array Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
m68k wcsmbs: optimize wcpcpy 2019-02-27 10:00:34 -03:00
mach misc: Add twalk_r function 2019-05-02 11:42:51 +02:00
microblaze Break more lines before not after operators. 2019-02-25 13:19:19 +00:00
mips Add and move fall-through comments in system-specific code. 2019-02-26 02:09:18 +00:00
nios2 Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
nptl x86: Remove arch-specific low level lock implementation 2019-05-14 08:48:02 -03:00
posix nss: Turn __nss_database_lookup into a compatibility symbol 2019-05-15 15:07:49 +02:00
powerpc powerpc: Use faster means to access FPSCR when possible in some cases 2019-06-30 08:40:44 -03:00
pthread <semaphore.h>: Add nonnull attributes 2019-04-29 10:11:35 +02:00
riscv riscv: remove DL_RO_DYN_SECTION 2019-04-25 10:53:08 -07:00
s390 S390: Regenerate ULPs. 2019-06-25 15:14:17 +02:00
sh Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
sparc Refactor hp-timing rtld usage 2019-03-22 17:30:44 -03:00
unix Linux: Use mmap instead of malloc in dirent/tst-getdents64 2019-06-28 14:05:02 +02:00
wordsize-32 Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
wordsize-64 Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
x86 x86: Add sysdeps/x86/dl-lookupcfg.h 2019-06-26 15:07:28 -07:00
x86_64 x86: Add sysdeps/x86/dl-lookupcfg.h 2019-06-26 15:07:28 -07:00