|
|
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 0x0c0 ! 15: movd 4(ap),r6 ! 16: jgtr a1 ! 17: mnegd r6,r6 ! 18: a1: cmpd r6,$0d1.0e+0 ! 19: jleq a2 ! 20: movl $EDOM,_errno ! 21: clrd r0 ! 22: ret ! 23: # ! 24: a2: muld3 r6,r6,r0 ! 25: subd3 r0,$0d1.0e+0,-(sp) ! 26: calls $2,_sqrt ! 27: cmpd r6,$0d0.6875 ! 28: jleq a3 ! 29: divd2 r6,r0 ! 30: jsb satan ! 31: subd3 r0,pio2,r0 ! 32: jbr a4 ! 33: a3: divd3 r0,r6,r0 ! 34: jsb satan ! 35: a4: tstd 4(ap) ! 36: jleq a5 ! 37: ret ! 38: a5: mnegd r0,r0 ! 39: ret ! 40: .data ! 41: .align 2 ! 42: pio2: .double 0d1.57079632679489661923e+0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.