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 32 memcpy4_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 39 memcpy4_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