On Mon, Jun 27, 2016 at 11:33 AM, Florian Weimer <fweimer@redhat.com> wrote:
On 06/27/2016 08:29 PM, H.J. Lu wrote:
If ld.so doesn't the first 8 save/store ZMM registers, you
may not pass parameters in ZMM registers with AVX512
kernel on AVX512 machine. We wan to make sure that
ld.so in x86-64 glibc saves/stores ZMM registers unless
glibc is configured to disable AVX512 support.
I still do not understand what is going on.
What can clobber the ZMM registers if glibc was compiled without AVX-512
capabilities?
When AVX512 isn't supported, _dl_runtime_resolve_avx will be to used
to save the first 8 vector registers, which only saves the lower 256 bits of
vector register, for lazy binding. When it is called on AVX512 platform,
the upper 256 bits of ZMM registers are clobbered.