This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.27.9000-51-g3f8d9d5
- From: wilco at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 9 Feb 2018 17:01:43 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.27.9000-51-g3f8d9d5
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 3f8d9d58c59fdbe27301d0e18bfd426a5f2edf19 (commit)
from 1f6676d7da1b7c864e9a5d59fe9162a88bd21952 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=3f8d9d58c59fdbe27301d0e18bfd426a5f2edf19
commit 3f8d9d58c59fdbe27301d0e18bfd426a5f2edf19
Author: Wilco Dijkstra <wdijkstr@arm.com>
Date: Fri Feb 9 16:59:23 2018 +0000
[AArch64] Use builtins for fpcr/fpsr
Since GCC has support for accessing FPSR/FPCR, use them when possible
so that the asm instructions can be removed eventually. Although GCC 5
supports the builtins, it has an optimization bug, so use them from GCC 6
onwards.
* sysdeps/aarch64/fpu/fpu_control.h: Use builtins for accessing
FPCR/FPSR.
diff --git a/ChangeLog b/ChangeLog
index 041f38e..385e866 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2018-02-09 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * sysdeps/aarch64/fpu/fpu_control.h: Use builtins for accessing
+ FPCR/FPSR.
+
2018-02-09 Rical Jasan <ricaljasan@pacific.net>
* manual/creature.texi: Convert references to gcc.info to gcc.
diff --git a/sysdeps/aarch64/fpu/fpu_control.h b/sysdeps/aarch64/fpu/fpu_control.h
index 570e3dc..d0cc5af 100644
--- a/sysdeps/aarch64/fpu/fpu_control.h
+++ b/sysdeps/aarch64/fpu/fpu_control.h
@@ -21,17 +21,24 @@
/* Macros for accessing the FPCR and FPSR. */
-#define _FPU_GETCW(fpcr) \
+#if __GNUC_PREREQ (6,0)
+# define _FPU_GETCW(fpcr) (fpcr = __builtin_aarch64_get_fpcr ())
+# define _FPU_SETCW(fpcr) __builtin_aarch64_set_fpcr (fpcr)
+# define _FPU_GETFPSR(fpsr) (fpsr = __builtin_aarch64_get_fpsr ())
+# define _FPU_SETFPSR(fpsr) __builtin_aarch64_set_fpsr (fpsr)
+#else
+# define _FPU_GETCW(fpcr) \
__asm__ __volatile__ ("mrs %0, fpcr" : "=r" (fpcr))
-#define _FPU_SETCW(fpcr) \
+# define _FPU_SETCW(fpcr) \
__asm__ __volatile__ ("msr fpcr, %0" : : "r" (fpcr))
-#define _FPU_GETFPSR(fpsr) \
+# define _FPU_GETFPSR(fpsr) \
__asm__ __volatile__ ("mrs %0, fpsr" : "=r" (fpsr))
-#define _FPU_SETFPSR(fpsr) \
+# define _FPU_SETFPSR(fpsr) \
__asm__ __volatile__ ("msr fpsr, %0" : : "r" (fpsr))
+#endif
/* Reserved bits should be preserved when modifying register
contents. These two masks indicate which bits in each of FPCR and
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 5 +++++
sysdeps/aarch64/fpu/fpu_control.h | 15 +++++++++++----
2 files changed, 16 insertions(+), 4 deletions(-)
hooks/post-receive
--
GNU C Library master sources