|
|
1.1 root 1: .data
2: .align 2
3: _twoopi:.long 0x4022F983, 0x6E4E4415 # .double .63661977236758134
4: .align 2
5: _p0:.long 0x40C90FDA, 0x90304197 # .double 1.57079631844
6: .align 2
7: _p1:.long 0xC0255DE0, 0xB36CEE75 # .double -.645963710599
8: .align 2
9: _p2:.long 0x3EA33457, 0xA736E807 # .double .079689678945999999
10: .align 2
11: _p3:.long 0xBC992665, 0x5E9A6554 # .double -.0046737666099999999
12: .align 2
13: _p4:.long 0x3A1ED7FA, 0xCC54924E # .double .000151485129
14: .text
15: LL0: .align 1
16: .globl _Kcosf
17: .set L18,0x0
18: .data
19: .text
20: _Kcosf: .word L18
21: tstl 4(fp) # if (arg < 0)
22: jgeq L23
23: lnd 4(fp)
24: std 4(fp) # arg = -arg;
25: L23: pushl 20(fp) # hfs
26: pushl $1
27: pushl 8(fp)
28: pushl 4(fp)
29: callf $20,_sinus
30: ret # return(sinus(arg,1));
31:
32: .align 1
33: .globl _Ksinf
34: .set L25,0x0
35: .data
36: .text
37: .data
38: .align 2
39: L36: .long 0x47FFF800, 0x00000000 # .double 32764
40: .text
41: .data
42: .align 2
43: L37: .long 0x3F800000, 0x00000000 # .double .25
44: .text
45: .data
46: .align 2
47: L38: .long 0x41800000, 0x00000000 # .double 4
48: .text
49: .data
50: .align 2
51: L41: .long 0x40800000, 0x00000000 # .double 1
52: .text
53: .set L29,0x0
54: .data
55: .text
56: _Ksinf: .word L25
57: pushl 20(fp) # hfs
58: pushl $0
59: pushl 8(fp)
60: pushl 4(fp)
61: callf $20,_sinus
62: ret # return(sinus(arg, 0));
63:
64: .align 1
65: _sinus: .word L29
66: subl3 $112,fp,sp
67: movl 8(fp),-80(fp)
68: movl 4(fp),-84(fp) # x = arg;
69: jgeq L34 # if (x < 0) {
70: lnd -84(fp)
71: std -84(fp) # x = -x;
72: addl2 $2,12(fp) # quad = quad + 2;}
73: L34: pushl 16(fp)
74: ldd _twoopi
75: pushd
76: ldd -84(fp)
77: pushd
78: callf $24,_Kmuld
79: movl r1,-88(fp)
80: movl r0,-84(fp) # std -84(fp) x = x * twoopi;
81: cmpd2 -84(fp),L36 # if (x > 32764) {
82: jleq L35
83: pushl 16(fp) # hfs
84: subl3 $60,fp,-(sp) # &e
85: pushl -80(fp)
86: pushl -84(fp) # x
87: callf $20,_Kmodf
88: clrl -92+4(fp)
89: movl r0,-92(fp) # y = modf(x, &e);
90: pushl 16(fp) # hfs
91: pushl $0
92: pushl 12(fp) # quad
93: pushl $0
94: pushl $0 # dummy acc
95: callf $24,_Kcvtld
96: pushl 16(fp) # hfs
97: pushl r1
98: pushl r0 # pushd (double)quad
99: ldd -60(fp)
100: pushd # &e
101: callf $24,_Kaddd
102: movl r1,-56(fp)
103: movl r0,-60(fp) # std -60(fp) e = e + quad;
104: pushl 16(fp) # hfs
105: subl3 $68,fp,-(sp) # &f
106:
107: pushl 16(fp) # hfs
108: ldd -60(fp)
109: pushd # &e
110: ldd L37
111: pushd # 0.25
112: callf $24,_Kmuld
113:
114: pushl r1
115: pushl r0 # pushd 0.25 * e
116: callf $20,_Kmodf # modf(0.25 * e, &f);
117:
118: pushl 16(fp) # hfs
119: movl r1,-64(fp)
120: movl r0,-68(fp) # ldd -68(fp) &f
121: pushl r1
122: pushl r0 # pushd
123: ldd L38
124: pushd
125: callf $24,_Kmuld # 4*f
126: # std r0
127: pushl 16(fp) # hfs
128: pushl r1
129: pushl r0 # pushd
130: ldd -60(fp)
131: pushd
132: callf $24,_Ksubd # e - 4 * f
133: ldd r0 # load acc with result of Ksubd
134: cvdl 12(fp) # quad = (e - 4 * f); }
135: jbr L39
136: L35: ldd -84(fp) # else {
137: cvdl -96(fp) # k = x;
138: pushl 16(fp) # hfs
139: pushl $0
140: pushl -96(fp)
141: pushl $0
142: pushl $0 # acc
143: callf $24,_Kcvtld
144: # std r0
145: pushl 16(fp) # hfs
146: pushl r1
147: pushl r0 # pushd (double)k
148: ldd -84(fp)
149: pushd # x
150: callf $24,_Ksubd
151: movl r1,-88(fp)
152: movl r0,-92(fp) # std -92(fp) y = x - k;
153: addl3 -96(fp),12(fp),r0
154: andl3 $3,r0,12(fp) # quad = (quad + k) & 03; }
155: L39: bitl $1,12(fp) # if (quad & 01)
156: jeql L40
157: pushl 16(fp) # hfs
158: ldd -92(fp)
159: pushd # y
160: ldd L41
161: pushd # 1.0
162: callf $24,_Ksubd
163: movl r1,-88(fp)
164: movl r0,-92(fp) # std -92(fp) y = 1 - y;
165: L40: cmpl 12(fp),$1 # if (quad > 1)
166: jleq L42
167: lnd -92(fp)
168: std -92(fp) # y = -y;
169: L42: pushl 16(fp) # hfs
170: ldd -92(fp)
171: pushd
172: pushd
173: callf $24,_Kmuld # y*y
174: movl r1,-72(fp)
175: movl r0,-76(fp) # std -76(fp) ysq=y*y;
176:
177: pushl 16(fp) # hfs
178: ldd -76(fp)
179: pushd
180: ldd _p4
181: pushd
182: callf $24,_Kmuld # p4*ysq
183:
184: pushl 16(fp) # hfs
185: pushl _p3+4
186: pushl _p3
187: pushl r1
188: pushl r0 # pushd
189: callf $24,_Kaddd # p4*ysq+p3
190:
191: pushl 16(fp) # hfs
192: pushl -72(fp)
193: pushl -76(fp)
194: pushl r1
195: pushl r0 # pushd
196: callf $24,_Kmuld # (p4*ysq+p3)*ysq
197:
198: pushl 16(fp) # hfs
199: pushl _p2+4
200: pushl _p2
201: pushl r1
202: pushl r0 # pushd
203: callf $24,_Kaddd # (p4*ysq+p3)*ysq+p2
204:
205: pushl 16(fp) # hfs
206: pushl -72(fp)
207: pushl -76(fp)
208: pushl r1
209: pushl r0 # pushd
210: callf $24,_Kmuld # ((p4*ysq+p3)*ysq+p2)*ysq
211:
212: pushl 16(fp) # hfs
213: pushl _p1+4
214: pushl _p1
215: pushl r1
216: pushl r0 # pushd
217: callf $24,_Kaddd # ((p4*ysq+p3)*ysq+p2)*ysq+p1
218:
219: pushl 16(fp) # hfs
220: pushl -72(fp)
221: pushl -76(fp)
222: pushl r1
223: pushl r0 # pushd
224: callf $24,_Kmuld # (((p4*ysq+p3)*ysq+p2)*ysq+p1)*ysq
225:
226: pushl 16(fp) # hfs
227: pushl _p0+4
228: pushl _p0
229: pushl r1
230: pushl r0 # pushd
231: callf $24,_Kaddd # (((p4*ysq+p3)*ysq+p2)*ysq+p1)*ysq+p0
232:
233: pushl 16(fp) # hfs
234: pushl -88(fp)
235: pushl -92(fp)
236: pushl r1
237: pushl r0 # pushd
238: callf $24,_Kmuld # ((((p4*ysq+p3)*ysq+p2)*ysq+p1)*ysq+p0)*y;
239:
240: movl r1,-100(fp)
241: movl r0,-104(fp) # std -104(fp) temp1
242: ldd r0
243: cvdf
244: stf r0
245: ret#1
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.