Annotation of 43BSDReno/sys/tahoemath/Katanf.s, revision 1.1.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.