]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareMem.S
MdePkg/BaseMemoryLibOptDxe ARM: add missing function annotations
[mirror_edk2.git] / MdePkg / Library / BaseMemoryLibOptDxe / Arm / CompareMem.S
index 951d15777a38d7c41a4f15be754b4fc771ff3b32..25a9a09945241dad16edc050e37d0915fa6cd275 100644 (file)
@@ -46,6 +46,7 @@
     .thumb\r
     .syntax unified\r
     .align  5\r
+    .type   ASM_PFX(InternalMemCompareMem), %function\r
 ASM_GLOBAL ASM_PFX(InternalMemCompareMem)\r
 ASM_PFX(InternalMemCompareMem):\r
     push    {r4-r8, lr}\r
@@ -110,9 +111,9 @@ ASM_PFX(InternalMemCompareMem):
     bic     src1, src1, #3\r
     bic     src2, src2, #3\r
     add     limit, limit, tmp1          // Adjust the limit for the extra.\r
-    lsl     tmp1, tmp1, #2              // Bytes beyond alignment -> bits.\r
+    lsl     tmp1, tmp1, #3              // Bytes beyond alignment -> bits.\r
     ldr     data1, [src1], #4\r
-    neg     tmp1, tmp1                  // Bits to alignment -32.\r
+    rsb     tmp1, tmp1, #32             // Bits to alignment -32.\r
     ldr     data2, [src2], #4\r
     mov     tmp2, #~0\r
 \r
@@ -132,7 +133,7 @@ ASM_PFX(InternalMemCompareMem):
     ldrb    data2, [src2], #1\r
     subs    limit, limit, #1\r
     it      cs\r
-    cmpcs   data1, data2\r
+    cmpcs.n data1, data2\r
     beq     1b\r
     sub     result, data1, data2\r
     pop     {r4-r8, pc}\r