|
|
1.1 ! root 1: # double float sin(),cos() ! 2: #coefficients are from Hart & Cheney SIN3370 (18.80D) ! 3: .text ! 4: .align 1 ! 5: .globl _sin ! 6: .globl _cos ! 7: _sin: ! 8: .word 0x03c0 ! 9: clrl r9 ! 10: movd 4(ap),r0 ! 11: jgeq range ! 12: movl $2,r9 ! 13: jbr negarg ! 14: ! 15: .align 1 ! 16: _cos: ! 17: .word 0x0fc0 ! 18: movl $1,r9 ! 19: movd 4(ap),r0 ! 20: jgeq range ! 21: negarg: ! 22: mnegd r0,r0 ! 23: ! 24: range: ! 25: emodd twoopi,twoopix,r0,r8,r6 ! 26: addl2 r9,r8 ! 27: bicb2 $~03,r8 ! 28: caseb r8,$0,$3 ! 29: bse: .word qda-bse,qdb-bse,qdc-bse,qdd-bse ! 30: qdb: subd3 r6,$0d1.0e+0,r6 ! 31: jbr qda ! 32: qdc: mnegd r6,r6 ! 33: jbr qda ! 34: qdd: subd2 $0d1.0e+0,r6 ! 35: qda: ! 36: muld3 r6,r6,r8 ! 37: polyd r8,$4,pcoef ! 38: muld2 r0,r6 ! 39: polyd r8,$4,qcoef ! 40: divd3 r0,r6,r0 ! 41: ret ! 42: .data ! 43: .align 2 ! 44: twoopi:.double 0d6.36619772367581340000e-01 ! 45: qcoef:.double 0d1.00000000000000000000e+00 ! 46: .double 0d1.32653490878613630000e+02 ! 47: .double 0d9.46309610153820810000e+03 ! 48: .double 0d4.08179225234329970000e+05 ! 49: .double 0d8.64455865292253430000e+06 ! 50: pcoef:.double 0d1.45968840666576870000e+02 ! 51: .double 0d-1.38472724998245280000e+04 ! 52: .double 0d4.40103053537526640000e+05 ! 53: .double 0d-4.94290810090284410000e+06 ! 54: .double 0d1.35788409787737560000e+07 ! 55: twoopix: .byte 0x29
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.