Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
1971 lev 1
#code32 TRUE
2
 
3
inline fastcall dword malloc(dword ECX){
4
	dword	size, heap;
5
	#speed
6
	size = ECX;
7
	EAX = 68;
8
	EBX = 11;
9
	$int 0x40;
10
	heap = EAX;
11
	IF (size<=heap)
12
	{
13
		EAX = 68;
14
		EBX = 12;
15
		ECX = size;
16
		$int 0x40;
17
	}
18
	ELSE EAX=-1;
19
	#codesize
20
}
21
 
22
inline fastcall dword free(dword ECX){
23
	#speed
24
	EAX = 68;
25
	EBX = 13;
26
	$int 0x40;
27
	#codesize
28
}
29
 
30
inline fastcall dword realloc(dword ECX, EDX){
31
	#speed
32
	EAX = 68;
33
	EBX = 20;
34
	$int 0x40;
35
	#codesize
36
}
37
 
38
inline fastcall memmov( EDI, ESI, ECX)
39
{
40
  asm {
41
    MOV EAX, ECX
42
    CMP EDI, ESI
43
    JG L1
44
    JE L2
45
    SAR ECX, 2
46
    JS L2
47
    REP MOVSD
48
    MOV ECX, EAX
49
    AND ECX, 3
50
    REP MOVSB
51
    JMP SHORT L2
52
L1: LEA ESI, DSDWORD[ ESI+ECX-4]
53
    LEA EDI, DSDWORD[ EDI+ECX-4]
54
    SAR ECX, 2
55
    JS L2
56
    STD
57
    REP MOVSD
58
    MOV ECX, EAX
59
    AND ECX, 3
60
    ADD ESI, 3
61
    ADD EDI, 3
62
    REP MOVSB
63
    CLD
64
L2:
65
  }
66
}