• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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#   EfiZeroMemRep4.S
15#
16# Abstract:
17#
18#   ZeroMem function
19#
20# Notes:
21#
22#------------------------------------------------------------------------------
23#include <EfiBind.h>
24
25    .code:
26
27.globl ASM_PFX(EfiCommonLibZeroMem)
28#------------------------------------------------------------------------------
29#  VOID
30#  EfiCommonLibZeroMem (
31#    IN VOID   *Buffer,
32#    IN UINTN  Size
33#    );
34#------------------------------------------------------------------------------
35ASM_PFX(EfiCommonLibZeroMem):
36      push   %rdi
37      xor    %rax,%rax
38      mov    %rcx,%rdi
39      mov    %rdx,%rcx
40      shr    $0x2,%rcx
41      and    $0x3,%rdx
42      rep stos %eax,%es:(%rdi)
43      mov    %rdx,%rcx
44      rep stos %al,%es:(%rdi)
45      pop    %rdi
46      retq