1. Updated function headers for all assembly function

2. Optimized register usage in SetMemXX functions in all lib instances
3. Fixed a logical error in CopyMem for all lib instances


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1139 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
bxing
2006-07-28 07:28:19 +00:00
parent 27169a56e6
commit eb227e96bd
106 changed files with 1006 additions and 457 deletions

View File

@@ -21,15 +21,17 @@
#
#------------------------------------------------------------------------------
.globl _InternalMemSetMem64
#------------------------------------------------------------------------------
# VOID *
# EFIAPI
# InternalMemSetMem64 (
# IN VOID *Buffer,
# IN UINTN Count,
# IN UINT64 Value
# )
# );
#------------------------------------------------------------------------------
.globl _InternalMemSetMem64
_InternalMemSetMem64:
movl 4(%esp), %eax
movl 8(%esp), %ecx
@@ -40,20 +42,17 @@ _InternalMemSetMem64:
movq %xmm0, (%edx)
addl $8, %edx
decl %ecx
L1:
L1:
shrl %ecx
jz @SetQwords
movlhps %xmm0, %xmm0
L2:
L2:
movntdq %xmm0, (%edx)
leal 16(%edx), %edx
loop L2
mfence
@SetQwords:
@SetQwords:
jnc L3
movq %xmm0, (%edx)
L3:
L3:
ret