glibc/sysdeps/i386
H.J. Lu 75dd0a8f3d Detect and select i586/i686 implementation at run-time
We detect i586 and i686 features at run-time by checking CX8 and CMOV
CPUID features bits.  We can use these information to select the best
implementation in ix86 multiarch.  HAS_I586/HAS_I686 is true if i586/i686
instructions are available on the processor.

Due to the reordering and the other nifty extensions in i686, it is not
really good to use heavily i586 optimized code on an i686.  It's better
to use i486 code if it isn't an i586.  USE_I586/USE_I686 is true if
i586/i686 implementation should be used for the processor.  USE_I586
is true only if i686 instructions aren't available.  If i686 instructions
are available, we always choose i686 or i486 implementation, in that order,
and we never choose i586 implementation for i686-class processors.

	* sysdeps/i386/init-arch.h: New file.
	* sysdeps/i386/i586/init-arch.h: Likewise.
	* sysdeps/i386/i686/init-arch.h: Likewise.
	* sysdeps/x86/cpu-features.c (init_cpu_features): Set bit_I586
	bit if CX8 is available.  Set bit_I686 bit if CMOV is available.
	* sysdeps/x86/cpu-features.h (bit_I586): New.
	(bit_I686): Likewise.
	(bit_CX8): Likewise.
	(bit_CMOV): Likewise.
	(index_CX8): Likewise.
	(index_CMOV): Likewise.
	(index_I586): Likewise.
	(index_I686): Likewise.
	(reg_CX8): Likewise.
	(reg_CMOV): Likewise.
	(HAS_I586): Defined as HAS_ARCH_FEATURE (I586) if i586 isn't
	available at compile-time.
	(HAS_I686): Defined as HAS_ARCH_FEATURE (I686) if i686 isn't
	available at compile-time.
	* sysdeps/x86/init-arch.h (USE_I586): New macro.
	(USE_I686): Likewise.
2015-08-27 09:06:44 -07:00
..
bits Move i486/bits/atomic.h to bits/atomic.h 2015-08-27 07:49:22 -07:00
fpu Fix csqrt missing underflows (bug 18370). 2015-08-19 22:42:01 +00:00
i586 Detect and select i586/i686 implementation at run-time 2015-08-27 09:06:44 -07:00
i686 Detect and select i586/i686 implementation at run-time 2015-08-27 09:06:44 -07:00
i786
nptl
sys
____longjmp_chk.S
__longjmp.S
abort-instr.h
add_n.S
addmul_1.S
asm-syntax.h
backtrace.c Fix BZ #18084 -- backtrace (..., 0) dumps core on x86. 2015-08-15 11:42:43 -07:00
bcopy.S Add i386 memset and memcpy assembly functions 2015-08-27 09:04:54 -07:00
bsd-_setjmp.S
bsd-setjmp.S
bzero.S Add i386 memset and memcpy assembly functions 2015-08-27 09:04:54 -07:00
cacheinfo.c Use x86-64 cacheinfo.c and sysconf.c for x86 2015-08-19 04:27:04 -07:00
configure
configure.ac
crti.S
crtn.S
dl-irel.h
dl-lookupcfg.h
dl-machine.h Add _dl_x86_cpu_features to rtld_global 2015-08-13 03:41:22 -07:00
dl-procinfo.c Add _dl_x86_cpu_features to rtld_global 2015-08-13 03:41:22 -07:00
dl-procinfo.h
dl-tls.h
dl-tlsdesc.h
dl-tlsdesc.S
dl-trampoline.S
ffs.c
gccframe.h
gmp-mparam.h
htonl.S Move i486/htonl.S to htonl.S 2015-08-27 07:50:34 -07:00
htons.S
i386-mcount.S
Implies
init-arch.h Detect and select i586/i686 implementation at run-time 2015-08-27 09:06:44 -07:00
jmpbuf-offsets.h
jmpbuf-unwind.h
ldbl2mpn.c
ldsodefs.h Add _dl_x86_cpu_features to rtld_global 2015-08-13 03:41:22 -07:00
link-defines.sym
lshift.S
machine-gmon.h
Makefile Don't disable SSE in x86-64 ld.so 2015-08-26 07:55:42 -07:00
memchr.S
memcmp.S
memcopy.h
memcpy_chk.S Add i386 memset and memcpy assembly functions 2015-08-27 09:04:54 -07:00
memcpy.S Add i386 memset and memcpy assembly functions 2015-08-27 09:04:54 -07:00
memmove_chk.S Add i386 memset and memcpy assembly functions 2015-08-27 09:04:54 -07:00
memmove.S Add i386 memset and memcpy assembly functions 2015-08-27 09:04:54 -07:00
mempcpy_chk.S Add i386 memset and memcpy assembly functions 2015-08-27 09:04:54 -07:00
mempcpy.S Add i386 memset and memcpy assembly functions 2015-08-27 09:04:54 -07:00
memset_chk.S Add i386 memset and memcpy assembly functions 2015-08-27 09:04:54 -07:00
memset.S Add i386 memset and memcpy assembly functions 2015-08-27 09:04:54 -07:00
memusage.h
mp_clz_tab.c
mul_1.S
preconfigure
pthread_spin_trylock.S Move i486/pthread_spin_trylock.S to pthread_spin_trylock.S 2015-08-27 07:55:29 -07:00
rawmemchr.S
rshift.S
setfpucw.c
setjmp.S
stackguard-macros.h
stackinfo.h
start.S
stpcpy.S
stpncpy.S
strcat.S Move i486/strcat.S to strcat.S 2015-08-27 07:56:41 -07:00
strchr.S
strchrnul.S
strcspn.S
string-inlines.c Move i486/string-inlines.c to string-inlines.c 2015-08-27 07:51:55 -07:00
strlen.c
strlen.S Move i486/strlen.S to strlen.S 2015-08-27 07:57:55 -07:00
strpbrk.S
strrchr.S
strspn.S
strtok_r.S
strtok.S
sub_n.S
submul_1.S
sysdep.h
tls-macros.h
tlsdesc.c
tlsdesc.sym
tst-audit3.c
tst-audit3.h
tst-audit.h
tst-auditmod3a.c
tst-auditmod3b.c Add a missing break in tst-auditmod3b.c 2015-08-09 08:06:50 -07:00
tst-ld-sse-use.sh Don't disable SSE in x86-64 ld.so 2015-08-26 07:55:42 -07:00
tst-stack-align.h
Versions