]> git.proxmox.com Git - mirror_edk2.git/blame - EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/X64/EfiCopyMemRep1.S
Update the copyright notice format
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / EfiCommonLib / X64 / EfiCopyMemRep1.S
CommitLineData
e8de4680
A
1#------------------------------------------------------------------------------
2#
4ea9375a
HT
3# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
4# This program and the accompanying materials
e8de4680
A
5# are licensed and made available under the terms and conditions of the BSD License
6# which accompanies this distribution. The full text of the license may be found at
7# http://opensource.org/licenses/bsd-license.php
8#
9# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11#
12# Module Name:
13#
14# EfiCopyMemRep1.S
15#
16# Abstract:
17#
18# CopyMem function
19#
20# Notes:
21#
22#------------------------------------------------------------------------------
23#include <EfiBind.h>
24
25 .code:
26
27.globl ASM_PFX(EfiCommonLibCopyMem)
28
29#------------------------------------------------------------------------------
30# VOID
31# EfiCommonLibCopyMem (
32# OUT VOID *Destination,
33# IN VOID *Source,
34# IN UINTN Count
35# );
36#------------------------------------------------------------------------------
37ASM_PFX(EfiCommonLibCopyMem):
38 push %rsi
39 push %rdi
40 cmp %rcx,%rdx
41 je CopyMemDone
42 cmp $0x0,%r8
43 je CopyMemDone
44 mov %rdx,%rsi
45 mov %rcx,%rdi
46 lea -1(%r8,%rsi,1),%r9
47 cmp %rdi,%rsi
48 jae CopyBytes
49 cmp %rdi,%r9
50 jb CopyBytes
51 mov %r9,%rsi
52 lea -1(%r8,%rdi,1),%rdi
53 std
54
55CopyBytes:
56 mov %r8,%rcx
57 rep movsb %ds:(%rsi),%es:(%rdi)
58 cld
59
60CopyMemDone:
61 pop %rdi
62 pop %rsi
63 retq
64
65
66