?? e_exp2l.s
字號:
/* * Written by J.T. Conklin <jtc@netbsd.org>. * Adapted for exp2 by Ulrich Drepper <drepper@cygnus.com>. * Adapted for x86-64 by Andreas Jaeger <aj@suse.de>. * Public domain. */#include <machine/asm.h>ENTRY(__ieee754_exp2l) fldt 8(%rsp)/* 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? */ fstsw %ax movb $0x45, %dh andb %ah, %dh cmpb $0x05, %dh je 1f /* Is +-Inf, jump. */ fld %st frndint /* int(x) */ fsubr %st,%st(1) /* fract(x) */ fxch f2xm1 /* 2^(fract(x)) - 1 */ fld1 faddp /* 2^(fract(x)) */ fscale /* e^x */ fstp %st(1) ret1: testl $0x200, %eax /* Test sign. */ jz 2f /* If positive, jump. */ fstp %st fldz /* Set result to 0. */2: retEND (__ieee754_exp2l)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -