BSD 4_1_snap development
authorCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 20 Aug 1980 05:23:55 +0000 (21:23 -0800)
committerCSRG <csrg@ucbvax.Berkeley.EDU>
Wed, 20 Aug 1980 05:23:55 +0000 (21:23 -0800)
Work on file usr/src/lib/libnm/sin.s

Synthesized-from: CSRG/cd1/4.1.snap

usr/src/lib/libnm/sin.s [new file with mode: 0644]

diff --git a/usr/src/lib/libnm/sin.s b/usr/src/lib/libnm/sin.s
new file mode 100644 (file)
index 0000000..fa6bd04
--- /dev/null
@@ -0,0 +1,55 @@
+# double float sin(),cos()
+#coefficients are from Hart & Cheney  SIN3370 (18.80D)
+.text
+.align 1
+.globl _sin
+.globl _cos
+_sin:
+       .word 0x03c0
+       clrl    r9      
+       movd    4(ap),r0
+       jgeq    range
+       movl    $2,r9
+       jbr     negarg
+
+.align 1
+_cos:
+       .word   0x0fc0
+       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