// /** @file
// Instance of Base Memory Library using REP string instructions.
//
// Base Memory Library that uses REP string instructions for
// high performance and small size. Optimized for use in PEI.
//
// Copyright (c) 2007 - 2014, Intel Corporation. All rights reserved.<BR>
//
// SPDX-License-Identifier: BSD-2-Clause-Patent
//
// **/


#string STR_MODULE_ABSTRACT             #language en-US "Instance of Base Memory Library using REP string instructions"

#string STR_MODULE_DESCRIPTION          #language en-US "Base Memory Library that uses REP string instructions for high performance and small size. Optimized for use in PEI."

