summaryrefslogtreecommitdiff
path: root/core/bcopyxx.inc
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-03-31 23:04:08 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-03-31 23:04:08 -0700
commit30e78cc68604067eecfc389b8a08970a1a5b6425 (patch)
tree4e40e627e986c44666d3672af533089256b5290a /core/bcopyxx.inc
parent33e8a461230b0a78729fca0fc5e55ad34db08a2f (diff)
downloadsyslinux-30e78cc68604067eecfc389b8a08970a1a5b6425.tar.gz
shuffler: minor cleanups in bcopyxx.inc
Minor cleanups: calling convention, documentation, etc.
Diffstat (limited to 'core/bcopyxx.inc')
-rw-r--r--core/bcopyxx.inc8
1 files changed, 5 insertions, 3 deletions
diff --git a/core/bcopyxx.inc b/core/bcopyxx.inc
index 3eeeaef4..6af2e935 100644
--- a/core/bcopyxx.inc
+++ b/core/bcopyxx.inc
@@ -40,10 +40,13 @@ bcopyxx_start equ $
;
; 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
@@ -85,6 +88,7 @@ pm_bcopy:
a32 movsb
.fab1:
.done:
+ pop eax
pop edx
pop ebx
ret
@@ -201,9 +205,7 @@ pm_bcopy:
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
@@ -223,9 +225,9 @@ pm_shuffle:
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