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,10 +21,10 @@
#
#------------------------------------------------------------------------------
.686:
.686:
#.MODEL flat,C
.xmm:
.code:
.xmm:
.code:
#------------------------------------------------------------------------------
# VOID *
@@ -32,7 +32,7 @@
# IN VOID *Buffer,
# IN UINTN Count,
# IN UINT8 Value
# )
# );
#------------------------------------------------------------------------------
.global _InternalMemSetMem
_InternalMemSetMem:
@@ -49,7 +49,7 @@ _InternalMemSetMem:
subl %ecx, %edx
rep
stosb
L0:
L0:
movl %edx, %ecx
andl $15, %edx
shrl $4, %ecx # ecx <- # of DQwords to set
@@ -60,14 +60,14 @@ L0:
movd %eax, %xmm0
pshuflw $0, %xmm0, %xmm0
movlhps %xmm0, %xmm0
L1:
L1:
movntdq %xmm0, (%edi)
addl $16, %edi
loop L1
mfence
movdqu (%esp), %xmm0
addl $16, %esp # stack cleanup
@SetBytes:
@SetBytes:
movl %edx, %ecx
rep
stosb