Annotation of 43BSDReno/sys/tahoemath/Katanf.s, revision 1.1

1.1     ! root        1: /*     Katanf.s        1.3     86/01/05        */
        !             2: 
        !             3: #include "../tahoe/SYS.h"
        !             4: 
        !             5:        .text
        !             6: ENTRY(Katanf, 0)
        !             7:        tstl    4(fp)                   # if (arg > 0)
        !             8:        jleq    1f
        !             9:        pushl   20(fp)                  # hfs
        !            10:        pushl   8(fp)
        !            11:        pushl   4(fp)
        !            12:        callf   $16,satan
        !            13:        ret                             # return(satan(arg));
        !            14: 1:                                     # else
        !            15:        pushl   20(fp)                  # hfs
        !            16:        lnd     4(fp)
        !            17:        pushd
        !            18:        callf   $16,satan
        !            19:        lnf     r0
        !            20:        stf     r0
        !            21:        ret                             # return(-satan(-arg));
        !            22: 
        !            23: ASENTRY(satan, R2|R3)
        !            24:        subl3   $60,fp,sp
        !            25:        cmpd2   4(fp),_sq2m1            # if (arg < sq2m1)
        !            26:        jgeq    1f
        !            27:        pushl   12(fp)                  # hfs
        !            28:        pushl   8(fp)
        !            29:        pushl   4(fp)
        !            30:        callf   $16,xatan
        !            31:        ret                             # return(xatan(arg));
        !            32: 1:
        !            33:        cmpd2   4(fp),_sq2p1            # else if (arg > sq2p1)
        !            34:        jgtr    9f
        !            35:        pushl   12(fp)                  # hfs
        !            36:        ldd     one; pushd
        !            37:        ldd     4(fp); pushd
        !            38:        callf   $24,_Kaddd              # (arg+1.0)
        !            39:        pushl   12(fp)                  # hfs of _Kdivd
        !            40:        pushl   r1
        !            41:        pushl   r0
        !            42:        pushl   12(fp)                  # hfs
        !            43:        ldd     one; pushd
        !            44:        ldd     4(fp); pushd
        !            45:        callf   $24,_Ksubd              # (arg-1.0)
        !            46:        pushl   r1
        !            47:        pushl   r0
        !            48:        callf   $24,_Kdivd              # (arg-1.0)/(arg+1.0)
        !            49:        pushl   12(fp)                  # hfs
        !            50:        pushl   r1
        !            51:        pushl   r0
        !            52:        callf   $16,xatan               # xatan((ag-1.0)/(arg+1.0))
        !            53:        pushl   12(fp)                  # hfs
        !            54:        pushl   r1
        !            55:        pushl   r0
        !            56:        ldd     _pio4; pushd
        !            57:        callf   $24,_Kaddd
        !            58:        ldd     r0; cvdf; stf r0
        !            59:        ret                             # return(pio4+xatan((xatan(...)));
        !            60: 
        !            61: 9:
        !            62:        pushl   12(fp)  
        !            63:        ldd     4(fp); pushd
        !            64:        ldd     one; pushd
        !            65:        callf   $24,_Kdivd              # (1.0/arg)
        !            66:        pushl   12(fp)                  # hfs
        !            67:        ldd     r0; pushd
        !            68:        callf   $16,xatan
        !            69:                                        # clrl  -60+4(fp)
        !            70:                                        # movl  r0,-60(fp)
        !            71:        pushl   12(fp)                  # hfs
        !            72:        ldd     r0; pushd
        !            73:        ldd     _pio2; pushd
        !            74:        callf   $24,_Ksubd
        !            75:        ldd     r0; cvdf; stf r0
        !            76:        ret
        !            77: 
        !            78: ASENTRY(xatan, 0)
        !            79:        subl3   $68,fp,sp
        !            80:        pushl   12(fp)                  # hfs
        !            81:        ldd     4(fp); pushd; pushd
        !            82:        callf   $24,_Kmuld              # argsq = arg*arg;
        !            83:        ldd     r0
        !            84:        std     -60(fp)                 # argsq
        !            85:        pushl   12(fp)                  # hfs
        !            86:        pushd                   
        !            87:        ldd     _p5; pushd
        !            88:        callf   $24,_Kmuld              # p5*argsq
        !            89:        pushl   12(fp)                  # hfs
        !            90:        ldd     _p4; pushd                      
        !            91:        ldd     r0; pushd
        !            92:        callf   $24,_Kaddd              # (p5*argsq+p4)
        !            93:        pushl   12(fp)                  # hfs
        !            94:        ldd     -60(fp); pushd
        !            95:        ldd     r0; pushd
        !            96:        callf   $24,_Kmuld              # (p5*argsq+p4)*argsq
        !            97:        pushl   12(fp)                  # hfs
        !            98:        ldd     _p3; pushd                      
        !            99:        ldd     r0; pushd
        !           100:        callf   $24,_Kaddd              # ((p5*argsq+p4)*argsq+p3)
        !           101:        pushl   12(fp)                  # hfs
        !           102:        ldd     -60(fp); pushd
        !           103:        ldd     r0; pushd
        !           104:        callf   $24,_Kmuld              # (..)*argsq
        !           105:        pushl   12(fp)                  # hfs
        !           106:        ldd     _p2; pushd                      
        !           107:        ldd     r0; pushd
        !           108:        callf   $24,_Kaddd              # (..)*argsq+p2)
        !           109:        pushl   12(fp)                  # hfs
        !           110:        ldd     -60(fp); pushd
        !           111:        ldd     r0; pushd
        !           112:        callf   $24,_Kmuld              # ((..)*argsq+p2)*argsq
        !           113:        pushl   12(fp)                  # hfs
        !           114:        ldd     _p1; pushd                      
        !           115:        ldd     r0; pushd
        !           116:        callf   $24,_Kaddd              # ((..)*argsq+p2)*argsq+p1)
        !           117:        pushl   12(fp)                  # hfs
        !           118:        ldd     -60(fp); pushd
        !           119:        ldd     r0; pushd
        !           120:        callf   $24,_Kmuld              # (..)*argsq
        !           121:        pushl   12(fp)                  # hfs
        !           122:        ldd     _p0; pushd                      
        !           123:        ldd     r0; pushd
        !           124:        callf   $24,_Kaddd              # ((..)*argsq+p1)*argsq+p0)
        !           125:        pushl   12(fp)                  # hfs
        !           126:        ldd     4(fp); pushd
        !           127:        ldd     r0; pushd
        !           128:        callf   $24,_Kmuld              # (..)*arg
        !           129:        ldd     r0
        !           130:        std     -68(fp); cvdf; stf r0   # value
        !           131:        ret
        !           132: 
        !           133:        .data
        !           134:        .align  2
        !           135: _sq2p1:        .long   0x411A8279, 0x99FCEF31 # .double 2.414213562373095
        !           136: _sq2m1:        .long   0x3FD413CC, 0xCFE77990 # .double .41421356237309503
        !           137: _pio2: .long   0x40C90FDA, 0xA22168C1 # .double 1.5707963267948966
        !           138: _pio4: .long   0x40490FDA, 0xA22168C1 # .double .78539816339744829
        !           139: _p0:   .long   0x407FFFFF, 0xFD687A4B # .double .99999999939652999
        !           140: _p1:   .long   0xBFAAAAA2, 0x09F9DBF2 # .double -.3333330762079
        !           141: _p2:   .long   0x3F4CC820, 0x0670059B # .double .199982166665
        !           142: _p3:   .long   0xBF11D182, 0x6601878B # .double -.142400777317
        !           143: _p4:   .long   0x3ED88B47, 0x4EFC9AF9 # .double .10573440275
        !           144: _p5:   .long   0xBE772E4B, 0x0E689AEB # .double -.060346883
        !           145: 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.