|
|
1.1 ! root 1: #double asin(arg) ! 2: #double arg; -1.0<=arg<=1.0 or an out of range error return ! 3: #method: call atan() after range reduction ! 4: # calls: satan (internal entry point of atan.s), _sqrt ! 5: # J F Jarvis August 8, 1078 ! 6: .globl _asin ! 7: .globl _errno ! 8: .globl _sqrt ! 9: .globl satan ! 10: .set EDOM,33 ! 11: .text ! 12: .align 1 ! 13: _asin: ! 14: .word 0x3c0 ! 15: bispsw $0xe0 ! 16: movd 4(ap),r6 ! 17: jgtr a1 ! 18: mnegd r6,r6 ! 19: a1: cmpd r6,$0d1.0e+0 ! 20: jleq a2 ! 21: movl $EDOM,_errno ! 22: clrd r0 ! 23: ret ! 24: # ! 25: a2: muld3 r6,r6,r0 ! 26: subd3 r0,$0d1.0e+0,-(sp) ! 27: calls $2,_sqrt ! 28: cmpd r6,$0d0.6875 ! 29: jleq a3 ! 30: divd2 r6,r0 ! 31: jsb satan ! 32: subd3 r0,pio2,r0 ! 33: jbr a4 ! 34: a3: divd3 r0,r6,r0 ! 35: jsb satan ! 36: a4: tstd 4(ap) ! 37: jleq a5 ! 38: ret ! 39: a5: mnegd r0,r0 ! 40: ret ! 41: .data ! 42: .align 2 ! 43: pio2: .double 0d1.57079632679489661923e+0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.