This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug math/18875] Excess precision leads incorrect libm


https://sourceware.org/bugzilla/show_bug.cgi?id=18875

--- Comment #3 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/i486/multiarch has been created
        at  5a3bf29118b420d8eaea8b98e56a8c80d137b6fc (commit)

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5a3bf29118b420d8eaea8b98e56a8c80d137b6fc

commit 5a3bf29118b420d8eaea8b98e56a8c80d137b6fc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Aug 26 04:20:42 2015 -0700

    Add i386 math multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=5ebb4c7501c7589e02bacae2b7e8111b4145b643

commit 5ebb4c7501c7589e02bacae2b7e8111b4145b643
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Aug 25 07:45:24 2015 -0700

    Add i386 wmemcmp multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=3d9c3216a4420df83673beb9961fb15ec1ab65e0

commit 3d9c3216a4420df83673beb9961fb15ec1ab65e0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Aug 25 06:51:45 2015 -0700

    Add i386 wcslen multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=dc5c8ff25c55f5e33cea1ed62ac8eb90cff676a0

commit dc5c8ff25c55f5e33cea1ed62ac8eb90cff676a0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Aug 25 06:24:16 2015 -0700

    Add i386 wcscpy multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=cf68fa47a58d4a179ca233aea6f34b123151a3bc

commit cf68fa47a58d4a179ca233aea6f34b123151a3bc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Aug 25 06:12:47 2015 -0700

    Add i386 wcscmp multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d32799c39a2133620ecde5050c141f28887066c6

commit d32799c39a2133620ecde5050c141f28887066c6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Aug 25 06:06:30 2015 -0700

    Add i386 wcschr/wcsrchr multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=45d2a8f3ba836e030f33be116b4c64bde7fde636

commit 45d2a8f3ba836e030f33be116b4c64bde7fde636
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Aug 24 16:03:28 2015 -0700

    Add i386 strspn multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=626c25bf10334f20f3932bad5b48061972d4f8f1

commit 626c25bf10334f20f3932bad5b48061972d4f8f1
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Aug 24 13:01:12 2015 -0700

    Add i386 strlen family multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=784eafd46458efa4c7ef9b9e7179ae8fdc3039a6

commit 784eafd46458efa4c7ef9b9e7179ae8fdc3039a6
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Aug 24 11:41:57 2015 -0700

    Add i386 strrchr multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=1e8ba2ee47ca4dadd08634007702ef50f1846b00

commit 1e8ba2ee47ca4dadd08634007702ef50f1846b00
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Aug 24 10:46:29 2015 -0700

    Add i386 strcspn family multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=9e696a41bf22c18f8159884bc65f3da43caa7edb

commit 9e696a41bf22c18f8159884bc65f3da43caa7edb
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Aug 23 12:47:24 2015 -0700

    Add i386 strchr multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=10154480674f2331e93a56d859de027f5f457164

commit 10154480674f2331e93a56d859de027f5f457164
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 20 15:20:58 2015 -0700

    Add i386 strcat multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f6e73f16131d3321fbf7a1fe18c81f91ae63f591

commit f6e73f16131d3321fbf7a1fe18c81f91ae63f591
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 20 13:57:22 2015 -0700

    Add i386 strcmp family multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=2f2cd11515ecb078a799fbc921df2503f04d2140

commit 2f2cd11515ecb078a799fbc921df2503f04d2140
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 20 12:05:50 2015 -0700

    Add i386 strcpy family multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=8ff7a3fbbfaaf7b408d2c07914ffeb287c73f208

commit 8ff7a3fbbfaaf7b408d2c07914ffeb287c73f208
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 20 08:56:52 2015 -0700

    Add i386 s_fma family multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=38699fca0b617981b9270449532a1b929613aa63

commit 38699fca0b617981b9270449532a1b929613aa63
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 20 08:39:14 2015 -0700

    Add i386 sched_cpucount multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=b832be877bc1e4d3f679670aa7b328cdcad591e0

commit b832be877bc1e4d3f679670aa7b328cdcad591e0
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 20 08:33:40 2015 -0700

    Add i386 rawmemchr multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=ef0677c8d8bc96f851f5b69a329d6feeda48b950

commit ef0677c8d8bc96f851f5b69a329d6feeda48b950
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 20 08:28:10 2015 -0700

    Add i386 memrchr multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=52cb8377590f501769e30ca18aab752750771d41

commit 52cb8377590f501769e30ca18aab752750771d41
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 20 08:20:41 2015 -0700

    Add i386 memcmp multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=f91a1fbd13567733e00ffe0d8c7b29272176e451

commit f91a1fbd13567733e00ffe0d8c7b29272176e451
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 20 08:05:39 2015 -0700

    Add i386 memchr multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=c4a46d734d55fa04265506dfaf5fe62196b6ce7f

commit c4a46d734d55fa04265506dfaf5fe62196b6ce7f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 20 06:28:49 2015 -0700

    Add i386 memcpy family multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=959d212b5cc74267fa0f7eda142c00f94e15458f

