When using software completions, we have to prevent assembler to match
input and output operands of sqrtt/sqrtf insn. Add earlyclobber to
output operand to avoid unwanted operand matching.
2017-04-14 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 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]
{
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;
}
{
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;
}