Subversion Repositories Kolibri OS

Rev

Rev 990 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 990 Rev 1764
1
#include 
1
#include 
2
#include "kosSyst.h"
2
#include "kosSyst.h"
3
extern "C" int _fltused = 0;
3
extern "C" int _fltused = 0;
4
double acos(double x)
4
double __cdecl acos(double x)
5
{
5
{
6
	__asm {
6
	__asm {
7
		fld	qword ptr [esp+4]
7
		fld	qword ptr [esp+4]
8
		fld1
8
		fld1
9
		fadd	st, st(1)
9
		fadd	st, st(1)
10
		fld1
10
		fld1
11
		fsub	st, st(2)
11
		fsub	st, st(2)
12
		fmulp	st(1), st
12
		fmulp	st(1), st
13
		fsqrt
13
		fsqrt
14
		fxch	st(1)
14
		fxch	st(1)
15
		fpatan
15
		fpatan
16
	}
16
	}
17
}
17
}
18
double asin(double x)
18
double __cdecl asin(double x)
19
{
19
{
20
	__asm {
20
	__asm {
21
		fld	qword ptr [esp+4]
21
		fld	qword ptr [esp+4]
22
		fld1
22
		fld1
23
		fadd	st, st(1)
23
		fadd	st, st(1)
24
		fld1
24
		fld1
25
		fsub	st, st(2)
25
		fsub	st, st(2)
26
		fmulp	st(1), st
26
		fmulp	st(1), st
27
		fsqrt
27
		fsqrt
28
		fpatan
28
		fpatan
29
		ret
29
		ret
30
	}
30
	}
31
}
31
}
32
#if _MSC_VER <= 1200
32
#if _MSC_VER <= 1200
33
extern "C" double _ftol(double x)
33
extern "C" double _ftol(double x)
34
{
34
{
35
	__asm {
35
	__asm {
36
		fld	qword ptr [esp+4]
36
		fld	qword ptr [esp+4]
37
		push	1F3Fh
37
		push	1F3Fh
38
		fstcw	word ptr [esp+2]
38
		fstcw	word ptr [esp+2]
39
		fldcw	word ptr [esp]
39
		fldcw	word ptr [esp]
40
		frndint
40
		frndint
41
		fldcw	word ptr [esp+2]
41
		fldcw	word ptr [esp+2]
42
		add	esp, 4
42
		add	esp, 4
43
	}
43
	}
44
}
44
}
45
#endif
45
#endif
46
double ceil(double x)
46
double __cdecl ceil(double x)
47
{
47
{
48
	__asm {
48
	__asm {
49
		fld	qword ptr [esp+4]
49
		fld	qword ptr [esp+4]
50
		push	1B3Fh
50
		push	1B3Fh
51
		fstcw	word ptr [esp+2]
51
		fstcw	word ptr [esp+2]
52
		fldcw	word ptr [esp]
52
		fldcw	word ptr [esp]
53
		frndint
53
		frndint
54
		fldcw	word ptr [esp+2]
54
		fldcw	word ptr [esp+2]
55
		add	esp, 4
55
		add	esp, 4
56
	}
56
	}
57
}
57
}
58
 
58
 
59
double floor(double x)
59
double __cdecl floor(double x)
60
{
60
{
61
	__asm {
61
	__asm {
62
		fld	qword ptr [esp+4]
62
		fld	qword ptr [esp+4]
63
		push	173Fh
63
		push	173Fh
64
		fstcw	word ptr [esp+2]
64
		fstcw	word ptr [esp+2]
65
		fldcw	word ptr [esp]
65
		fldcw	word ptr [esp]
66
		frndint
66
		frndint
67
		fldcw	word ptr [esp+2]
67
		fldcw	word ptr [esp+2]
68
		add	esp, 4
68
		add	esp, 4
69
	}
69
	}
70
}
70
}
71
 
71
 
72
double round(double x)
72
double __cdecl round(double x)
73
{
73
{
74
	__asm {
74
	__asm {
75
		fld	qword ptr [esp+4]
75
		fld	qword ptr [esp+4]
76
		push	133Fh
76
		push	133Fh
77
		fstcw	word ptr [esp+2]
77
		fstcw	word ptr [esp+2]
78
		fldcw	word ptr [esp]
78
		fldcw	word ptr [esp]
79
		frndint
79
		frndint
80
		fldcw	word ptr [esp+2]
80
		fldcw	word ptr [esp+2]
81
		add	esp, 4
81
		add	esp, 4
82
	}
82
	}
83
}
83
}