1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-07-29 11:41:21 +03:00
Files
glibc/sysdeps/x86/tst-gnu2-tls2.c
H.J. Lu 0ef7965e5b x86: Update tst-gnu2-tls2 tests
Update tst-gnu2-tls2 tests to set XMM0...XMM7 to all 1s in malloc to
verify that XMM registers are preserved when _dl_tlsdesc_dynamic is
called by clearing vectors with zeroed XMM registers before
_dl_tlsdesc_dynamic and using these XMM registers to clear vectors
after _dl_tlsdesc_dynamic.  This improves the BZ #31372 test.

Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
Reviewed-by: Sam James <sam@gentoo.org>
2025-06-19 05:46:31 +08:00

27 lines
760 B
C

#ifndef TEST_AMX
# ifndef __x86_64__
# include <sys/platform/x86.h>
# define IS_SUPPORTED() CPU_FEATURE_ACTIVE (SSE2)
# endif
/* Set XMM0...XMM7 to all 1s. */
# define PREPARE_MALLOC() \
{ \
asm volatile ("pcmpeqd %%xmm0, %%xmm0" : : : "xmm0" ); \
asm volatile ("pcmpeqd %%xmm1, %%xmm1" : : : "xmm1" ); \
asm volatile ("pcmpeqd %%xmm2, %%xmm2" : : : "xmm2" ); \
asm volatile ("pcmpeqd %%xmm3, %%xmm3" : : : "xmm3" ); \
asm volatile ("pcmpeqd %%xmm4, %%xmm4" : : : "xmm4" ); \
asm volatile ("pcmpeqd %%xmm5, %%xmm5" : : : "xmm5" ); \
asm volatile ("pcmpeqd %%xmm6, %%xmm6" : : : "xmm6" ); \
asm volatile ("pcmpeqd %%xmm7, %%xmm7" : : : "xmm7" ); \
}
#endif
#include <elf/tst-gnu2-tls2.c>
#ifndef TEST_AMX
v2di v1, v2, v3;
#endif