about summary refs log tree commit diff
path: root/src/math/x86_64/exp2l.s
Commit message (Collapse)AuthorAgeFilesLines
* math: fix expm1l on x86_64 (avoid underflow for large negative x)Szabolcs Nagy2013-09-051-1/+11
| | | | copy the fix from i386: return -1 instead of exp2l(x)-1 when x <= -65
* math: fix exp2l asm on x86 (raise underflow correctly)Szabolcs Nagy2013-09-051-35/+40
| | | | | | | | | | | | | | | | there were two problems: * omitted underflow on subnormal results: exp2l(-16383.5) was calculated as sqrt(2)*2^-16384, the last bits of sqrt(2) are zero so the down scaling does not underflow eventhough the result is in subnormal range * spurious underflow for subnormal inputs: exp2l(0x1p-16400) was evaluated as f2xm1(x)+1 and f2xm1 raised underflow (because inexact subnormal result) the first issue is fixed by raising underflow manually if x is in (-32768,-16382] and not integer (x-0x1p63+0x1p63 != x) the second issue is fixed by treating x in (-0x1p64,0x1p64) specially for these fixes the special case handling was completely rewritten
* math: move x86_64 exp2l implementation to exp2l.s from expl.sSzabolcs Nagy2012-12-161-1/+75
|
* x86_64 math asm, long double functions onlyRich Felker2012-03-201-0/+1
this has not been tested heavily, but it's known to at least assemble and run in basic usage cases. it's nearly identical to the corresponding i386 code, and thus expected to be just as correct or just as incorrect.