diff options
author | Wilco Dijkstra <wdijkstr@arm.com> | 2015-07-13 12:48:33 +0100 |
---|---|---|
committer | Wilco Dijkstra <wdijkstr@arm.com> | 2015-07-13 12:48:33 +0100 |
commit | 82641e16aa83c693974297951e23ba08a3e89652 (patch) | |
tree | c68da0ab29df51c78bb409bcfe5fab445af61047 /sysdeps | |
parent | c435989f52204703d524f467c830dc363439e532 (diff) | |
download | glibc-82641e16aa83c693974297951e23ba08a3e89652.tar.gz glibc-82641e16aa83c693974297951e23ba08a3e89652.tar.xz glibc-82641e16aa83c693974297951e23ba08a3e89652.zip |
Add AArch64 versions of math_opt_barrier and math_force_eval that avoid going via memory.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/aarch64/fpu/math_private.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/sysdeps/aarch64/fpu/math_private.h b/sysdeps/aarch64/fpu/math_private.h index b3c2509961..1f02ddb05a 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) { |