summaryrefslogtreecommitdiffstats
path: root/lib/libm/arch (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Switch to the SSE code. OK mikeb@.martynas2011-07-092-44/+5
|
* Don't reimplement the same thing twice. OK matthew@.martynas2011-07-093-82/+0
|
* Revert (leaving the complex math part alone). Some stuff is dependingmartynas2011-07-0820-1168/+0
| | | | | on this historical behavior; so we're stuck in this stupid situation. No cookie for me.
* Move fabs(3), frexp(3), and modf(3) to libm--nothing has been usingmartynas2011-07-0820-0/+1168
| | | | them in libc for a very long time. OK guenther@.
* Make lint play nicer in pass 2 of libm on amd64 and i386. Themartynas2011-05-312-2/+10
| | | | | | internal _ItL_* extended-precision constants are of course going to be declared inconsistently since we define them based on structures; however prototype as long doubles.
* Trick lint into recording the right prototypes in the llib-lm.lnmartynas2011-05-303-10/+22
| | | | | | | database on platforms without extended-precision floating-point support. Seems like a reasonable approach to millert@.
* Adapt m68k MD functions to extended-precision.martynas2011-05-2811-0/+502
| | | | Go for it miod@.
* Adapt m68k MD functions to single-precision.martynas2011-05-2824-0/+996
| | | | Looked over by miod@.
* Trick GCC (-O2) into actually raising the underflow exception on m88k.martynas2011-04-291-3/+3
| | | | | | | | | | Since the second division operand is a power of two, non-zero, non-nan, this got optimized (-O2) into multiplication. As a result the underflow exception wasn't being raised properly. Make the second operand a volatile to prevent incorrect optimizations. OK miod@.
* ixnay on the nopfaymiod2011-04-281-3/+1
|
* fenv improvements and cleanupsmartynas2011-04-2813-734/+1366
|
* fenv for mips64martynas2011-04-261-0/+316
|
* fenv for sparc; mostly cloned from sparc64martynas2011-04-252-1/+354
|
* fenv for powerpcmartynas2011-04-251-0/+354
|
* fenv for shmartynas2011-04-241-0/+381
|
* fenv for i386, and sparc64; from matthew@martynas2011-04-242-0/+849
| | | | not reviewed yet, but it's better to track changes in cvs
* fenv for armmartynas2011-04-241-0/+269
|
* Implement C99 floating-point environment for Alpha.martynas2011-04-231-0/+362
| | | | | | | | | Delivering FPE with non-masked exceptions doesn't work on Alpha; I suspect there's a bug in the kernel trap handler. FE_INEXACT is intentionally left out of FE_ALL_EXCEPT; since the inexact exception is not being maintained. Otherwise it will lead to the bogus results.
* fenv for amd64; from matthew@martynas2011-04-211-0/+423
| | | | feedback & ok guenther@, matthew@
* fenv for hppamartynas2011-04-211-0/+355
|
* fenv for m68kmartynas2011-04-201-0/+360
|
* typo in a commentderaadt2010-06-031-2/+2
|
* Tweak inline asm to prevent gcc4 from optimizing away crucial bits of it.kettenis2010-05-058-24/+24
| | | | ok miod@
* Provide assembly version of sqrtl(3).kettenis2009-11-061-0/+12
| | | | ok pirofti@
* Provide assembly version of sqrtl(3).kettenis2009-11-051-0/+12
| | | | ok otto@
* rcsid[] and sccsid[] and copyright[] are essentially unmaintained (andderaadt2009-10-2714-56/+0
| | | | | | | unmaintainable). these days, people use source. these id's do not provide any benefit, and do hurt the small install media (the 33,000 line diff is essentially mechanical) ok with the idea millert, ok dms
* round, roundf, trunc, truncf for hppa; ok kettenis@martynas2009-07-154-0/+108
|
* floor(3) should round towards -inf instead of towards zero.kettenis2009-06-302-6/+4
| | | | ok martynas@, deraadt@
* fix scalbn, scalbnf, frexpf on amd64. don't use double argmartynas2009-04-252-10/+16
| | | | | | | | | | float/double prologue/epilogue, since the second argument is not float/double. were never working properly (always returned inf). actually, should help other math funcs (like pow) too, since they use it internally tested by kurt@; devel/boost fp regresses are working better now. ok kurt@
* alias and give frexpf symbol external linkage to scalbnf; this wasmartynas2009-04-212-2/+8
| | | | | | | | overriden by md source. spotted by kurt@ actually; on amd64 scalbnf, scalbn (and therefore now frexpf) have always been broken since second argument is not float. fix is under reviewal / will be committed separately ok kurt@, kettenis@, millert@. tested by kurt@
* lrint, llrint, lrintf, llrintf for amd64. ok kettenis@, oga@martynas2009-04-104-0/+48
|
* missing rcs ids; spacingmartynas2009-04-084-18/+19
|
* remove i386/x86_64 ifdefs. i386 lives @ i387. miod@ agreesmartynas2009-04-0811-183/+10
| | | | object code matches so this got to be oki
* implement and use sqrt, sqrtf & fabsf in hardware; since it'smartynas2009-04-053-0/+85
| | | | faster that way. tested by myself. discussed w/ & ok miod@, millert@
* spacemartynas2008-12-125-13/+13
|
* use sys/cdefs.h; pointed out by theomartynas2008-12-102-4/+4
|
* alias fabsl to fabs on these archsmartynas2008-12-096-33/+15
|
* - 80-bit and quad precision trigonometric and other mostmartynas2008-12-0915-153/+222
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | important functions: acosl, asinl, atanl, atan2l, cosl, sinl, tanl, exp2l, frexpl, ilogbl, ldexpl, logbl, scalbnl, fabsl, hypotl, powl, sqrtl, rintl, copysignl, nanl, fdiml, fmaxl, fminl. mostly taken from freebsd, needed alot of changes to adapt. note, these are all c versions; and are quite slow when architectures have, e.g. sqrt. assembly versions will be added afterwards - make them .weak/__weak_alias to the double precision versions on other archs - no need to have two finites. finite() and finitef() are non-standard 3BSD obsolete versions of isfinite. remove from libm. make them weak_alias in libc to __isfinite and __isfinitef instead. similarly make 3BSD obsolete versions of isinf, isinff, isnan, isnanf weak_aliases to C99's __isinf, __isinff, __isnan, __isnanf - remove unused infinity.c. the c library has infinities for each supported platform - use STRICT_ASSIGN cast hack for _kernel_rem_pio2, so that the double version has a chance of working on i386 with extra precision - avoid storing multiple copies of the pi/2 array, since it won't vary - bump major due to removed finite/finitef. although they will be in libc, which anything is linked to, minor bump might be enough ok millert@. tested by sthen@, jsg@, ajacoutot@, kili@, naddy@
* float math functions: copysignf and logbf. ok millert@martynas2008-11-201-1/+35
|
* - noieee_src: adapt complex versions of the functions it alreadymartynas2008-10-071-3/+2
| | | | | supports (which is all, except the float ones) ok millert@
* remove d_cbrt, dcbrt, d_sqrt. ok millert@martynas2008-09-162-16/+7
|
* remove z_abs. ok millert@martynas2008-09-131-9/+1
|
* - replace dtoa w/ David's gdtoa, version 2008-03-15martynas2008-09-0741-82/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - provide proper dtoa locks - use the real strtof implementation - add strtold, __hdtoa, __hldtoa - add %a/%A support - don't lose precision in printf, don't round to double anymore - implement extended-precision versions of libc functions: fpclassify, isnan, isinf, signbit, isnormal, isfinite, now that the ieee.h is fixed - separate vax versions of strtof, and __hdtoa - add complex math support. added functions: cacos, casin, catan, ccos, csin, ctan, cacosh, casinh, catanh, ccosh, csinh, ctanh, cexp, clog, cabs, cpow, csqrt, carg, cimag, conj, cproj, creal, cacosf, casinf, catanf, ccosf, csinf, ctanf, cacoshf, casinhf, catanhf, ccoshf, csinhf, ctanhf, cexpf, clogf, cabsf, cpowf, csqrtf, cargf, cimagf, conjf, cprojf, crealf - add fdim, fmax, fmin - add log2. (adapted implementation e_log.c. could be more acruate & faster, but it's good enough for now) - remove wrappers & cruft in libm, supposed to work-around mistakes in SVID, etc.; use ieee versions. fixes issues in python 2.6 for djm@ - make _digittoint static - proper definitions for i386, and amd64 in ieee.h - sh, powerpc don't really have extended-precision - add missing definitions for mips64 (quad), m{6,8}k (96-bit) float.h for LDBL_* - merge lead to frac for m{6,8}k, for gdtoa to work properly - add FRAC*BITS & EXT_TO_ARRAY32 definitions in ieee.h, for hdtoa&ldtoa to use - add EXT_IMPLICIT_NBIT definition, which indicates implicit normalization bit - add regression tests for libc: fpclassify and printf - arith.h & gd_qnan.h definitions - update ieee.h: hppa doesn't have quad-precision, hppa64 does - add missing prototypes to gdtoaimp - on 64-bit platforms make sure gdtoa doesn't use a long when it really wants an int - etc., what i may have forgotten... - bump libm major, due to removed&changed symbols - no libc bump, since this is riding on djm's libc major crank from a day ago discussed with / requested by / testing theo, sthen@, djm@, jsg@, merdely@, jsing@, tedu@, brad@, jakemsr@, and others. looks good to millert@ parts of the diff ok kettenis@ this commit does not include: - man page changes
* - remove isinff, isnanf. this has been moved to libcmartynas2008-07-244-91/+1
| | | | | | | | | | | - remove never-enabled signbit. libc has is now - add C99 implementations, from freebsd, for nan(), nanf() (needed to write _digittoint for it), exp2(), exp2f(), remquo(), remquof(), needed STRICT_ASSIGN macro for math_private.h - bump major man pages will follow exp2{,f} has been requested by chl@ ok millert@
* First pass at removing clauses 3 and 4 from NetBSD licenses.ray2008-06-262-16/+2
| | | | | | | | | Not sure what's more surprising: how long it took for NetBSD to catch up to the rest of the BSDs (including UCB), or the amount of code that NetBSD has claimed for itself without attributing to the actual authors. OK deraadt@
* cleaning up, no functional changesmartynas2008-06-214-24/+24
| | | | | | | - no support for National 32000, removing ns32000/national ifdefs maze - remove tahoe defs - ansify looks fine to millert@; who also noticed rint removal
* add isinff and isnanf. no objection millert@martynas2008-06-121-1/+21
|
* use ALTENTRY; was ok millert@martynas2008-06-121-4/+2
|
* drem{,f} are aliases for remainder{,f}, so:martynas2008-06-111-4/+7
| | | | | | | | | | - document and mlink drem{,f} - drem->remainder on noieee, and make drem an alias - finite returns integer, n_support.c - general n_support.c ansification and cleanup - drem is now an ALTENTRY for remainder, in n_support.S help with man page from jmc@ and millert@ ok millert@
* Use proper *ENTRY macros with symbolic register save masks, sprinklemiod2008-05-219-140/+94
| | | | | | | | | | _C_LABEL and _ASM_LABEL, and add $OpenBSD$ RCS Ids. Include <sys/errno.h> and use its values directly, instead of using .set directives (which grow the individual .o files even) Also, replace `$' in internal (but non static) symbols with `_', and prefix those with `__'.