\r
\r
EXPORT __aeabi_uread4\r
+ EXPORT __aeabi_uread8\r
\r
AREA Uread4, CODE, READONLY\r
\r
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
EXPORT __aeabi_uwrite4
+ EXPORT __aeabi_uwrite8
AREA Uwrite4, CODE, READONLY
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