| 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 */ | 4 */ |
| 5 | 5 |
| 6 #include <machine/asm.h> | 6 #include <machine/asm.h> |
| 7 | 7 |
| 8 RCSID("$NetBSD: e_exp.S,v 1.7 1996/07/03 17:31:28 jtc Exp $") | 8 RCSID("$NetBSD: e_exp.S,v 1.7 1996/07/03 17:31:28 jtc Exp $") |
| 9 | 9 |
| 10 /* e^x = 2^(x * log2(e)) */ | 10 /* e^x = 2^(x * log2(e)) */ |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 fmulp /* x * log2(e) */ | 24 fmulp /* x * log2(e) */ |
| 25 fld %st | 25 fld %st |
| 26 frndint /* int(x * log2(e)) */ | 26 frndint /* int(x * log2(e)) */ |
| 27 fsubr %st,%st(1) /* fract(x * log2(e)) */ | 27 fsubr %st,%st(1) /* fract(x * log2(e)) */ |
| 28 fxch | 28 fxch |
| 29 f2xm1 /* 2^(fract(x * log2(e))) - 1 */ | 29 f2xm1 /* 2^(fract(x * log2(e))) - 1 */ |
| 30 fld1 | 30 fld1 |
| 31 faddp /* 2^(fract(x * log2(e))) */ | 31 faddp /* 2^(fract(x * log2(e))) */ |
| 32 fscale /* e^x */ | 32 fscale /* e^x */ |
| 33 fstp %st(1) | 33 fstp %st(1) |
| 34 » ret | 34 » NACLRET |
| 35 | 35 |
| 36 1: testl $0x200, %eax /* Test sign. */ | 36 1: testl $0x200, %eax /* Test sign. */ |
| 37 jz 2f /* If positive, jump. */ | 37 jz 2f /* If positive, jump. */ |
| 38 fstp %st | 38 fstp %st |
| 39 fldz /* Set result to 0. */ | 39 fldz /* Set result to 0. */ |
| 40 2:» ret | 40 2:» NACLRET |
| 41 END (__ieee754_exp) | 41 END (__ieee754_exp) |
| OLD | NEW |