|
|
1.1 ! root 1: /*- ! 2: * Copyright (c) 1985 The Regents of the University of California. ! 3: * All rights reserved. ! 4: * ! 5: * This code is derived from software contributed to Berkeley by ! 6: * Computer Consoles Inc. ! 7: * ! 8: * Redistribution and use in source and binary forms, with or without ! 9: * modification, are permitted provided that the following conditions ! 10: * are met: ! 11: * 1. Redistributions of source code must retain the above copyright ! 12: * notice, this list of conditions and the following disclaimer. ! 13: * 2. Redistributions in binary form must reproduce the above copyright ! 14: * notice, this list of conditions and the following disclaimer in the ! 15: * documentation and/or other materials provided with the distribution. ! 16: * 3. All advertising materials mentioning features or use of this software ! 17: * must display the following acknowledgement: ! 18: * This product includes software developed by the University of ! 19: * California, Berkeley and its contributors. ! 20: * 4. Neither the name of the University nor the names of its contributors ! 21: * may be used to endorse or promote products derived from this software ! 22: * without specific prior written permission. ! 23: * ! 24: * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ! 25: * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ! 26: * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ! 27: * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ! 28: * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ! 29: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ! 30: * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ! 31: * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ! 32: * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ! 33: * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 34: * SUCH DAMAGE. ! 35: * ! 36: * @(#)Klogf.s 7.1 (Berkeley) 12/6/90 ! 37: */ ! 38: ! 39: #include "../tahoe/SYS.h" ! 40: ! 41: .text ! 42: ENTRY(Klogf, R5|R4|R3|R2) ! 43: subl3 $88,fp,sp ! 44: clrl 8(fp) ! 45: tstl 4(fp) ! 46: jgtr L53 ! 47: movl small+4,r1 ! 48: movl small,r0 ! 49: ret ! 50: L53: pushl 20(fp) # hfs ! 51: subl3 $88,fp,-(sp) # &exp ! 52: pushl 8(fp) # arg ! 53: pushl 4(fp) ! 54: callf $20,_Kfrexpf ! 55: ldd r0 ! 56: # movl r1,-56(fp) ! 57: std -60(fp) # movl r0,-60(fp) ! 58: jbr L55 ! 59: L2000001: ! 60: pushl 20(fp) # hfs ! 61: ldd two # 2.0 ! 62: pushd ! 63: ldd -60(fp) # x ! 64: pushd ! 65: callf $24,_Kmuld ! 66: ldd r0 ! 67: std -60(fp) ! 68: subl2 $1,-88(fp) ! 69: L55: cmpd2 -60(fp),half ! 70: jlss L2000001 ! 71: cmpd2 -60(fp),_sqrto2 ! 72: jgeq L59 ! 73: pushl 20(fp) # hfs ! 74: ldd -60(fp) # x ! 75: pushd ! 76: ldd two # 2.0 ! 77: pushd ! 78: callf $24,_Kmuld ! 79: ldd r0 ! 80: std -60(fp) ! 81: subl2 $1,-88(fp) ! 82: L59: pushl 20(fp) # hfs ! 83: ldd one # 1.0 ! 84: pushd ! 85: ldd -60(fp) # x ! 86: pushd ! 87: callf $24,_Ksubd ! 88: ldd r0 ! 89: std r2 ! 90: pushl 20(fp) # hfs ! 91: ldd one # 1.0 ! 92: pushd ! 93: ldd -60(fp) # x ! 94: pushd ! 95: callf $24,_Kaddd ! 96: ldd r0 ! 97: std r4 ! 98: pushl 20(fp) # hfs ! 99: ldd r4 # temp result of x-1 ! 100: pushd ! 101: ldd r2 # temp result of x+1 ! 102: pushd ! 103: callf $24,_Kdivd ! 104: ldd r0 ! 105: std -68(fp) # z ! 106: pushl 20(fp) # hfs ! 107: pushd # z ! 108: pushd # z ! 109: callf $24,_Kmuld ! 110: ldd r0 ! 111: std -76(fp) # zsq ! 112: pushl 20(fp) # hfs ! 113: ldd -76(fp) # zsq ! 114: pushd ! 115: ldd _p1 # p1 ! 116: pushd ! 117: callf $24,_Kmuld ! 118: ldd r0 ! 119: std r2 ! 120: pushl 20(fp) # hfs ! 121: ldd _p0 # p0 ! 122: pushd ! 123: ldd r2 ! 124: pushd ! 125: callf $24,_Kaddd ! 126: ldd r0 ! 127: std -84(fp) # temp ! 128: pushl 20(fp) # hfs ! 129: ldd -76(fp) # zsq ! 130: pushd ! 131: ldd _q1 ! 132: pushd ! 133: callf $24,_Kmuld ! 134: ldd r0 ! 135: std r2 ! 136: pushl 20(fp) # hfs ! 137: ldd _q0 # q0 ! 138: pushd ! 139: ldd r2 ! 140: pushd ! 141: callf $24,_Kaddd ! 142: ldd r0 ! 143: std r2 # temp result of (q1*zsq+q0) ! 144: pushl 20(fp) # hfs ! 145: ldd r2 ! 146: pushd ! 147: ldd -84(fp) # temp ! 148: pushd ! 149: callf $24,_Kdivd ! 150: ldd r0 ! 151: std -84(fp) # put in temp ! 152: pushl 20(fp) # hfs ! 153: ldd -68(fp) # z ! 154: pushd ! 155: ldd -84(fp) ! 156: pushd ! 157: callf $24,_Kmuld ! 158: ldd r0 ! 159: std r2 ! 160: pushl 20(fp) #hfs ! 161: pushl $0 # 0 pad ! 162: pushl -88(fp) # exp ! 163: pushl $0 # dummy ! 164: pushl $0 # dummy ! 165: callf $24,_Kcvtld ! 166: pushl 20(fp) # hfs ! 167: ldd _log2 # log2 ! 168: pushd ! 169: pushl r1 # exp converted ! 170: pushl r0 ! 171: callf $24,_Kmuld ! 172: ldd r0 ! 173: std r4 ! 174: pushl 20(fp) # hfs ! 175: ldd r2 # result of temp*z ! 176: pushd ! 177: ldd r4 ! 178: pushd ! 179: callf $24,_Kaddd ! 180: ldd r0 ! 181: cvdf ! 182: stf r0 ! 183: clrl r1 ! 184: ret ! 185: ! 186: .data ! 187: .align 2 ! 188: _log2: .long 0x40317217, 0xf7d1cf7a # .double 0.69314718055994531 ! 189: _ln10: .long 0x41135d8d, 0xddaaa8ac # .double 2.3025850929940457 ! 190: _sqrto2:.long 0x403504f3, 0x33f9de65 # .double 0.70710678118654753 ! 191: _p0: .long 0xc154114d, 0xeb0ba468 # .double -3.31355617479 ! 192: _p1: .long 0x40654226, 0x56bd0c4c # .double 0.89554061525 ! 193: _q0: .long 0xc0d4114c, 0xfdc7df02 # .double -1.65677797691 ! 194: _q1: .long 0x40800000, 0x00000000 # .double 1 ! 195: small: .long 0xfffffffe, 0xfffffffe # .double -1.7014117331926443e+38 ! 196: half: .long 0x40000000, 0x00000000 # .double 0.5 ! 197: two: .long 0x41000000, 0x00000000 # .double 2 ! 198: one: .long 0x40800000, 0x00000000 # .double 1
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.