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

1.1       root        1: /*     @(#)log.s       4.1     12/25/82        */
                      2: 
                      3: /*
                      4:        log returns the natural logarithm of its floating
                      5:        point argument.
                      6: 
                      7:        The coefficients are #2705 from Hart & etc. (19.38D)
                      8: 
                      9:        It calls frexp.
                     10: */
                     11:        .data
                     12:        .comm   _errno,4
                     13:        .align  2
                     14: _log2: .long   0x40317217, 0xf7d1cf7a # .double 0.69314718055994531
                     15:        .align  2
                     16: _ln10: .long   0x41135d8d, 0xddaaa8ac # .double 2.3025850929940457
                     17:        .align  2
                     18: _sqrto2:.long  0x403504f3, 0x33f9de65 # .double 0.70710678118654753
                     19:        .align  2
                     20: _p0:   .long   0xc2c01c81, 0x046c108e # .double -24.013917955921051
                     21:        .align  2
                     22: _p1:   .long   0x42f7a889, 0x23899922 # .double 30.95729282153765
                     23:        .align  2
                     24: _p2:   .long   0xc21a33fb, 0x68988b11 # .double -9.6376909337784051
                     25:        .align  2
                     26: _p3:   .long   0x3fd798c3, 0x90479865 # .double 0.42108737121797971
                     27:        .align  2
                     28: _q0:   .long   0xc2401c81, 0x046c108e # .double -12.006958977960525
                     29:        .align  2
                     30: _q1:   .long   0x429bd904, 0xbd2c246c # .double 19.480966070088973
                     31:        .align  2
                     32: _q2:   .long   0xc20e93e7, 0x0f647221 # .double -8.9111090279831233
                     33:        .text
                     34: LL0:   .align  1
                     35:        .globl  _log
                     36:        .data
                     37:        .align  2
                     38: L57:   .long   0xfffffffe, 0xfffffffe # .double -1.7014117331926443e+38
                     39:        .text
                     40:        .data
                     41:        .align  2
                     42: L60:   .long   0x40000000, 0x00000000 # .double 0.5
                     43:        .text
                     44:        .data
                     45:        .align  2
                     46: L61:   .long   0x41000000, 0x00000000 # .double 2
                     47:        .text
                     48:        .data
                     49:        .align  2
                     50: L63:   .long   0x41000000, 0x00000000 # .double 2
                     51:        .text
                     52:        .data
                     53:        .align  2
                     54: L64:   .long   0x40800000, 0x00000000 # .double 1
                     55:        .align  2
                     56: L65:   .long   0x40800000, 0x00000000 # .double 1
                     57:        .text
                     58:        .data
                     59:        .align  2
                     60: L66:   .long   0x40800000, 0x00000000 # .double 1
                     61:        .text
                     62:        .set    L52,0xc
                     63:        .data
                     64:        .text
                     65: _log:  .word   L52
                     66:        subl3   $88,fp,sp
                     67:        tstl    4(fp)
                     68:        jgtr    L56
                     69:        movl    $33,_errno
                     70:        movl    L57+4,r1
                     71:        movl    L57,r0
                     72:        ret
                     73: L56:   subl3   $88,fp,-(sp)
                     74:        pushl   8(fp)
                     75:        pushl   4(fp)
                     76:        callf   $16,_frexp
                     77:        movl    r1,-56(fp)
                     78:        movl    r0,-60(fp)
                     79:        jbr     L58
                     80: L2000001:ldd   -60(fp)
                     81:        muld    L61
                     82:        std     -60(fp)
                     83:        subl2   $1,-88(fp)
                     84: L58:   cmpd2   -60(fp),L60
                     85:        jlss    L2000001
                     86:        cmpd2   -60(fp),_sqrto2
                     87:        jgeq    L62
                     88:        ldd     L63
                     89:        muld    -60(fp)
                     90:        std     -60(fp)
                     91:        subl2   $1,-88(fp)
                     92: L62:   ldd     -60(fp)
                     93:        subd    L64
                     94:        std     r0
                     95:        ldd     -60(fp)
                     96:        addd    L65
                     97:        std     r2
                     98:        ldd     r0
                     99:        divd    r2
                    100:        std     -68(fp)
                    101:        muld    -68(fp)
                    102:        std     -76(fp)
                    103:        ldd     _p3
                    104:        muld    -76(fp)
                    105:        addd    _p2
                    106:        muld    -76(fp)
                    107:        addd    _p1
                    108:        muld    -76(fp)
                    109:        addd    _p0
                    110:        std     -84(fp)
                    111:        ldd     L66
                    112:        muld    -76(fp)
                    113:        addd    _q2
                    114:        muld    -76(fp)
                    115:        addd    _q1
                    116:        muld    -76(fp)
                    117:        addd    _q0
                    118:        std     r0
                    119:        ldd     -84(fp)
                    120:        divd    r0
                    121:        std     -84(fp)
                    122:        muld    -68(fp)
                    123:        std     r0
                    124:        cvld    -88(fp)
                    125:        muld    _log2
                    126:        addd    r0
                    127:        std     -84(fp)
                    128:        movl    -80(fp),r1
                    129:        movl    -84(fp),r0
                    130:        ret
                    131:        .align  1
                    132:        .globl  _log10
                    133:        .set    L67,0x0
                    134:        .data
                    135:        .text
                    136: _log10:        .word   L67
                    137:        pushl   8(fp)
                    138:        pushl   4(fp)
                    139:        callf   $12,_log
                    140:        ldd     r0
                    141:        divd    _ln10
                    142:        std     r0
                    143:        ret
                    144: 

unix.superglobalmegacorp.com

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