|
|
Power 6/32 Unix version 1.2b
/* @(#)log.s 4.1 12/25/82 */ /* log returns the natural logarithm of its floating point argument. The coefficients are #2705 from Hart & etc. (19.38D) It calls frexp. */ .data .comm _errno,4 .align 2 _log2: .long 0x40317217, 0xf7d1cf7a # .double 0.69314718055994531 .align 2 _ln10: .long 0x41135d8d, 0xddaaa8ac # .double 2.3025850929940457 .align 2 _sqrto2:.long 0x403504f3, 0x33f9de65 # .double 0.70710678118654753 .align 2 _p0: .long 0xc2c01c81, 0x046c108e # .double -24.013917955921051 .align 2 _p1: .long 0x42f7a889, 0x23899922 # .double 30.95729282153765 .align 2 _p2: .long 0xc21a33fb, 0x68988b11 # .double -9.6376909337784051 .align 2 _p3: .long 0x3fd798c3, 0x90479865 # .double 0.42108737121797971 .align 2 _q0: .long 0xc2401c81, 0x046c108e # .double -12.006958977960525 .align 2 _q1: .long 0x429bd904, 0xbd2c246c # .double 19.480966070088973 .align 2 _q2: .long 0xc20e93e7, 0x0f647221 # .double -8.9111090279831233 .text LL0: .align 1 .globl _log .data .align 2 L57: .long 0xfffffffe, 0xfffffffe # .double -1.7014117331926443e+38 .text .data .align 2 L60: .long 0x40000000, 0x00000000 # .double 0.5 .text .data .align 2 L61: .long 0x41000000, 0x00000000 # .double 2 .text .data .align 2 L63: .long 0x41000000, 0x00000000 # .double 2 .text .data .align 2 L64: .long 0x40800000, 0x00000000 # .double 1 .align 2 L65: .long 0x40800000, 0x00000000 # .double 1 .text .data .align 2 L66: .long 0x40800000, 0x00000000 # .double 1 .text .set L52,0xc .data .text _log: .word L52 subl3 $88,fp,sp tstl 4(fp) jgtr L56 movl $33,_errno movl L57+4,r1 movl L57,r0 ret L56: subl3 $88,fp,-(sp) pushl 8(fp) pushl 4(fp) callf $16,_frexp movl r1,-56(fp) movl r0,-60(fp) jbr L58 L2000001:ldd -60(fp) muld L61 std -60(fp) subl2 $1,-88(fp) L58: cmpd2 -60(fp),L60 jlss L2000001 cmpd2 -60(fp),_sqrto2 jgeq L62 ldd L63 muld -60(fp) std -60(fp) subl2 $1,-88(fp) L62: ldd -60(fp) subd L64 std r0 ldd -60(fp) addd L65 std r2 ldd r0 divd r2 std -68(fp) muld -68(fp) std -76(fp) ldd _p3 muld -76(fp) addd _p2 muld -76(fp) addd _p1 muld -76(fp) addd _p0 std -84(fp) ldd L66 muld -76(fp) addd _q2 muld -76(fp) addd _q1 muld -76(fp) addd _q0 std r0 ldd -84(fp) divd r0 std -84(fp) muld -68(fp) std r0 cvld -88(fp) muld _log2 addd r0 std -84(fp) movl -80(fp),r1 movl -84(fp),r0 ret .align 1 .globl _log10 .set L67,0x0 .data .text _log10: .word L67 pushl 8(fp) pushl 4(fp) callf $12,_log ldd r0 divd _ln10 std r0 ret
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.