From af1a266670d040d2f4083ff309d732d648afba2a Mon Sep 17 00:00:00 2001 From: Angelos Mouzakitis Date: Tue, 10 Oct 2023 14:33:42 +0000 Subject: Add submodule dependency files Change-Id: Iaf8d18082d3991dec7c0ebbea540f092188eb4ec --- .../Library/BaseMemoryLibMmx/Ia32/SetMem16.nasm | 55 ++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 roms/edk2/MdePkg/Library/BaseMemoryLibMmx/Ia32/SetMem16.nasm (limited to 'roms/edk2/MdePkg/Library/BaseMemoryLibMmx/Ia32/SetMem16.nasm') diff --git a/roms/edk2/MdePkg/Library/BaseMemoryLibMmx/Ia32/SetMem16.nasm b/roms/edk2/MdePkg/Library/BaseMemoryLibMmx/Ia32/SetMem16.nasm new file mode 100644 index 000000000..065bbe3b9 --- /dev/null +++ b/roms/edk2/MdePkg/Library/BaseMemoryLibMmx/Ia32/SetMem16.nasm @@ -0,0 +1,55 @@ +;------------------------------------------------------------------------------ +; +; Copyright (c) 2006, Intel Corporation. All rights reserved.
+; SPDX-License-Identifier: BSD-2-Clause-Patent +; +; Module Name: +; +; SetMem16.nasm +; +; Abstract: +; +; SetMem16 function +; +; Notes: +; +;------------------------------------------------------------------------------ + + SECTION .text + +;------------------------------------------------------------------------------ +; VOID * +; EFIAPI +; InternalMemSetMem16 ( +; IN VOID *Buffer, +; IN UINTN Count, +; IN UINT16 Value +; ) +;------------------------------------------------------------------------------ +global ASM_PFX(InternalMemSetMem16) +ASM_PFX(InternalMemSetMem16): + push edi + mov eax, [esp + 16] + shrd edx, eax, 16 + shld eax, edx, 16 + mov edx, [esp + 12] + mov edi, [esp + 8] + mov ecx, edx + and edx, 3 + shr ecx, 2 + jz @SetWords + movd mm0, eax + movd mm1, eax + psllq mm0, 32 + por mm0, mm1 +.0: + movq [edi], mm0 + add edi, 8 + loop .0 +@SetWords: + mov ecx, edx + rep stosw + mov eax, [esp + 8] + pop edi + ret + -- cgit 1.2.3-korg