about summary refs log tree commit diff
path: root/sysdeps/sh
Commit message (Collapse)AuthorAgeFilesLines
...
* soft-fp: support after-rounding tininess detection.Joseph Myers2014-02-121-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | IEEE 754-2008 defines two ways in which tiny results can be detected, "before rounding" (based on the infinite-precision result) and "after rounding" (based on the result when rounded to normal precision as if the exponent range were unbounded). All binary operations on an architecture must use the same choice of how tininess is detected. soft-fp has so far implemented only before-rounding tininess detection. This patch adds support for after-rounding tininess detection. A new macro _FP_TININESS_AFTER_ROUNDING is added that sfp-machine.h must define (soft-fp is meant to be self-contained so the existing tininess.h files aren't used here, though the information going in sfp-machine.h has been taken from them). The soft-fp macros dealing with raising underflow exceptions then handle the cases where the choice matters specially, rounding a copy of the input to the appropriate precision to see if a value that's tiny before rounding isn't tiny after rounding. Tested for mips64 using GCC trunk (which now uses soft-fp on MIPS, so supporting exceptions and rounding modes for long double where not previously supported - this is the immediate motivation for doing this patch now) together with (a) a patch to sysdeps/mips/math-tests.h to enable exceptions / rounding modes tests for long double for GCC 4.9 and later, and (b) corresponding changes applied to libgcc's soft-fp and sfp-machine.h files. In the libgcc context this is also tested on x86_64 (also an after-rounding architecture) with testcases for __float128 that I intend to add to the GCC testsuite when updating soft-fp there. (To be clear: this patch does not fix any glibc bugs that were user-visible in past releases, since after-rounding architectures didn't use soft-fp in any affected case with support for floating-point exceptions - so there is no corresponding Bugzilla bug. Rather, it works together with the GCC changes to use soft-fp on MIPS to allow previously absent long double functionality to work properly, and allows soft-fp to be used in glibc on after-rounding architectures in cases where it couldn't previously be used.) * soft-fp/op-common.h (_FP_DECL): Mark exponent as possibly unused. (_FP_PACK_SEMIRAW): Determine tininess based on rounding shifted value if _FP_TININESS_AFTER_ROUNDING and unrounded value is in subnormal range. (_FP_PACK_CANONICAL): Determine tininess based on rounding to normal precision if _FP_TININESS_AFTER_ROUNDING and unrounded value has largest subnormal exponent. * soft-fp/soft-fp.h [FP_NO_EXCEPTIONS] (_FP_TININESS_AFTER_ROUNDING): Undefine and redefine to 0. * sysdeps/aarch64/soft-fp/sfp-machine.h (_FP_TININESS_AFTER_ROUNDING): New macro. * sysdeps/alpha/soft-fp/sfp-machine.h (_FP_TININESS_AFTER_ROUNDING): Likewise. * sysdeps/arm/soft-fp/sfp-machine.h (_FP_TININESS_AFTER_ROUNDING): Likewise. * sysdeps/mips/mips64/soft-fp/sfp-machine.h (_FP_TININESS_AFTER_ROUNDING): Likewise. * sysdeps/mips/soft-fp/sfp-machine.h (_FP_TININESS_AFTER_ROUNDING): Likewise. * sysdeps/powerpc/soft-fp/sfp-machine.h (_FP_TININESS_AFTER_ROUNDING): Likewise. * sysdeps/sh/soft-fp/sfp-machine.h (_FP_TININESS_AFTER_ROUNDING): Likewise. * sysdeps/sparc/sparc32/soft-fp/sfp-machine.h (_FP_TININESS_AFTER_ROUNDING): Likewise. * sysdeps/sparc/sparc64/soft-fp/sfp-machine.h (_FP_TININESS_AFTER_ROUNDING): Likewise. * sysdeps/tile/sfp-machine.h (_FP_TININESS_AFTER_ROUNDING): Likewise.
* Use glibc_likely instead __builtin_expect.Ondřej Bílka2014-02-101-2/+2
|
* Add -mieee to SH sysdep-CFLAGS for older SH compilers.Kaz Kojima2014-01-281-0/+3
|
* Regenerate SH libm-test-ulps with proper compiler options.Kaz Kojima2014-01-271-9/+716
|
* Move SH libm-test-ulps to sysdeps/sh and regenerate it.Kaz Kojima2014-01-252-1094/+5486
|
* Restore ucontext ABI for soft-float sh4.Kaz Kojima2014-01-241-98/+0
|
* Adjust SH specific fpu_control.h and ucontext.h files.Kaz Kojima2014-01-231-0/+14
|
* Update copyright notices with scripts/update-copyrightsAllan McRae2014-01-0150-50/+50
|
* Make soft-float sh use soft-fp fma/fmaf.Kaz Kojima2013-12-174-0/+66
|
* Move sysdeps/sh/sh4/fpu/bits/fenv.h to sysdeps/sh/bits/.Kaz Kojima2013-12-141-0/+0
|
* Add SH implementation of sotruss-lib.c and c++-types.data.Kaz Kojima2013-12-061-0/+50
|
* Fix dbl-64 e_sqrt.c for non-default rounding modes (bug 16271).Joseph Myers2013-11-281-0/+1
|
* rename configure.in to configure.acMike Frysinger2013-10-302-1/+1
| | | | | | | Autoconf has been deprecating configure.in for quite a long time. Rename all our configure.in and preconfigure.in files to .ac. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
* Add SH implementation of stackguard-macros.h.Kaz Kojima2013-09-271-0/+6
|
* Add sh4 implementation of fegetexceptflag.Kaz Kojima2013-06-211-0/+38
|
* Remove trailing whitespace.Joseph Myers2013-06-054-6/+6
|
* Avoid crashing in LD_DEBUG when program name is unavailableSiddhesh Poyarekar2013-05-291-2/+1
| | | | | | | | | 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.
* Don't include expected results in libm-test test names.Joseph Myers2013-05-221-169/+169
|
* Handle sincos with generic libm-test logic.Joseph Myers2013-05-191-9/+9
|
* Update copyright notices with scripts/update-copyrights.Joseph Myers2013-01-0248-50/+48
|
* sysdeps/sh/dl-machine.h: Define ELF_MACHINE_RUNTIME_FIXUP_PARAMS.Thomas Schwinge2012-11-201-2/+2
| | | | Fixes fallout from commit 2e64d2659d3edaebc792ac596a9863f1626e5c25.
* Fix types of FE_DFL_ENV and FE_NOMASK_ENV (bug 14805).Joseph Myers2012-11-051-1/+1
|
* Make fma use of Dekker and Knuth algorithms use round-to-nearest (bug 14796).Joseph Myers2012-11-031-0/+1
|
* Make fenv.h FE_* macros usable in #if (bug 3439).Joseph Myers2012-11-031-14/+21
|
* Build SH backtrace with -funwind-tables.Joseph Myers2012-11-011-0/+4
|
* Fix strtod handling of underflow (bug 14047).Joseph Myers2012-10-301-0/+1
|
* Add missing magic to GLIBC_PROVIDES.Roland McGrath2012-10-091-0/+1
|
* Clean up init-first.c files.Roland McGrath2012-10-011-78/+0
|
* Fifth argument of la_pltenter() is not constant.Carlos O'Donell2012-08-161-1/+1
| | | | | | | | | | | | The original runtime linker auditing interface described by Solaris allows the 5th argument of la_pltenter() to be modified. This patch cleans up the ldsodefs.h definitions such that the 5th argument is not constant. At one point the 5th argument *was* constant but this was changed with commit 2413fdba7a02ba8916f75d17199a6e9133a8f7b0. This patch updates alpha, ia64, mips, sh and sparc with similar changes.
* Get rid of ASM_TYPE_DIRECTIVE{,_PREFIX}.Marek Polacek2012-08-022-5/+3
|
* Move testsuite audit definitions to sysdeps tst-audit.h files.Joseph Myers2012-07-261-0/+25
|
* Move ldsodefs.h audit definitions to sysdeps directories.Joseph Myers2012-07-251-0/+40
|
* Remove TLS configure checks.Marek Polacek2012-07-172-141/+0
|
* Split tls-macros.h into sysdeps directories.Joseph Myers2012-07-171-0/+143
|
* Get rid of ASM_GLOBAL_DIRECTIVE.Marek Polacek2012-07-102-2/+2
|
* Some missing bits from sysdeps/*/elf dismissal.Thomas Schwinge2012-06-231-1/+1
| | | | | | This fixes up commits 735095ae9566b2b14e8210e5ed44b3d5b51495f1, 09ae94c11b4309b425fbbfaa095e64cac2ae8cb8, and ff962fb6a10c46052535d482c889b3a9e5236637.
* SH: Preserve more registers for frame unwinding purposes, add CFI directives.Thomas Schwinge2012-06-231-2/+15
|
* SH: Optimize assembler code in context of call to __fortify_fail.Thomas Schwinge2012-06-231-9/+5
| | | | __fortify_fail has »__attribute__ ((__noreturn__))«.
* SH: ABORT_INSTRUCTION.Thomas Schwinge2012-06-231-0/+3
|
* SH: No FE_UPWARD, FE_DOWNWARD.Thomas Schwinge2012-06-093-11/+9
|
* SH: Do not re-write fpscr after reading it.Thomas Schwinge2012-06-095-12/+3
|
* SH: Use fpu_control_t for the temporary FPU control word.Thomas Schwinge2012-05-2812-19/+18
|
* SH: feraiseexcept: Restore fpscr flag fields.Kaz Kojima2012-05-281-0/+8
|
* SH: Add CFI directives.Chung-Lin Tang2012-05-281-1/+10
|
* SH: Replace <endian.h> usage with pre-processor macros.Chung-Lin Tang2012-04-252-8/+6
| | | | Follow-up to f8887d0a5feda97244613135822b0439addc2b1f.
* Fix return value of SH fesetround.Kaz Kojima2012-04-051-3/+3
|
* Set SH fpcsr register which read again.Kaz Kojima2012-04-052-1/+8
|
* Fix SH4 fraiseexcpt so to generate exceptions appropriately.Kaz Kojima2012-04-051-6/+36
|
* Add support fedisableexcept, feenableexcept, fegetexcept and feupdateenvKaz Kojima2012-04-054-0/+151
| | | | for SH.
* Call __ctype_init in early glibc startup.Thomas Schwinge2012-04-021-1/+5
| | | | This adds the bits missing from fd5bdc0924e0cfd1688b632068c1b26f3b0c88da.