aboutsummaryrefslogtreecommitdiff
path: root/sysdeps/alpha/fpu/math_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/alpha/fpu/math_private.h')
-rw-r--r--sysdeps/alpha/fpu/math_private.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/sysdeps/alpha/fpu/math_private.h b/sysdeps/alpha/fpu/math_private.h
index eb2177d78d..4f270f7a3f 100644
--- a/sysdeps/alpha/fpu/math_private.h
+++ b/sysdeps/alpha/fpu/math_private.h
@@ -18,4 +18,30 @@
#include_next <math_private.h>
+#ifdef __alpha_fix__
+extern __always_inline double
+__ieee754_sqrt (double d)
+{
+ double ret;
+# ifdef _IEEE_FP_INEXACT
+ asm ("sqrtt/suid %1,%0" : "=f"(ret) : "f"(d));
+# else
+ asm ("sqrtt/sud %1,%0" : "=f"(ret) : "f"(d));
+# endif
+ return ret;
+}
+
+extern __always_inline float
+__ieee754_sqrtf (float d)
+{
+ float ret;
+# ifdef _IEEE_FP_INEXACT
+ asm ("sqrts/suid %1,%0" : "=f"(ret) : "f"(d));
+# else
+ asm ("sqrts/sud %1,%0" : "=f"(ret) : "f"(d));
+# endif
+ return ret;
+}
+#endif /* FIX */
+
#endif /* ALPHA_MATH_PRIVATE_H */