| * Written by J.T. Conklin <jtc@netbsd.org>.
|
| * Adapted for exp2 by Ulrich Drepper <drepper@cygnus.com>.
|
| .def _exp2; .scl 2; .type 32; .endef
|
| /* I added the following ugly construct because exp(+-Inf) resulted
|
| in NaN. The ugliness results from the bright minds at Intel.
|
| For the i686 the code can be written better.
|
| -- drepper@cygnus.com. */
|
| fxam /* Is NaN or +-Inf? */
|
| je 1f /* Is +-Inf, jump. */
|
| fsubr %st,%st(1) /* fract(x) */
|
| f2xm1 /* 2^(fract(x)) - 1 */
|
| 1: testl $0x200, %eax /* Test sign. */
|
| jz 2f /* If positive, jump. */
|
| fldz /* Set result to 0. */
|