Add some ldm/vldm optimized CopyMem routines. Add performance macros to BDS
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10388 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
69
ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf
Executable file
69
ArmPkg/Library/BaseMemoryLibVstm/BaseMemoryLibVstm.inf
Executable file
@@ -0,0 +1,69 @@
|
||||
## @file
|
||||
# Instance of Base Memory Library with some ARM vldm/vstm assembly.
|
||||
#
|
||||
# This is a copy of the MdePkg BaseMemoryLib with the CopyMem and
|
||||
# SetMem worker functions replaced with assembler that uses
|
||||
# vldm/vstm (part of NEON SIMD, optional in ARMv7-A).
|
||||
#
|
||||
# Note: You need to enable NEON in SEC to use this library
|
||||
# // Enable NEON register in case folks want to use them for optimizations (CopyMem)
|
||||
# mrc p15, 0, r0, c1, c0, 2
|
||||
# orr r0, r0, #0x00f00000 // Enable VPF access (V* instructions)
|
||||
# mcr p15, 0, r0, c1, c0, 2
|
||||
# mov r0, #0x40000000 // Set EN bit in FPEXC
|
||||
# msr FPEXC,r0
|
||||
#
|
||||
# Copyright (c) 2007 - 2010, Intel Corporation.
|
||||
# Portions Copyright (c) 2010, Apple, Inc. All rights reserved.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = BaseMemoryLibVstm
|
||||
FILE_GUID = 09EE1E8D-7A2E-4573-8117-68A18569C1F5
|
||||
MODULE_TYPE = BASE
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = BaseMemoryLib
|
||||
|
||||
|
||||
#
|
||||
# VALID_ARCHITECTURES = ARM
|
||||
#
|
||||
|
||||
[Sources.ARM]
|
||||
ScanMem64Wrapper.c
|
||||
ScanMem32Wrapper.c
|
||||
ScanMem16Wrapper.c
|
||||
ScanMem8Wrapper.c
|
||||
ZeroMemWrapper.c
|
||||
CompareMemWrapper.c
|
||||
SetMem64Wrapper.c
|
||||
SetMem32Wrapper.c
|
||||
SetMem16Wrapper.c
|
||||
SetMemWrapper.c
|
||||
CopyMemWrapper.c
|
||||
MemLibGeneric.c
|
||||
MemLibGuid.c
|
||||
MemLibInternals.h
|
||||
Arm/CopyMem.asm
|
||||
Arm/CopyMem.S
|
||||
Arm/SetMem.asm
|
||||
Arm/SetMem.S
|
||||
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
DebugLib
|
||||
BaseLib
|
||||
|
Reference in New Issue
Block a user