diff options
author | qhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524> | 2008-11-03 09:25:10 +0000 |
---|---|---|
committer | qhuang8 <qhuang8@6f19259b-4bc3-4df7-8a09-765794883524> | 2008-11-03 09:25:10 +0000 |
commit | b1ff428c96518b7f4810eff4688d60ac7c65fba5 (patch) | |
tree | 026e335affbc22d320ed9088afcec644e85d338f /MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.S | |
parent | db835e01d3e5d2f09c12d73d749c37fcc7c20291 (diff) | |
download | edk2-b1ff428c96518b7f4810eff4688d60ac7c65fba5.tar.gz edk2-b1ff428c96518b7f4810eff4688d60ac7c65fba5.tar.bz2 edk2-b1ff428c96518b7f4810eff4688d60ac7c65fba5.zip |
Update to use DOS format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6360 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.S')
-rw-r--r-- | MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.S | 150 |
1 files changed, 75 insertions, 75 deletions
diff --git a/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.S b/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.S index 426a602286..06a259584e 100644 --- a/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.S +++ b/MdePkg/Library/BaseMemoryLibMmx/X64/CopyMem.S @@ -1,75 +1,75 @@ -# -# ConvertAsm.py: Automatically generated from CopyMem.asm -# -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006, Intel Corporation -# All rights reserved. This program and the accompanying materials -# are licensed and made available under the terms and conditions of the BSD License -# which accompanies this distribution. The full text of the license may be found at -# http://opensource.org/licenses/bsd-license.php -# -# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, -# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. -# -# Module Name: -# -# CopyMem.S -# -# Abstract: -# -# CopyMem function -# -# Notes: -# -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# VOID * -# EFIAPI -# InternalMemCopyMem ( -# IN VOID *Destination, -# IN VOID *Source, -# IN UINTN Count -# ) -#------------------------------------------------------------------------------ -.intel_syntax noprefix -.globl ASM_PFX(InternalMemCopyMem) -ASM_PFX(InternalMemCopyMem): - push rsi - push rdi - mov rsi, rdx # rsi <- Source - mov rdi, rcx # rdi <- Destination - lea r9, [rsi + r8 - 1] # r9 <- End of Source - cmp rsi, rdi - mov rax, rdi # rax <- Destination as return value - jae L0 - cmp r9, rdi - jae L_CopyBackward # Copy backward if overlapped -L0: - mov rcx, r8 - and r8, 7 - shr rcx, 3 # rcx <- # of Qwords to copy - jz L_CopyBytes - movd r10, mm0 # (Save mm0 in r10) -L1: - movq mm0, [rsi] - movntq [rdi], mm0 - add rsi, 8 - add rdi, 8 - loop L1 - mfence - movd mm0, r10 # (Restore mm0) - jmp L_CopyBytes -L_CopyBackward: - mov rsi, r9 # rsi <- End of Source - lea rdi, [rdi + r8 - 1] # rdi <- End of Destination - std # set direction flag -L_CopyBytes: - mov rcx, r8 - rep movsb # Copy bytes backward - cld - pop rdi - pop rsi - ret +#
+# ConvertAsm.py: Automatically generated from CopyMem.asm
+#
+#------------------------------------------------------------------------------
+#
+# Copyright (c) 2006, Intel Corporation
+# All rights reserved. This program and the accompanying materials
+# are licensed and made available under the terms and conditions of the BSD License
+# which accompanies this distribution. The full text of the license may be found at
+# http://opensource.org/licenses/bsd-license.php
+#
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+#
+# Module Name:
+#
+# CopyMem.S
+#
+# Abstract:
+#
+# CopyMem function
+#
+# Notes:
+#
+#------------------------------------------------------------------------------
+
+
+#------------------------------------------------------------------------------
+# VOID *
+# EFIAPI
+# InternalMemCopyMem (
+# IN VOID *Destination,
+# IN VOID *Source,
+# IN UINTN Count
+# )
+#------------------------------------------------------------------------------
+.intel_syntax noprefix
+.globl ASM_PFX(InternalMemCopyMem)
+ASM_PFX(InternalMemCopyMem):
+ push rsi
+ push rdi
+ mov rsi, rdx # rsi <- Source
+ mov rdi, rcx # rdi <- Destination
+ lea r9, [rsi + r8 - 1] # r9 <- End of Source
+ cmp rsi, rdi
+ mov rax, rdi # rax <- Destination as return value
+ jae L0
+ cmp r9, rdi
+ jae L_CopyBackward # Copy backward if overlapped
+L0:
+ mov rcx, r8
+ and r8, 7
+ shr rcx, 3 # rcx <- # of Qwords to copy
+ jz L_CopyBytes
+ movd r10, mm0 # (Save mm0 in r10)
+L1:
+ movq mm0, [rsi]
+ movntq [rdi], mm0
+ add rsi, 8
+ add rdi, 8
+ loop L1
+ mfence
+ movd mm0, r10 # (Restore mm0)
+ jmp L_CopyBytes
+L_CopyBackward:
+ mov rsi, r9 # rsi <- End of Source
+ lea rdi, [rdi + r8 - 1] # rdi <- End of Destination
+ std # set direction flag
+L_CopyBytes:
+ mov rcx, r8
+ rep movsb # Copy bytes backward
+ cld
+ pop rdi
+ pop rsi
+ ret
|