Annotation of 43BSD/usr.lib/liboldnm/sin.s, revision 1.1.1.1

1.1       root        1: #
                      2: # Copyright (c) 1980 Regents of the University of California.
                      3: # All rights reserved.  The Berkeley software License Agreement
                      4: # specifies the terms and conditions for redistribution.
                      5: #
                      6: #      @(#)sin.s       5.1 (Berkeley) 5/8/85
                      7: # 
                      8: #
                      9: # double float sin(),cos()
                     10: #coefficients are from Hart & Cheney  SIN3370 (18.80D)
                     11: .text
                     12: .align 1
                     13: .globl _sin
                     14: .globl _cos
                     15: _sin:
                     16:        .word 0x03c0
                     17:        bispsw  $0xe0
                     18:        clrl    r9      
                     19:        movd    4(ap),r0
                     20:        jgeq    range
                     21:        movl    $2,r9
                     22:        jbr     negarg
                     23: 
                     24: .align 1
                     25: _cos:
                     26:        .word   0x0fc0
                     27:        bispsw  $0xe0
                     28:        movl    $1,r9
                     29:        movd    4(ap),r0
                     30:        jgeq    range
                     31: negarg:
                     32:        mnegd   r0,r0
                     33: 
                     34: range:
                     35:        emodd   twoopi,twoopix,r0,r8,r6
                     36:        addl2   r9,r8
                     37:        bicb2   $~03,r8
                     38:        caseb   r8,$0,$3
                     39: bse:   .word   qda-bse,qdb-bse,qdc-bse,qdd-bse
                     40: qdb:   subd3   r6,$0d1.0e+0,r6
                     41:        jbr     qda
                     42: qdc:   mnegd   r6,r6
                     43:        jbr     qda
                     44: qdd:   subd2   $0d1.0e+0,r6
                     45: qda:
                     46:        muld3   r6,r6,r8
                     47:        polyd   r8,$4,pcoef
                     48:        muld2   r0,r6
                     49:        polyd   r8,$4,qcoef
                     50:        divd3   r0,r6,r0
                     51:        ret
                     52: .data
                     53: .align 2
                     54: twoopi:.double 0d6.36619772367581340000e-01
                     55: qcoef:.double  0d1.00000000000000000000e+00
                     56:  .double       0d1.32653490878613630000e+02
                     57:  .double       0d9.46309610153820810000e+03
                     58:  .double       0d4.08179225234329970000e+05
                     59:  .double       0d8.64455865292253430000e+06
                     60: pcoef:.double  0d1.45968840666576870000e+02
                     61:  .double       0d-1.38472724998245280000e+04
                     62:  .double       0d4.40103053537526640000e+05
                     63:  .double       0d-4.94290810090284410000e+06
                     64:  .double       0d1.35788409787737560000e+07
                     65: twoopix: .byte 0x29

unix.superglobalmegacorp.com

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