Rev 6639 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6639 | Rev 6847 | ||
---|---|---|---|
Line 135... | Line 135... | ||
135 | ; const Bytef* source |
135 | ; const Bytef* source |
136 | ; uInt len |
136 | ; uInt len |
137 | align 4 |
137 | align 4 |
138 | proc zmemcpy uses ecx edi esi, dest:dword, source:dword, len:dword |
138 | proc zmemcpy uses ecx edi esi, dest:dword, source:dword, len:dword |
139 | mov ecx,[len] |
139 | mov ecx,[len] |
140 | cmp ecx,0 |
140 | test ecx,ecx |
141 | jle @f |
141 | jz .end0 |
142 | mov edi,[dest] |
142 | mov edi,[dest] |
143 | mov esi,[source] |
143 | mov esi,[source] |
- | 144 | bt ecx,0 ;кратно 2 ? |
|
- | 145 | jnc @f |
|
144 | rep movsb |
146 | rep movsb |
145 | jmp .end0 |
147 | jmp .end0 |
146 | @@: |
148 | @@: |
147 | zlib_debug 'zmemcpy size = %d',ecx |
149 | bt ecx,1 ;кратно 4 ? |
- | 150 | jnc @f |
|
- | 151 | shr ecx,1 |
|
- | 152 | rep movsw |
|
- | 153 | jmp .end0 |
|
- | 154 | @@: |
|
- | 155 | shr ecx,2 |
|
- | 156 | rep movsd |
|
148 | .end0: |
157 | .end0: |
149 | ret |
158 | ret |
150 | endp |
159 | endp |
Line 151... | Line 160... | ||
151 | 160 |