| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Written by J.T. Conklin <jtc@netbsd.org>. | 2 * Written by J.T. Conklin <jtc@netbsd.org>. |
| 3 * Public domain. | 3 * Public domain. |
| 4 * Adapted for float type by Ulrich Drepper <drepper@cygnus.com>. | 4 * Adapted for float type by Ulrich Drepper <drepper@cygnus.com>. |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 #include <machine/asm.h> | 7 #include <machine/asm.h> |
| 8 | 8 |
| 9 RCSID("$NetBSD: $") | 9 RCSID("$NetBSD: $") |
| 10 | 10 |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 fmulp /* x * log2(e) */ | 25 fmulp /* x * log2(e) */ |
| 26 fld %st | 26 fld %st |
| 27 frndint /* int(x * log2(e)) */ | 27 frndint /* int(x * log2(e)) */ |
| 28 fsubr %st,%st(1) /* fract(x * log2(e)) */ | 28 fsubr %st,%st(1) /* fract(x * log2(e)) */ |
| 29 fxch | 29 fxch |
| 30 f2xm1 /* 2^(fract(x * log2(e))) - 1 */ | 30 f2xm1 /* 2^(fract(x * log2(e))) - 1 */ |
| 31 fld1 | 31 fld1 |
| 32 faddp /* 2^(fract(x * log2(e))) */ | 32 faddp /* 2^(fract(x * log2(e))) */ |
| 33 fscale /* e^x */ | 33 fscale /* e^x */ |
| 34 fstp %st(1) | 34 fstp %st(1) |
| 35 » ret | 35 » NACLRET |
| 36 | 36 |
| 37 1: testl $0x200, %eax /* Test sign. */ | 37 1: testl $0x200, %eax /* Test sign. */ |
| 38 jz 2f /* If positive, jump. */ | 38 jz 2f /* If positive, jump. */ |
| 39 fstp %st | 39 fstp %st |
| 40 fldz /* Set result to 0. */ | 40 fldz /* Set result to 0. */ |
| 41 2:» ret | 41 2:» NACLRET |
| 42 END (__ieee754_expf) | 42 END (__ieee754_expf) |
| OLD | NEW |