about summary refs log tree commit diff
path: root/sysdeps/i386
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix spurious jnf underflows (bug 14155).Joseph Myers2013-09-021-2/+18
|
* Fix then/than typos.Ondřej Bílka2013-08-301-1/+1
|
* Fix typos.Ondřej Bílka2013-08-301-1/+1
|
* Fix handling LC_CTYPE nonascii-case fallback in i686 SSE4.2 and SSSE3 ↵Andreas Schwab2013-08-272-0/+24
| | | | strcasecmp/strncasecmp
* Fix typos.Ondřej Bílka2013-08-218-12/+12
|
* i686: Skip SSE4_2 version for strcmp, strncmp, strncase, strcasecmpLiubov Dmitrieva2013-08-213-0/+12
| | | | if bit_Slow_SSE4_2 is set.
* Update x86 and x86_64 ulps on AMD FX-8350 with GCC 4.8.1.Jeroen Albers2013-07-051-2/+390
|
* Update i386 ULPs.Allan McRae2013-07-031-0/+80
| | | | * sysdeps/i386/fpu/libm-test-ulps: Update.
* Regenerate x86 and x86_64 ulps.Joseph Myers2013-07-021-760/+86
|
* Enable static 32-bit SSE4.2 strcasecmp/strncasecmpH.J. Lu2013-07-022-6/+0
|
* Add GLRO(dl_hwcap2) for new AT_HWCAP2 auxv_t a_type.Ryan S. Arnold2013-06-281-1/+1
|
* Set/restore rounding mode only when neededSiddhesh Poyarekar2013-06-121-0/+173
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The most common use case of math functions is with default rounding mode, i.e. rounding to nearest. Setting and restoring rounding mode is an unnecessary overhead for this, so I've added support for a context, which does the set/restore only if the FP status needs a change. The code is written such that only x86 uses these. Other architectures should be unaffected by it, but would definitely benefit if the set/restore has as much overhead relative to the rest of the code, as the x86 bits do. Here's a summary of the performance improvement due to these improvements; I've only mentioned functions that use the set/restore and have benchmark inputs for x86_64: Before: cos(): ITERS:4.69335e+08: TOTAL:28884.6Mcy, MAX:4080.28cy, MIN:57.562cy, 16248.6 calls/Mcy exp(): ITERS:4.47604e+08: TOTAL:28796.2Mcy, MAX:207.721cy, MIN:62.385cy, 15543.9 calls/Mcy pow(): ITERS:1.63485e+08: TOTAL:28879.9Mcy, MAX:362.255cy, MIN:172.469cy, 5660.86 calls/Mcy sin(): ITERS:3.89578e+08: TOTAL:28900Mcy, MAX:704.859cy, MIN:47.583cy, 13480.2 calls/Mcy tan(): ITERS:7.0971e+07: TOTAL:28902.2Mcy, MAX:1357.79cy, MIN:388.58cy, 2455.55 calls/Mcy After: cos(): ITERS:6.0014e+08: TOTAL:28875.9Mcy, MAX:364.283cy, MIN:45.716cy, 20783.4 calls/Mcy exp(): ITERS:5.48578e+08: TOTAL:28764.9Mcy, MAX:191.617cy, MIN:51.011cy, 19071.1 calls/Mcy pow(): ITERS:1.70013e+08: TOTAL:28873.6Mcy, MAX:689.522cy, MIN:163.989cy, 5888.18 calls/Mcy sin(): ITERS:4.64079e+08: TOTAL:28891.5Mcy, MAX:6959.3cy, MIN:36.189cy, 16062.8 calls/Mcy tan(): ITERS:7.2354e+07: TOTAL:28898.9Mcy, MAX:1295.57cy, MIN:380.698cy, 2503.7 calls/Mcy So the improvements are: cos: 27.9089% exp: 22.6919% pow: 4.01564% sin: 19.1585% tan: 1.96086% The downside of the change is that it will have an adverse performance impact on non-default rounding modes, but I think the tradeoff is justified.
* Fix leading whitespaces.Ondrej Bilka2013-06-064-12/+12
|
* Link extra-libs consistently with libc and ld.so.Joseph Myers2013-05-311-3/+0
|
* Avoid crashing in LD_DEBUG when program name is unavailableSiddhesh Poyarekar2013-05-291-4/+2
| | | | | | | | | Resolves: #15465 The program name may be unavailable if the user application tampers with argc and argv[]. Some parts of the dynamic linker caters for this while others don't, so this patch consolidates the check and fallback into a single macro and updates all users.
* Test drem and pow10 in libm-test.inc.Joseph Myers2013-05-241-0/+9
|
* Use same tests for isfinite/finite, lgamma/gamma.Joseph Myers2013-05-241-0/+12
|
* Don't include expected results in libm-test test names.Joseph Myers2013-05-221-1800/+1800
|
* Handle sincos with generic libm-test logic.Joseph Myers2013-05-191-9/+9
|
* Convert TEST_ff_f tests from code to data.Joseph Myers2013-05-121-0/+4
|
* Improve tgamma accuracy (bugs 2546, 2560, 5159, 15426).Joseph Myers2013-05-081-6/+590
|
* Fix catan, catanh spurious underflows (bug 15423).Joseph Myers2013-05-011-0/+144
|
* Fix catan, catanh inaccuracy from atan2 denominators near 0 (bug 15416).Joseph Myers2013-04-301-0/+104
|
* Fix catan, catanh spurious overflows (bug 15409).Joseph Myers2013-04-271-0/+50
|
* Update i386 libm-test ULPsAllan McRae2013-04-271-0/+80
|
* Fix catan, catanh inaccuracy through use of log (bug 15394).Joseph Myers2013-04-241-0/+2
|
* Configuring for i386 is no longer supported.Carlos O'Donell2013-04-172-2/+22
| | | | | | | | | | | | | | | | | We no longer support configuring for i386, nor do we elide such a configuration to i686. Configuring with i386-* is a failure, and we provide an example of how to fix that. --- 2013-04-17 Carlos O'Donell <carlos@redhat.com> * configure.in: Remove i386 configure warning. Remove i386 case. * configure: Regenerate. * sysdeps/i386/configure.in: Raise error if config_machine is i386. Add example to error message. * sysdeps/i386/configure: Regenerate.
* libm-test.inc: Fix tests where cos(PI/2) != 0.Carlos O'Donell2013-04-111-14/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The value of PI is never exactly PI in any floating point representation, and the value of PI/2 is never PI/2. It is wrong to expect cos(M_PI_2l) to return 0, instead it will return an answer that is non-zero because M_PI_2l doesn't round to exactly PI/2 in the type used. That is to say that the correct answer is to do the following: * Take PI or PI/2. * Round to the floating point representation. * Take the rounded value and compute an infinite precision cos or sin. * Use the rounded result of the infinite precision cos or sin as the answer to the test. I used printf to do the type rounding, and Wolfram's Alpha to do the infinite precision cos calculations. The following changes bring x86-64 and x86 to 1/2 ulp for two tests. It shows that the x86 cos implementation is quite good, and that our test are flawed. Unfortunately given that the rounding errors are type dependent we need to fix this for each type. No regressions on x86-64 or x86. --- 2013-04-11 Carlos O'Donell <carlos@redhat.com> * math/libm-test.inc (cos_test): Fix PI/2 test. (sincos_test): Likewise. * sysdeps/x86_64/fpu/libm-test-ulps: Regenerate. * sysdeps/i386/fpu/libm-test-ulps: Regenerate.
* i386: Fail at configure time for i386 builds.Carlos O'Donell2013-04-062-0/+58
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change does two things: * Treats a target i386-* as if it were i686. * Fails configure if the user is generating code for i386. We no longer support i386 code-generation because the i386 lacks the atomic operations we need in glibc. You can still configure for i386-*, but you get i686 code. You can't build with --march=i386, --mtune=i386 or a compiler that defaults to i386 code-generation. I've added two i386 entries in the master todo list to discuss merging and renaming: http://sourceware.org/glibc/wiki/Development_Todo/Master#i386 The failure modes are fail-safe here. You compile for i386, get i686, and try to run on i386 and it fails. The configure log has a warning saying we elided to i686. There is no situation that I can see where we run into any serious problems. The patch makes the current state better in that we get less confused users and we build successfully in more default configurations. The next enhancement would be to add --march=i?86 as suggested in #c20 of BZ#10062 for any i?86-* builds, which would solve the problem of a 32-bit compiler that defaults to i386 code-gen and glibc configured for i686-* target. Which previously failed at build time, and now will fail at configure time (requires adding --march=i686). Updated NEWS with BZ #10060 and #10062. No regressions. --- 2013-04-06 Carlos O'Donell <carlos@redhat.com> [BZ #10060, #10062] * aclocal.m4 (LIBC_COMPILER_BUILTIN_INLINED): New macro. * sysdeps/i386/configure.in: Use LIBC_COMPILER_BUILTIN_INLINED and fail configure if __sync_val_compare_and_swap is not inlined. * sysdeps/i386/configure: Regenerate. * configure.in: Build for i686 when configured for i386. * configure: Regenerate. * README: Remove i386 reference.
* Refer to two GCC PRs.Thomas Schwinge2013-04-031-1/+2
|
* Fix cacosh inaccuracy and spurious exceptions (bug 15327).Joseph Myers2013-04-021-30/+692
|
* Fix casinh inaccuracy for imaginary part < 1.0, real part small (bug 10357).Joseph Myers2013-03-301-152/+1030
|
* Fix casinh inaccuracy near i, imaginary part > 1 (bug 15307).Joseph Myers2013-03-271-0/+340
|
* On 32-bit x86, disable certain tests involving sNaN values.Thomas Schwinge2013-03-211-0/+26
| | | | Follow-up to commit 495ded2c8c1eb8c0ac4b54add2dd397852e19cba.
* Fix Bessel function spurious overflows for ldbl-128 / ldbl-128ibm (bug 15285).Joseph Myers2013-03-211-0/+6
|
* Fix casinh inaccuracy for argument with imaginary part 1 (bug 15287).Joseph Myers2013-03-211-0/+678
|
* Move system-specific settings out of toplevel configure.in and config.make.in.Joseph Myers2013-03-202-0/+18
|
* Fix y1l spurious overflows for ldbl-96 (bug 15283).Joseph Myers2013-03-161-0/+12
|
* Remove remaining bounded-pointers support from i386 .S files.Joseph Myers2013-02-2157-470/+306
|
* Remove some bounded-pointers support from i386 .S files.Joseph Myers2013-02-1951-477/+27
|
* Remove bounded-pointers build system support.Joseph Myers2013-02-151-2/+0
|
* Remove miscellaneous bounded-pointers relics in C code.Joseph Myers2013-02-151-1/+1
|
* Remove bp-sym.h and BP_SYM uses from C code.Joseph Myers2013-02-144-12/+8
|
* Remove __ptrvalue, __bounded and __unbounded.Joseph Myers2013-02-131-3/+1
|
* Remove CHECK_STRING, CHECK_STRING_NULL_OK and __ubp_memchr.Joseph Myers2013-02-041-3/+0
|
* Fix casinh spurious underflows away from [-i,i] (bug 15062).Joseph Myers2013-01-311-0/+180
|
* Fix application of the exception maskSiddhesh Poyarekar2013-01-181-1/+1
| | | | Fixes BZ #14496.
* Fix cacos real-part inaccuracy for result real part near 0 (bug 15023).Joseph Myers2013-01-171-0/+6
|
* Implement x86 SIZE32/SIZE64 relocationsH.J. Lu2013-01-161-0/+9
|
* Fix casinh, casin overflow (bug 14996).Joseph Myers2013-01-071-0/+12
|