|
|
1.1 root 1: /* @(#)exp.s 4.1/4.2 10/31/84 CCI-CPG */
2:
3:
4: /*
5: Double-precision exponential function recoded with
6: new algorithm polynomial at CCI-CPG.
7:
8: The coefficients are #1067 from Hart and etc. (18.08D)
9: */
10: .data
11: .comm _errno,4
12: .align 2
13: _p0: .long 0x45bd3d04, 0x7f734dbd # .double 1513.9067990543389
14: .align 2
15: _p1: .long 0x42a19dd4, 0x989f60db # .double 20.202065651286927
16: .align 2
17: _p2: .long 0x3dbd2e42, 0xab70bdab # .double 0.023093347753750234
18: .align 2
19: _q0: .long 0x468881b1, 0x7c3a652b # .double 4368.2116627275585
20: .align 2
21: _q1: .long 0x44692f28, 0x7ae89543 # .double 233.18421142748162
22: .align 2
23: _q2: .long 0x40800000, 0x00000000 # .double 1
24: .align 2
25: _log2e: .long 0x40b8aa3b, 0x295c17f1 # .double 1.4426950408889634
26: .align 2
27: _sqrt2: .long 0x40b504f3, 0x33f9de65 # .double 1.4142135623730951
28: .align 2
29: _maxf: .long 0x471c4000, 0x00000000 # .double 10000
30: .text
31: LL0: .align 1
32: .globl _exp
33: .data
34: .align 2
35: L56: .long 0x40800000, 0x00000000 # .double 1
36: .text
37: .data
38: .align 2
39: L59: .long 0x7ffffffe, 0xfffffffe # .double 1.7014117331926443e+38
40: .text
41: .data
42: .align 2
43: L60: .long 0x40000000, 0x00000000 # .double 0.5
44: .text
45: .set L51,0xc
46: .data
47: .text
48: _exp: .word L51
49: subl3 $88,fp,sp
50: tstl 4(fp)
51: jneq L55
52: movl L56+4,r1
53: movl L56,r0
54: ret
55: L55: lnd _maxf
56: cmpd 4(fp)
57: jleq L57
58: clrl r1
59: clrl r0
60: ret
61: L57: cmpd2 4(fp),_maxf
62: jleq L58
63: movl $34,_errno
64: movl L59+4,r1
65: movl L59,r0
66: ret
67: L58: ldd 4(fp)
68: muld _log2e
69: std 4(fp)
70: pushl 8(fp)
71: pushl 4(fp)
72: callf $12,_floor
73: ldd r0
74: cvdl -88(fp)
75: cvld -88(fp)
76: std r0
77: ldd 4(fp)
78: subd r0
79: subd L60
80: std -60(fp)
81: muld -60(fp)
82: std -84(fp)
83: ldd _p2
84: muld -84(fp)
85: addd _p1
86: muld -84(fp)
87: addd _p0
88: muld -60(fp)
89: std -68(fp)
90: ldd _q2
91: muld -84(fp)
92: addd _q1
93: muld -84(fp)
94: addd _q0
95: std -76(fp)
96: pushl -88(fp)
97: addd -68(fp)
98: muld _sqrt2
99: std r0
100: ldd -76(fp)
101: subd -68(fp)
102: std r2
103: ldd r0
104: divd r2
105: pushd
106: callf $16,_ldexp
107: ret
108:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.