#\r
# Abstract:\r
#\r
-# Component description file for BaseMemoryLib.\r
+# Component description file for BaseMemoryLib. This instance is not the \r
+# BaseMemoryLib in EdkII but almost BaseMemoryLibRepStr.\r
+# Use REP string instructions for Ia32 and X64 for high performance and small size\r
+# Use C implementation for IPF and EBC\r
#\r
#--*/\r
\r
COMPONENT_TYPE = LIBRARY\r
\r
[sources.common]\r
- CopyMem.c\r
MemLibGuid.c\r
- MemLibGeneric.c\r
CopyMemWrapper.c\r
SetMemWrapper.c\r
SetMem16Wrapper.c\r
ScanMem16Wrapper.c\r
ScanMem32Wrapper.c\r
ScanMem64Wrapper.c\r
- SetMem.c\r
\r
[sources.ia32]\r
+ Ia32/CopyMem.asm\r
+ Ia32/SetMem.asm\r
+ Ia32/SetMem16.asm\r
+ Ia32/SetMem32.asm\r
+ Ia32/SetMem64.asm\r
+ Ia32/ZeroMem.asm\r
+ Ia32/CompareMem.asm\r
+ Ia32/ScanMem8.asm\r
+ Ia32/ScanMem16.asm\r
+ Ia32/ScanMem32.asm\r
+ Ia32/ScanMem64.asm\r
\r
[sources.x64]\r
+ X64/CopyMem.asm\r
+ X64/SetMem.asm\r
+ X64/SetMem16.asm\r
+ X64/SetMem32.asm\r
+ X64/SetMem64.asm\r
+ X64/ZeroMem.asm\r
+ X64/CompareMem.asm\r
+ X64/ScanMem8.asm\r
+ X64/ScanMem16.asm\r
+ X64/ScanMem32.asm\r
+ X64/ScanMem64.asm\r
\r
[sources.ipf]\r
+ Ipf/CopyMem.c\r
+ Ipf/MemLibGeneric.c\r
+ Ipf/SetMem.c\r
\r
[sources.ebc]\r
+ Ebc/CopyMem.c\r
+ Ebc/MemLibGeneric.c\r
+ Ebc/SetMem.c\r
\r
[includes.common]\r
.\r
\r
[nmake.common]\r
C_FLAGS = $(C_FLAGS) /D EDKII_GLUE_LIBRARY_IMPLEMENTATION\r
- LIB_STD_FLAGS = $(LIB_STD_FLAGS) /IGNORE:4006\r
+ LIB_STD_FLAGS = $(LIB_STD_FLAGS) /IGNORE:4006 /IGNORE:4221\r
\r
[nmake.ia32]\r
C_FLAGS = $(C_FLAGS) /D MDE_CPU_IA32\r
\r
[nmake.ebc]\r
EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /D EDKII_GLUE_LIBRARY_IMPLEMENTATION\r
- EBC_LIB_STD_FLAGS = $(EBC_LIB_STD_FLAGS) /IGNORE:4006\r
+ EBC_LIB_STD_FLAGS = $(EBC_LIB_STD_FLAGS) /IGNORE:4006 /IGNORE:4221\r
EBC_C_STD_FLAGS = $(EBC_C_STD_FLAGS) /D MDE_CPU_EBC\r