[AArch64] Faster math barriers
Commit Message
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(+)
Comments
On 15 April 2015 at 13:23, Wilco Dijkstra <wdijkstr@arm.com> wrote:
> 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.
Looks OK to me. /Marcus
@@ -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)
{