From 796b0b15e8d3bee61926ef5d3583c35c95aead6f Mon Sep 17 00:00:00 2001 From: oliviermartin Date: Wed, 7 Sep 2011 19:09:39 +0000 Subject: ArmPkg/CompilerIntrinsicsLib: Add memory intrinsics for RVCT New intrinsics: __aeabi_memmove, __aeabi_memset, __aeabi_memclr and __aeabi_memclr4 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12293 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Library/CompilerIntrinsicsLib/Arm/memset.asm | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 ArmPkg/Library/CompilerIntrinsicsLib/Arm/memset.asm (limited to 'ArmPkg/Library/CompilerIntrinsicsLib/Arm/memset.asm') diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memset.asm b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memset.asm new file mode 100755 index 0000000000..5c6b808f1e --- /dev/null +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memset.asm @@ -0,0 +1,55 @@ +//------------------------------------------------------------------------------ +// +// Copyright (c) 2008 - 2009, Apple Inc. 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. +// +//------------------------------------------------------------------------------ + + + EXPORT __aeabi_memset + EXPORT __aeabi_memclr + EXPORT __aeabi_memclr4 + + AREA Memset, CODE, READONLY + +; +;VOID +;EFIAPI +;__aeabi_memset ( +; IN VOID *Destination, +; IN UINT32 Character, +; IN UINT32 Size +; ); +; +__aeabi_memset + + ; args = 0, pretend = 0, frame = 0 + ; frame_needed = 1, uses_anonymous_args = 0 + stmfd sp!, {r7, lr} + mov ip, #0 + add r7, sp, #0 + mov lr, r0 + b L9 +L10 + and r3, r1, #255 + add ip, ip, #1 + strb r3, [lr], #1 +L9 + cmp ip, r2 + bne L10 + ldmfd sp!, {r7, pc} + +__aeabi_memclr + mov r1, #0 + b __aeabi_memset + +__aeabi_memclr4 + mov r1, #0 + b __aeabi_memset -- cgit v1.2.3