summaryrefslogtreecommitdiffstats
path: root/lib/msun/amd64
Commit message (Collapse)AuthorAgeFilesLines
* Merge the 386 and amd64 versions of the fenv.h, to make cc -m32kib2013-04-211-222/+0
| | | | | | | compilations which use fenv.h work. Reviewed by: tjil Sponsored by: The FreeBSD Foundation
* Bugfix: feenableexcept() and fedisableexcept() should just return thedas2011-10-211-4/+4
| | | | | | old exception mask, not mask | ~FE_ALL_EXCEPT. MFC after: 2 weeks
* Use #include "fenv.h" instead of #include <fenv.h>. This makes itdas2011-10-161-1/+1
| | | | | | more convenient to compile the math library by itself. Requested by: bde
* Provide external definitions of all of the standardized functions indas2011-10-103-9/+27
| | | | | | | | | | | | | | | | | fenv.h that are currently inlined. The definitions are provided in fenv.c via 'extern inline' declaractions. This assumes the compiler handles 'extern inline' as specified in C99, which has been true under FreeBSD since 8.0. The goal is to eventually remove the 'static' keyword from the inline definitions in fenv.h, so that non-inlined references all wind up pointing to the same external definition like they're supposed to. I am deferring the second step to provide a window where newly-compiled apps will still link against old math libraries. (This isn't supported, but there's no need to cause undue breakage.) Reviewed by: stefanf, bde
* Remove duplicate .note.GNU-stack section declaration.kib2011-02-042-4/+0
| | | | Reported by: arundel
* Add section .note.GNU-stack for assembly files used by 386 and amd64.kib2011-01-0720-0/+40
|
* Use __FBSDID() instead of RCSID() in most .S files under lib/msun/i386,dim2010-10-011-2/+1
| | | | | | | | 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)
* Placate new binutils, by using 16-bit %ax instead of 32-bit %eax as ankib2010-02-032-9/+15
| | | | | | | | | 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, in uncovered part, the END() macro in order to improve debugging.attilio2009-05-259-0/+9
| | | | | | | | | In this specific case, Valgrind won't get confused when analyzing such functions. Sponsored by: Sandvine Incorporated Tested by: emaste MFC: 3 days
* Add assembly versions of remquol() and remainderl().das2008-03-303-2/+114
|
* Hook up sqrtl() to the build.das2008-03-021-1/+1
|
* MD implementations of sqrtl().das2008-03-021-0/+33
|
* Use hardware remainder on amd64 since it is 5 to 10 times faster thanbde2008-02-133-1/+78
| | | | software remainder and is already used for remquo().
* Implement rintl(), nearbyintl(), lrintl(), and llrintl().das2008-01-144-3/+116
| | | | Thanks to bde@ for feedback and testing of rintl().
* Translate from the i386 so that this compiles and runs.bde2007-12-171-1/+1
| | | | | | | I hope that this and the i386 version of it will not be needed, but this is currently about 16 cycles or 36% faster than the C version, and the i386 version is about 8 cycles or 19% faster than the C version, due to poor optimization of the C version.
* Add logbl(3) to libm.das2007-12-172-1/+46
|
* Use C comments since we now preprocess these files with CPP.deischen2007-04-291-1/+3
|
* Fix a problem relating to fesetenv() clobbering i387 register stack.das2007-01-061-1/+12
| | | | | | | | | | | Details: As a side-effect of restoring a saved FP environment, fesetenv() overwrites the tag word, which indicates which i387 registers are in use. Normally this isn't a problem because the calling convention requires the register stack to be empty on function entry and exit. However, fesetenv() is inlined, so we need to tell gcc explicitly that the i387 registers get clobbered. PR: 85101
* Remove an unneeded fnstcw instruction.das2007-01-051-7/+5
| | | | Noticed by: bde
* Add symbol versioning to libm.deischen2006-03-272-0/+13
|
* Add a missing ldexpf() alias for amd64.das2005-09-121-0/+3
| | | | Noticed by: bz@, tjr@
* More optimized math functions.das2005-04-167-1/+173
|
* Implement and document remquo() and remquof().das2005-03-253-1/+131
|
* Spell 'fedisableexcept' correctly.das2005-03-161-1/+1
|
* Replace fegetmask() and fesetmask() with feenableexcept(),das2005-03-162-8/+26
| | | | | | | | | | fedisableexcept(), and fegetexcept(). These two sets of routines provide the same functionality. I implemented the former as an undocumented internal interface to make the regression test easier to write. However, fe(enable|disable|get)except() is already part of glibc, and I would like to avoid gratuitous differences. The only major flaw in the glibc API is that there's no good way to report errors on processors that don't support all the unmasked exceptions.
* Define the LDBL_PREC to be the number of significant bits in a longdas2005-03-071-0/+1
| | | | double's mantissa.
* Move machine-dependent crud to its own makefile.das2005-02-041-0/+3
|
* Remove wrappers and other cruft intended to support SVID, mistakes indas2005-02-041-1/+1
| | | | | | | C90, and other arcana. Most of these features were never fully supported or enabled by default. Ok: bde, stefanf
* amd64 assembly versions of sqrt(), lrint(), and llrint() using SSE2.das2005-01-153-0/+75
|
* Mark all inline asms that read the floating-point control or statusdas2005-01-141-3/+3
| | | | | | | registers as volatile. Instructions that *wrote* to FP state were already marked volatile, but apparently gcc has license to move non-volatile asms past volatile asms. This broke amd64's feupdateenv at -O2 due to a WAR conflict between fnstsw and fldenv there.
* Mark inline stmxcsr instructions as volatile, since this appears to bedas2005-01-111-1/+1
| | | | | the only way to convince gcc that they read the MXCSR. The volatile annotation may be needed elsewhere as well.
* Insert a missing '~' in feholdexcept(), so that it correctly clearsdas2004-06-111-1/+1
| | | | the exception flags in the mxcsr as well as the x87 FPU.
* Add an fenv.h implementation for the amd64 port.das2004-06-062-0/+333
Reviewed by: standards@
OpenPOWER on IntegriCloud