1//------------------------------------------------------------------------------ 2// 3// Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> 4// 5// This program and the accompanying materials 6// are licensed and made available under the terms and conditions of the BSD License 7// which accompanies this distribution. The full text of the license may be found at 8// http://opensource.org/licenses/bsd-license.php 9// 10// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12// 13//------------------------------------------------------------------------------ 14 15 16 17 INCLUDE AsmMacroExport.inc 18 19; 20;VOID 21;EFIAPI 22;__aeabi_memcpy ( 23; IN VOID *Destination, 24; IN VOID *Source, 25; IN UINT32 Size 26; ); 27; 28 RVCT_ASM_EXPORT __aeabi_memcpy4 29 stmdb sp!, {r4, lr} 30 subs r2, r2, #32 ; 0x20 31 bcc memcpy4_label2 32memcpy4_label1 33 ldmcsia r1!, {r3, r4, ip, lr} 34 stmcsia r0!, {r3, r4, ip, lr} 35 ldmcsia r1!, {r3, r4, ip, lr} 36 stmcsia r0!, {r3, r4, ip, lr} 37 subcss r2, r2, #32 ; 0x20 38 bcs memcpy4_label1 39memcpy4_label2 40 movs ip, r2, lsl #28 41 ldmcsia r1!, {r3, r4, ip, lr} 42 stmcsia r0!, {r3, r4, ip, lr} 43 ldmmiia r1!, {r3, r4} 44 stmmiia r0!, {r3, r4} 45 ldmia sp!, {r4, lr} 46 movs ip, r2, lsl #30 47 ldrcs r3, [r1], #4 48 strcs r3, [r0], #4 49 bxeq lr 50 51_memcpy4_lastbytes_aligned 52 movs r2, r2, lsl #31 53 ldrcsh r3, [r1], #2 54 ldrmib r2, [r1], #1 55 strcsh r3, [r0], #2 56 strmib r2, [r0], #1 57 bx lr 58 59 END 60 61