162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# x86 crypto algorithms
462306a36Sopenharmony_ci
562306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_TWOFISH_586) += twofish-i586.o
662306a36Sopenharmony_citwofish-i586-y := twofish-i586-asm_32.o twofish_glue.o
762306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_TWOFISH_X86_64) += twofish-x86_64.o
862306a36Sopenharmony_citwofish-x86_64-y := twofish-x86_64-asm_64.o twofish_glue.o
962306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_TWOFISH_X86_64_3WAY) += twofish-x86_64-3way.o
1062306a36Sopenharmony_citwofish-x86_64-3way-y := twofish-x86_64-asm_64-3way.o twofish_glue_3way.o
1162306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_TWOFISH_AVX_X86_64) += twofish-avx-x86_64.o
1262306a36Sopenharmony_citwofish-avx-x86_64-y := twofish-avx-x86_64-asm_64.o twofish_avx_glue.o
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SERPENT_SSE2_586) += serpent-sse2-i586.o
1562306a36Sopenharmony_ciserpent-sse2-i586-y := serpent-sse2-i586-asm_32.o serpent_sse2_glue.o
1662306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SERPENT_SSE2_X86_64) += serpent-sse2-x86_64.o
1762306a36Sopenharmony_ciserpent-sse2-x86_64-y := serpent-sse2-x86_64-asm_64.o serpent_sse2_glue.o
1862306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SERPENT_AVX_X86_64) += serpent-avx-x86_64.o
1962306a36Sopenharmony_ciserpent-avx-x86_64-y := serpent-avx-x86_64-asm_64.o serpent_avx_glue.o
2062306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SERPENT_AVX2_X86_64) += serpent-avx2.o
2162306a36Sopenharmony_ciserpent-avx2-y := serpent-avx2-asm_64.o serpent_avx2_glue.o
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_DES3_EDE_X86_64) += des3_ede-x86_64.o
2462306a36Sopenharmony_cides3_ede-x86_64-y := des3_ede-asm_64.o des3_ede_glue.o
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_CAMELLIA_X86_64) += camellia-x86_64.o
2762306a36Sopenharmony_cicamellia-x86_64-y := camellia-x86_64-asm_64.o camellia_glue.o
2862306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64) += camellia-aesni-avx-x86_64.o
2962306a36Sopenharmony_cicamellia-aesni-avx-x86_64-y := camellia-aesni-avx-asm_64.o camellia_aesni_avx_glue.o
3062306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64) += camellia-aesni-avx2.o
3162306a36Sopenharmony_cicamellia-aesni-avx2-y := camellia-aesni-avx2-asm_64.o camellia_aesni_avx2_glue.o
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_BLOWFISH_X86_64) += blowfish-x86_64.o
3462306a36Sopenharmony_ciblowfish-x86_64-y := blowfish-x86_64-asm_64.o blowfish_glue.o
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_CAST5_AVX_X86_64) += cast5-avx-x86_64.o
3762306a36Sopenharmony_cicast5-avx-x86_64-y := cast5-avx-x86_64-asm_64.o cast5_avx_glue.o
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_CAST6_AVX_X86_64) += cast6-avx-x86_64.o
4062306a36Sopenharmony_cicast6-avx-x86_64-y := cast6-avx-x86_64-asm_64.o cast6_avx_glue.o
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_AEGIS128_AESNI_SSE2) += aegis128-aesni.o
4362306a36Sopenharmony_ciaegis128-aesni-y := aegis128-aesni-asm.o aegis128-aesni-glue.o
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_CHACHA20_X86_64) += chacha-x86_64.o
4662306a36Sopenharmony_cichacha-x86_64-y := chacha-avx2-x86_64.o chacha-ssse3-x86_64.o chacha_glue.o
4762306a36Sopenharmony_cichacha-x86_64-$(CONFIG_AS_AVX512) += chacha-avx512vl-x86_64.o
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_AES_NI_INTEL) += aesni-intel.o
5062306a36Sopenharmony_ciaesni-intel-y := aesni-intel_asm.o aesni-intel_glue.o
5162306a36Sopenharmony_ciaesni-intel-$(CONFIG_64BIT) += aesni-intel_avx-x86_64.o aes_ctrby8_avx-x86_64.o
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SHA1_SSSE3) += sha1-ssse3.o
5462306a36Sopenharmony_cisha1-ssse3-y := sha1_avx2_x86_64_asm.o sha1_ssse3_asm.o sha1_ssse3_glue.o
5562306a36Sopenharmony_cisha1-ssse3-$(CONFIG_AS_SHA1_NI) += sha1_ni_asm.o
5662306a36Sopenharmony_ci
5762306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SHA256_SSSE3) += sha256-ssse3.o
5862306a36Sopenharmony_cisha256-ssse3-y := sha256-ssse3-asm.o sha256-avx-asm.o sha256-avx2-asm.o sha256_ssse3_glue.o
5962306a36Sopenharmony_cisha256-ssse3-$(CONFIG_AS_SHA256_NI) += sha256_ni_asm.o
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SHA512_SSSE3) += sha512-ssse3.o
6262306a36Sopenharmony_cisha512-ssse3-y := sha512-ssse3-asm.o sha512-avx-asm.o sha512-avx2-asm.o sha512_ssse3_glue.o
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_BLAKE2S_X86) += libblake2s-x86_64.o
6562306a36Sopenharmony_cilibblake2s-x86_64-y := blake2s-core.o blake2s-glue.o
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL) += ghash-clmulni-intel.o
6862306a36Sopenharmony_cighash-clmulni-intel-y := ghash-clmulni-intel_asm.o ghash-clmulni-intel_glue.o
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_POLYVAL_CLMUL_NI) += polyval-clmulni.o
7162306a36Sopenharmony_cipolyval-clmulni-y := polyval-clmulni_asm.o polyval-clmulni_glue.o
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_CRC32C_INTEL) += crc32c-intel.o
7462306a36Sopenharmony_cicrc32c-intel-y := crc32c-intel_glue.o
7562306a36Sopenharmony_cicrc32c-intel-$(CONFIG_64BIT) += crc32c-pcl-intel-asm_64.o
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_CRC32_PCLMUL) += crc32-pclmul.o
7862306a36Sopenharmony_cicrc32-pclmul-y := crc32-pclmul_asm.o crc32-pclmul_glue.o
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_CRCT10DIF_PCLMUL) += crct10dif-pclmul.o
8162306a36Sopenharmony_cicrct10dif-pclmul-y := crct10dif-pcl-asm_64.o crct10dif-pclmul_glue.o
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_POLY1305_X86_64) += poly1305-x86_64.o
8462306a36Sopenharmony_cipoly1305-x86_64-y := poly1305-x86_64-cryptogams.o poly1305_glue.o
8562306a36Sopenharmony_citargets += poly1305-x86_64-cryptogams.S
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_NHPOLY1305_SSE2) += nhpoly1305-sse2.o
8862306a36Sopenharmony_cinhpoly1305-sse2-y := nh-sse2-x86_64.o nhpoly1305-sse2-glue.o
8962306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_NHPOLY1305_AVX2) += nhpoly1305-avx2.o
9062306a36Sopenharmony_cinhpoly1305-avx2-y := nh-avx2-x86_64.o nhpoly1305-avx2-glue.o
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_CURVE25519_X86) += curve25519-x86_64.o
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SM3_AVX_X86_64) += sm3-avx-x86_64.o
9562306a36Sopenharmony_cism3-avx-x86_64-y := sm3-avx-asm_64.o sm3_avx_glue.o
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64) += sm4-aesni-avx-x86_64.o
9862306a36Sopenharmony_cism4-aesni-avx-x86_64-y := sm4-aesni-avx-asm_64.o sm4_aesni_avx_glue.o
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64) += sm4-aesni-avx2-x86_64.o
10162306a36Sopenharmony_cism4-aesni-avx2-x86_64-y := sm4-aesni-avx2-asm_64.o sm4_aesni_avx2_glue.o
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64) += aria-aesni-avx-x86_64.o
10462306a36Sopenharmony_ciaria-aesni-avx-x86_64-y := aria-aesni-avx-asm_64.o aria_aesni_avx_glue.o
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64) += aria-aesni-avx2-x86_64.o
10762306a36Sopenharmony_ciaria-aesni-avx2-x86_64-y := aria-aesni-avx2-asm_64.o aria_aesni_avx2_glue.o
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ciobj-$(CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64) += aria-gfni-avx512-x86_64.o
11062306a36Sopenharmony_ciaria-gfni-avx512-x86_64-y := aria-gfni-avx512-asm_64.o aria_gfni_avx512_glue.o
11162306a36Sopenharmony_ci
11262306a36Sopenharmony_ciquiet_cmd_perlasm = PERLASM $@
11362306a36Sopenharmony_ci      cmd_perlasm = $(PERL) $< > $@
11462306a36Sopenharmony_ci$(obj)/%.S: $(src)/%.pl FORCE
11562306a36Sopenharmony_ci	$(call if_changed,perlasm)
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci# Disable GCOV in odd or sensitive code
11862306a36Sopenharmony_ciGCOV_PROFILE_curve25519-x86_64.o := n
119