]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S
MdePkg/BaseMemoryLibOptDxe ARM AARCH64: fix thinko in SetMem##
[mirror_edk2.git] / MdePkg / Library / BaseMemoryLibOptDxe / Arm / SetMem.S
index c1755539d36abb94482679457591532ee0ccc1a0..add04443b2e9946dc48875693e8cd4180f74e391 100644 (file)
     .thumb\r
     .syntax unified\r
     .align  5\r
-ASM_GLOBAL ASM_PFX(InternalMemZeroMem)\r
-ASM_PFX(InternalMemZeroMem):\r
-    movs    r2, #0\r
-\r
-ASM_GLOBAL ASM_PFX(InternalMemSetMem)\r
-ASM_PFX(InternalMemSetMem):\r
-    uxtb    r2, r2\r
-    orr     r2, r2, r2, lsl #8\r
-\r
 ASM_GLOBAL ASM_PFX(InternalMemSetMem16)\r
 ASM_PFX(InternalMemSetMem16):\r
     uxth    r2, r2\r
+    lsl     r1, r1, #1\r
     orr     r2, r2, r2, lsl #16\r
+    b       0f\r
 \r
 ASM_GLOBAL ASM_PFX(InternalMemSetMem32)\r
 ASM_PFX(InternalMemSetMem32):\r
-    mov     r3, r2\r
+    lsl     r1, r1, #2\r
+    b       0f\r
 \r
 ASM_GLOBAL ASM_PFX(InternalMemSetMem64)\r
 ASM_PFX(InternalMemSetMem64):\r
-    push    {r4, lr}\r
+    lsl     r1, r1, #3\r
+    b       1f\r
+\r
+    .align  5\r
+ASM_GLOBAL ASM_PFX(InternalMemSetMem)\r
+ASM_PFX(InternalMemSetMem):\r
+    uxtb    r2, r2\r
+    orr     r2, r2, r2, lsl #8\r
+    orr     r2, r2, r2, lsl #16\r
+    b       0f\r
+\r
+ASM_GLOBAL ASM_PFX(InternalMemZeroMem)\r
+ASM_PFX(InternalMemZeroMem):\r
+    movs    r2, #0\r
+0:  mov     r3, r2\r
+\r
+1:  push    {r4, lr}\r
     cmp     r1, #16                 // fewer than 16 bytes of input?\r
     add     r1, r1, r0              // r1 := dst + length\r
     add     lr, r0, #16\r