[PATCH][AArch64] Faster math barriers

Wilco Dijkstra wdijkstr@arm.com
Wed Apr 15 12:24:00 GMT 2015


Add more efficient versions of math_opt_barrier and math_force_eval that avoid going via memory.

OK for commit?

2015-04-15  Wilco Dijkstra  <wdijkstr@arm.com>

	* sysdeps/aarch64/fpu/math_private.h
	(define math_opt_barrier): Add AArch64 version.
	(math_force_eval): Likewise.

---
 sysdeps/aarch64/fpu/math_private.h | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/sysdeps/aarch64/fpu/math_private.h b/sysdeps/aarch64/fpu/math_private.h
index b3c2509..1f02ddb 100644
--- a/sysdeps/aarch64/fpu/math_private.h
+++ b/sysdeps/aarch64/fpu/math_private.h
@@ -22,6 +22,11 @@
 #include <fenv.h>
 #include <fpu_control.h>
 
+#define math_opt_barrier(x) \
+({ __typeof (x) __x = (x); __asm ("" : "+w" (__x)); __x; })
+#define math_force_eval(x) \
+({ __typeof (x) __x = (x); __asm __volatile__ ("" : : "w" (__x)); })
+
 extern __always_inline double
 __ieee754_sqrt (double d)
 {
-- 
1.9.1




More information about the Libc-alpha mailing list