X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=ArmPkg%2FLibrary%2FCompilerIntrinsicsLib%2FArm%2Furead.S;fp=ArmPkg%2FLibrary%2FCompilerIntrinsicsLib%2FArm%2Furead.S;h=e8a1dbad86929c8787cf20508868901fa1139b3b;hp=0000000000000000000000000000000000000000;hb=96ef5a8e30a8da33eaab09f13cc8d752342717a5;hpb=d039044be43d69f4f2775ed0b30e952aa0ee4c00 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.S new file mode 100644 index 0000000000..e8a1dbad86 --- /dev/null +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.S @@ -0,0 +1,54 @@ +#------------------------------------------------------------------------------ +# +# Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.
+# +# SPDX-License-Identifier: BSD-2-Clause-Patent +# +#------------------------------------------------------------------------------ + +#include + +# +#UINT32 +#EFIAPI +#__aeabi_uread4 ( +# IN VOID *Pointer +# ); +# +ASM_FUNC(__aeabi_uread4) + ldrb r1, [r0] + ldrb r2, [r0, #1] + ldrb r3, [r0, #2] + ldrb r0, [r0, #3] + orr r1, r1, r2, lsl #8 + orr r1, r1, r3, lsl #16 + orr r0, r1, r0, lsl #24 + bx lr + +# +#UINT64 +#EFIAPI +#__aeabi_uread8 ( +# IN VOID *Pointer +# ); +# +ASM_FUNC(__aeabi_uread8) + mov r3, r0 + + ldrb r1, [r3] + ldrb r2, [r3, #1] + orr r1, r1, r2, lsl #8 + ldrb r2, [r3, #2] + orr r1, r1, r2, lsl #16 + ldrb r0, [r3, #3] + orr r0, r1, r0, lsl #24 + + ldrb r1, [r3, #4] + ldrb r2, [r3, #5] + orr r1, r1, r2, lsl #8 + ldrb r2, [r3, #6] + orr r1, r1, r2, lsl #16 + ldrb r2, [r3, #7] + orr r1, r1, r2, lsl #24 + + bx lr