diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2015-01-30 06:50:20 -0800 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2015-02-16 05:25:06 -0500 |
commit | 1bf9d48aec087062e2a14b77cb5ee1fa81be334c (patch) | |
tree | dd71ed2c07db46cc7c958cbfa9a495b6585b2234 /elf/multiload.c | |
parent | f9e0f439b72e0b2fb035be1bc60aaceeed7f6ed0 (diff) | |
download | glibc-1bf9d48aec087062e2a14b77cb5ee1fa81be334c.zip glibc-1bf9d48aec087062e2a14b77cb5ee1fa81be334c.tar.gz glibc-1bf9d48aec087062e2a14b77cb5ee1fa81be334c.tar.bz2 |
Use AVX unaligned memcpy only if AVX2 is available
memcpy with unaligned 256-bit AVX register loads/stores are slow on older
processorsl like Sandy Bridge. This patch adds bit_AVX_Fast_Unaligned_Load
and sets it only when AVX2 is available.
[BZ #17801]
* sysdeps/x86_64/multiarch/init-arch.c (__init_cpu_features):
Set the bit_AVX_Fast_Unaligned_Load bit for AVX2.
* sysdeps/x86_64/multiarch/init-arch.h (bit_AVX_Fast_Unaligned_Load):
New.
(index_AVX_Fast_Unaligned_Load): Likewise.
(HAS_AVX_FAST_UNALIGNED_LOAD): Likewise.
* sysdeps/x86_64/multiarch/memcpy.S (__new_memcpy): Check the
bit_AVX_Fast_Unaligned_Load bit instead of the bit_AVX_Usable bit.
* sysdeps/x86_64/multiarch/memcpy_chk.S (__memcpy_chk): Likewise.
* sysdeps/x86_64/multiarch/mempcpy.S (__mempcpy): Likewise.
* sysdeps/x86_64/multiarch/mempcpy_chk.S (__mempcpy_chk): Likewise.
* sysdeps/x86_64/multiarch/memmove.c (__libc_memmove): Replace
HAS_AVX with HAS_AVX_FAST_UNALIGNED_LOAD.
* sysdeps/x86_64/multiarch/memmove_chk.c (__memmove_chk): Likewise.
(cherry picked from commit 5f3d0b78e011d2a72f9e88b0e9ef5bc081d18f97)
Conflicts:
ChangeLog
NEWS
Diffstat (limited to 'elf/multiload.c')
0 files changed, 0 insertions, 0 deletions