# # Copyright (c) 1980 Regents of the University of California. # All rights reserved. The Berkeley software License Agreement # specifies the terms and conditions for redistribution. # # @(#)sin.s 5.1 (Berkeley) 5/8/85 # # # double float sin(),cos() #coefficients are from Hart & Cheney SIN3370 (18.80D) .text .align 1 .globl _sin .globl _cos _sin: .word 0x03c0 bispsw $0xe0 clrl r9 movd 4(ap),r0 jgeq range movl $2,r9 jbr negarg .align 1 _cos: .word 0x0fc0 bispsw $0xe0 movl $1,r9 movd 4(ap),r0 jgeq range negarg: mnegd r0,r0 range: emodd twoopi,twoopix,r0,r8,r6 addl2 r9,r8 bicb2 $~03,r8 caseb r8,$0,$3 bse: .word qda-bse,qdb-bse,qdc-bse,qdd-bse qdb: subd3 r6,$0d1.0e+0,r6 jbr qda qdc: mnegd r6,r6 jbr qda qdd: subd2 $0d1.0e+0,r6 qda: muld3 r6,r6,r8 polyd r8,$4,pcoef muld2 r0,r6 polyd r8,$4,qcoef divd3 r0,r6,r0 ret .data .align 2 twoopi:.double 0d6.36619772367581340000e-01 qcoef:.double 0d1.00000000000000000000e+00 .double 0d1.32653490878613630000e+02 .double 0d9.46309610153820810000e+03 .double 0d4.08179225234329970000e+05 .double 0d8.64455865292253430000e+06 pcoef:.double 0d1.45968840666576870000e+02 .double 0d-1.38472724998245280000e+04 .double 0d4.40103053537526640000e+05 .double 0d-4.94290810090284410000e+06 .double 0d1.35788409787737560000e+07 twoopix: .byte 0x29