diff options
author | qhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-07-10 08:41:58 +0000 |
---|---|---|
committer | qhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524> | 2006-07-10 08:41:58 +0000 |
commit | 5b1b9d8bf4565b194ac16294c58993c62bcae315 (patch) | |
tree | b2060f00621630ee13583f87a45668b3d3a9017b /MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.asm | |
parent | 9c091616cd866a2e737506c138fa781873f5badf (diff) | |
download | edk2-platforms-5b1b9d8bf4565b194ac16294c58993c62bcae315.tar.xz |
1. BaseSmbusLib: Make SmbusReadDataByte() & SmbusWriteBlock() function well by re-arranging register settings.
2. BaseMemoryLibMmx for X64: Make CopyMem() be reentrant by saving Mm0 to r10.
3. DxeCorePerformanceLib: Fix some typo to save build error of that library instance.
4. Remove the orphanage definition of gEfiPerformanceProtocolGuid
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@859 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.asm')
-rw-r--r-- | MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.asm | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.asm b/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.asm index 372c365203..801cf92750 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.asm +++ b/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.asm @@ -46,6 +46,7 @@ InternalMemCopyMem PROC USES rsi rdi and r8, 7
shr rcx, 3 ; rcx <- # of Qwords to copy
jz @CopyBytes
+ DB 49h, 0fh, 7eh, 0c2h ; movq r10, mm0 ; save mm0
@@:
DB 48h, 0fh, 6fh, 06h ; movq mm0, [rsi]
DB 48h, 0fh, 0e7h, 07h ; movntq [rdi], mm0
@@ -53,6 +54,7 @@ InternalMemCopyMem PROC USES rsi rdi add rdi, 8
loop @B
mfence
+ DB 49h, 0fh, 6eh, 0c2h ; movq mm0, r10 ; restore mm0
jmp @CopyBytes
@CopyBackward:
mov rdi, r9 ; rdi <- End of Destination
|