summaryrefslogtreecommitdiff
path: root/sysdeps/x86_64
AgeCommit message (Collapse)Author
2009-07-27Refine testing for xmm/ymm register use in x86-64 ld.so.Ulrich Drepper
The test now takes the callgraph into account. Only code called during runtime relocation is affected by the limitation. We now determine the affected object files as closely as possible from the outside. This allowed to remove some the specializations for some of the string functions as they are only used in other code paths.
2009-07-27No need for special strcmp for rtld.Ulrich Drepper
2009-07-26Make sure no code in ld.so uses xmm/ymm registers on x86-64.Ulrich Drepper
This patch introduces a test to make sure no function modifies the xmm/ymm registers. With the exception of the auditing functions. The test is probably too pessimistic. All code linked into ld.so is checked. Perhaps at some point the callgraph starting from _dl_fixup and _dl_profile_fixup is checked and we can start using faster SSE-using functions in parts of ld.so.
2009-07-26Add SSE2 support to str{,n}cmp for x86-64.H.J. Lu
2009-07-25Some some optimizations for x86-64 strcmp.H.J. Lu
2009-07-25Optimize x86-64 SSE4.2 strcmp.Ulrich Drepper
The file contained some code which was never used. Don't compile it in.
2009-07-23Avoid cpuid instructions in cache info discovery.Ulrich Drepper
When multiarch is enabled we have this information stored. Use it.
2009-07-23Add more cache descriptors for L3 caches on x86 and x86-64.Ulrich Drepper
The most recent AP 485 describes a few more cache descriptors for L3 caches with 24-way associativity.
2009-07-23Perform test for Arom x86-64 in central place and handle it.Ulrich Drepper
There will be more than one function which, in multiarch mode, wants to use SSSE3. We should not test in each of them for Atoms with slow SSSE3. Instead, disable the SSSE3 bit in the startup code for such machines.
2009-07-21Minor cleanups in x86-64 strstr.Ulrich Drepper
2009-07-20Better check for optimization in new x86-64 strstr/strcasestr.Ulrich Drepper
2009-07-20SSE4.2 strstr/strcasestr for x86-64.H.J. Lu
This patch implements SSE4.2 strstr/strcasestr, using Knuth-Morris-Pratt string searching algorithm.
2009-07-16Optimize restoring of ymm registers on x86-64.Ulrich Drepper
The patch mainly reduces the code size but also avoids some jumps.
2009-07-16Fix up whitespaces in new memcmp for x86-64.Ulrich Drepper
2009-07-16memcmp implementation for x86-64 using SSE2.H.J. Lu
2009-07-15Fix thinko in AVX audit patch.Ulrich Drepper
Don't use AVX instructions too often.
2009-07-15Fix typo in last change.Ulrich Drepper
2009-07-15Secure AVX changes for auditing code.Ulrich Drepper
The original AVX patch used a function pointer to handle the difference between machines with and without AVX support. This is insecure. A well-placed memory exploit could lead to redirection of the execution. Using a variable and several tests is a bit slower but cannot be exploited in this way.
2009-07-10Add AVX support to ld.so auditing for x86-64.H.J. Lu
2009-07-03Minor cleanups in recently added files.Ulrich Drepper
2009-07-03Align functions to 16-byte boundary.Ulrich Drepper
Some of the new multi-arch string functions for x86-64 were not aligned to 16 byte boundarie,s possibly creating unnecessary cache line misses and delays.
2009-07-03Add SSE4.2 support for strcspn, strpbrk, and strspn on x86-64.H.J. Lu
2009-07-02Fix handling of xmm6 in ld.so audit hooks on x86-64.H.J. Lu
2009-07-02Whitespace fixes in last patch.Ulrich Drepper
2009-07-02SSSE3 strcpy/stpcpy for x86-64H.J. Lu
This patch adds SSSE3 strcpy/stpcpy. I got up to 4X speed up on Core 2 and Core i7. I disabled it on Atom since SSSE3 version is slower for shorter (<64byte) data.
2009-06-30Regenerated.Ulrich Drepper
2009-06-30Fix little checkin problem in last patch.Ulrich Drepper
2009-06-30Determine and store processor family and model on x86-64.H.J. Lu
2009-06-22Clean up whitespaces in last patch.Ulrich Drepper
2009-06-22Add SSE4.2 support for strcmp and strncmp on x86-64.H.J. Lu
2009-06-16Fix x86-64 memchr for large lengths.Jakub Jelinek
2009-06-14Fix warnings when using <sys/select.h>.Ulrich Drepper
gcc 4.4 is more picky. And the x86-64 version of <bits/select.h> contained a now unnecessary asm optimization. Remove it.
2009-06-05Add SSE4.2 optimized rawmemchr implementation for x86-64.Ulrich Drepper
2009-06-05Forgot some more cleanups for the SSE4.2 strlen on x86-64.Ulrich Drepper
2009-06-05Add missing cleanups from SSE4.2 x86-64 strlen.Ulrich Drepper
2009-06-05Optimize x86-64 strlen for SSE4.2.Ulrich Drepper
The SSE4.2 implementation is used in the DSO only. The patch also adds some infrastructure to be used in similar code later one.
2009-06-04More small optimizations for x86-64 strlen.Ulrich Drepper
2009-06-04Tiny strlen for x86-64 optimization.Ulrich Drepper
I didn't remove an instruction from a previous version in the final version.
2009-06-01Small optimization of STT_GNU_IFUNC handling.Ulrich Drepper
The test to call the indirect function now includes a subtest to checked whether the symbol is defined. When coming to that point this is almost always the case. The test for STT_GNU_IFUNC on the other hand rarely is true. Move it to the front means we don't have to perform the second test unless really necessary.
2009-06-01Better error message for invalid relocatio in static binary.Ulrich Drepper
2009-05-31Fix up sched_cpucount in x86-64.Ulrich Drepper
Now that static executables can handle IFUNC functions don't exclude optimization for sched_cpucount for !SHARED.
2009-05-31Finish IFUNC support for x86 and x86-64.Ulrich Drepper
Add support for the IRELAIVE relocation and IFUNC in static executables.
2009-05-31Simplify CPUID value handling.Ulrich Drepper
SO far Intel and AMD use exactly the same bits meaning the same things in CPUID index 1. Simplify the code. Should an architecture come along which doesn't use the same semantics then it must use a different index value than COMMON_CPUID_INDEX_1.
2009-05-29Compact cache info data structure for x86/x86-64.Ulrich Drepper
This saves about 1.5kB in the DSO.
2009-05-21Add missing .text directives.H.J. Lu
The ____longjmp_chk functions on x86 and x86-64 were placed in .rodata.str1.1.
2009-05-15Check for valid stack frame in longjmp.Ulrich Drepper
If longjmp restores the stack frame to an address which is beyond the stack frame at the time of the longjmp call it would install an uninitialized stack frame. If compiled with _FORTIFY_SOURCE defined, longjmp will now bail out in this situation.
2009-05-10* version.h (VERSION): Bump to 2.10.1.cvs/fedora-glibc-20090510T1842cvs/masterUlrich Drepper
* nss/getXXbyYY_r.c: If NO_COMPAT_NEEDED is defined don't define any compatibility functions. * nss/getXXent_r.c: Likewise. * gshadow/getsgent_r.c: Define NO_COMPAT_NEEDED. * gshadow/getsgnam_r.c: Likewise. * gshadow/Version: Remove duplicate entries. * sysdeps/x86_64/cacheinfo.c (intel_02_cache_info): Add missing entries for recent processor. * sysdeps/unix/sysv/linux/i386/sysconf.c (intel_02_cache_info): Likewise.
2009-05-09* sysdeps/x86_64/memchr.S: Handle invalid buffer pointers whenUlrich Drepper
count is zero.
2009-04-27* sysdeps/ieee754/dbl-64/s_expm1.c: Set errno for overflow.Ulrich Drepper
* sysdeps/ieee754/flt-32/s_expm1f.c: Likewise. * sysdeps/x86_64/fpu/s_expm1l.S: Likewise.
2009-04-26* sysdeps/unix/sysv/linux/dl-osinfo.h (dl_fatal): Remove inlineUlrich Drepper
from definition. * sysdeps/x86_64/dl-machine.h (elf_machine_rela): Don't define label if it is not used. * elf/dl-profile.c (_dl_start_profile): Define real-type variant of gmon_hist_hdr and gmon_hdr structures and use them. * elf/dl-load.c (open_verify): Add temporary variable to avoid warning. * nscd/nscd_helper.c (get_mapping): Avoid casts to avoid warnings. * sunrpc/clnt_raw.c (clntraw_private_s): Use union in definition to avoid cast. * inet/rexec.c (rexec_af): Make sa2 a union to avoid warnings. * inet/rcmd.c (rcmd_af): Make from a union of the various needed types to avoid warnings. (iruserok_af): Use ss_family instead of casts. * gmon/gmon.c (write_hist): Define real-type variant of gmon_hist_hdr structure and use it. (write_gmon): Likewise for gmon_hdr. * sysdeps/unix/sysv/linux/readv.c: Avoid declaration of replacement function if we are not going to define it. * sysdeps/unix/sysv/linux/writev.c: Likewise. * inet/inet6_option.c (optin_alloc): Add temporary variable to avoid warning. * libio/strfile.h (struct _IO_streambuf): Use correct type and name of VTable element. * libio/iovsprintf.c: Avoid casts to avoid warnings. * libio/iovsscanf.c: Likewise. * libio/vasprintf.c: Likewise. * libio/vsnprintf.c: Likewise. * stdio-common/isoc99_vsscanf.c: Likewise. * stdlib/strfmon_l.c: Likewise. * debug/vasprintf_chk.c: Likewise. * debug/vsnprintf_chk.c: Likewise. * debug/vsprintf_chk.c: Likewise.