exp.s 344 B

12345678910111213
  1. TEXT exp(SB), $0
  2. FLDL2E
  3. FMULD a+0(FP), F0 /* now we want 2^ this number */
  4. FMOVD F0, F0 /* x, x */
  5. FRNDINT /* ix, x -- this is best in round mode */
  6. FSUBD F0, F1 /* ix, fx */
  7. FXCHD F0, F1 /* fx, ix */
  8. F2XM1 /* 2^fx-1, ix */
  9. FADDD $1.0, F0 /* 2^fx, ix */
  10. FSCALE /* 2^(fx+ix), ix */
  11. FMOVDP F0, F1 /* 2^(fx+ix) == 2^x */
  12. RET