|
|
1.1 root 1: //////////
2: / /usr/src/libm/i387/acos87.s
3: / i387 mathematics library
4: / acos(d)
5: //////////
6:
7: RASIZE = 4
8:
9: .globl acos
10: .globl _asin
11:
12: //////////
13: / double
14: / acos(d)
15: / double d;
16: //////////
17:
18: d = RASIZE / arg offset
19:
20: acos:
21: fldl d(%esp) / Load argument d.
22:
23: call _asin / asin(d)
24: jc ?0 / d < -1 or 1 < d, domain error.
25: fld1 / 1, asin(d)
26: fchs / -1, asin(d)
27: fldpi / pi, -1, asin(d)
28: fscale / pi/2, -1, asin(d)
29: fstp %st(1) / pi/2, asin(d)
30: fsub / acos(d) = pi/2 - asin(d)
31:
32: ?0:
33: ret
34:
35: / end of acos87.s
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.