error needs to take additional arguments (jason@opal)
[unix-history] / usr / src / sys / tahoe / math / Klogf.s
CommitLineData
3893ac9d
SL
1 .data
2 .comm _errno,4
3 .align 2
4_log2: .long 0x40317217, 0xf7d1cf7a # .double 0.69314718055994531
5 .align 2
6_ln10: .long 0x41135d8d, 0xddaaa8ac # .double 2.3025850929940457
7 .align 2
8_sqrto2:
9 .long 0x403504f3, 0x33f9de65 # .double 0.70710678118654753
10 .align 2
11_p0: .long 0xc154114d, 0xeb0ba468 # .double -3.31355617479
12 .align 2
13_p1: .long 0x40654226, 0x56bd0c4c # .double 0.89554061525
14 .align 2
15_q0: .long 0xc0d4114c, 0xfdc7df02 # .double -1.65677797691
16 .align 2
17_q1: .long 0x40800000, 0x00000000 # .double 1
18 .text
19LL0: .align 1
20 .globl _Klogf
21 .data
22 .align 2
23L54: .long 0xfffffffe, 0xfffffffe # .double -1.7014117331926443e+38
24 .text
25 .data
26 .align 2
27L57: .long 0x40000000, 0x00000000 # .double 0.5
28 .text
29 .data
30 .align 2
31L58: .long 0x41000000, 0x00000000 # .double 2
32 .text
33 .data
34 .align 2
35L60: .long 0x41000000, 0x00000000 # .double 2
36 .text
37 .data
38 .align 2
39L61: .long 0x40800000, 0x00000000 # .double 1
40 .align 2
41L62: .long 0x40800000, 0x00000000 # .double 1
42 .text
43 .set L49,0x3c # Using registers 2,3,4,5
44 .data
45 .text
46_Klogf: .word L49
47 subl3 $88,fp,sp
48 clrl 8(fp)
49 tstl 4(fp)
50 jgtr L53
51 movl $33,_errno
52 movl L54+4,r1
53 movl L54,r0
54 ret
55L53: pushl 20(fp) # hfs
56 subl3 $88,fp,-(sp) # &exp
57 pushl 8(fp) # arg
58 pushl 4(fp)
59 callf $20,_Kfrexpf
60 ldd r0
61 # movl r1,-56(fp)
62 std -60(fp) # movl r0,-60(fp)
63 jbr L55
64L2000001:
65 pushl 20(fp) # hfs
66 ldd L58 # 2.0
67 pushd
68 ldd -60(fp) # x
69 pushd
70 callf $24,_Kmuld
71 ldd r0
72 std -60(fp)
73 subl2 $1,-88(fp)
74L55: cmpd2 -60(fp),L57
75 jlss L2000001
76 cmpd2 -60(fp),_sqrto2
77 jgeq L59
78 pushl 20(fp) # hfs
79 ldd -60(fp) # x
80 pushd
81 ldd L60 # 2.0
82 pushd
83 callf $24,_Kmuld
84 ldd r0
85 std -60(fp)
86 subl2 $1,-88(fp)
87L59: pushl 20(fp) # hfs
88 ldd L61 # 1.0
89 pushd
90 ldd -60(fp) # x
91 pushd
92 callf $24,_Ksubd
93 ldd r0
94 std r2
95 pushl 20(fp) # hfs
96 ldd L62 # 1.0
97 pushd
98 ldd -60(fp) # x
99 pushd
100 callf $24,_Kaddd
101 ldd r0
102 std r4
103 pushl 20(fp) # hfs
104 ldd r4 # temp result of x-1
105 pushd
106 ldd r2 # temp result of x+1
107 pushd
108 callf $24,_Kdivd
109 ldd r0
110 std -68(fp) # z
111 pushl 20(fp) # hfs
112 pushd # z
113 pushd # z
114 callf $24,_Kmuld
115 ldd r0
116 std -76(fp) # zsq
117 pushl 20(fp) # hfs
118 ldd -76(fp) # zsq
119 pushd
120 ldd _p1 # p1
121 pushd
122 callf $24,_Kmuld
123 ldd r0
124 std r2
125 pushl 20(fp) # hfs
126 ldd _p0 # p0
127 pushd
128 ldd r2
129 pushd
130 callf $24,_Kaddd
131 ldd r0
132 std -84(fp) # temp
133 pushl 20(fp) # hfs
134 ldd -76(fp) # zsq
135 pushd
136 ldd _q1
137 pushd
138 callf $24,_Kmuld
139 ldd r0
140 std r2
141 pushl 20(fp) # hfs
142 ldd _q0 # q0
143 pushd
144 ldd r2
145 pushd
146 callf $24,_Kaddd
147 ldd r0
148 std r2 # temp result of (q1*zsq+q0)
149 pushl 20(fp) # hfs
150 ldd r2
151 pushd
152 ldd -84(fp) # temp
153 pushd
154 callf $24,_Kdivd
155 ldd r0
156 std -84(fp) # put in temp
157 pushl 20(fp) # hfs
158 ldd -68(fp) # z
159 pushd
160 ldd -84(fp)
161 pushd
162 callf $24,_Kmuld
163 ldd r0
164 std r2
165 pushl 20(fp) #hfs
166 pushl $0 # 0 pad
167 pushl -88(fp) # exp
168 pushl $0 # dummy
169 pushl $0 # dummy
170 callf $24,_Kcvtld
171 pushl 20(fp) # hfs
172 ldd _log2 # log2
173 pushd
174 pushl r1 # exp converted
175 pushl r0
176 callf $24,_Kmuld
177 ldd r0
178 std r4
179 pushl 20(fp) # hfs
180 ldd r2 # result of temp*z
181 pushd
182 ldd r4
183 pushd
184 callf $24,_Kaddd
185 ldd r0
186 cvdf
187 stf r0
188 clrl r1
189 ret