Annotation of cci/usr/src/usr.lib/libm/atan.s, revision 1.1

1.1     ! root        1: /*     @(#)atan.c      4.1/4.2         10/31/84  CCI-CPG       */
        !             2: 
        !             3: 
        !             4: /*
        !             5:        Double-precision arctangent function recoded with
        !             6:        new algorithm polynomial at CCI-CPG.
        !             7:        Coefficients are #4969 from Hart & etc. (17.92D)
        !             8: 
        !             9:        atan returns the value of the arctangent of its
        !            10:        argument in the range [-pi/2,pi/2].
        !            11: 
        !            12:        atan2 returns the arctangent of arg1/arg2
        !            13:        in the range [-pi,pi].
        !            14: 
        !            15:        there are no error returns.
        !            16: 
        !            17: */
        !            18:        .data
        !            19:        .align  2
        !            20: _sq2p1: .long  0x411a8279, 0x99fcef32 # .double 2.414213562373095
        !            21:        .align  2
        !            22: _sq2m1: .long  0x3fd413cc, 0xcfe77992 # .double 0.41421356237309505
        !            23:        .align  2
        !            24: _pio2: .long   0x40c90fda, 0xa22168c2 # .double 1.5707963267948966
        !            25:        .align  2
        !            26: _pio4: .long   0x40490fda, 0xa22168c2 # .double 0.78539816339744831
        !            27:        .align  2
        !            28: _p0:   .long   0x40800000, 0x00000000 # .double 1
        !            29:        .align  2
        !            30: _p1:   .long   0xbfaaaaaa, 0xaaaaa984 # .double -0.33333333333333129
        !            31:        .align  2
        !            32: _p2:   .long   0x3f4ccccc, 0xccca47cb # .double 0.19999999999942712
        !            33:        .align  2
        !            34: _p3:   .long   0xbf124924, 0x91341847 # .double -0.14285714279414943
        !            35:        .align  2
        !            36: _p4:   .long   0x3ee38e38, 0x685c2f79 # .double 0.11111110752565144
        !            37:        .align  2
        !            38: _p5:   .long   0xbeba2e7b, 0x6e11c9ad # .double -0.090908970161966385
        !            39:        .align  2
        !            40: _p6:   .long   0x3e9d887d, 0x2d47ecb2 # .double 0.076920488304486365
        !            41:        .align  2
        !            42: _p7:   .long   0xbe887541, 0x84d86747 # .double -0.066629897944085704
        !            43:        .align  2
        !            44: _p8:   .long   0x3e6f7fbd, 0x60c7567d # .double 0.05847143150136491
        !            45:        .align  2
        !            46: _p9:   .long   0xbe4e48e7, 0x446d54d6 # .double -0.0503624948385852
        !            47:        .align  2
        !            48: _p10:  .long   0x3e1b9ee6, 0x004c28d5 # .double 0.03799333423809
        !            49:        .align  2
        !            50: _p11:  .long   0xbd921adf, 0x2d9e4583 # .double -0.017835079092898
        !            51:        .text
        !            52: LL0:   .align  1
        !            53:        .globl  _atan
        !            54:        .set    L28,0x0
        !            55:        .data
        !            56:        .text
        !            57: _atan: .word   L28
        !            58:        tstl    4(fp)
        !            59:        jleq    L33
        !            60:        pushl   8(fp)
        !            61:        pushl   4(fp)
        !            62:        callf   $12,_satan
        !            63:        ret
        !            64: L33:   lnd     4(fp)
        !            65:        pushd
        !            66:        callf   $12,_satan
        !            67:        lnd     r0
        !            68:        std     r0
        !            69:        ret
        !            70:        .align  1
        !            71:        .globl  _atan2
        !            72:        .set    L35,0xc
        !            73:        .data
        !            74:        .text
        !            75:        .data
        !            76:        .align  2
        !            77: L51:   .long   0x40800000, 0x00000000 # .double 1
        !            78:        .text
        !            79:        .set    L44,0xc
        !            80:        .data
        !            81:        .text
        !            82:        .set    L54,0x0
        !            83:        .data
        !            84:        .text
        !            85: _atan2: .word  L35
        !            86:        subl3   $60,fp,sp
        !            87:        ldd     4(fp)
        !            88:        addd    12(fp)
        !            89:        cmpd    4(fp)
        !            90:        jneq    L39
        !            91:        tstl    4(fp)
        !            92:        jlss    L40
        !            93:        movl    _pio2+4,r1
        !            94:        movl    _pio2,r0
        !            95:        ret
        !            96: L40:   lnd     _pio2
        !            97:        jbr     L2000000
        !            98: L2000003:
        !            99:        lnd     4(fp)
        !           100:        divd    12(fp)
        !           101:        pushd
        !           102:        callf   $12,_satan
        !           103:        movl    r1,-56(fp)
        !           104:        movl    r0,-60(fp)
        !           105:        ldd     _pio2
        !           106:        addd    _pio2
        !           107: L2000001:
        !           108:        subd    -60(fp)
        !           109:        jbr     L2000000
        !           110: L2000005:
        !           111:        tstl    4(fp)
        !           112:        jgeq    L2000003
        !           113:        ldd     4(fp)
        !           114:        divd    12(fp)
        !           115:        pushd
        !           116:        callf   $12,_satan
        !           117:        lnd     _pio2
        !           118:        subd    _pio2
        !           119:        addd    r0
        !           120: L2000000:
        !           121:        std     r0
        !           122:        ret
        !           123: L39:   tstl    12(fp)
        !           124:        jlss    L2000005
        !           125:        tstl    4(fp)
        !           126:        jleq    L43
        !           127:        ldd     4(fp)
        !           128:        divd    12(fp)
        !           129:        pushd
        !           130:        callf   $12,_satan
        !           131:        ret
        !           132: L43:   lnd     4(fp)
        !           133:        divd    12(fp)
        !           134:        pushd
        !           135:        callf   $12,_satan
        !           136:        lnd     r0
        !           137:        jbr     L2000000
        !           138:        .align  1
        !           139: _satan: .word  L44
        !           140:        subl3   $60,fp,sp
        !           141:        cmpd2   4(fp),_sq2m1
        !           142:        jgeq    L49
        !           143:        pushl   8(fp)
        !           144:        pushl   4(fp)
        !           145:        callf   $12,_xatan
        !           146:        ret
        !           147: L49:   cmpd2   4(fp),_sq2p1
        !           148:        jleq    L50
        !           149:        ldd     L51
        !           150:        divd    4(fp)
        !           151:        pushd
        !           152:        callf   $12,_xatan
        !           153:        movl    r1,-56(fp)
        !           154:        movl    r0,-60(fp)
        !           155:        ldd     _pio2
        !           156:        jbr     L2000001
        !           157: L50:   ldd     4(fp)
        !           158:        subd    L51
        !           159:        std     r0
        !           160:        ldd     4(fp)
        !           161:        addd    L51
        !           162:        std     r2
        !           163:        ldd     r0
        !           164:        divd    r2
        !           165:        pushd
        !           166:        callf   $12,_xatan
        !           167:        ldd     r0
        !           168:        addd    _pio4
        !           169:        jbr     L2000000
        !           170:        .align  1
        !           171: _xatan: .word  L54
        !           172:        subl3   $68,fp,sp
        !           173:        ldd     4(fp)
        !           174:        muld    4(fp)
        !           175:        std     -60(fp)
        !           176:        ldd     _p11
        !           177:        muld    -60(fp)
        !           178:        addd    _p10
        !           179:        muld    -60(fp)
        !           180:        addd    _p9
        !           181:        muld    -60(fp)
        !           182:        addd    _p8
        !           183:        muld    -60(fp)
        !           184:        addd    _p7
        !           185:        muld    -60(fp)
        !           186:        addd    _p6
        !           187:        muld    -60(fp)
        !           188:        addd    _p5
        !           189:        muld    -60(fp)
        !           190:        addd    _p4
        !           191:        muld    -60(fp)
        !           192:        addd    _p3
        !           193:        muld    -60(fp)
        !           194:        addd    _p2
        !           195:        muld    -60(fp)
        !           196:        addd    _p1
        !           197:        muld    -60(fp)
        !           198:        addd    _p0
        !           199:        muld    4(fp)
        !           200:        std     -68(fp)
        !           201:        movl    -64(fp),r1
        !           202:        movl    -68(fp),r0
        !           203:        ret

unix.superglobalmegacorp.com

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