]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Library/EfiCommonLib/X64/EfiSetMemRep4.S
Update the copyright notice format
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Library / EfiCommonLib / X64 / EfiSetMemRep4.S
1 #------------------------------------------------------------------------------
2 #
3 # Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
4 # This program and the accompanying materials
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 # EfiSetMemRep4.S
15 #
16 # Abstract:
17 #
18 # SetMem function
19 #
20 # Notes:
21 #
22 #------------------------------------------------------------------------------
23 #include <EfiBind.h>
24
25 .code:
26
27 .globl ASM_PFX(EfiCommonLibCopyMem)
28
29 #------------------------------------------------------------------------------
30 # VOID
31 # EfiCommonLibSetMem (
32 # OUT VOID *Buffer,
33 # IN UINTN Size,
34 # IN UINT8 Value
35 # );
36 #------------------------------------------------------------------------------
37 ASM_PFX(EfiCommonLibSetMem):
38 push %rdi
39 cmp $0x0,%rdx
40 je SetDone
41 mov %rcx,%rdi
42 mov %r8b,%al
43 mov %al,%ah
44 shrd $0x10,%eax,%ecx
45 shld $0x10,%ecx,%eax
46 mov %rdx,%rcx
47 shr $0x2,%rcx
48 rep stos %eax,%es:(%rdi)
49 mov %rdx,%rcx
50 and $0x3,%rcx
51 rep stos %al,%es:(%rdi)
52 SetDone:
53 pop %rdi
54 retq