|
|
1.1 root 1: /* Klogf.s 1.3 86/01/05 */
2:
3: #include "../tahoe/SYS.h"
4:
5: .text
6: ENTRY(Klogf, R5|R4|R3|R2)
7: subl3 $88,fp,sp
8: clrl 8(fp)
9: tstl 4(fp)
10: jgtr L53
11: movl small+4,r1
12: movl small,r0
13: ret
14: L53: pushl 20(fp) # hfs
15: subl3 $88,fp,-(sp) # &exp
16: pushl 8(fp) # arg
17: pushl 4(fp)
18: callf $20,_Kfrexpf
19: ldd r0
20: # movl r1,-56(fp)
21: std -60(fp) # movl r0,-60(fp)
22: jbr L55
23: L2000001:
24: pushl 20(fp) # hfs
25: ldd two # 2.0
26: pushd
27: ldd -60(fp) # x
28: pushd
29: callf $24,_Kmuld
30: ldd r0
31: std -60(fp)
32: subl2 $1,-88(fp)
33: L55: cmpd2 -60(fp),half
34: jlss L2000001
35: cmpd2 -60(fp),_sqrto2
36: jgeq L59
37: pushl 20(fp) # hfs
38: ldd -60(fp) # x
39: pushd
40: ldd two # 2.0
41: pushd
42: callf $24,_Kmuld
43: ldd r0
44: std -60(fp)
45: subl2 $1,-88(fp)
46: L59: pushl 20(fp) # hfs
47: ldd one # 1.0
48: pushd
49: ldd -60(fp) # x
50: pushd
51: callf $24,_Ksubd
52: ldd r0
53: std r2
54: pushl 20(fp) # hfs
55: ldd one # 1.0
56: pushd
57: ldd -60(fp) # x
58: pushd
59: callf $24,_Kaddd
60: ldd r0
61: std r4
62: pushl 20(fp) # hfs
63: ldd r4 # temp result of x-1
64: pushd
65: ldd r2 # temp result of x+1
66: pushd
67: callf $24,_Kdivd
68: ldd r0
69: std -68(fp) # z
70: pushl 20(fp) # hfs
71: pushd # z
72: pushd # z
73: callf $24,_Kmuld
74: ldd r0
75: std -76(fp) # zsq
76: pushl 20(fp) # hfs
77: ldd -76(fp) # zsq
78: pushd
79: ldd _p1 # p1
80: pushd
81: callf $24,_Kmuld
82: ldd r0
83: std r2
84: pushl 20(fp) # hfs
85: ldd _p0 # p0
86: pushd
87: ldd r2
88: pushd
89: callf $24,_Kaddd
90: ldd r0
91: std -84(fp) # temp
92: pushl 20(fp) # hfs
93: ldd -76(fp) # zsq
94: pushd
95: ldd _q1
96: pushd
97: callf $24,_Kmuld
98: ldd r0
99: std r2
100: pushl 20(fp) # hfs
101: ldd _q0 # q0
102: pushd
103: ldd r2
104: pushd
105: callf $24,_Kaddd
106: ldd r0
107: std r2 # temp result of (q1*zsq+q0)
108: pushl 20(fp) # hfs
109: ldd r2
110: pushd
111: ldd -84(fp) # temp
112: pushd
113: callf $24,_Kdivd
114: ldd r0
115: std -84(fp) # put in temp
116: pushl 20(fp) # hfs
117: ldd -68(fp) # z
118: pushd
119: ldd -84(fp)
120: pushd
121: callf $24,_Kmuld
122: ldd r0
123: std r2
124: pushl 20(fp) #hfs
125: pushl $0 # 0 pad
126: pushl -88(fp) # exp
127: pushl $0 # dummy
128: pushl $0 # dummy
129: callf $24,_Kcvtld
130: pushl 20(fp) # hfs
131: ldd _log2 # log2
132: pushd
133: pushl r1 # exp converted
134: pushl r0
135: callf $24,_Kmuld
136: ldd r0
137: std r4
138: pushl 20(fp) # hfs
139: ldd r2 # result of temp*z
140: pushd
141: ldd r4
142: pushd
143: callf $24,_Kaddd
144: ldd r0
145: cvdf
146: stf r0
147: clrl r1
148: ret
149:
150: .data
151: .align 2
152: _log2: .long 0x40317217, 0xf7d1cf7a # .double 0.69314718055994531
153: _ln10: .long 0x41135d8d, 0xddaaa8ac # .double 2.3025850929940457
154: _sqrto2:.long 0x403504f3, 0x33f9de65 # .double 0.70710678118654753
155: _p0: .long 0xc154114d, 0xeb0ba468 # .double -3.31355617479
156: _p1: .long 0x40654226, 0x56bd0c4c # .double 0.89554061525
157: _q0: .long 0xc0d4114c, 0xfdc7df02 # .double -1.65677797691
158: _q1: .long 0x40800000, 0x00000000 # .double 1
159: small: .long 0xfffffffe, 0xfffffffe # .double -1.7014117331926443e+38
160: half: .long 0x40000000, 0x00000000 # .double 0.5
161: two: .long 0x41000000, 0x00000000 # .double 2
162: 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.