commit 959d212b5cc74267fa0f7eda142c00f94e15458f
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Aug 19 14:10:40 2015 -0700

    Add i386 memset family multiarch functions

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=365e82879ebd6eec4fa84c47db5d1059d580cc4d

commit 365e82879ebd6eec4fa84c47db5d1059d580cc4d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Mon Aug 17 10:19:05 2015 -0700

    Detect i586 and i686 features 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.  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/i386 code if it
    isn't an i586.

        * sysdeps/i386/init-arch.h: New file.
        * sysdeps/i386/i486/init-arch.h: Likewise.
        * 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.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d9ed8c6fb9fb69f88d1315d8c57b93f8bded9ed3

commit d9ed8c6fb9fb69f88d1315d8c57b93f8bded9ed3
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Tue Aug 18 13:45:25 2015 -0700

    Add i386 memset and memcpy assembly functions

    Add i386 memset and memcpy assembly functions with REP MOVSB/STOSB
    instructions.

        * sysdeps/i386/bcopy.S: New file.
        * sysdeps/i386/bzero.S: Likewise.
        * sysdeps/i386/memcpy.S: Likewise.
        * sysdeps/i386/memmove.S: Likewise.
        * sysdeps/i386/mempcpy.S: Likewise.
        * sysdeps/i386/memset.S: Likewise.
        * sysdeps/i386/bzero.c: Removed.
        * sysdeps/i386/memset.c: Likewise.
        * sysdeps/i386/i586/memcpy_chk.S: Likewise.
        * sysdeps/i386/i586/mempcpy_chk.S: Likewise.
        * sysdeps/i386/i586/memset_chk.S: Likewise.
        * sysdeps/i386/i686/memcpy_chk.S: Moved to ...
        * sysdeps/i386/memcpy_chk.S: Here.
        * sysdeps/i386/i686/memmove_chk.S: Moved to ...
        * sysdeps/i386/memmove_chk.S: Here.
        * sysdeps/i386/i686/mempcpy_chk.S: Moved to ...
        * sysdeps/i386/mempcpy_chk.S: Likewise.
        * sysdeps/i386/i686/memset_chk.S: Moved to ...
        * sysdeps/i386/memset_chk.S: Likewise.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=81100cea4a76c82babbeda9c414ef3f47f48b967

commit 81100cea4a76c82babbeda9c414ef3f47f48b967
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu Aug 20 09:50:33 2015 -0700

    Replace MEMPCPY_P/PIC with USE_AS_MEMPCPY/SHARED

    Replace MEMPCPY_P with USE_AS_MEMPCPY in i586 memcpy.S to support i386
    multi-arch memcpy.  Also we should check SHARED not PIC for libc.so
    since libc.a may be compiled with PIC.

        * sysdeps/i386/i586/memcpy.S (MEMPCPY_P): Removed.
        Check USE_AS_MEMPCPY/SHARED instead of MEMPCPY_P/PIC.
        * sysdeps/i386/i586/mempcpy.S (USE_AS_MEMPCPY): New.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=a57dad3d7c1fc9c1b795c83dedc3809918c4bddc

commit a57dad3d7c1fc9c1b795c83dedc3809918c4bddc
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Aug 19 13:43:30 2015 -0700

    Replace BZERO_P/PIC with USE_AS_BZERO/SHARED

    Replace BZERO_P with USE_AS_BZERO in i586/i686 memset.S to support i386
    multi-arch memset.  Also we should check SHARED not PIC for libc.so
    since libc.a may be compiled with PIC.

        * sysdeps/i386/i586/bzero.S (USE_AS_BZERO): New.
        * sysdeps/i386/i686/bzero.S (USE_AS_BZERO): Likewise.
        * sysdeps/i386/i586/memset.S (BZERO_P): Removed.
        Check USE_AS_BZERO/SHARED instead of BZERO_P/PIC.
        (__memset_zero_constant_len_parameter): New.
        * sysdeps/i386/i686/memset.S (BZERO_P): Removed.
        Check USE_AS_BZERO/SHARED instead of BZERO_P/PIC.
        (__memset_zero_constant_len_parameter): Don't define if
        __memset_chk or USE_AS_BZERO are defined.

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=346823cdad1a889ce642d58e0ab3e11fcea0e824

commit 346823cdad1a889ce642d58e0ab3e11fcea0e824
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Aug 26 06:27:32 2015 -0700

    Avoid excess precision in check against float zero

    For check against float zero:

      float z;
      z = ...
      if (z == 0)

    on x86 with excess precision, we may get

    (gdb) info float
    =>R7: Valid   0x3d30e0d9b4d78a806800 +6.369668676344082156e-217
      R6: Empty   0x40029000000000000000

    and z (+6.369668676344082156e-217) == 0 is false.  We can avoid excess
    precision by checking binary representations of float zero directly.

        [BZ #18875]
        * sysdeps/i386/fpu/w_exp10f.c: New file.
        * sysdeps/i386/fpu/w_exp2f.c: Likwise.
        * sysdeps/i386/fpu/w_expf.c: Likwise.

-----------------------------------------------------------------------

-- 
You are receiving this mail because:
You are on the CC list for the bug.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]