Add VZEROUPPER to memset-vec-unaligned-erms.S [BZ #21081]
commit02b78ff749f0c88771713368dbb2a09b1979814f
authorH.J. Lu <hjl.tools@gmail.com>
Mon, 30 Jan 2017 18:59:15 +0000 (30 10:59 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Mon, 30 Jan 2017 18:59:31 +0000 (30 10:59 -0800)
treef65e7fc16ef78b3e4254dcf0dcdb1e98864c5576
parentf8bf15febcaf137bbec5a61101e88cd5a9d56ca8
Add VZEROUPPER to memset-vec-unaligned-erms.S [BZ #21081]

Since memset-vec-unaligned-erms.S has VDUP_TO_VEC0_AND_SET_RETURN at
function entry, memset optimized for AVX2 and AVX512 will always use
ymm/zmm register. VZEROUPPER should be placed before ret in

L(stosb):
        movq    %rdx, %rcx
        movzbl  %sil, %eax
        movq    %rdi, %rdx
        rep stosb
        movq    %rdx, %rax
        ret

since it can be reached from

L(stosb_more_2x_vec):
        cmpq    $REP_STOSB_THRESHOLD, %rdx
        ja      L(stosb)

[BZ #21081]
* sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S
(L(stosb)): Add VZEROUPPER before ret.
ChangeLog
sysdeps/x86_64/multiarch/memset-vec-unaligned-erms.S