Annotation of 43BSD/usr.lib/liboldnm/asin.s, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.