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