--- /dev/null
+## @file\r
+# Instance of Base Memory Library with some ARM vldm/vstm assembly.\r
+#\r
+# This is a copy of the MdePkg BaseMemoryLib with the CopyMem and \r
+# SetMem worker functions replaced with assembler that uses \r
+# vldm/vstm (part of NEON SIMD, optional in ARMv7-A).\r
+#\r
+# Note: You need to enable NEON in SEC to use this library\r
+# // Enable NEON register in case folks want to use them for optimizations (CopyMem)\r
+# mrc p15, 0, r0, c1, c0, 2\r
+# orr r0, r0, #0x00f00000 // Enable VPF access (V* instructions)\r
+# mcr p15, 0, r0, c1, c0, 2\r
+# mov r0, #0x40000000 // Set EN bit in FPEXC\r
+# msr FPEXC,r0\r
+#\r
+# Copyright (c) 2007 - 2010, Intel Corporation.\r
+# Portions Copyright (c) 2010, Apple, Inc. All rights reserved.\r
+#\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
+# 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
+#\r
+##\r
+\r
+[Defines]\r
+ INF_VERSION = 0x00010005\r
+ BASE_NAME = BaseMemoryLibVstm\r
+ FILE_GUID = 09EE1E8D-7A2E-4573-8117-68A18569C1F5\r
+ MODULE_TYPE = BASE\r
+ VERSION_STRING = 1.0\r
+ LIBRARY_CLASS = BaseMemoryLib \r
+\r
+\r
+#\r
+# VALID_ARCHITECTURES = ARM\r
+#\r
+\r
+[Sources.ARM]\r
+ ScanMem64Wrapper.c\r
+ ScanMem32Wrapper.c\r
+ ScanMem16Wrapper.c\r
+ ScanMem8Wrapper.c\r
+ ZeroMemWrapper.c\r
+ CompareMemWrapper.c\r
+ SetMem64Wrapper.c\r
+ SetMem32Wrapper.c\r
+ SetMem16Wrapper.c\r
+ SetMemWrapper.c\r
+ CopyMemWrapper.c\r
+ MemLibGeneric.c\r
+ MemLibGuid.c \r
+ MemLibInternals.h\r
+ Arm/CopyMem.asm\r
+ Arm/CopyMem.S\r
+ Arm/SetMem.asm\r
+ Arm/SetMem.S\r
+\r
+\r
+[Packages]\r
+ MdePkg/MdePkg.dec\r
+\r
+[LibraryClasses]\r
+ DebugLib\r
+ BaseLib\r
+\r