This is the mail archive of the
libc-help@sourceware.org
mailing list for the glibc project.
Re: _dl_runtime_resolve_avx_slow clobbering xmm8
- From: Florian Weimer <fw at deneb dot enyo dot de>
- To: Ivan Tubert-Brohman <ivan dot tubert-brohman at schrodinger dot com>
- Cc: libc-help at sourceware dot org, "Colvin\,Tor" <colvin at schrodinger dot com>
- Date: Fri, 25 Aug 2017 21:12:14 +0200
- Subject: Re: _dl_runtime_resolve_avx_slow clobbering xmm8
- Authentication-results: sourceware.org; auth=none
- References: <CACmCNSxi2ijg3ALFmMUS7TY7srU7oXxYK_dxt=t6MV4qLwP53A@mail.gmail.com>
* Ivan Tubert-Brohman:
> My question here is, who is at fault? Is ifort making unfounded
> assumptions about the persistence of xmm8, or is
> _dl_runtime_resolve_avx_slow wrong in not preserving it? I looked at
> the latter's code and it looks like it tries to preserve xmm0-xmm7,
> but not xmm8.
The x86-64 psABI specification says that %xmm8 is a temporary
register, and that it is not used for passing arguments. This does
not mean that the dynamic linker trampoline *must* clobber it, of
course, but it strongly suggests that it's a compiler bug.
We already have a bug for this:
<https://sourceware.org/bugzilla/show_bug.cgi?id=21265>
The discussion sort of petered out, though. I suspect all is left to
do is to close the bug as invalid, but I'm not entirely happy about
that.