Home | History | Annotate | Download | only in Arm
      1 #------------------------------------------------------------------------------
      2 #
      3 # Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
      4 # Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>
      5 #
      6 # This program and the accompanying materials
      7 # are licensed and made available under the terms and conditions of the BSD License
      8 # which accompanies this distribution.  The full text of the license may be found at
      9 # http://opensource.org/licenses/bsd-license.php
     10 #
     11 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     12 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     13 #
     14 #------------------------------------------------------------------------------
     15 
     16 
     17   .text
     18   .syntax unified
     19   .align 2
     20   GCC_ASM_EXPORT (memset)
     21   GCC_ASM_EXPORT (__aeabi_memset)
     22 
     23 # VOID
     24 # EFIAPI
     25 # __aeabi_memset (
     26 #  IN  VOID    *Destination,
     27 #  IN  UINT32  Size
     28 #  IN  UINT32  Character,
     29 #  );
     30 ASM_PFX(__aeabi_memset):
     31   subs  ip, r1, #0
     32   bxeq  lr
     33   mov   r1, r2
     34   b     L10
     35 
     36 # VOID
     37 # EFIAPI
     38 # memset (
     39 #  IN  VOID    *Destination,
     40 #  IN  UINT32  Character,
     41 #  IN  UINT32  Size
     42 #  );
     43 ASM_PFX(memset):
     44   subs ip, r2, #0
     45   bxeq lr
     46   @ args = 0, pretend = 0, frame = 0
     47   @ frame_needed = 1, uses_anonymous_args = 0
     48 L10:
     49   strb  r1, [r0], #1
     50   subs  ip, ip, #1
     51   @ While size is not 0
     52   bne  L10
     53   bx   lr
     54