Subversion Repositories Kolibri OS

Rev

Rev 2839 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2839 Rev 2874
Line 96... Line 96...
96
    rep movsb
96
    rep movsb
97
    cld
97
    cld
98
l2:
98
l2:
99
  }
99
  }
100
}
100
}
-
 
101
 
-
 
102
 
-
 
103
/*:void fastcall memsetz( EDI, ECX)
-
 
104
{
-
 
105
  asm {
-
 
106
    XOR EAX, EAX
-
 
107
    MOV EDX, ECX
-
 
108
    SHR ECX, 2
-
 
109
    REP STOSD
-
 
110
    MOV ECX, EDX
-
 
111
    AND ECX, 3
-
 
112
    REP STOSB
-
 
113
  }
-
 
114
}
-
 
115
 
-
 
116
:void fastcall memset( EDI, ECX, AL)
-
 
117
{
-
 
118
  asm {
-
 
119
    MOV AH, AL
-
 
120
    MOVZX EDX, AX
-
 
121
    SHL EAX, 16
-
 
122
    OR EAX, EDX
-
 
123
    MOV EDX, ECX
-
 
124
    SHR ECX, 2
-
 
125
    REP STOSD
-
 
126
    MOV ECX, EDX
-
 
127
    AND ECX, 3
-
 
128
    REP STOSB
-
 
129
  }
-
 
130
}
-
 
131
 
-
 
132
:void fastcall memcpy( EDI, ESI, ECX)
-
 
133
{
-
 
134
  asm {
-
 
135
    MOV EDX, ECX
-
 
136
    SHR ECX, 2
-
 
137
    REP MOVSD
-
 
138
    MOV ECX, EDX
-
 
139
    AND ECX, 3
-
 
140
    REP MOVSB
-
 
141
  }
-
 
142
}
-
 
143
 
-
 
144
:void fastcall memsetd( EDI, ECX, EAX)
-
 
145
{
-
 
146
  asm {
-
 
147
    REP STOSD
-
 
148
  }
-
 
149
}
-
 
150
 
-
 
151
:void fastcall memcpyd( EDI, ESI, ECX)
-
 
152
{
-
 
153
  asm {
-
 
154
    REP MOVSD
-
 
155
  }
-
 
156
}
-
 
157
 
-
 
158
:void fastcall memmov( EDI, ESI, ECX)
-
 
159
{
-
 
160
  asm {
-
 
161
    MOV EAX, ECX
-
 
162
    CMP EDI, ESI
-
 
163
    JG L1
-
 
164
    JE L2
-
 
165
    SAR ECX, 2
-
 
166
    JS L2
-
 
167
    REP MOVSD
-
 
168
    MOV ECX, EAX
-
 
169
    AND ECX, 3
-
 
170
    REP MOVSB
-
 
171
    JMP SHORT L2
-
 
172
L1: LEA ESI, DSDWORD[ ESI+ECX-4]
-
 
173
    LEA EDI, DSDWORD[ EDI+ECX-4]
-
 
174
    SAR ECX, 2
-
 
175
    JS L2
-
 
176
    STD
-
 
177
    REP MOVSD
-
 
178
    MOV ECX, EAX
-
 
179
    AND ECX, 3
-
 
180
    ADD ESI, 3
-
 
181
    ADD EDI, 3
-
 
182
    REP MOVSB
-
 
183
    CLD
-
 
184
L2:
-
 
185
  }
-
 
186
}
-
 
187
 
-
 
188
:long fastcall memcmp( ESI, EDI, ECX)
-
 
189
{
-
 
190
  asm {
-
 
191
    MOV EAX, ECX
-
 
192
    SHR ECX, 2
-
 
193
    REPE CMPSD
-
 
194
    MOV ECX, EAX
-
 
195
    AND ECX, 3
-
 
196
    REPE CMPSB
-
 
197
    XOR EAX, EAX
-
 
198
    XOR ECX, ECX
-
 
199
    MOV AL, DSBYTE[ ESI-1]
-
 
200
    MOV CL, DSBYTE[ EDI-1]
-
 
201
    SUB EAX, ECX
-
 
202
  }
-
 
203
}*/
-
 
204
 
-
 
205
 
-
 
206
/*#define memzset memsetz
-
 
207
#define memset0 memsetz
-
 
208
#define mem0set memsetz
-
 
209
#define memset32 memsetd
-
 
210
#define memcpy32 memcpyd*/