From 94cf7d235a484f34cc112f92e91ff7540980eb03 Mon Sep 17 00:00:00 2001 From: Shenglei Zhang Date: Thu, 7 Mar 2019 09:10:26 +0800 Subject: MdePkg/BaseMemoryLibSse2: Remove .S files for IA32 and X64 arch .nasm file has been added for X86 arch. .S assembly code is not required any more. https://bugzilla.tianocore.org/show_bug.cgi?id=1594 Cc: Michael D Kinney Cc: Liming Gao Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Shenglei Zhang Reviewed-by: Liming Gao --- MdePkg/Library/BaseMemoryLibSse2/X64/CompareMem.S | 59 ---------------- MdePkg/Library/BaseMemoryLibSse2/X64/CopyMem.S | 83 ----------------------- MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem16.S | 56 --------------- MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem32.S | 56 --------------- MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem64.S | 56 --------------- MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem8.S | 56 --------------- MdePkg/Library/BaseMemoryLibSse2/X64/SetMem.S | 72 -------------------- MdePkg/Library/BaseMemoryLibSse2/X64/SetMem16.S | 70 ------------------- MdePkg/Library/BaseMemoryLibSse2/X64/SetMem32.S | 69 ------------------- MdePkg/Library/BaseMemoryLibSse2/X64/SetMem64.S | 60 ---------------- MdePkg/Library/BaseMemoryLibSse2/X64/ZeroMem.S | 65 ------------------ 11 files changed, 702 deletions(-) delete mode 100644 MdePkg/Library/BaseMemoryLibSse2/X64/CompareMem.S delete mode 100644 MdePkg/Library/BaseMemoryLibSse2/X64/CopyMem.S delete mode 100644 MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem16.S delete mode 100644 MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem32.S delete mode 100644 MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem64.S delete mode 100644 MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem8.S delete mode 100644 MdePkg/Library/BaseMemoryLibSse2/X64/SetMem.S delete mode 100644 MdePkg/Library/BaseMemoryLibSse2/X64/SetMem16.S delete mode 100644 MdePkg/Library/BaseMemoryLibSse2/X64/SetMem32.S delete mode 100644 MdePkg/Library/BaseMemoryLibSse2/X64/SetMem64.S delete mode 100644 MdePkg/Library/BaseMemoryLibSse2/X64/ZeroMem.S (limited to 'MdePkg/Library/BaseMemoryLibSse2/X64') diff --git a/MdePkg/Library/BaseMemoryLibSse2/X64/CompareMem.S b/MdePkg/Library/BaseMemoryLibSse2/X64/CompareMem.S deleted file mode 100644 index 26ed8dd866..0000000000 --- a/MdePkg/Library/BaseMemoryLibSse2/X64/CompareMem.S +++ /dev/null @@ -1,59 +0,0 @@ -# -# ConvertAsm.py: Automatically generated from CompareMem.asm -# -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006 - 2009, 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: -# -# CompareMem.S -# -# Abstract: -# -# CompareMem function -# -# Notes: -# -# The following BaseMemoryLib instances contain the same copy of this file: -# -# BaseMemoryLibRepStr -# BaseMemoryLibMmx -# BaseMemoryLibSse2 -# BaseMemoryLibOptDxe -# BaseMemoryLibOptPei -# -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# INTN -# EFIAPI -# InternalMemCompareMem ( -# IN CONST VOID *DestinationBuffer, -# IN CONST VOID *SourceBuffer, -# IN UINTN Length -# ); -#------------------------------------------------------------------------------ -ASM_GLOBAL ASM_PFX(InternalMemCompareMem) -ASM_PFX(InternalMemCompareMem): - pushq %rsi - pushq %rdi - movq %rcx, %rsi - movq %rdx, %rdi - movq %r8, %rcx - repe cmpsb - movzbq -1(%rsi) , %rax - movzbq -1(%rdi) , %rdx - subq %rdx, %rax - popq %rdi - popq %rsi - ret - diff --git a/MdePkg/Library/BaseMemoryLibSse2/X64/CopyMem.S b/MdePkg/Library/BaseMemoryLibSse2/X64/CopyMem.S deleted file mode 100644 index bbe433d360..0000000000 --- a/MdePkg/Library/BaseMemoryLibSse2/X64/CopyMem.S +++ /dev/null @@ -1,83 +0,0 @@ -# -# ConvertAsm.py: Automatically generated from CopyMem.asm -# -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006 - 2018, 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: -# -# CopyMem.S -# -# Abstract: -# -# CopyMem function -# -# Notes: -# -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# VOID * -# EFIAPI -# InternalMemCopyMem ( -# IN VOID *Destination, -# IN VOID *Source, -# IN UINTN Count -# ) -#------------------------------------------------------------------------------ -ASM_GLOBAL ASM_PFX(InternalMemCopyMem) -ASM_PFX(InternalMemCopyMem): - pushq %rsi - pushq %rdi - movq %rdx, %rsi # rsi <- Source - movq %rcx, %rdi # rdi <- Destination - leaq -1(%rsi, %r8,), %r9 # r9 <- Last byte of Source - cmpq %rdi, %rsi - movq %rdi, %rax # rax <- Destination as return value - jae L0 # Copy forward if Source > Destination - cmpq %rdi, %r9 # Overlapped? - jae L_CopyBackward # Copy backward if overlapped -L0: - xorq %rcx, %rcx - subq %rdi, %rcx # rcx <- -rdi - andq $15, %rcx # rcx + rsi should be 16 bytes aligned - jz L1 # skip if rcx == 0 - cmpq %r8, %rcx - cmova %r8, %rcx - subq %rcx, %r8 - rep movsb -L1: - movq %r8, %rcx - andq $15, %r8 - shrq $4, %rcx # rcx <- # of DQwords to copy - jz L_CopyBytes - movdqa %xmm0, 0x18(%rsp) # save xmm0 on stack -L2: - movdqu (%rsi), %xmm0 # rsi may not be 16-byte aligned - movntdq %xmm0, (%rdi) # rdi should be 16-byte aligned - addq $16, %rsi - addq $16, %rdi - loop L2 - mfence - movdqa 0x18(%rsp), %xmm0 # restore xmm0 - jmp L_CopyBytes # copy remaining bytes -L_CopyBackward: - movq %r9, %rsi # rsi <- Last byte of Source - leaq -1(%rdi, %r8,), %rdi # rdi <- Last byte of Destination - std -L_CopyBytes: - movq %r8, %rcx - rep movsb - cld - popq %rdi - popq %rsi - ret diff --git a/MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem16.S b/MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem16.S deleted file mode 100644 index 282dc3cd12..0000000000 --- a/MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem16.S +++ /dev/null @@ -1,56 +0,0 @@ -# -# ConvertAsm.py: Automatically generated from ScanMem16.asm -# -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006 - 2009, 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: -# -# ScanMem16.S -# -# Abstract: -# -# ScanMem16 function -# -# Notes: -# -# The following BaseMemoryLib instances contain the same copy of this file: -# -# BaseMemoryLibRepStr -# BaseMemoryLibMmx -# BaseMemoryLibSse2 -# BaseMemoryLibOptDxe -# BaseMemoryLibOptPei -# -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# CONST VOID * -# EFIAPI -# InternalMemScanMem16 ( -# IN CONST VOID *Buffer, -# IN UINTN Length, -# IN UINT16 Value -# ); -#------------------------------------------------------------------------------ -ASM_GLOBAL ASM_PFX(InternalMemScanMem16) -ASM_PFX(InternalMemScanMem16): - pushq %rdi - movq %rcx, %rdi - movq %rdx, %rcx - movq %r8, %rax - repne scasw - leaq -2(%rdi), %rax - cmovnz %rcx, %rax # set rax to 0 if not found - popq %rdi - ret - diff --git a/MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem32.S b/MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem32.S deleted file mode 100644 index eb91dafb85..0000000000 --- a/MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem32.S +++ /dev/null @@ -1,56 +0,0 @@ -# -# ConvertAsm.py: Automatically generated from ScanMem32.asm -# -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006 - 2009, 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: -# -# ScanMem32.S -# -# Abstract: -# -# ScanMem32 function -# -# Notes: -# -# The following BaseMemoryLib instances contain the same copy of this file: -# -# BaseMemoryLibRepStr -# BaseMemoryLibMmx -# BaseMemoryLibSse2 -# BaseMemoryLibOptDxe -# BaseMemoryLibOptPei -# -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# CONST VOID * -# EFIAPI -# InternalMemScanMem32 ( -# IN CONST VOID *Buffer, -# IN UINTN Length, -# IN UINT32 Value -# ); -#------------------------------------------------------------------------------ -ASM_GLOBAL ASM_PFX(InternalMemScanMem32) -ASM_PFX(InternalMemScanMem32): - pushq %rdi - movq %rcx, %rdi - movq %rdx, %rcx - movq %r8, %rax - repne scasl - leaq -4(%rdi), %rax - cmovnz %rcx, %rax # set rax to 0 if not found - popq %rdi - ret - diff --git a/MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem64.S b/MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem64.S deleted file mode 100644 index 20d20aa3c3..0000000000 --- a/MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem64.S +++ /dev/null @@ -1,56 +0,0 @@ -# -# ConvertAsm.py: Automatically generated from ScanMem64.asm -# -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006 - 2009, 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: -# -# ScanMem64.S -# -# Abstract: -# -# ScanMem64 function -# -# Notes: -# -# The following BaseMemoryLib instances contain the same copy of this file: -# -# BaseMemoryLibRepStr -# BaseMemoryLibMmx -# BaseMemoryLibSse2 -# BaseMemoryLibOptDxe -# BaseMemoryLibOptPei -# -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# CONST VOID * -# EFIAPI -# InternalMemScanMem64 ( -# IN CONST VOID *Buffer, -# IN UINTN Length, -# IN UINT64 Value -# ); -#------------------------------------------------------------------------------ -ASM_GLOBAL ASM_PFX(InternalMemScanMem64) -ASM_PFX(InternalMemScanMem64): - pushq %rdi - movq %rcx, %rdi - movq %rdx, %rcx - movq %r8, %rax - repne scasq - leaq -8(%rdi), %rax - cmovnz %rcx, %rax # set rax to 0 if not found - popq %rdi - ret - diff --git a/MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem8.S b/MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem8.S deleted file mode 100644 index b1715ea728..0000000000 --- a/MdePkg/Library/BaseMemoryLibSse2/X64/ScanMem8.S +++ /dev/null @@ -1,56 +0,0 @@ -# -# ConvertAsm.py: Automatically generated from ScanMem8.asm -# -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006 - 2009, 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: -# -# ScanMem8.S -# -# Abstract: -# -# ScanMem8 function -# -# Notes: -# -# The following BaseMemoryLib instances contain the same copy of this file: -# -# BaseMemoryLibRepStr -# BaseMemoryLibMmx -# BaseMemoryLibSse2 -# BaseMemoryLibOptDxe -# BaseMemoryLibOptPei -# -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# CONST VOID * -# EFIAPI -# InternalMemScanMem8 ( -# IN CONST VOID *Buffer, -# IN UINTN Length, -# IN UINT8 Value -# ); -#------------------------------------------------------------------------------ -ASM_GLOBAL ASM_PFX(InternalMemScanMem8) -ASM_PFX(InternalMemScanMem8): - pushq %rdi - movq %rcx, %rdi - movq %rdx, %rcx - movq %r8, %rax - repne scasb - leaq -1(%rdi), %rax - cmovnz %rcx, %rax # set rax to 0 if not found - popq %rdi - ret - diff --git a/MdePkg/Library/BaseMemoryLibSse2/X64/SetMem.S b/MdePkg/Library/BaseMemoryLibSse2/X64/SetMem.S deleted file mode 100644 index eb4ce80e1e..0000000000 --- a/MdePkg/Library/BaseMemoryLibSse2/X64/SetMem.S +++ /dev/null @@ -1,72 +0,0 @@ -# -# ConvertAsm.py: Automatically generated from SetMem.asm -# -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006 - 2009, 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: -# -# SetMem.S -# -# Abstract: -# -# SetMem function -# -# Notes: -# -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# VOID * -# EFIAPI -# InternalMemSetMem ( -# IN VOID *Buffer, -# IN UINTN Count, -# IN UINT8 Value -# ) -#------------------------------------------------------------------------------ -ASM_GLOBAL ASM_PFX(InternalMemSetMem) -ASM_PFX(InternalMemSetMem): - pushq %rdi - movq %rcx, %rdi # rdi <- Buffer - movb %r8b, %al # al <- Value - movq %rdi, %r9 # r9 <- Buffer as return value - xorq %rcx, %rcx - subq %rdi, %rcx - andq $15, %rcx # rcx + rdi aligns on 16-byte boundary - jz L0 - cmpq %rdx, %rcx - cmova %rdx, %rcx - subq %rcx, %rdx - rep stosb -L0: - movq %rdx, %rcx - andq $15, %rdx - shrq $4, %rcx - jz L_SetBytes - movb %al, %ah # ax <- Value repeats twice - movdqa %xmm0, 0x10(%rsp) # save xmm0 - movd %eax, %xmm0 # xmm0[0..16] <- Value repeats twice - pshuflw $0, %xmm0, %xmm0 # xmm0[0..63] <- Value repeats 8 times - movlhps %xmm0, %xmm0 # xmm0 <- Value repeats 16 times -L1: - movntdq %xmm0, (%rdi) # rdi should be 16-byte aligned - add $16, %rdi - loop L1 - mfence - movdqa 0x10(%rsp), %xmm0 # restore xmm0 -L_SetBytes: - movl %edx, %ecx # high 32 bits of rcx are always zero - rep stosb - movq %r9, %rax # rax <- Return value - popq %rdi - ret diff --git a/MdePkg/Library/BaseMemoryLibSse2/X64/SetMem16.S b/MdePkg/Library/BaseMemoryLibSse2/X64/SetMem16.S deleted file mode 100644 index 74fef09255..0000000000 --- a/MdePkg/Library/BaseMemoryLibSse2/X64/SetMem16.S +++ /dev/null @@ -1,70 +0,0 @@ -# -# ConvertAsm.py: Automatically generated from SetMem16.asm -# -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006 - 2009, 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: -# -# SetMem16.S -# -# Abstract: -# -# SetMem16 function -# -# Notes: -# -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# VOID * -# EFIAPI -# InternalMemSetMem16 ( -# IN VOID *Buffer, -# IN UINTN Count, -# IN UINT16 Value -# ) -#------------------------------------------------------------------------------ -ASM_GLOBAL ASM_PFX(InternalMemSetMem16) -ASM_PFX(InternalMemSetMem16): - pushq %rdi - movq %rcx, %rdi - movq %rdi, %r9 - xorq %rcx, %rcx - subq %rdi, %rcx - andq $15, %rcx - movq %r8, %rax - jz L0 - shrq $1, %rcx - cmpq %rdx, %rcx - cmova %rdx, %rcx - subq %rcx, %rdx - rep stosw -L0: - movq %rdx, %rcx - andl $7, %edx - shrq $3, %rcx - jz L_SetWords - movd %eax, %xmm0 - pshuflw $0, %xmm0, %xmm0 - movlhps %xmm0, %xmm0 -L1: - movntdq %xmm0, (%rdi) - addq $16, %rdi - loop L1 - mfence -L_SetWords: - movl %edx, %ecx - rep stosw - movq %r9, %rax - popq %rdi - ret diff --git a/MdePkg/Library/BaseMemoryLibSse2/X64/SetMem32.S b/MdePkg/Library/BaseMemoryLibSse2/X64/SetMem32.S deleted file mode 100644 index 24103cf509..0000000000 --- a/MdePkg/Library/BaseMemoryLibSse2/X64/SetMem32.S +++ /dev/null @@ -1,69 +0,0 @@ -# -# ConvertAsm.py: Automatically generated from SetMem32.asm -# -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006 - 2009, 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 -# ); -#------------------------------------------------------------------------------ -ASM_GLOBAL ASM_PFX(InternalMemSetMem32) -ASM_PFX(InternalMemSetMem32): - pushq %rdi - movq %rcx, %rdi - movq %rdi, %r9 - xorq %rcx, %rcx - subq %rdi, %rcx - andq $15, %rcx - movq %r8, %rax - jz L0 - shrq $2, %rcx - cmpq %rdx, %rcx - cmova %rdx, %rcx - subq %rcx, %rdx - rep stosl -L0: - movq %rdx, %rcx - andl $3, %edx - shrq $2, %rcx - jz L_SetDwords - movd %eax, %xmm0 - pshufd $0, %xmm0, %xmm0 -L1: - movntdq %xmm0, (%rdi) - addq $16, %rdi - loop L1 - mfence -L_SetDwords: - movl %edx, %ecx - rep stosl - movq %r9, %rax - popq %rdi - ret diff --git a/MdePkg/Library/BaseMemoryLibSse2/X64/SetMem64.S b/MdePkg/Library/BaseMemoryLibSse2/X64/SetMem64.S deleted file mode 100644 index c44ec08ae6..0000000000 --- a/MdePkg/Library/BaseMemoryLibSse2/X64/SetMem64.S +++ /dev/null @@ -1,60 +0,0 @@ -# -# ConvertAsm.py: Automatically generated from SetMem64.asm -# -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006 - 2009, 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: -# -# SetMem64.S -# -# Abstract: -# -# SetMem64 function -# -# Notes: -# -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# VOID * -# InternalMemSetMem64 ( -# IN VOID *Buffer, -# IN UINTN Count, -# IN UINT64 Value -# ) -#------------------------------------------------------------------------------ -ASM_GLOBAL ASM_PFX(InternalMemSetMem64) -ASM_PFX(InternalMemSetMem64): - movq %rcx, %rax # rax <- Buffer - xchgq %rdx, %rcx # rcx <- Count & rdx <- Buffer - testb $8, %dl - movd %r8, %xmm0 - jz L0 - movq %r8, (%rdx) - addq $8, %rdx - decq %rcx -L0: - shrq $1, %rcx - jz L_SetQwords - movlhps %xmm0, %xmm0 -L1: - movntdq %xmm0, (%rdx) - leaq 16(%rdx), %rdx - loop L1 - mfence -L_SetQwords: - jnc L2 - movq %r8, (%rdx) -L2: - ret - diff --git a/MdePkg/Library/BaseMemoryLibSse2/X64/ZeroMem.S b/MdePkg/Library/BaseMemoryLibSse2/X64/ZeroMem.S deleted file mode 100644 index 3b00ce7309..0000000000 --- a/MdePkg/Library/BaseMemoryLibSse2/X64/ZeroMem.S +++ /dev/null @@ -1,65 +0,0 @@ -# -# ConvertAsm.py: Automatically generated from ZeroMem.asm -# -#------------------------------------------------------------------------------ -# -# Copyright (c) 2006 - 2009, 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: -# -# ZeroMem.S -# -# Abstract: -# -# ZeroMem function -# -# Notes: -# -#------------------------------------------------------------------------------ - - -#------------------------------------------------------------------------------ -# VOID * -# InternalMemZeroMem ( -# IN VOID *Buffer, -# IN UINTN Count -# ); -#------------------------------------------------------------------------------ -ASM_GLOBAL ASM_PFX(InternalMemZeroMem) -ASM_PFX(InternalMemZeroMem): - pushq %rdi - movq %rcx, %rdi - xorq %rcx, %rcx - xorl %eax, %eax - subq %rdi, %rcx - andq $15, %rcx - movq %rdi, %r8 - jz L0 - cmpq %rdx, %rcx - cmova %rdx, %rcx - subq %rcx, %rdx - rep stosb -L0: - movq %rdx, %rcx - andl $15, %edx - shrq $4, %rcx - jz L_ZeroBytes - pxor %xmm0, %xmm0 -L1: - movntdq %xmm0, (%rdi) # rdi should be 16-byte aligned - addq $16, %rdi - loop L1 - mfence -L_ZeroBytes: - movl %edx, %ecx - rep stosb - movq %r8, %rax - popq %rdi - ret -- cgit v1.2.3