]> git.proxmox.com Git - mirror_edk2.git/commitdiff
ArmPkg/CompilerIntrinsicsLib: Added missing __aeabi_uread8 and __aeabi_uwrite8
authoroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 12 Jul 2012 18:00:36 +0000 (18:00 +0000)
committeroliviermartin <oliviermartin@6f19259b-4bc3-4df7-8a09-765794883524>
Thu, 12 Jul 2012 18:00:36 +0000 (18:00 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13528 6f19259b-4bc3-4df7-8a09-765794883524

ArmPkg/Library/CompilerIntrinsicsLib/Arm/uread.asm
ArmPkg/Library/CompilerIntrinsicsLib/Arm/uwrite.asm

index da3ea3e31e9feea1cd5dbac920b4dd8af2b655dd..9aefa808de0cf5fd46bef48e70e48371e567a35a 100644 (file)
@@ -15,6 +15,7 @@
 \r
 \r
     EXPORT  __aeabi_uread4\r
+    EXPORT  __aeabi_uread8\r
 \r
     AREA  Uread4, CODE, READONLY\r
 \r
@@ -35,4 +36,31 @@ __aeabi_uread4
     orr     r0, r1, r0, lsl #24\r
     bx      lr\r
 \r
+;\r
+;UINT64\r
+;EFIAPI\r
+;__aeabi_uread8 (\r
+;  IN VOID   *Pointer\r
+;  );\r
+;\r
+__aeabi_uread8\r
+    mov            r3, r0\r
+\r
+    ldrb    r1, [r3]\r
+    ldrb    r2, [r3, #1]\r
+    orr     r1, r1, r2, lsl #8\r
+    ldrb    r2, [r3, #2]\r
+    orr     r1, r1, r2, lsl #16\r
+    ldrb    r0, [r3, #3]\r
+    orr     r0, r1, r0, lsl #24\r
+\r
+    ldrb    r1, [r3, #4]\r
+    ldrb    r2, [r3, #5]\r
+    orr     r1, r1, r2, lsl #8\r
+    ldrb    r2, [r3, #6]\r
+    orr     r1, r1, r2, lsl #16\r
+    ldrb    r2, [r3, #7]\r
+    orr     r1, r1, r2, lsl #24\r
+\r
+    bx      lr\r
     END\r
index deb01893278e422d39b700bd0eba230e5a655fd2..cbf1793af4004532b1ed2b4a60fbf4d39f0b4015 100644 (file)
@@ -14,6 +14,7 @@
 
 
     EXPORT  __aeabi_uwrite4
+    EXPORT  __aeabi_uwrite8
 
     AREA  Uwrite4, CODE, READONLY
 
@@ -35,6 +36,31 @@ __aeabi_uwrite4
     mov     r2, r0, lsr #24
     strb    r2, [r1, #3]
     bx      lr
+
+;
+;UINT64
+;EFIAPI
+;__aeabi_uwrite8 (
+;  IN UINT64 Data,    //r0-r1
+;  IN VOID   *Pointer //r2
+;  );
+;
+;
+__aeabi_uwrite8
+    mov     r3, r0, lsr #8
+    strb    r0, [r2]
+    strb    r3, [r2, #1]
+    mov     r3, r0, lsr #16
+    strb    r3, [r2, #2]
+    mov     r3, r0, lsr #24
+    strb    r3, [r2, #3]
+
+    mov     r3, r1, lsr #8
+    strb    r1, [r2, #4]
+    strb    r3, [r2, #5]
+    mov     r3, r1, lsr #16
+    strb    r3, [r2, #6]
+    mov     r3, r1, lsr #24
+    strb    r3, [r2, #7]
     END