|
|
1.1 ! root 1: /* Kexpf.s 1.3 86/01/05 */ ! 2: ! 3: #include "../tahoe/SYS.h" ! 4: ! 5: .text ! 6: ENTRY(Kexpf, R4|R3) ! 7: subl3 $88,fp,sp ! 8: tstl 4(fp) ! 9: jneq 1f ! 10: movl one,r0 ! 11: ret ! 12: 1: ! 13: lnd _maxf ! 14: cmpd 4(fp) ! 15: jleq 1f ! 16: clrl r0 ! 17: ret ! 18: 1: ! 19: cmpd2 4(fp),_maxf ! 20: jleq 1f ! 21: ldd _HUGE ! 22: cvdf ! 23: stf r0 ! 24: ret ! 25: 1: ! 26: pushl 20(fp) # hfs ! 27: ldd _log2e; pushd ! 28: ldd 4(fp); pushd ! 29: callf $24,_Kmuld ! 30: ldd r0 ! 31: std 4(fp) ! 32: ! 33: pushl 20(fp) # hfs ! 34: pushl 8(fp) ! 35: pushl 4(fp) ! 36: callf $16,_Kfloorf ! 37: movl r0,-88(fp) # (int)ent from Kfloorf ! 38: ! 39: cvlf -88(fp) ! 40: clrl r1 ! 41: stf r0 ! 42: pushl 20(fp) # hfs ! 43: pushl r1 ! 44: pushl r0 ! 45: ldd 4(fp); pushd ! 46: callf $24,_Ksubd # (arg - ent) ! 47: ! 48: pushl 20(fp) # hfs ! 49: ldd half; pushd ! 50: ldd r0; pushd ! 51: callf $24,_Ksubd ! 52: ldd r0; std -60(fp) # fract ! 53: ! 54: pushl 20(fp) # hfs ! 55: pushd ! 56: pushd ! 57: callf $24,_Kmuld ! 58: ldd r0; std -84(fp) # xsq ! 59: ! 60: pushl 20(fp) # hfs ! 61: pushd # xsq ! 62: ldd _p2; pushd ! 63: callf $24,_Kmuld ! 64: ! 65: pushl 20(fp) # hfs ! 66: ldd _p1; pushd ! 67: ldd r0; pushd ! 68: callf $24,_Kaddd ! 69: ! 70: pushl 20(fp) # hfs ! 71: ldd -84(fp); pushd ! 72: ldd r0; pushd ! 73: callf $24,_Kmuld ! 74: ! 75: pushl 20(fp) # hfs ! 76: ldd _p0; pushd ! 77: ldd r0; pushd ! 78: callf $24,_Kaddd ! 79: ! 80: pushl 20(fp) # hfs ! 81: ldd -60(fp); pushd # fract ! 82: ldd r0; pushd ! 83: callf $24,_Kmuld ! 84: ldd r0; std -68(fp) # temp1 ! 85: ! 86: pushl 20(fp) # hfs ! 87: ldd -84(fp); pushd # xsq ! 88: ldd _q2; pushd ! 89: callf $24,_Kmuld ! 90: ! 91: pushl 20(fp) # hfs ! 92: ldd _q1; pushd ! 93: ldd r0; pushd ! 94: callf $24,_Kaddd ! 95: ! 96: pushl 20(fp) # hfs ! 97: ldd -84(fp); pushd ! 98: ldd r0; pushd ! 99: callf $24,_Kmuld ! 100: ! 101: pushl 20(fp) # hfs ! 102: ldd _q0; pushd ! 103: ldd r0; pushd ! 104: callf $24,_Kaddd ! 105: ldd r0; std -76(fp) # temp2 ! 106: ! 107: pushl 20(fp) # hfs for Kldexpf ! 108: pushl -88(fp) # ent ! 109: ! 110: pushl 20(fp) # hfs tor temp2+temp1 ! 111: ldd -68(fp); pushd # temp1 ! 112: ldd -76(fp); pushd # temp2 ! 113: callf $24,_Kaddd ! 114: ! 115: pushl 20(fp) # hfs ! 116: ldd _sqrt2; pushd ! 117: ldd r0; pushd # temp2+temp1 ! 118: callf $24,_Kmuld ! 119: ldd r0; std r2 # sqrt2*(temp2+temp1) ! 120: ! 121: pushl 20(fp) # hfs ! 122: ldd -68(fp) ! 123: pushd ! 124: ldd -76(fp) ! 125: pushd ! 126: callf $24,_Ksubd # temp2-temp1 ! 127: ! 128: pushl 20(fp) # hfs ! 129: ldd r0 ! 130: pushd # temp2-temp1 ! 131: ldd r2 ! 132: pushd ! 133: callf $24,_Kdivd ! 134: ! 135: ldd r0 ! 136: pushd ! 137: callf $20,_Kldexpf ! 138: ! 139: #pushl 20(fp) # hfs ! 140: #pushl $0 ! 141: #pushl r0 # cvlf r0 ! 142: #pushl $0 ! 143: #pushl $0 ! 144: #callf $24,_Kcvtld ! 145: ! 146: #ldd r0 ! 147: #cvdf ! 148: #stf r0 ! 149: ret ! 150: ! 151: /* file : Kfloorf.x ! 152: */ ! 153: .text ! 154: .globl _Kfloorf ! 155: .data ! 156: .align 2 ! 157: L19: .long 0x40800000, 0x00000000 # .double 1 ! 158: .text ! 159: .set L13,0x0 ! 160: .data ! 161: .text ! 162: _Kfloorf: ! 163: .word L13 ! 164: subl3 $60,fp,sp ! 165: tstl 4(fp) # if (d<0.0) { ! 166: jgeq L17 ! 167: lnd 4(fp) ! 168: std 4(fp) # d = -d; ! 169: pushl 12(fp) # hfs ! 170: addl3 $4,fp,-(sp) # &d ! 171: pushl 8(fp) ! 172: pushl 4(fp) ! 173: callf $20,_Kmodf ! 174: clrl -60+4(fp) ! 175: movl r0,-60(fp) # fract = modf(d,&d); ! 176: tstl r0 # if (fract != 0.0) ! 177: jeql L18 ! 178: pushl 12(fp) # hfs ! 179: ldd L19 ! 180: pushd ! 181: ldd 4(fp) ! 182: pushd ! 183: callf $24,_Kaddd ! 184: ldd r0 ! 185: std 4(fp) # d +=1; ! 186: L18: lnd 4(fp) ! 187: std 4(fp) # d = -d; ! 188: jbr L20 ! 189: L17: ! 190: pushl 12(fp) # hfs ! 191: addl3 $4,fp,-(sp) ! 192: pushl 8(fp) ! 193: pushl 4(fp) ! 194: callf $20,_Kmodf ! 195: L20: ldd 4(fp) ! 196: cvdl r0 # for Kexpf call only! ! 197: ret ! 198: ! 199: .data ! 200: _p0: .long 0x45BD3D04, 0x7F734DBD # .double 1513.9067990543389 ! 201: _p1: .long 0x42A19DD4, 0x989F60DA # .double 20.202065651286927 ! 202: _p2: .long 0x3DBD2E42, 0xAB70BDA9 # .double .023093347753750233 ! 203: _q0: .long 0x468881B1, 0x7C3A6529 # .double 4368.2116627275583 ! 204: _q1: .long 0x44692F28, 0x7AE89541 # .double 233.18421142748162 ! 205: _q2: .long 0x40800000, 0x00000000 # .double 1 ! 206: _log2e: .long 0x40B8AA3B, 0x295C17F0 # .double 1.4426950408889634 ! 207: _sqrt2: .long 0x40B504F3, 0x33F9DE64 # .double 1.414213562373095 ! 208: _maxf: .long 0x471C4000, 0x00000000 # .double 10000 ! 209: _HUGE: .long 0x7FFFFFFE, 0xFFFFFFFC # .double 1.701411733192644e+38 ! 210: one: .long 0x40800000 # .float 1 ! 211: half: .long 0x40000000, 0x00000000 # .double .5
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.