]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.asm
MdePkg/BaseMemoryLibOptDxe ARM AARCH64: fix thinko in SetMem##
[mirror_edk2.git] / MdePkg / Library / BaseMemoryLibOptDxe / Arm / SetMem.asm
index 2a8dc7d019f4e39d7bb55c2ed68c503ae66853c1..c2e2842a63230da0de0b5ffcaa58a63fa3721a8f 100644 (file)
     AREA    SetMem, CODE, READONLY, CODEALIGN, ALIGN=5\r
     THUMB\r
 \r
-InternalMemZeroMem\r
-    movs    r2, #0\r
+InternalMemSetMem16\r
+    uxth    r2, r2\r
+    lsl     r1, r1, #1\r
+    orr     r2, r2, r2, lsl #16\r
+    b       B0\r
+\r
+InternalMemSetMem32\r
+    lsl     r1, r1, #2\r
+    b       B0\r
+\r
+InternalMemSetMem64\r
+    lsl     r1, r1, #3\r
+    b       B1\r
 \r
+    ALIGN   32\r
 InternalMemSetMem\r
     uxtb    r2, r2\r
     orr     r2, r2, r2, lsl #8\r
+    orr     r2, r2, r2, lsl #16\r
+    b       B0\r
 \r
-InternalMemSetMem16\r
-    uxth    r2, r2\r
-    orr     r2, r2, r2, lsr #16\r
-\r
-InternalMemSetMem32\r
+InternalMemZeroMem\r
+    movs    r2, #0\r
+B0\r
     mov     r3, r2\r
 \r
-InternalMemSetMem64\r
+B1\r
     push    {r4, lr}\r
     cmp     r1, #16                 ; fewer than 16 bytes of input?\r
     add     r1, r1, r0              ; r1 := dst + length\r