[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