summaryrefslogtreecommitdiffstats
path: root/lib/libc/arch/sparc64/fpu/fpu_explode.c (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Fix conversions to long double on sparc64jca2019-06-211-3/+3
| | | | | | | | | | | | | | | | | | | | | | | Bug exposed by erratic sqlite3 behavior used in ports/devel/proj, as pointed out by landry@. Richard Hipps (SQLite) pointed at the culprit (_Qp_div), many thanks. Adapted from FreeBSD revision 146673 by Stephen Paskaluk and stefanf@FreeBSD. FreeBSD commit message: """ Fix long (and long long) to long double, unsigned to long double and unsigned long (and unsigned long long) to long double conversions. - Add a parameter that specifies the position of the sign bit to the _QP_TTOQ macro, previously it always looked at bit 31. Pass a negative number to disable sign inspection for unsigned types. This fixes _Qp_xtoq(), _Qp_uitoq() and _Qp_uxtoq(). - In the functions __fpu_itof() and __fpu_xtof(), look at the sign bit to decide whether we're doing a conversion from an unsigned type. If so, don't negate the mantissa if the integer exceeds the biggest signed number. """ ok deraadt@
* Remove FBSDID.kevlo2019-03-151-5/+1
| | | | ok deraadt@
* Hide __fpu_* and make internal _Qp_* calls go direct.guenther2016-05-081-1/+3
| | | | ok kettenis@
* Remove excessive sys/cdefs.h inclusionderaadt2012-12-051-2/+1
| | | | ok guenther millert kettenis
* please gccderaadt2006-12-231-1/+2
|
* Fix unsigned {int, long, long long} to long double conversions forotto2004-09-281-1/+53
| | | | values with the high bit set. ok kettenis@ jason@
* From the how many ways can you screw up replacing one line of codejason2004-03-241-2/+2
| | | | | department: cast 'i' to u_int64_t so the sign comparison actually makes sense. Any other bugs in here just ship in the release, I'm done.
* use absolute value like rev 1.1 did; pointed out by tom and ok deraadt.jason2004-03-231-1/+2
|
* gcc3 doesn't align things the same as gcc2. Casting upwards is dangerousjason2004-03-231-2/+3
| | | | to a program's health, avoid it. ok deraadt
* quad float emulation stuff. Mostly based on freebsd (which is based onjason2003-07-211-0/+310
NetBSD's kernel emulation stuff). Not enabled yet.