]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdePkg/Library/BaseMemoryLibMmx/Ia32/SetMem16.S
1. Updated function headers for all assembly function
[mirror_edk2.git] / MdePkg / Library / BaseMemoryLibMmx / Ia32 / SetMem16.S
index bcbd49e4422820ef2b63356334e1987f61c7ef7b..9898d28f98ecda115f5461791ecaa286a5910a1c 100644 (file)
 #
 #------------------------------------------------------------------------------
 
-    .686: 
-    #.MODEL flat,C
-    .xmm: 
-    .code: 
+.global _InternalMemSetMem16
 
 #------------------------------------------------------------------------------
 #  VOID *
-#  _mem_SetMem16 (
+#  InternalMemSetMem16 (
 #    IN VOID   *Buffer,
 #    IN UINTN  Count,
 #    IN UINT16 Value
 #    )
 #------------------------------------------------------------------------------
-.global _InternalMemSetMem16
 _InternalMemSetMem16:
     push    %edi
+    movl    16(%esp), %eax
+    shrdl   $16, %eax, %edx
+    shldl   $16, %edx, %eax
     movl    12(%esp), %edx
     movl    8(%esp), %edi
     movl    %edx, %ecx
     andl    $3, %edx
     shrl    $2, %ecx
-    movl    16(%esp), %eax
-    jz      @SetWords
+    jz      L1
     movd    %eax, %mm0
-    pshufw  $0, %mm0, %mm0
-L0: 
-    movntq  %mm0, (%edi)
+    movd    %eax, %mm1
+    psllq   $32, %mm0
+    por     %mm1, %mm0
+L0:
+    movq    %mm0, (%edi)
     addl    $8, %edi
-    loop    L0
-    mfence
-@SetWords: 
+    loopl   L0
+L1:
     movl    %edx, %ecx
     rep
     stosw