diff options
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/i386/fpu/libm-test-ulps | 4 | ||||
-rw-r--r-- | sysdeps/i386/i686/multiarch/strcmp-ssse3.S | 9 | ||||
-rw-r--r-- | sysdeps/i386/i686/multiarch/strcmp.S | 55 | ||||
-rw-r--r-- | sysdeps/ieee754/ldbl-128/s_fmal.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/bits/mman.h | 4 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/sys/swap.h | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/bits/mman.h | 3 |
7 files changed, 36 insertions, 44 deletions
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps index 5231789be1..4b1a9e7349 100644 --- a/sysdeps/i386/fpu/libm-test-ulps +++ b/sysdeps/i386/fpu/libm-test-ulps @@ -857,8 +857,8 @@ ifloat: 1 ildouble: 2 ldouble: 2 Test "yn (10, 0.75) == -2133501638.90573424452445412893839236": -float: 1 -ifloat: 1 +float: 2 +ifloat: 2 ildouble: 4 ldouble: 4 Test "yn (10, 1.0) == -121618014.278689189288130426667971145": diff --git a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S index a4de2259d2..607b69b6ff 100644 --- a/sysdeps/i386/i686/multiarch/strcmp-ssse3.S +++ b/sysdeps/i386/i686/multiarch/strcmp-ssse3.S @@ -70,9 +70,7 @@ ENTRY (STRCMP) movl CNT(%esp), %ebp cmp $16, %ebp jb L(less16bytes_sncmp) - jmp L(more16bytes) -#endif - +#else movzbl (%eax), %ecx cmpb %cl, (%edx) jne L(neq) @@ -123,11 +121,6 @@ ENTRY (STRCMP) add $8, %edx add $8, %eax -#ifdef USE_AS_STRNCMP - cmp $8, %ebp - lea -8(%ebp), %ebp - je L(eq) -L(more16bytes): #endif movl %edx, %ecx and $0xfff, %ecx diff --git a/sysdeps/i386/i686/multiarch/strcmp.S b/sysdeps/i386/i686/multiarch/strcmp.S index 7136d47e85..8724594881 100644 --- a/sysdeps/i386/i686/multiarch/strcmp.S +++ b/sysdeps/i386/i686/multiarch/strcmp.S @@ -40,37 +40,32 @@ need strncmp before the initialization happened. */ #if (defined SHARED || !defined USE_AS_STRNCMP) && !defined NOT_IN_libc # ifdef SHARED - .section .gnu.linkonce.t.__i686.get_pc_thunk.bx,"ax",@progbits - .globl __i686.get_pc_thunk.bx - .hidden __i686.get_pc_thunk.bx - .p2align 4 - .type __i686.get_pc_thunk.bx,@function -__i686.get_pc_thunk.bx: - movl (%esp), %ebx + .section .gnu.linkonce.t.__i686.get_pc_thunk.dx,"ax",@progbits + .globl __i686.get_pc_thunk.dx + .hidden __i686.get_pc_thunk.dx + .p2align 2 + .type __i686.get_pc_thunk.dx,@function +__i686.get_pc_thunk.dx: + movl (%esp), %edx ret + .size __i686.get_pc_thunk.dx, .-__i686.get_pc_thunk.dx .text ENTRY(STRCMP) .type STRCMP, @gnu_indirect_function - pushl %ebx - cfi_adjust_cfa_offset (4) - cfi_rel_offset (ebx, 0) - call __i686.get_pc_thunk.bx - addl $_GLOBAL_OFFSET_TABLE_, %ebx - cmpl $0, KIND_OFFSET+__cpu_features@GOTOFF(%ebx) + call __i686.get_pc_thunk.dx + addl $_GLOBAL_OFFSET_TABLE_, %edx + cmpl $0, KIND_OFFSET+__cpu_features@GOTOFF(%edx) jne 1f call __init_cpu_features -1: leal __STRCMP_IA32@GOTOFF(%ebx), %eax - testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features@GOTOFF(%ebx) - jz 2f - leal __STRCMP_SSSE3@GOTOFF(%ebx), %eax - testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%ebx) - jz 2f - leal __STRCMP_SSE4_2@GOTOFF(%ebx), %eax -2: popl %ebx - cfi_adjust_cfa_offset (-4) - cfi_restore (ebx) - ret +1: leal __STRCMP_SSE4_2@GOTOFF(%edx), %eax + testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features@GOTOFF(%edx) + jnz 2f + leal __STRCMP_SSSE3@GOTOFF(%edx), %eax + testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features@GOTOFF(%edx) + jnz 2f + leal __STRCMP_IA32@GOTOFF(%edx), %ecx +2: ret END(STRCMP) # else .text @@ -79,13 +74,13 @@ ENTRY(STRCMP) cmpl $0, KIND_OFFSET+__cpu_features jne 1f call __init_cpu_features -1: leal __STRCMP_IA32, %eax - testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features - jz 2f - leal __STRCMP_SSSE3, %eax +1: leal __STRCMP_SSE4_2, %eax testl $bit_SSE4_2, CPUID_OFFSET+index_SSE4_2+__cpu_features - jz 2f - leal __STRCMP_SSE4_2, %eax + jnz 2f + leal __STRCMP_SSSE3, %eax + testl $bit_SSSE3, CPUID_OFFSET+index_SSSE3+__cpu_features + jnz 2f + leal __STRCMP_IA32, %eax 2: ret END(STRCMP) # endif diff --git a/sysdeps/ieee754/ldbl-128/s_fmal.c b/sysdeps/ieee754/ldbl-128/s_fmal.c index b750538b8a..2dec70ee17 100644 --- a/sysdeps/ieee754/ldbl-128/s_fmal.c +++ b/sysdeps/ieee754/ldbl-128/s_fmal.c @@ -176,7 +176,7 @@ __fmal (long double x, long double y, long double z) u.ieee.mantissa3 |= fetestexcept (FE_INEXACT) != 0; v.d = a1 + u.d; /* Ensure the addition is not scheduled after fetestexcept call. */ - asm volatile ("" : "m" (v)); + asm volatile ("" : : "m" (v)); int j = fetestexcept (FE_INEXACT) != 0; feupdateenv (&env); /* Ensure the following computations are performed in default rounding diff --git a/sysdeps/unix/sysv/linux/i386/bits/mman.h b/sysdeps/unix/sysv/linux/i386/bits/mman.h index 22aa401e02..7ac1aff08b 100644 --- a/sysdeps/unix/sysv/linux/i386/bits/mman.h +++ b/sysdeps/unix/sysv/linux/i386/bits/mman.h @@ -1,5 +1,6 @@ /* Definitions for POSIX memory map interface. Linux/i386 version. - Copyright (C) 1997,2000,2003,2005,2006,2009 Free Software Foundation, Inc. + Copyright (C) 1997,2000,2003,2005,2006,2009,2010 + Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -64,6 +65,7 @@ # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */ # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ # define MAP_STACK 0x20000 /* Allocation is for a stack. */ +# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ #endif /* Flags to `msync'. */ diff --git a/sysdeps/unix/sysv/linux/sys/swap.h b/sysdeps/unix/sysv/linux/sys/swap.h index b6e7bef5d2..961006cbbe 100644 --- a/sysdeps/unix/sysv/linux/sys/swap.h +++ b/sysdeps/unix/sysv/linux/sys/swap.h @@ -1,5 +1,5 @@ /* Calls to enable and disable swapping on specified locations. Linux version. - Copyright (C) 1996, 1998, 1999 Free Software Foundation, Inc. + Copyright (C) 1996, 1998, 1999, 2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -28,6 +28,7 @@ #define SWAP_FLAG_PREFER 0x8000 /* Set if swap priority is specified. */ #define SWAP_FLAG_PRIO_MASK 0x7fff #define SWAP_FLAG_PRIO_SHIFT 0 +#define SWAP_FLAG_DISCARD 0x10000 /* Discard swap cluster after use. */ __BEGIN_DECLS diff --git a/sysdeps/unix/sysv/linux/x86_64/bits/mman.h b/sysdeps/unix/sysv/linux/x86_64/bits/mman.h index 3dcbf9c317..6f3ad0de4f 100644 --- a/sysdeps/unix/sysv/linux/x86_64/bits/mman.h +++ b/sysdeps/unix/sysv/linux/x86_64/bits/mman.h @@ -1,5 +1,5 @@ /* Definitions for POSIX memory map interface. Linux/x86_64 version. - Copyright (C) 2001, 2003, 2005, 2006, 2009 Free Software Foundation, Inc. + Copyright (C) 2001,2003,2005,2006,2009,2010 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -65,6 +65,7 @@ # define MAP_POPULATE 0x08000 /* Populate (prefault) pagetables. */ # define MAP_NONBLOCK 0x10000 /* Do not block on IO. */ # define MAP_STACK 0x20000 /* Allocation is for a stack. */ +# define MAP_HUGETLB 0x40000 /* Create huge page mapping. */ #endif /* Flags to `msync'. */ |