Home | History | Annotate | Download | only in X64
      1 ;------------------------------------------------------------------------------
      2 ;
      3 ; Copyright (c) 2007, 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 ;   EfiSetMemRep8.asm
     15 ;
     16 ; Abstract:
     17 ;
     18 ;   SetMem function
     19 ;
     20 ; Notes:
     21 ;
     22 ;------------------------------------------------------------------------------
     23 
     24     .code
     25 
     26 ;------------------------------------------------------------------------------
     27 ; VOID
     28 ; EfiCommonLibSetMem (
     29 ;   OUT     VOID                      *Buffer,
     30 ;   IN      UINTN                     Size,
     31 ;   IN      UINT8                     Value
     32 ;   );
     33 ;------------------------------------------------------------------------------
     34 EfiCommonLibSetMem   PROC    USES    rdi rbx
     35     cmp     rdx, 0                      ; if Size == 0, do nothing
     36     je      @SetDone
     37     mov     rax, r8
     38     mov     bl,  al
     39     mov     bh,  bl
     40     mov     ax,  bx
     41     shl     rax, 10h
     42     mov     ax,  bx
     43     mov     ebx, eax 
     44     shl     rax, 20h
     45     mov     eax, ebx
     46     mov     rdi, rcx
     47     mov     rcx, rdx
     48     shr     rcx, 3
     49     rep     stosq
     50     mov     rcx, rdx
     51     and     rcx, 7
     52     rep     stosb
     53 @SetDone:
     54     ret
     55 EfiCommonLibSetMem   ENDP
     56 
     57     END
     58 
     59