|
|
1.1 ! root 1: /* Katanf.s 1.3 86/01/05 */ ! 2: ! 3: #include "../tahoe/SYS.h" ! 4: ! 5: .text ! 6: ENTRY(Katanf, 0) ! 7: tstl 4(fp) # if (arg > 0) ! 8: jleq 1f ! 9: pushl 20(fp) # hfs ! 10: pushl 8(fp) ! 11: pushl 4(fp) ! 12: callf $16,satan ! 13: ret # return(satan(arg)); ! 14: 1: # else ! 15: pushl 20(fp) # hfs ! 16: lnd 4(fp) ! 17: pushd ! 18: callf $16,satan ! 19: lnf r0 ! 20: stf r0 ! 21: ret # return(-satan(-arg)); ! 22: ! 23: ASENTRY(satan, R2|R3) ! 24: subl3 $60,fp,sp ! 25: cmpd2 4(fp),_sq2m1 # if (arg < sq2m1) ! 26: jgeq 1f ! 27: pushl 12(fp) # hfs ! 28: pushl 8(fp) ! 29: pushl 4(fp) ! 30: callf $16,xatan ! 31: ret # return(xatan(arg)); ! 32: 1: ! 33: cmpd2 4(fp),_sq2p1 # else if (arg > sq2p1) ! 34: jgtr 9f ! 35: pushl 12(fp) # hfs ! 36: ldd one; pushd ! 37: ldd 4(fp); pushd ! 38: callf $24,_Kaddd # (arg+1.0) ! 39: pushl 12(fp) # hfs of _Kdivd ! 40: pushl r1 ! 41: pushl r0 ! 42: pushl 12(fp) # hfs ! 43: ldd one; pushd ! 44: ldd 4(fp); pushd ! 45: callf $24,_Ksubd # (arg-1.0) ! 46: pushl r1 ! 47: pushl r0 ! 48: callf $24,_Kdivd # (arg-1.0)/(arg+1.0) ! 49: pushl 12(fp) # hfs ! 50: pushl r1 ! 51: pushl r0 ! 52: callf $16,xatan # xatan((ag-1.0)/(arg+1.0)) ! 53: pushl 12(fp) # hfs ! 54: pushl r1 ! 55: pushl r0 ! 56: ldd _pio4; pushd ! 57: callf $24,_Kaddd ! 58: ldd r0; cvdf; stf r0 ! 59: ret # return(pio4+xatan((xatan(...))); ! 60: ! 61: 9: ! 62: pushl 12(fp) ! 63: ldd 4(fp); pushd ! 64: ldd one; pushd ! 65: callf $24,_Kdivd # (1.0/arg) ! 66: pushl 12(fp) # hfs ! 67: ldd r0; pushd ! 68: callf $16,xatan ! 69: # clrl -60+4(fp) ! 70: # movl r0,-60(fp) ! 71: pushl 12(fp) # hfs ! 72: ldd r0; pushd ! 73: ldd _pio2; pushd ! 74: callf $24,_Ksubd ! 75: ldd r0; cvdf; stf r0 ! 76: ret ! 77: ! 78: ASENTRY(xatan, 0) ! 79: subl3 $68,fp,sp ! 80: pushl 12(fp) # hfs ! 81: ldd 4(fp); pushd; pushd ! 82: callf $24,_Kmuld # argsq = arg*arg; ! 83: ldd r0 ! 84: std -60(fp) # argsq ! 85: pushl 12(fp) # hfs ! 86: pushd ! 87: ldd _p5; pushd ! 88: callf $24,_Kmuld # p5*argsq ! 89: pushl 12(fp) # hfs ! 90: ldd _p4; pushd ! 91: ldd r0; pushd ! 92: callf $24,_Kaddd # (p5*argsq+p4) ! 93: pushl 12(fp) # hfs ! 94: ldd -60(fp); pushd ! 95: ldd r0; pushd ! 96: callf $24,_Kmuld # (p5*argsq+p4)*argsq ! 97: pushl 12(fp) # hfs ! 98: ldd _p3; pushd ! 99: ldd r0; pushd ! 100: callf $24,_Kaddd # ((p5*argsq+p4)*argsq+p3) ! 101: pushl 12(fp) # hfs ! 102: ldd -60(fp); pushd ! 103: ldd r0; pushd ! 104: callf $24,_Kmuld # (..)*argsq ! 105: pushl 12(fp) # hfs ! 106: ldd _p2; pushd ! 107: ldd r0; pushd ! 108: callf $24,_Kaddd # (..)*argsq+p2) ! 109: pushl 12(fp) # hfs ! 110: ldd -60(fp); pushd ! 111: ldd r0; pushd ! 112: callf $24,_Kmuld # ((..)*argsq+p2)*argsq ! 113: pushl 12(fp) # hfs ! 114: ldd _p1; pushd ! 115: ldd r0; pushd ! 116: callf $24,_Kaddd # ((..)*argsq+p2)*argsq+p1) ! 117: pushl 12(fp) # hfs ! 118: ldd -60(fp); pushd ! 119: ldd r0; pushd ! 120: callf $24,_Kmuld # (..)*argsq ! 121: pushl 12(fp) # hfs ! 122: ldd _p0; pushd ! 123: ldd r0; pushd ! 124: callf $24,_Kaddd # ((..)*argsq+p1)*argsq+p0) ! 125: pushl 12(fp) # hfs ! 126: ldd 4(fp); pushd ! 127: ldd r0; pushd ! 128: callf $24,_Kmuld # (..)*arg ! 129: ldd r0 ! 130: std -68(fp); cvdf; stf r0 # value ! 131: ret ! 132: ! 133: .data ! 134: .align 2 ! 135: _sq2p1: .long 0x411A8279, 0x99FCEF31 # .double 2.414213562373095 ! 136: _sq2m1: .long 0x3FD413CC, 0xCFE77990 # .double .41421356237309503 ! 137: _pio2: .long 0x40C90FDA, 0xA22168C1 # .double 1.5707963267948966 ! 138: _pio4: .long 0x40490FDA, 0xA22168C1 # .double .78539816339744829 ! 139: _p0: .long 0x407FFFFF, 0xFD687A4B # .double .99999999939652999 ! 140: _p1: .long 0xBFAAAAA2, 0x09F9DBF2 # .double -.3333330762079 ! 141: _p2: .long 0x3F4CC820, 0x0670059B # .double .199982166665 ! 142: _p3: .long 0xBF11D182, 0x6601878B # .double -.142400777317 ! 143: _p4: .long 0x3ED88B47, 0x4EFC9AF9 # .double .10573440275 ! 144: _p5: .long 0xBE772E4B, 0x0E689AEB # .double -.060346883 ! 145: 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.