|
|
1.1 ! root 1: /* @(#)log.s 4.1 12/25/82 */ ! 2: ! 3: /* ! 4: log returns the natural logarithm of its floating ! 5: point argument. ! 6: ! 7: The coefficients are #2705 from Hart & etc. (19.38D) ! 8: ! 9: It calls frexp. ! 10: */ ! 11: .data ! 12: .comm _errno,4 ! 13: .align 2 ! 14: _log2: .long 0x40317217, 0xf7d1cf7a # .double 0.69314718055994531 ! 15: .align 2 ! 16: _ln10: .long 0x41135d8d, 0xddaaa8ac # .double 2.3025850929940457 ! 17: .align 2 ! 18: _sqrto2:.long 0x403504f3, 0x33f9de65 # .double 0.70710678118654753 ! 19: .align 2 ! 20: _p0: .long 0xc2c01c81, 0x046c108e # .double -24.013917955921051 ! 21: .align 2 ! 22: _p1: .long 0x42f7a889, 0x23899922 # .double 30.95729282153765 ! 23: .align 2 ! 24: _p2: .long 0xc21a33fb, 0x68988b11 # .double -9.6376909337784051 ! 25: .align 2 ! 26: _p3: .long 0x3fd798c3, 0x90479865 # .double 0.42108737121797971 ! 27: .align 2 ! 28: _q0: .long 0xc2401c81, 0x046c108e # .double -12.006958977960525 ! 29: .align 2 ! 30: _q1: .long 0x429bd904, 0xbd2c246c # .double 19.480966070088973 ! 31: .align 2 ! 32: _q2: .long 0xc20e93e7, 0x0f647221 # .double -8.9111090279831233 ! 33: .text ! 34: LL0: .align 1 ! 35: .globl _log ! 36: .data ! 37: .align 2 ! 38: L57: .long 0xfffffffe, 0xfffffffe # .double -1.7014117331926443e+38 ! 39: .text ! 40: .data ! 41: .align 2 ! 42: L60: .long 0x40000000, 0x00000000 # .double 0.5 ! 43: .text ! 44: .data ! 45: .align 2 ! 46: L61: .long 0x41000000, 0x00000000 # .double 2 ! 47: .text ! 48: .data ! 49: .align 2 ! 50: L63: .long 0x41000000, 0x00000000 # .double 2 ! 51: .text ! 52: .data ! 53: .align 2 ! 54: L64: .long 0x40800000, 0x00000000 # .double 1 ! 55: .align 2 ! 56: L65: .long 0x40800000, 0x00000000 # .double 1 ! 57: .text ! 58: .data ! 59: .align 2 ! 60: L66: .long 0x40800000, 0x00000000 # .double 1 ! 61: .text ! 62: .set L52,0xc ! 63: .data ! 64: .text ! 65: _log: .word L52 ! 66: subl3 $88,fp,sp ! 67: tstl 4(fp) ! 68: jgtr L56 ! 69: movl $33,_errno ! 70: movl L57+4,r1 ! 71: movl L57,r0 ! 72: ret ! 73: L56: subl3 $88,fp,-(sp) ! 74: pushl 8(fp) ! 75: pushl 4(fp) ! 76: callf $16,_frexp ! 77: movl r1,-56(fp) ! 78: movl r0,-60(fp) ! 79: jbr L58 ! 80: L2000001:ldd -60(fp) ! 81: muld L61 ! 82: std -60(fp) ! 83: subl2 $1,-88(fp) ! 84: L58: cmpd2 -60(fp),L60 ! 85: jlss L2000001 ! 86: cmpd2 -60(fp),_sqrto2 ! 87: jgeq L62 ! 88: ldd L63 ! 89: muld -60(fp) ! 90: std -60(fp) ! 91: subl2 $1,-88(fp) ! 92: L62: ldd -60(fp) ! 93: subd L64 ! 94: std r0 ! 95: ldd -60(fp) ! 96: addd L65 ! 97: std r2 ! 98: ldd r0 ! 99: divd r2 ! 100: std -68(fp) ! 101: muld -68(fp) ! 102: std -76(fp) ! 103: ldd _p3 ! 104: muld -76(fp) ! 105: addd _p2 ! 106: muld -76(fp) ! 107: addd _p1 ! 108: muld -76(fp) ! 109: addd _p0 ! 110: std -84(fp) ! 111: ldd L66 ! 112: muld -76(fp) ! 113: addd _q2 ! 114: muld -76(fp) ! 115: addd _q1 ! 116: muld -76(fp) ! 117: addd _q0 ! 118: std r0 ! 119: ldd -84(fp) ! 120: divd r0 ! 121: std -84(fp) ! 122: muld -68(fp) ! 123: std r0 ! 124: cvld -88(fp) ! 125: muld _log2 ! 126: addd r0 ! 127: std -84(fp) ! 128: movl -80(fp),r1 ! 129: movl -84(fp),r0 ! 130: ret ! 131: .align 1 ! 132: .globl _log10 ! 133: .set L67,0x0 ! 134: .data ! 135: .text ! 136: _log10: .word L67 ! 137: pushl 8(fp) ! 138: pushl 4(fp) ! 139: callf $12,_log ! 140: ldd r0 ! 141: divd _ln10 ! 142: std r0 ! 143: ret ! 144:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.