X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=MdePkg%2FLibrary%2FBaseMemoryLibOptDxe%2FArm%2FSetMem.S;fp=MdePkg%2FLibrary%2FBaseMemoryLibOptDxe%2FArm%2FSetMem.S;h=2d8f4d5b86213df2ad8a01f1b42c7974a0b41baf;hp=add04443b2e9946dc48875693e8cd4180f74e391;hb=eab26788156436a549610a299d2e297c22043e70;hpb=c4f637077eb4504aa0109aac9983dfe85e5b2afb diff --git a/MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S b/MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S index add04443b2..2d8f4d5b86 100644 --- a/MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S +++ b/MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S @@ -73,15 +73,17 @@ ASM_PFX(InternalMemZeroMem): cmp r4, #4 // between 4 and 15 bytes? blt 4f cmp r4, #8 // between 8 and 15 bytes? - str r2, [lr, #-16] // overlapping store of 4 + (4 + 4) + 4 bytes - itt gt - strgt r3, [lr, #-12] - strgt r2, [r1] + sub r4, lr, #16 + str r2, [r4] // overlapping store of 4 + (4 + 4) + 4 bytes + it gt + strgt.n r3, [r4, #4] + it gt + strgt.n r2, [r1] str r3, [r1, #4] pop {r4, pc} 4: cmp r4, #2 // 2 or 3 bytes? strb r2, [lr, #-16] // store 1 byte it ge - strhge r2, [r1, #6] // store 2 bytes + strhge.n r2, [r1, #6] // store 2 bytes pop {r4, pc}