]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Library/CompilerIntrinsicsLib/Arm/memset.S
bb75d7a70b80c74004424e6c48c891463ac04687
[mirror_edk2.git] / ArmPkg / Library / CompilerIntrinsicsLib / Arm / memset.S
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