]> git.proxmox.com Git - mirror_edk2.git/blame - ArmPkg/Library/CompilerIntrinsicsLib/Arm/uwrite.asm
ArmPkg: update RVCT assembly functions to use new RVCT_ASM_EXPORT macro
[mirror_edk2.git] / ArmPkg / Library / CompilerIntrinsicsLib / Arm / uwrite.asm
CommitLineData
3402aac7 1//------------------------------------------------------------------------------\r
1e57a462 2//\r
3// Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
4//\r
5// This program and the accompanying materials\r
6// are licensed and made available under the terms and conditions of the BSD License\r
7// which accompanies this distribution. The full text of the license may be found at\r
8// http://opensource.org/licenses/bsd-license.php\r
9//\r
10// THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12//\r
13//------------------------------------------------------------------------------\r
14\r
15\r
1e57a462 16\r
efda1775 17 INCLUDE AsmMacroExport.inc\r
1e57a462 18\r
19;\r
20;UINT32\r
21;EFIAPI\r
22;__aeabi_uwrite4 (\r
23; IN UINT32 Data,\r
24; IN VOID *Pointer\r
25; );\r
26;\r
27;\r
efda1775 28 RVCT_ASM_EXPORT __aeabi_uwrite4\r
1e57a462 29 mov r2, r0, lsr #8\r
30 strb r0, [r1]\r
31 strb r2, [r1, #1]\r
32 mov r2, r0, lsr #16\r
33 strb r2, [r1, #2]\r
34 mov r2, r0, lsr #24\r
35 strb r2, [r1, #3]\r
36 bx lr\r
37\r
38;\r
39;UINT64\r
40;EFIAPI\r
41;__aeabi_uwrite8 (\r
42; IN UINT64 Data, //r0-r1\r
43; IN VOID *Pointer //r2\r
44; );\r
45;\r
46;\r
efda1775 47 RVCT_ASM_EXPORT __aeabi_uwrite8\r
1e57a462 48 mov r3, r0, lsr #8\r
49 strb r0, [r2]\r
50 strb r3, [r2, #1]\r
51 mov r3, r0, lsr #16\r
52 strb r3, [r2, #2]\r
53 mov r3, r0, lsr #24\r
54 strb r3, [r2, #3]\r
55\r
56 mov r3, r1, lsr #8\r
57 strb r1, [r2, #4]\r
58 strb r3, [r2, #5]\r
59 mov r3, r1, lsr #16\r
60 strb r3, [r2, #6]\r
61 mov r3, r1, lsr #24\r
62 strb r3, [r2, #7]\r
63 bx lr\r
64\r
65 END\r
66\r