-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2008, 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:
-#
-# EfiCopyMemRep1.S
-#
-# Abstract:
-#
-# CopyMem function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-#include <EfiBind.h>
-
- .code:
-
-.global ASM_PFX(EfiCommonLibCopyMem)
-
-#------------------------------------------------------------------------------
-# VOID
-# EfiCommonLibCopyMem (
-# OUT VOID *Destination,
-# IN VOID *Source,
-# IN UINTN Count
-# );
-#------------------------------------------------------------------------------
-ASM_PFX(EfiCommonLibCopyMem):
- push %rsi
- push %rdi
- cmp %rcx,%rdx
- je CopyMemDone
- cmp $0x0,%r8
- je CopyMemDone
- mov %rdx,%rsi
- mov %rcx,%rdi
- lea -1(%r8,%rsi,1),%r9
- cmp %rdi,%rsi
- jae CopyBytes
- cmp %rdi,%r9
- jb CopyBytes
- mov %r9,%rsi
- lea -1(%r8,%rdi,1),%rdi
- std
-
-CopyBytes:
- mov %r8,%rcx
- rep movsb %ds:(%rsi),%es:(%rdi)
- cld
-
-CopyMemDone:
- pop %rdi
- pop %rsi
- retq
-
-
-
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2008, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution. The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+# EfiCopyMemRep1.S\r
+#\r
+# Abstract:\r
+#\r
+# CopyMem function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+#include <EfiBind.h>\r
+\r
+ .code: \r
+\r
+.global ASM_PFX(EfiCommonLibCopyMem)\r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EfiCommonLibCopyMem (\r
+# OUT VOID *Destination,\r
+# IN VOID *Source,\r
+# IN UINTN Count\r
+# );\r
+#------------------------------------------------------------------------------\r
+ASM_PFX(EfiCommonLibCopyMem):\r
+ push %rsi\r
+ push %rdi\r
+ cmp %rcx,%rdx\r
+ je CopyMemDone\r
+ cmp $0x0,%r8\r
+ je CopyMemDone\r
+ mov %rdx,%rsi\r
+ mov %rcx,%rdi\r
+ lea -1(%r8,%rsi,1),%r9\r
+ cmp %rdi,%rsi\r
+ jae CopyBytes\r
+ cmp %rdi,%r9\r
+ jb CopyBytes\r
+ mov %r9,%rsi\r
+ lea -1(%r8,%rdi,1),%rdi\r
+ std \r
+\r
+CopyBytes:\r
+ mov %r8,%rcx\r
+ rep movsb %ds:(%rsi),%es:(%rdi)\r
+ cld \r
+\r
+CopyMemDone:\r
+ pop %rdi\r
+ pop %rsi\r
+ retq \r
+\r
+\r
+\r