crypto-native: add AES-CTR
[vpp.git] / src / plugins / crypto_native / CMakeLists.txt
index 9fc3e7d..9b60916 100644 (file)
 # limitations under the License.
 
 if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64.*|x86_64.*|AMD64.*")
-  list(APPEND VARIANTS "sse42\;-march=silvermont")
-  list(APPEND VARIANTS "avx2\;-march=core-avx2")
-  if(compiler_flag_march_skylake_avx512)
-    list(APPEND VARIANTS "avx512\;-march=skylake-avx512")
+  list(APPEND VARIANTS "slm\;-march=silvermont")
+  list(APPEND VARIANTS "hsw\;-march=haswell")
+  if(compiler_flag_march_skylake_avx512 AND compiler_flag_mprefer_vector_width_256)
+    list(APPEND VARIANTS "skx\;-march=skylake-avx512 -mprefer-vector-width=256")
   endif()
-  if(compiler_flag_march_icelake_client)
-    list(APPEND VARIANTS "vaesni\;-march=icelake-client")
+  if(compiler_flag_march_icelake_client AND compiler_flag_mprefer_vector_width_512)
+    list(APPEND VARIANTS "icl\;-march=icelake-client -mprefer-vector-width=512")
   endif()
-  set (COMPILE_FILES aes_cbc.c aes_gcm.c)
+  if(compiler_flag_march_alderlake)
+    list(APPEND VARIANTS "adl\;-march=alderlake -mprefer-vector-width=256")
+  endif()
+  set (COMPILE_FILES aes_cbc.c aes_gcm.c aes_ctr.c)
   set (COMPILE_OPTS -Wall -fno-common -maes)
 endif()
 
 if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)")
-  list(APPEND VARIANTS "armv8\;-march=native")
-  set (COMPILE_FILES aes_cbc.c)
+  list(APPEND VARIANTS "armv8\;-march=armv8.1-a+crc+crypto")
+  set (COMPILE_FILES aes_cbc.c aes_gcm.c aes_ctr.c)
   set (COMPILE_OPTS -Wall -fno-common)
 endif()
 
@@ -42,6 +45,7 @@ foreach(VARIANT ${VARIANTS})
   set(l crypto_native_${v})
   add_library(${l} OBJECT ${COMPILE_FILES})
   set_target_properties(${l} PROPERTIES POSITION_INDEPENDENT_CODE ON)
+  separate_arguments(f)
   target_compile_options(${l} PUBLIC ${f} ${COMPILE_OPTS})
   target_sources(crypto_native_plugin PRIVATE $<TARGET_OBJECTS:${l}>)
 endforeach()