about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* Add SSSE3-optimized implementation of str{,n}cmp for x86-64.Ulrich Drepper2009-08-076-47/+194
|
* Small optimizations to cancellable x86-64 code.Ulrich Drepper2009-08-075-61/+49
|
* Avoid warning through fake initialization.Ulrich Drepper2009-08-072-0/+7
|
* Fix whitespace in last patch.Ulrich Drepper2009-08-071-1/+1
|
* Add the missing "; \".H.J. Lu2009-08-072-1/+5
|
* Fix expanding STB_GNU_UNIQUE hash table.Andreas Schwab2009-08-072-1/+6
| | | | | An invalid symbol name pointer was entered into the hash table while enlarging it.
* Fix whitespaces in last checkin.Ulrich Drepper2009-08-071-1/+1
|
* Properly count number of logical processors on Intel CPUs.H.J. Lu2009-08-072-4/+43
| | | | | | | | | | | | | | | | | | | | The meaning of the 25-14 bits in EAX returned from cpuid with EAX = 4 has been changed from "the maximum number of threads sharing the cache" to "the maximum number of addressable IDs for logical processors sharing the cache" if cpuid takes EAX = 11. We need to use results from both EAX = 4 and EAX = 11 to get the number of threads sharing the cache. The 25-14 bits in EAX on Core i7 is 15 although the number of logical processors is 8. Here is a white paper on this: http://software.intel.com/en-us/articles/intel-64-architecture-processor-topology-enumeration/ This patch correctly counts number of logical processors on Intel CPUs with EAX = 11 support on cpuid. Tested on Dinnington, Core i7 and Nehalem EX/EP. It also fixed Pentium Ds workaround since EBX may not have the right value returned from cpuid with EAX = 1.
* Fix sed expression in TAGS command.Andreas Schwab2009-08-072-2/+7
| | | | | The backslash-newline pair is interpreted as the beginning of an address regex.
* Ignore TAGS.Andreas Schwab2009-08-061-0/+1
|
* Add x86 SSE strlen.Ulrich Drepper2009-08-044-6/+166
|
* Add x86 32-bit SSE4.2 string functions.H.J. Lu2009-08-0414-4/+243
| | | | | | This patch adds 32bit SSE4.2 string functions. It uses -16L instead of 0xfffffffffffffff0L, which works for both 32bit and 64bit long. Tested on 32bit Core i7 and Core 2.
* Optimize x86-64 syscall cancellation handling.Ulrich Drepper2009-08-046-44/+191
| | | | | | | The syscall wrappers had to save and restore the syscall parameter values and return value when calling the functions to enable/disable cancellation were called. Not anymore. The called functions are special and don't modify any unexpected registers.
* Remove leftover code from Linux/x86 ____longjmp_chk.Ulrich Drepper2009-08-021-6/+0
|
* x86/x86-64 now needs <cpuid.h> from gcc.Ulrich Drepper2009-08-023-44/+67
|
* Remove last trace of bounded pointer handling from ____longjmp_chk on x86-64.Ulrich Drepper2009-08-011-1/+1
|
* Macro cleanup.Ulrich Drepper2009-07-312-8/+12
| | | | Better definition of the *_NITSET macros.
* Merge branch 'master' of file:///net/myware66/home/drepper/gnu/libcUlrich Drepper2009-07-313-117/+59
|\
| * Optimize x86 and x86-64 ____longjmp_chk for Linux.Ulrich Drepper2009-07-313-117/+54
| |
| * Fix ____longjmp_chk on x86-64.Ulrich Drepper2009-07-312-2/+7
| | | | | | | | | | After a recent change to fix CFI in ____longjmp_chk the test of the ss_flags used the wrong memory location.
* | Regenerated.Ulrich Drepper2009-07-311-8/+40
|/
* Support multiarch for i686.H.J. Lu2009-07-3113-49/+125
| | | | | | This patch adds multiarch support when configured for i686. I modified some x86-64 functions to support 32bit. I will contribute 32bit SSE string and memory functions later.
* Fix obstack* on i?86Jakub Jelinek2009-07-312-0/+5
| | | | | | obstack calls several callbacks, so on i?86 it'd better be compiled without -mpreferred-stack-boundary=2, otherwise the callbacks are called with misaligned stack.
* Remove CHEC_ESP handling from i386 __longjmp.Ulrich Drepper2009-07-311-9/+0
|
* Whitespace cleanup.Ulrich Drepper2009-07-301-2/+2
|
* Add sigstack handling to Linux ____longjmp_chk on i386.Ulrich Drepper2009-07-304-61/+156
| | | | All other i386 ports need to provide their own versions.
* ____longjmp_chk is now OS-specific.Ulrich Drepper2009-07-303-145/+151
| | | | | | | We use sigaltstack internally which on some systems is a syscall and should be used as such. Move the x86-64 version to the Linux specific directory and create in its place a file which always causes compile errors.
* Change code a bit to correct CFI.Ulrich Drepper2009-07-301-1/+3
|
* Optimize ____longjmp_chk for x86-64 a bit.Ulrich Drepper2009-07-301-5/+3
|
* Add CFLAGS definition missing from last patch.Ulrich Drepper2009-07-301-0/+2
|
* Add test case for ____longjmp_chk vs signal stacks.Ulrich Drepper2009-07-303-1/+119
|
* Fix x86-64 ____longjmp_chk to handle signal stacks.Ulrich Drepper2009-07-303-7/+111
| | | | | | The simple test previously used might trigger if the longjmp jumps from the signal stack to the normal stack. We now explicitly test for this case.
* Stop backtrace when we make no more progress.Ulrich Drepper2009-07-302-2/+13
|
* Add support for x86-64 fma instruction.Ulrich Drepper2009-07-296-2/+110
| | | | Use it to implement fma and fmaf, if possible.
* Prepare use if IFUNC functions outside libc.so.Ulrich Drepper2009-07-293-3/+42
| | | | | | We use a callback function into libc.so to get access to the data structure with the information and have special versions of the test macros which automatically use this function.
* Fix x86-64 TCB alignment for future processor versions.Ulrich Drepper2009-07-293-6/+14
|
* Improve CFI in x86-64 ld.so trampoline code.Ulrich Drepper2009-07-292-1/+7
|
* Properly restore AVX registers on x86-64.H.J. Lu2009-07-292-10/+14
| | | | | tst-audit4 and tst-audit5 fail under AVX emulator due to je instead of jne. This patch fixes them.
* Preserve SSE registers in runtime relocations on x86-64.Ulrich Drepper2009-07-2910-21/+188
| | | | | | | | | | SSE registers are used for passing parameters and must be preserved in runtime relocations. This is inside ld.so enforced through the tests in tst-xmmymm.sh. But the malloc routines used after startup come from libc.so and can be arbitrarily complex. It's overkill to save the SSE registers all the time because of that. These calls are rare. Instead we save them on demand. The new infrastructure put in place in this patch makes this possible and efficient.
* Fix bookkeeping of static TLS block for TLS_TCB_AT_TP architectures.Ulrich Drepper2009-07-283-5/+18
|
* Fix bookkeeping in mutex when using requeue_pi.Ulrich Drepper2009-07-289-24/+83
|
* pthread_mutex_unlock needs to use _rel semantics for atomic ops.Ulrich Drepper2009-07-272-3/+9
|
* Revert "Memory ordering in pthread_mutex_{,timed}lock."Ulrich Drepper2009-07-273-19/+12
| | | | This reverts commit 7b7f43bed134db6a0da34282fffcbf0af10d4613.
* Refine testing for xmm/ymm register use in x86-64 ld.so.Ulrich Drepper2009-07-276-12/+86
| | | | | | | | | 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.
* Break out _dl_scope_free into its own file.Ulrich Drepper2009-07-273-36/+59
| | | | | This reduces the coarse static callgraph that can be discovered by looking at the object files.
* Define and implement RES_USE_DNSSEC option in resolver.Adam Tkac2009-07-275-5/+26
|
* Fix STB_GNU_UNIQUE handling for > 30 unique symbols.Jakub Jelinek2009-07-272-2/+9
| | | | | | | | | | | | | There were several issues when the initial 31 entries hashtab filled up. size * 3 <= tab->n_elements is always false, table can't have more elements than its size. I assume from libiberty/hashtab.c this meant to be check for 3/4 full. Even after fixing that, _dl_higher_prime_number (31) apparently returns 31, only _dl_higher_prime_number (32) returns 61. And, size variable wasn't updated during reallocation, which means during reallocation the insertion of the new entry was done into a wrong spot. All this lead to a hang in ld.so, because a search with n_elements 31 size 31 wouldn't ever terminate.
* No need for special strcmp for rtld.Ulrich Drepper2009-07-272-29/+0
|
* Make sure no code in ld.so uses xmm/ymm registers on x86-64.Ulrich Drepper2009-07-2611-0/+498
| | | | | | | | | | 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.
* Add missing ChangeLog entry for last checkin.Ulrich Drepper2009-07-261-0/+20
|