Minor cleanups: calling convention, documentation, etc.
;
; ECX is guaranteed to not be zero on entry.
;
+; Clobbers ESI, EDI, ECX.
+;
pm_bcopy:
push ebx
push edx
+ push eax
cmp esi,-1
je .bzero
a32 movsb
.fab1:
.done:
+ pop eax
pop edx
pop ebx
ret
pm_shuffle:
mov ebx,edi ; EBX <- descriptor list
lea edx,[edi+ecx] ; EDX <- shuffler end location
- push edx
call pm_bcopy
- pop edx
mov edi,edx
mov esi,bcopyxx_start
mov ecx,bcopyxx_dwords
mov edi,[ebx]
mov esi,[ebx+4]
mov ecx,[ebx+8]
+ add ebx,12
jecxz .done
call pm_bcopy
- add ebx,12
jmp .loop
.done:
and esi,esi