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) 05/08/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 27a1: cmpd r6,$0d1.0e+0 28 jleq a2 29 movl $EDOM,_errno 30 clrd r0 31 ret 32# 33a2: 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 42a3: divd3 r0,r6,r0 43 jsb satan 44a4: tstd 4(ap) 45 jleq a5 46 ret 47a5: mnegd r0,r0 48 ret 49.data 50.align 2 51pio2: .double 0d1.57079632679489661923e+0 52