|
|
1.1 root 1: /* @(#)log.s 4.1 12/25/82 */
2:
3: /*
4: log returns the natural logarithm of its floating
5: point argument.
6:
7: The coefficients are #2705 from Hart & etc. (19.38D)
8:
9: It calls frexp.
10: */
11: .data
12: .comm _errno,4
13: .align 2
14: _log2: .long 0x40317217, 0xf7d1cf7a # .double 0.69314718055994531
15: .align 2
16: _ln10: .long 0x41135d8d, 0xddaaa8ac # .double 2.3025850929940457
17: .align 2
18: _sqrto2:.long 0x403504f3, 0x33f9de65 # .double 0.70710678118654753
19: .align 2
20: _p0: .long 0xc2c01c81, 0x046c108e # .double -24.013917955921051
21: .align 2
22: _p1: .long 0x42f7a889, 0x23899922 # .double 30.95729282153765
23: .align 2
24: _p2: .long 0xc21a33fb, 0x68988b11 # .double -9.6376909337784051
25: .align 2
26: _p3: .long 0x3fd798c3, 0x90479865 # .double 0.42108737121797971
27: .align 2
28: _q0: .long 0xc2401c81, 0x046c108e # .double -12.006958977960525
29: .align 2
30: _q1: .long 0x429bd904, 0xbd2c246c # .double 19.480966070088973
31: .align 2
32: _q2: .long 0xc20e93e7, 0x0f647221 # .double -8.9111090279831233
33: .text
34: LL0: .align 1
35: .globl _log
36: .data
37: .align 2
38: L57: .long 0xfffffffe, 0xfffffffe # .double -1.7014117331926443e+38
39: .text
40: .data
41: .align 2
42: L60: .long 0x40000000, 0x00000000 # .double 0.5
43: .text
44: .data
45: .align 2
46: L61: .long 0x41000000, 0x00000000 # .double 2
47: .text
48: .data
49: .align 2
50: L63: .long 0x41000000, 0x00000000 # .double 2
51: .text
52: .data
53: .align 2
54: L64: .long 0x40800000, 0x00000000 # .double 1
55: .align 2
56: L65: .long 0x40800000, 0x00000000 # .double 1
57: .text
58: .data
59: .align 2
60: L66: .long 0x40800000, 0x00000000 # .double 1
61: .text
62: .set L52,0xc
63: .data
64: .text
65: _log: .word L52
66: subl3 $88,fp,sp
67: tstl 4(fp)
68: jgtr L56
69: movl $33,_errno
70: movl L57+4,r1
71: movl L57,r0
72: ret
73: L56: subl3 $88,fp,-(sp)
74: pushl 8(fp)
75: pushl 4(fp)
76: callf $16,_frexp
77: movl r1,-56(fp)
78: movl r0,-60(fp)
79: jbr L58
80: L2000001:ldd -60(fp)
81: muld L61
82: std -60(fp)
83: subl2 $1,-88(fp)
84: L58: cmpd2 -60(fp),L60
85: jlss L2000001
86: cmpd2 -60(fp),_sqrto2
87: jgeq L62
88: ldd L63
89: muld -60(fp)
90: std -60(fp)
91: subl2 $1,-88(fp)
92: L62: ldd -60(fp)
93: subd L64
94: std r0
95: ldd -60(fp)
96: addd L65
97: std r2
98: ldd r0
99: divd r2
100: std -68(fp)
101: muld -68(fp)
102: std -76(fp)
103: ldd _p3
104: muld -76(fp)
105: addd _p2
106: muld -76(fp)
107: addd _p1
108: muld -76(fp)
109: addd _p0
110: std -84(fp)
111: ldd L66
112: muld -76(fp)
113: addd _q2
114: muld -76(fp)
115: addd _q1
116: muld -76(fp)
117: addd _q0
118: std r0
119: ldd -84(fp)
120: divd r0
121: std -84(fp)
122: muld -68(fp)
123: std r0
124: cvld -88(fp)
125: muld _log2
126: addd r0
127: std -84(fp)
128: movl -80(fp),r1
129: movl -84(fp),r0
130: ret
131: .align 1
132: .globl _log10
133: .set L67,0x0
134: .data
135: .text
136: _log10: .word L67
137: pushl 8(fp)
138: pushl 4(fp)
139: callf $12,_log
140: ldd r0
141: divd _ln10
142: std r0
143: ret
144:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.