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