summaryrefslogtreecommitdiffstats
path: root/lib/msun
Commit message (Collapse)AuthorAgeFilesLines
* Use __FBSDID() instead of RCSID() in most .S files under lib/msun/i386,dim2010-10-0121-42/+21
| | | | | | | | and one under lib/msun/amd64. This avoids adding the identifiers to the .text section, and moves them to the .comment section instead. Suggested by: bde Approved by: rpaulo (mentor)
* This is exactly the same as the .else, so remove it.imp2010-09-131-2/+0
|
* MFtbemd: Move to using MACHINE_CPUARCH, now that it is safe.imp2010-09-131-2/+2
|
* Repair some build breakage introduced in r211725 and garbage collect somenwhitehorn2010-08-281-1/+6
| | | | code made obsolete in the same commit.
* MFtbemd:imp2010-08-231-1/+1
| | | | | Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want to test of all the CPUs of a given family conform.
* Fix typos, spelling, formatting and mdoc mistakes found by Nobuyuki whilejoel2010-08-161-1/+1
| | | | | | translating these manual pages. Minor corrections by me. Submitted by: Nobuyuki Koganemaru <n-kogane@syd.odn.ne.jp>
* powerpc64 floating-point is identical to powerpc, so use the samenwhitehorn2010-07-101-0/+2
| | | | code on both architectures.
* Introduce __isnanf() as an alias for isnanf(), and make the isnan()das2010-06-123-2/+10
| | | | | | | | | | | macro expand to __isnanf() instead of isnanf() for float arguments. This change is needed because isnanf() isn't declared in strict POSIX or C99 mode. Compatibility note: Apps using isnan(float) that are compiled after this change won't link against an older libm. Reported by: Florian Forster <octo@verplant.org>
* mdoc: spell out theta, the Unicode glyph is hard to read for terminal fontsuqs2010-06-091-8/+2
| | | | | It is referred to as "theta" later in the document anyway, so stop being fancy.
* mdoc: spell macros correctly, there's no need for the backslash escapeuqs2010-06-022-6/+6
|
* mdoc: Garbage collect unused/unneeded macrosuqs2010-05-271-3/+0
|
* mdoc: move remaining sections into consistent orderuqs2010-05-131-8/+8
| | | | | | | This pertains mostly to FILES, HISTORY, EXIT STATUS and AUTHORS sections. Found by: mdocml lint run Reviewed by: ru
* mdoc: move CAVEATS, BUGS and SECURITY CONSIDERATIONS sections to theuqs2010-05-131-12/+12
| | | | | | | | | | | bottom of the manpages and order them consistently. GNU groff doesn't care about the ordering, and doesn't even mention CAVEATS and SECURITY CONSIDERATIONS as common sections and where to put them. Found by: mdocml lint run Reviewed by: ru
* Fix several typos in macros or macro misusage.uqs2010-03-121-1/+1
| | | | | | Found by: make manlint Reviewed by: ru Approved by: philip (mentor)
* Placate new binutils, by using 16-bit %ax instead of 32-bit %eax as ankib2010-02-034-22/+34
| | | | | | | | | argument for fnstsw. Explicitely specify sizes for the XMM control and status word and X87 control and status words. Reviewed by: das Tested by: avg MFC after: 2 weeks
* Use the documented machine constraint for SSE registers.ed2009-06-111-1/+1
| | | | | | | | The amd64-specific bits of msun use an undocumented constraint, which is less likely to be supported by other compilers (such as Clang). Change the code to use a more common machine constraint. Obtained from: /projects/clangbsd/
* Use ISO C99 style inline semantics in msun.ed2009-06-036-15/+30
| | | | | Because we use ISO C99 nowadays, we can just get rid of enforcing GNU89-style inlining.
* Use, in uncovered part, the END() macro in order to improve debugging.attilio2009-05-2552-0/+52
| | | | | | | | | In this specific case, Valgrind won't get confused when analyzing such functions. Sponsored by: Sandvine Incorporated Tested by: emaste MFC: 3 days
* Namespace: scalb() is withdrawn from POSIX.das2009-03-141-1/+4
|
* Eliminate __real__ and __imag__ gccisms.das2009-03-144-15/+42
|
* C99 TC2 now wants FP_FAST_FMA* to be defined to 1, if the macros aredas2009-02-071-3/+3
| | | | defined at all. See also: defect report #223.
* Use __gnu89_inline so that these files will compile with newer versionsdas2009-01-135-5/+5
| | | | | | of gcc, where the meaning of 'inline' was changed to match C99. Noticed by: rdivacky
* Fix the types of INFINITY and NAN, which were broken in r131851. Theydas2009-01-081-2/+2
| | | | | | | | should both be floats, not doubles. PR: 127795 Submitted by: Christoph Mallon MFC after: 2 weeks
* Add support for the FPA floating-point format on ARM. Themarcel2008-12-231-2/+12
| | | | | | | | | FPA floating-point format is identical to the VFP format, but is always stored in big-endian. Introduce _IEEE_WORD_ORDER to describe the byte-order of the FP representation. Obtained from: Juniper Networks, Inc
* Remove some unused variables.das2008-08-084-4/+1
| | | | Reported by: Intel C Compiler
* In the linedas2008-08-083-3/+3
| | | | | | | #pragma STDC CX_LIMITED_RANGE ON the "ON" needs to be in caps. gcc doesn't understand this pragma anyway and assumes it is always on in any case, but icc supports it and cares about the case.
* Implement cproj{,f,l}().das2008-08-076-7/+170
|
* Use cpack() and the gcc extension __imag__ to implement cimag() anddas2008-08-076-6/+18
| | | | | | | | | | | | conj() instead of using expressions like z * I. The latter is bad for several reasons: 1. It is implemented using arithmetic, which is unnecessary, and can generate floating point exceptions, contrary to the requirements on these functions. 2. gcc implements complex multiplication using a formula that breaks down for infinities, e.g., it gives INFINITY * I == nan + inf I.
* Fix some style bogosity from fdlibm.das2008-08-032-12/+12
|
* Minor improvements:das2008-08-033-20/+20
| | | | | | | - Improve the order of some tests. - Fix style. Submitted by: bde
* A few minor corrections, including some from bde:das2008-08-023-17/+16
| | | | | | | - When y/x is huge, it's faster and more accurate to return pi/2 instead of pi - pi/2. - There's no need for 3 lines of bit fiddling to compute -z. - Fix a comment.
* On i386, gcc truncates long double constants to double precisiondas2008-08-024-8/+127
| | | | | | | | | | | | | | | | at compile time regardless of the dynamic precision, and there's no way to disable this misfeature at compile time. Hence, it's impossible to generate the appropriate tables of constants for the long double inverse trig functions in a straightforward way on i386; this change hacks around the problem by encoding the underlying bits in the table. Note that these functions won't pass the regression test on i386, even with the FPU set to extended precision, because the regression test is similarly damaged by gcc. However, the tests all pass when compiled with a modified version of gcc. Reported by: bde
* Fix some problems with asinf(), acosf(), atanf(), and atan2f():das2008-08-014-71/+42
| | | | | | | | | | | | | | | | | | | | | | | | - Adjust several constants for float precision. Some thresholds that were appropriate for double precision were never changed when these routines were converted to float precision. This has an impact on performance but not accuracy. (Submitted by bde.) - Reduce the degrees of the polynomials used. A smaller degree suffices for float precision. - In asinf(), use double arithmetic in part of the calculation to avoid a corner case and some complicated arithmetic involving a division and some buggy constants. This improves performance and accuracy. Max error (ulps): asinf acosf atanf before 0.925 0.782 0.852 after 0.743 0.804 0.852 As bde points out, it's cheaper for asin*() and acos*() to use polynomials instead of rational functions, but that's a task for another day.
* Add implementations of acosl(), asinl(), atanl(), atan2l(),das2008-07-3120-69/+900
| | | | | | | and cargl(). Reviewed by: bde sparc64 testing resources from: remko
* Set WARNS=1.das2008-07-311-0/+1
| | | | | I believe I've committed all the bits necessary to make this compile on all supported architectures. :crosses fingers:
* The high part of the mantissa is 64 bits on sparc64.das2008-07-312-2/+2
|
* As in other parts of libm, mark a few constants as volatile to preventdas2008-07-316-12/+20
| | | | | | spurious optimizations. gcc doesn't support FENV_ACCESS, so when it folds constants, it assumes that the rounding mode is always the default and floating point exceptions never matter.
* Sort the .PATH entries to give a more reasonable order of precedence:das2008-07-181-4/+5
| | | | | | | | | | | | | 1. architecture-specific files 2. long double format-specific files 3. bsdsrc 4. src 5. man The original order was virtually the opposite of this. This should not cause any functional changes at this time. The difference is only significant when one wants to override, say, a generic foo.c with a more specialized foo.c (as opposed to foo.S).
* Fix a typo in the cosl() prototype.das2008-06-281-2/+2
|
* Implement fmodl.das2008-06-195-25/+177
| | | | Document fmodl and fix some errors in the fmod manpage.
* Symbol.map is handled by cpp, so use C-style commentsgonzo2008-05-031-1/+3
| | | | Approved by: cognet (mentor)
* Add mips support to libm, from mips2-jnpr perforce branch.imp2008-04-264-0/+259
|
* Fix some corner cases:das2008-04-032-10/+20
| | | | | | | | | - fma(x, y, z) returns z, not NaN, if z is infinite, x and y are finite, x*y overflows, and x*y and z have opposite signs. - fma(x, y, z) doesn't generate an overflow, underflow, or inexact exception if z is NaN or infinite, as per IEEE 754R. - If the rounding mode is set to FE_DOWNWARD, fma(1.0, 0.0, -0.0) is -0.0, not +0.0.
* Remove a (bogus) remnant of debugging this on sparc64.das2008-03-311-1/+1
|
* Add assembly versions of remquol() and remainderl().das2008-03-306-4/+228
|
* Hook remquol() and remainderl() up to the build.das2008-03-304-12/+33
|
* Implement remainderl() as a wrapper around remquol(). The extra workdas2008-03-302-0/+44
| | | | remquol() performs to compute the quotient is negligible.
* Implement remquol() based on remquo().das2008-03-302-0/+183
|
* Implement csqrtl().das2008-03-305-13/+135
|
* Hook hypotl() and cabsl() up to the build.das2008-03-303-6/+7
|
OpenPOWER on IntegriCloud