aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--sysdeps/alpha/fpu/math_private.h8
2 files changed, 10 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index 8867578f25..042262eaa1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2017-04-25 Uros Bizjak <ubizjak@gmail.com>
+
+ * sysdeps/alpha/fpu/math_private.h (__ieee754_sqrt): Add
+ earlyclobber to output operand of sqrt insn.
+ (__ieee754_sqrtf): Ditto.
+
2017-04-25 Joseph Myers <joseph@codesourcery.com>
[BZ #21426]
diff --git a/sysdeps/alpha/fpu/math_private.h b/sysdeps/alpha/fpu/math_private.h
index 9e06e25dc6..1e97c867c3 100644
--- a/sysdeps/alpha/fpu/math_private.h
+++ b/sysdeps/alpha/fpu/math_private.h
@@ -27,9 +27,9 @@ __ieee754_sqrt (double d)
{
double ret;
# ifdef _IEEE_FP_INEXACT
- asm ("sqrtt/suid %1,%0" : "=f"(ret) : "f"(d));
+ asm ("sqrtt/suid %1,%0" : "=&f"(ret) : "f"(d));
# else
- asm ("sqrtt/sud %1,%0" : "=f"(ret) : "f"(d));
+ asm ("sqrtt/sud %1,%0" : "=&f"(ret) : "f"(d));
# endif
return ret;
}
@@ -39,9 +39,9 @@ __ieee754_sqrtf (float d)
{
float ret;
# ifdef _IEEE_FP_INEXACT
- asm ("sqrts/suid %1,%0" : "=f"(ret) : "f"(d));
+ asm ("sqrts/suid %1,%0" : "=&f"(ret) : "f"(d));
# else
- asm ("sqrts/sud %1,%0" : "=f"(ret) : "f"(d));
+ asm ("sqrts/sud %1,%0" : "=&f"(ret) : "f"(d));
# endif
return ret;
}