mirror of
git://sourceware.org/git/glibc.git
synced 2025-03-06 20:58:33 +01:00
Add earlyclobber to sqrtt/sqrtf insns.
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.
This commit is contained in:
parent
9fe3c80c7c
commit
1e1f44de64
2 changed files with 10 additions and 4 deletions
|
@ -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>
|
2017-04-25 Joseph Myers <joseph@codesourcery.com>
|
||||||
|
|
||||||
[BZ #21426]
|
[BZ #21426]
|
||||||
|
|
|
@ -27,9 +27,9 @@ __ieee754_sqrt (double d)
|
||||||
{
|
{
|
||||||
double ret;
|
double ret;
|
||||||
# ifdef _IEEE_FP_INEXACT
|
# ifdef _IEEE_FP_INEXACT
|
||||||
asm ("sqrtt/suid %1,%0" : "=f"(ret) : "f"(d));
|
asm ("sqrtt/suid %1,%0" : "=&f"(ret) : "f"(d));
|
||||||
# else
|
# else
|
||||||
asm ("sqrtt/sud %1,%0" : "=f"(ret) : "f"(d));
|
asm ("sqrtt/sud %1,%0" : "=&f"(ret) : "f"(d));
|
||||||
# endif
|
# endif
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -39,9 +39,9 @@ __ieee754_sqrtf (float d)
|
||||||
{
|
{
|
||||||
float ret;
|
float ret;
|
||||||
# ifdef _IEEE_FP_INEXACT
|
# ifdef _IEEE_FP_INEXACT
|
||||||
asm ("sqrts/suid %1,%0" : "=f"(ret) : "f"(d));
|
asm ("sqrts/suid %1,%0" : "=&f"(ret) : "f"(d));
|
||||||
# else
|
# else
|
||||||
asm ("sqrts/sud %1,%0" : "=f"(ret) : "f"(d));
|
asm ("sqrts/sud %1,%0" : "=&f"(ret) : "f"(d));
|
||||||
# endif
|
# endif
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue