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
This commit is contained in:
@@ -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
|
||||
|
Reference in New Issue
Block a user