Commit graph

6210 commits

Author SHA1 Message Date
David S. Miller a0902db9fe Add ____longjmp_chk for sparc
tst-longjmp_chk passes, tst-longjmp_chk2 fails but that is because
of some limitations of kernel signal delivery on sparc that I need
to fix, it has nothing to do with the longjmp_chk implementation.

(The problem with tst-longjmp_chk2 is that it tries to do a stack
 fault SIGSEGV within a stack fault SIGSEGV , and the Linux kernel
 will refuse to setup the signal stack and deliver the signal if the
 register windows can't be written out to the stack first)
2009-10-14 14:57:16 +02:00
Roland McGrath b0f3a2e43f Clean up unnecessary libc_hidden_builtin_def fiddling in x86 multiarch definitions. 2009-10-06 20:01:23 -07:00
Roland McGrath 9d6982d5d2 Clean up x86 multiarch HAS_FOO macros. 2009-10-06 19:59:03 -07:00
Ulrich Drepper 78aa397939 Define F_SETOWN_EX and F_GETOWN_EX in Linux headers. 2009-10-01 01:18:41 -07:00
Samuel Thibault ff28353181 Fix Hurd mkdirat. 2009-09-28 11:37:20 -07:00
Roland McGrath 7967983fd4 configure tweaks, support $libc_add_on_config_subdirs 2009-09-15 14:14:42 -07:00
Jakub Jelinek 6dfeb5245b Fix __longjmp_chk on s390/s390x.
s390/s390x hasn't been updated to handle alternate stacks properly.
2009-09-08 16:00:25 -07:00
Ulrich Drepper 04ef416adc Fix IA-32 strstr in multiarch configuration as well. 2009-09-03 06:44:22 -07:00
Jakub Jelinek 22bb992d51 Fix strstr/strcasestr/fma/fmaf on x86_64. 2009-09-02 19:43:04 -07:00
Joshua W. Boyer a050d2a5e7 Fix use of 64-bit insn in 32-bit memcpy for POWER6. 2009-09-01 15:35:35 -07:00
Jakub Jelinek 240441038f Fix x86_64 bits/mathinline.h for -m32 compilation. 2009-09-01 15:30:12 -07:00
Andreas Schwab c2735e958a Fix parse error in bits/mathinline.h with --std=c99 2009-08-31 17:26:14 +02:00
H.J. Lu 5a4eb7282e Remove ENABLE_SSSE3_ON_ATOM.
It turns that SSSE3 isn't slow on Atom. The problem is bsf. This patch
removes ENABLE_SSSE3_ON_ATOM.
2009-08-28 14:54:46 -07:00
Ulrich Drepper 2df4be8c35 Add isinf optimized for 64-bit. 2009-08-26 00:51:45 -07:00
Ulrich Drepper 15e7f0a44d Optimized isnan for 64-bit machines. 2009-08-26 00:12:58 -07:00
Ulrich Drepper deb13bcda9 Make llround an alias for lround on 64-bit machines. 2009-08-25 23:53:23 -07:00
Ulrich Drepper 77a1e0873f Optimized nearbyint for 64-bit. 2009-08-25 23:26:16 -07:00
Ulrich Drepper e6fd9b2490 Optimized rint implementation for x86-64. 2009-08-25 22:44:34 -07:00
Ulrich Drepper 8405789520 Add 64-bit optimized s_round. 2009-08-25 17:28:50 -07:00
Ulrich Drepper 65b14bcee2 Optimize out duplicated scalbln code for x86-64. 2009-08-25 16:46:34 -07:00
Ulrich Drepper 5001998a12 Add 64-bit optimized scalbln. 2009-08-25 15:42:41 -07:00
Ulrich Drepper 7423a3456a Optimized signbit{,f} for x86-64. 2009-08-25 14:54:12 -07:00
Ulrich Drepper d5cb714bb8 Add 64-bit optimized version lround. 2009-08-25 14:12:41 -07:00
Ulrich Drepper 8392ff2dc7 64-bit optimized implementation of trunc. 2009-08-25 12:02:13 -07:00
Ulrich Drepper 84088310ce Handle AVX saving on x86-64 in interrupted smbol lookups.
If a signal arrived during a symbol lookup and the signal handler also
required a symbol lookup, the end of the lookup in the signal handler reset
the flag whether restoring AVX/SSE registers is needed.  Resetting means
in this case that the tail part of the outer lookup code will try to
restore the registers and this can fail miserably.  We now restore to the
previous value which makes nesting calls possible.
2009-08-25 10:42:30 -07:00
Ulrich Drepper cf00cc00bc Add ceil implementation for 64-bit machines.
On 64-bit machines we should not split doubles into two 32 bit
integer and handle the words separately.  We have wide registers.
This patch implements a 64-bit ceil version.  Ideally all other
functions will be converted over time.
2009-08-24 18:05:48 -07:00
Ulrich Drepper 9a1ea1525e Optimize float construction/extraction on x86-64. 2009-08-24 14:52:49 -07:00
Roland McGrath 036e46b655 Add sysdeps/unix/syscall-template.S; build syscall stubs with deps and -g pointing to it. 2009-08-24 11:40:15 -07:00
Ulrich Drepper 7b943af6cf Define math_errhandling is possible. 2009-08-24 10:33:57 -07:00
Ulrich Drepper ef72d5f1b9 Optimize x86-64 signbit{,f} a bit. 2009-08-24 10:20:58 -07:00
Andreas Schwab 15efafdf07 Add sigstack handling to Linux ____longjmp_chk on powerpc. 2009-08-22 02:01:51 -07:00
Roland McGrath 464dc022eb Improve backtrace_symbols{,_fd} output when missing symbols. 2009-08-20 15:31:08 -07:00
H.J. Lu 4e1e2f4247 Support mixed SSE/AVX audit and check AVX only once.
This patch fixes mixed SSE/AVX audit and checks AVX only once in
_dl_runtime_profile. When an AVX or SSE register value in pltenter is
modified, we have to make sure that the SSE part value is the same in both
lr_xmm and lr_vector fields so that pltexit will get the correct value
from either lr_xmm or lr_vector fields. AVX-enabled pltenter should
update both lr_xmm and lr_vector fields to support stacked AVX/SSE
pltenter functions.
2009-08-08 10:54:42 -07:00
H.J. Lu fc1870e6a4 Use PIC only if SHARED is defined.
For ia32, we can avoid PIC in IFUNC functions in static library.
2009-08-08 10:29:29 -07:00
Jim Meyering a3d4298d83 Simplify cpuid.h configure test. 2009-08-08 10:25:58 -07:00
Ulrich Drepper 8e436522e1 Move SSE4.2 functions together. 2009-08-08 09:38:32 -07:00
Ulrich Drepper 0fda545d5f Add SSSE3-optimized implementation of str{,n}cmp for x86-64. 2009-08-07 22:51:02 -07:00
Ulrich Drepper 57b378ac89 Avoid warning through fake initialization. 2009-08-07 16:19:54 -07:00
Ulrich Drepper 2d2f482e48 Fix whitespace in last patch. 2009-08-07 10:41:54 -07:00
H.J. Lu 0eca608d05 Add the missing "; \". 2009-08-07 10:40:45 -07:00
Ulrich Drepper 3aa2588d4a Fix whitespaces in last checkin. 2009-08-07 09:47:12 -07:00
H.J. Lu a546baa9cd Properly count number of logical processors on Intel CPUs.
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.
2009-08-07 09:39:36 -07:00
Ulrich Drepper 2c709c6f05 Add x86 SSE strlen. 2009-08-04 18:15:02 -07:00
H.J. Lu 02cea47161 Add x86 32-bit SSE4.2 string functions.
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.
2009-08-04 12:13:43 -07:00
Ulrich Drepper 4a1377672c Remove leftover code from Linux/x86 ____longjmp_chk. 2009-08-02 21:51:37 -07:00
Ulrich Drepper 5192104773 x86/x86-64 now needs <cpuid.h> from gcc. 2009-08-02 10:38:44 -07:00
Ulrich Drepper 9663bb3e2c Remove last trace of bounded pointer handling from ____longjmp_chk on x86-64. 2009-08-01 14:18:58 -07:00
Ulrich Drepper e4143e7a06 Optimize x86 and x86-64 ____longjmp_chk for Linux. 2009-07-31 17:27:38 -07:00
Ulrich Drepper 66ae9e50a3 Fix ____longjmp_chk on x86-64.
After a recent change to fix CFI in ____longjmp_chk the test of the
ss_flags used the wrong memory location.
2009-07-31 12:57:45 -07:00
H.J. Lu 6f6f1215f6 Support multiarch for i686.
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.
2009-07-31 11:53:35 -07:00