TEXT    exp(SB), $0
       FLDL2E
       FMULD   a+0(FP), F0     /* now we want 2^ this number */

       FMOVD   F0, F0          /* x, x */
       FRNDINT                 /* ix, x -- this is best in round mode */
       FSUBD   F0, F1          /* ix, fx */
       FXCHD   F0, F1          /* fx, ix */
       F2XM1                   /* 2^fx-1, ix */
       FADDD   $1.0, F0        /* 2^fx, ix */
       FSCALE                  /* 2^(fx+ix), ix */
       FMOVDP  F0, F1          /* 2^(fx+ix) == 2^x */
       RET