]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseMemoryLibMmx/X64/SetMem32.S
clean up all of eight BaseMemoryLib instances in MdePkg with the following updates:
[mirror_edk2.git] / MdePkg / Library / BaseMemoryLibMmx / X64 / SetMem32.S
index 099e53d607350494f503eca502909069b58a7c2a..c983e6d9c1370b8b7a62cd7afa80992b7d0b7903 100644 (file)
@@ -1,56 +1,55 @@
-#
-# ConvertAsm.py: Automatically generated from SetMem32.asm
-#
-#------------------------------------------------------------------------------
-#
-# Copyright (c) 2006, Intel Corporation
-# All rights reserved. This program and the accompanying materials
-# are licensed and made available under the terms and conditions of the BSD License
-# which accompanies this distribution.  The full text of the license may be found at
-# http://opensource.org/licenses/bsd-license.php
-#
-# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-#
-# Module Name:
-#
-#   SetMem32.S
-#
-# Abstract:
-#
-#   SetMem32 function
-#
-# Notes:
-#
-#------------------------------------------------------------------------------
-
-
-#------------------------------------------------------------------------------
-#  VOID *
-#  EFIAPI
-#  InternalMemSetMem32 (
-#    IN VOID   *Buffer,
-#    IN UINTN  Count,
-#    IN UINT32 Value
-#    );
-#------------------------------------------------------------------------------
-.intel_syntax noprefix
-.globl ASM_PFX(InternalMemSetMem32)
-ASM_PFX(InternalMemSetMem32):
-    movq    mm0, r8                     # mm0 <- Value
-    mov     rax, rcx                    # rax <- Buffer
-    xchg    rcx, rdx                    # rcx <- Count  rdx <- Buffer
-    shr     rcx, 1                      # rcx <- # of qwords to set
-    jz      L_SetDwords
-    pshufw  mm0, mm0, 0x44
-L0:
-    movntq  [rdx], mm0
-    lea     rdx, [rdx + 8]              # use "lea" to avoid flag changes
-    loop    L0
-    mfence
-L_SetDwords:
-    jnc     L1
-    movd    [rdx], mm0
-L1:
-    ret
-
+#\r
+# ConvertAsm.py: Automatically generated from SetMem32.asm\r
+#\r
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006 - 2009, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   SetMem32.S\r
+#\r
+# Abstract:\r
+#\r
+#   SetMem32 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+#------------------------------------------------------------------------------\r
+#  VOID *\r
+#  EFIAPI\r
+#  InternalMemSetMem32 (\r
+#    IN VOID   *Buffer,\r
+#    IN UINTN  Count,\r
+#    IN UINT32 Value\r
+#    );\r
+#------------------------------------------------------------------------------\r
+ASM_GLOBAL ASM_PFX(InternalMemSetMem32)\r
+ASM_PFX(InternalMemSetMem32):\r
+    movq    %r8, %mm0                   # mm0 <- Value\r
+    movq    %rcx, %rax                  # rax <- Buffer\r
+    xchgq   %rdx, %rcx                  # rcx <- Count  rdx <- Buffer\r
+    shrq    $1, % rcx                   # rcx <- # of qwords to set\r
+    jz      L_SetDwords\r
+   .byte    0x0f, 0x70, 0x0C0, 0x44\r
+L0:\r
+    movntq  %mm0, (%rdx) \r
+    leaq    8(%rdx), %rdx               # use "lea" to avoid flag changes\r
+    loop    L0\r
+    mfence\r
+L_SetDwords:\r
+    jnc     L1\r
+    movd    %mm0, (%rdx) \r
+L1:\r
+    ret\r
+\r