• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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