summaryrefslogtreecommitdiff
path: root/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.asm
diff options
context:
space:
mode:
Diffstat (limited to 'MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.asm')
-rw-r--r--MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.asm21
1 files changed, 14 insertions, 7 deletions
diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.asm b/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.asm
index 5780647445..454d6234bf 100644
--- a/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.asm
+++ b/MdePkg/Library/BaseMemoryLibMmx/X64/SetMem64.asm
@@ -23,14 +23,21 @@
.code
-InternalMemSetMem64 PROC USES rdi
- DB 49h, 0fh, 6eh, 0c0h; movq mm0, r8 ; mm0 <- Value
- mov rax, rcx ; rax <- Buffer
- xchg rcx, rdx ; rcx <- Count
- mov rdi, rax
+;------------------------------------------------------------------------------
+; VOID *
+; InternalMemSetMem64 (
+; IN VOID *Buffer,
+; IN UINTN Count,
+; IN UINT64 Value
+; )
+;------------------------------------------------------------------------------
+InternalMemSetMem64 PROC
+ DB 49h, 0fh, 6eh, 0c0h ; movd mm0, r8 (Value)
+ mov rax, rcx ; rax <- Buffer
+ xchg rcx, rdx ; rcx <- Count
@@:
- DB 48h, 0fh, 0e7h, 07h; movntq [rdi], mm0
- add rdi, 8
+ DB 0fh, 0e7h, 02h ; movntq [rdx], mm0
+ add rdx, 8
loop @B
mfence
ret