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