#------------------------------------------------------------------------------ # # Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
# Copyright (c) 2014, ARM Ltd. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License # which accompanies this distribution. The full text of the license may be found at # http://opensource.org/licenses/bsd-license.php # # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. # #------------------------------------------------------------------------------ .text .syntax unified .align 2 GCC_ASM_EXPORT (memset) GCC_ASM_EXPORT (__aeabi_memset) # VOID # EFIAPI # __aeabi_memset ( # IN VOID *Destination, # IN UINT32 Size # IN UINT32 Character, # ); ASM_PFX(__aeabi_memset): subs ip, r1, #0 bxeq lr mov r1, r2 b L10 # VOID # EFIAPI # memset ( # IN VOID *Destination, # IN UINT32 Character, # IN UINT32 Size # ); // // This object may be pulled in to satisfy an undefined reference to // __aeabi_memset above, but in some cases, memset() is already provided // by another library (i.e., CryptoPkg/IntrinsicLib), in which case we // prefer the other version. So allow this one to be overridden by // giving it weak linkage. // .weak memset ASM_PFX(memset): subs ip, r2, #0 bxeq lr @ args = 0, pretend = 0, frame = 0 @ frame_needed = 1, uses_anonymous_args = 0 L10: strb r1, [r0], #1 subs ip, ip, #1 @ While size is not 0 bne L10 bx lr