Annotation of 43BSDReno/sys/tahoemath/Klogf.s, revision 1.1.1.1

1.1       root        1: /*     Klogf.s 1.3     86/01/05        */
                      2: 
                      3: #include "../tahoe/SYS.h"
                      4: 
                      5:        .text
                      6: ENTRY(Klogf, R5|R4|R3|R2)
                      7:        subl3   $88,fp,sp
                      8:        clrl    8(fp)
                      9:        tstl    4(fp)
                     10:        jgtr    L53
                     11:        movl    small+4,r1
                     12:        movl    small,r0
                     13:        ret
                     14: L53:   pushl   20(fp)                  # hfs
                     15:        subl3   $88,fp,-(sp)            # &exp
                     16:        pushl   8(fp)                   # arg
                     17:        pushl   4(fp)
                     18:        callf   $20,_Kfrexpf
                     19:        ldd     r0
                     20:                                        # movl  r1,-56(fp)
                     21:        std     -60(fp)                 # movl  r0,-60(fp)
                     22:        jbr     L55
                     23: L2000001:
                     24:        pushl   20(fp)                  # hfs
                     25:        ldd     two                     # 2.0
                     26:        pushd
                     27:        ldd     -60(fp)                 # x
                     28:        pushd   
                     29:        callf   $24,_Kmuld
                     30:        ldd     r0
                     31:        std     -60(fp)
                     32:        subl2   $1,-88(fp)
                     33: L55:   cmpd2   -60(fp),half
                     34:        jlss    L2000001
                     35:        cmpd2   -60(fp),_sqrto2
                     36:        jgeq    L59
                     37:        pushl   20(fp)                  # hfs
                     38:        ldd     -60(fp)                 # x
                     39:        pushd
                     40:        ldd     two                     # 2.0
                     41:        pushd
                     42:        callf   $24,_Kmuld
                     43:        ldd     r0
                     44:        std     -60(fp)
                     45:        subl2   $1,-88(fp)
                     46: L59:   pushl   20(fp)                  # hfs
                     47:        ldd     one                     # 1.0
                     48:        pushd
                     49:        ldd     -60(fp)                 # x
                     50:        pushd
                     51:        callf   $24,_Ksubd      
                     52:        ldd     r0
                     53:        std     r2
                     54:        pushl   20(fp)                  # hfs
                     55:        ldd     one                     # 1.0
                     56:        pushd
                     57:        ldd     -60(fp)                 # x
                     58:        pushd
                     59:        callf   $24,_Kaddd
                     60:        ldd     r0
                     61:        std     r4
                     62:        pushl   20(fp)                  # hfs
                     63:        ldd     r4                      # temp result of x-1
                     64:        pushd
                     65:        ldd     r2                      # temp result of x+1
                     66:        pushd
                     67:        callf   $24,_Kdivd
                     68:        ldd     r0
                     69:        std     -68(fp)                 # z
                     70:        pushl   20(fp)                  # hfs
                     71:        pushd                           # z
                     72:        pushd                           # z
                     73:        callf   $24,_Kmuld
                     74:        ldd     r0
                     75:        std     -76(fp)                 # zsq
                     76:        pushl   20(fp)                  # hfs
                     77:        ldd     -76(fp)                 # zsq
                     78:        pushd
                     79:        ldd     _p1                     # p1
                     80:        pushd
                     81:        callf   $24,_Kmuld
                     82:        ldd     r0
                     83:        std     r2
                     84:        pushl   20(fp)                  # hfs
                     85:        ldd     _p0                     # p0
                     86:        pushd
                     87:        ldd     r2
                     88:        pushd
                     89:        callf   $24,_Kaddd
                     90:        ldd     r0
                     91:        std     -84(fp)                 # temp
                     92:        pushl   20(fp)                  # hfs
                     93:        ldd     -76(fp)                 # zsq
                     94:        pushd
                     95:        ldd     _q1
                     96:        pushd
                     97:        callf   $24,_Kmuld
                     98:        ldd     r0
                     99:        std     r2
                    100:        pushl   20(fp)                  # hfs
                    101:        ldd     _q0                     # q0
                    102:        pushd
                    103:        ldd     r2
                    104:        pushd
                    105:        callf   $24,_Kaddd
                    106:        ldd     r0
                    107:        std     r2                      # temp result of (q1*zsq+q0)
                    108:        pushl   20(fp)                  # hfs
                    109:        ldd     r2
                    110:        pushd
                    111:        ldd     -84(fp)                 # temp
                    112:        pushd
                    113:        callf   $24,_Kdivd
                    114:        ldd     r0
                    115:        std     -84(fp)                 # put in temp
                    116:        pushl   20(fp)                  # hfs
                    117:        ldd     -68(fp)                 # z
                    118:        pushd
                    119:        ldd     -84(fp)
                    120:        pushd
                    121:        callf   $24,_Kmuld
                    122:        ldd     r0
                    123:        std     r2
                    124:        pushl   20(fp)                  #hfs
                    125:        pushl   $0                      # 0 pad
                    126:        pushl   -88(fp)                 # exp
                    127:        pushl   $0                      # dummy
                    128:        pushl   $0                      # dummy
                    129:        callf   $24,_Kcvtld
                    130:        pushl   20(fp)                  # hfs
                    131:        ldd     _log2                   # log2
                    132:        pushd
                    133:        pushl   r1                      # exp converted
                    134:        pushl   r0                      
                    135:        callf   $24,_Kmuld
                    136:        ldd     r0
                    137:        std     r4
                    138:        pushl   20(fp)                  # hfs
                    139:        ldd     r2                      # result of temp*z
                    140:        pushd
                    141:        ldd     r4
                    142:        pushd
                    143:        callf   $24,_Kaddd
                    144:        ldd     r0
                    145:        cvdf
                    146:        stf     r0
                    147:        clrl    r1
                    148:        ret
                    149: 
                    150:        .data
                    151:        .align  2
                    152: _log2: .long   0x40317217, 0xf7d1cf7a # .double 0.69314718055994531
                    153: _ln10: .long   0x41135d8d, 0xddaaa8ac # .double 2.3025850929940457
                    154: _sqrto2:.long  0x403504f3, 0x33f9de65 # .double 0.70710678118654753
                    155: _p0:   .long   0xc154114d, 0xeb0ba468 # .double -3.31355617479
                    156: _p1:   .long   0x40654226, 0x56bd0c4c # .double 0.89554061525
                    157: _q0:   .long   0xc0d4114c, 0xfdc7df02 # .double -1.65677797691
                    158: _q1:   .long   0x40800000, 0x00000000 # .double 1
                    159: small: .long   0xfffffffe, 0xfffffffe # .double -1.7014117331926443e+38
                    160: half:  .long   0x40000000, 0x00000000 # .double 0.5
                    161: two:   .long   0x41000000, 0x00000000 # .double 2
                    162: one:   .long   0x40800000, 0x00000000 # .double 1

unix.superglobalmegacorp.com

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