## @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. All rights reserved.
# Portions copyright (c) 2010, Apple Inc. 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