This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
PING: [PATCH, alpha]: Add earlyclobber to sqrtt/sqrtf insns.
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: libc-alpha at sourceware dot org
- Cc: Richard Henderson <rth at twiddle dot net>, Florian Weimer <fw at deneb dot enyo dot de>
- Date: Sun, 23 Apr 2017 12:56:33 +0200
- Subject: PING: [PATCH, alpha]: Add earlyclobber to sqrtt/sqrtf insns.
- Authentication-results: sourceware.org; auth=none
PING, is there anything else expected from me to accept the patch [1]?
Please also note, I don't have commit access to a glibc repository.
[1] https://sourceware.org/ml/libc-alpha/2017-04/msg00256.html
Uros.
On Fri, Apr 14, 2017 at 2:30 PM, Uros Bizjak <ubizjak@gmail.com> wrote:
> 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.
>
> diff --git a/sysdeps/alpha/fpu/math_private.h b/sysdeps/alpha/fpu/math_private.h
> index 9e06e25..1e97c86 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;
> }