Annotation of cci/usr/src/usr.lib/libm/exp.s, revision 1.1.1.1

1.1       root        1: /*     @(#)exp.s       4.1/4.2         10/31/84  CCI-CPG       */
                      2: 
                      3: 
                      4: /*
                      5:        Double-precision exponential function recoded with
                      6:        new algorithm polynomial at CCI-CPG.
                      7: 
                      8:        The coefficients are #1067 from Hart and etc. (18.08D)
                      9: */
                     10:        .data
                     11:        .comm   _errno,4
                     12:        .align  2
                     13: _p0:    .long  0x45bd3d04, 0x7f734dbd # .double 1513.9067990543389
                     14:        .align  2
                     15: _p1:   .long   0x42a19dd4, 0x989f60db # .double 20.202065651286927
                     16:        .align  2
                     17: _p2:   .long   0x3dbd2e42, 0xab70bdab # .double 0.023093347753750234
                     18:        .align  2
                     19: _q0:   .long   0x468881b1, 0x7c3a652b # .double 4368.2116627275585
                     20:        .align  2
                     21: _q1:   .long   0x44692f28, 0x7ae89543 # .double 233.18421142748162
                     22:        .align  2
                     23: _q2:   .long   0x40800000, 0x00000000 # .double 1
                     24:        .align  2
                     25: _log2e:        .long   0x40b8aa3b, 0x295c17f1 # .double 1.4426950408889634
                     26:        .align  2
                     27: _sqrt2:        .long   0x40b504f3, 0x33f9de65 # .double 1.4142135623730951
                     28:        .align  2
                     29: _maxf: .long   0x471c4000, 0x00000000 # .double 10000
                     30:        .text
                     31: LL0:   .align  1
                     32:        .globl  _exp
                     33:        .data
                     34:        .align  2
                     35: L56:   .long   0x40800000, 0x00000000 # .double 1
                     36:        .text
                     37:        .data
                     38:        .align  2
                     39: L59:   .long   0x7ffffffe, 0xfffffffe # .double 1.7014117331926443e+38
                     40:        .text
                     41:        .data
                     42:        .align  2
                     43: L60:   .long   0x40000000, 0x00000000 # .double 0.5
                     44:        .text
                     45:        .set    L51,0xc
                     46:        .data
                     47:        .text
                     48: _exp:  .word   L51
                     49:        subl3   $88,fp,sp
                     50:        tstl    4(fp)
                     51:        jneq    L55
                     52:        movl    L56+4,r1
                     53:        movl    L56,r0
                     54:        ret
                     55: L55:   lnd     _maxf
                     56:        cmpd    4(fp)
                     57:        jleq    L57
                     58:        clrl    r1
                     59:        clrl    r0
                     60:        ret
                     61: L57:   cmpd2   4(fp),_maxf
                     62:        jleq    L58
                     63:        movl    $34,_errno
                     64:        movl    L59+4,r1
                     65:        movl    L59,r0
                     66:        ret
                     67: L58:   ldd     4(fp)
                     68:        muld    _log2e
                     69:        std     4(fp)
                     70:        pushl   8(fp)
                     71:        pushl   4(fp)
                     72:        callf   $12,_floor
                     73:        ldd     r0
                     74:        cvdl    -88(fp)
                     75:        cvld    -88(fp)
                     76:        std     r0
                     77:        ldd     4(fp)
                     78:        subd    r0
                     79:        subd    L60
                     80:        std     -60(fp)
                     81:        muld    -60(fp)
                     82:        std     -84(fp)
                     83:        ldd     _p2
                     84:        muld    -84(fp)
                     85:        addd    _p1
                     86:        muld    -84(fp)
                     87:        addd    _p0
                     88:        muld    -60(fp)
                     89:        std     -68(fp)
                     90:        ldd     _q2
                     91:        muld    -84(fp)
                     92:        addd    _q1
                     93:        muld    -84(fp)
                     94:        addd    _q0
                     95:        std     -76(fp)
                     96:        pushl   -88(fp)
                     97:        addd    -68(fp)
                     98:        muld    _sqrt2
                     99:        std     r0
                    100:        ldd     -76(fp)
                    101:        subd    -68(fp)
                    102:        std     r2
                    103:        ldd     r0
                    104:        divd    r2
                    105:        pushd
                    106:        callf   $16,_ldexp
                    107:        ret
                    108: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.