]> git.proxmox.com Git - mirror_edk2.git/blob - ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.asm
f369e4d2516c23f7294393572e693b66fb7457fa
[mirror_edk2.git] / ArmPkg / Library / CompilerIntrinsicsLib / Arm / uread.asm
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
18 INCLUDE AsmMacroExport.inc
19
20 ;
21 ;UINT32
22 ;EFIAPI
23 ;__aeabi_uread4 (
24 ; IN VOID *Pointer
25 ; );
26 ;
27 RVCT_ASM_EXPORT __aeabi_uread4
28 ldrb r1, [r0]
29 ldrb r2, [r0, #1]
30 ldrb r3, [r0, #2]
31 ldrb r0, [r0, #3]
32 orr r1, r1, r2, lsl #8
33 orr r1, r1, r3, lsl #16
34 orr r0, r1, r0, lsl #24
35 bx lr
36
37 ;
38 ;UINT64
39 ;EFIAPI
40 ;__aeabi_uread8 (
41 ; IN VOID *Pointer
42 ; );
43 ;
44 RVCT_ASM_EXPORT __aeabi_uread8
45 mov r3, r0
46
47 ldrb r1, [r3]
48 ldrb r2, [r3, #1]
49 orr r1, r1, r2, lsl #8
50 ldrb r2, [r3, #2]
51 orr r1, r1, r2, lsl #16
52 ldrb r0, [r3, #3]
53 orr r0, r1, r0, lsl #24
54
55 ldrb r1, [r3, #4]
56 ldrb r2, [r3, #5]
57 orr r1, r1, r2, lsl #8
58 ldrb r2, [r3, #6]
59 orr r1, r1, r2, lsl #16
60 ldrb r2, [r3, #7]
61 orr r1, r1, r2, lsl #24
62
63 bx lr
64 END