diff options
author | oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-07-12 18:00:36 +0000 |
---|---|---|
committer | oliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524> | 2012-07-12 18:00:36 +0000 |
commit | 836a78250b31ef71b3584d1a4e7cf2a03434422f (patch) | |
tree | 6feb542da4013e995f0123774c0f8c39f8b84148 /ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.asm | |
parent | 96f0d1cab0f2f1d7f923cc11bc56c069c6e71854 (diff) | |
download | edk2-platforms-836a78250b31ef71b3584d1a4e7cf2a03434422f.tar.xz |
ArmPkg/CompilerIntrinsicsLib: Added missing __aeabi_uread8 and __aeabi_uwrite8
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13528 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.asm')
-rw-r--r-- | ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.asm | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.asm b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.asm index da3ea3e31e..9aefa808de 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.asm +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.asm @@ -15,6 +15,7 @@ EXPORT __aeabi_uread4
+ EXPORT __aeabi_uread8
AREA Uread4, CODE, READONLY
@@ -35,4 +36,31 @@ __aeabi_uread4 orr r0, r1, r0, lsl #24
bx lr
+;
+;UINT64
+;EFIAPI
+;__aeabi_uread8 (
+; IN VOID *Pointer
+; );
+;
+__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
END
|