diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 378c04b110..614ba34e33 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -292,9 +292,6 @@ jobs: # (https://github.com/ziglang/zig/issues/23576). We therefore # only test the C backend and exclude the native examples. # - 0.17 fixes this, so we test the native backends as well. - # - The ABI check is not supported with zig: on AArch64 it passes - # -march=armv8-a+simd and -march=armv8.4-a+sha3, which zig rejects - # since it parses -march as a CPU name. - family: zig version: "0.10" shell: zig0_10 @@ -322,7 +319,6 @@ jobs: darwin: True opt: all examples: True - extra_args: "--no-abicheck" runs-on: ${{ matrix.target.runner }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 diff --git a/.github/workflows/legacy-compilers.yml b/.github/workflows/legacy-compilers.yml index 2bc0d68616..16c8fc2e64 100644 --- a/.github/workflows/legacy-compilers.yml +++ b/.github/workflows/legacy-compilers.yml @@ -194,9 +194,6 @@ jobs: # (https://github.com/ziglang/zig/issues/23576). We therefore # only test the C backend and exclude the native examples. # - 0.17 fixes this, so we test the native backends as well. - # - The ABI check is not supported with zig: on AArch64 it passes - # -march=armv8-a+simd and -march=armv8.4-a+sha3, which zig rejects - # since it parses -march as a CPU name. - family: zig version: "0.10" shell: zig0_10 @@ -244,7 +241,6 @@ jobs: shell: zig0_17 opt: all examples: True - extra_args: "--no-abicheck" runs-on: ${{ matrix.target.runner }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 @@ -435,7 +431,6 @@ jobs: shell: zig0_17 opt: all examples: True - extra_args: "--no-abicheck" runs-on: macos-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 diff --git a/dev/aarch64_clean/src/mlkem_intt_aarch64_asm.S b/dev/aarch64_clean/src/mlkem_intt_aarch64_asm.S index 2f74cf4cae..79de79e251 100644 --- a/dev/aarch64_clean/src/mlkem_intt_aarch64_asm.S +++ b/dev/aarch64_clean/src/mlkem_intt_aarch64_asm.S @@ -51,7 +51,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) @@ -402,5 +403,6 @@ mlk_intt_layer123_start: .unreq ninv_tw /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ - (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) */ diff --git a/dev/aarch64_clean/src/mlkem_ntt_aarch64_asm.S b/dev/aarch64_clean/src/mlkem_ntt_aarch64_asm.S index 1217a31f38..b78a3402cf 100644 --- a/dev/aarch64_clean/src/mlkem_ntt_aarch64_asm.S +++ b/dev/aarch64_clean/src/mlkem_ntt_aarch64_asm.S @@ -51,7 +51,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ @@ -341,4 +342,5 @@ mlk_ntt_layer4567_start: .unreq t3 /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/aarch64_clean/src/mlkem_poly_mulcache_compute_aarch64_asm.S b/dev/aarch64_clean/src/mlkem_poly_mulcache_compute_aarch64_asm.S index 7d59bf1ae3..266deee63f 100644 --- a/dev/aarch64_clean/src/mlkem_poly_mulcache_compute_aarch64_asm.S +++ b/dev/aarch64_clean/src/mlkem_poly_mulcache_compute_aarch64_asm.S @@ -40,7 +40,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ @@ -129,4 +130,5 @@ mlk_poly_mulcache_compute_loop_start: .unreq modulus_twisted /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/aarch64_clean/src/mlkem_poly_reduce_aarch64_asm.S b/dev/aarch64_clean/src/mlkem_poly_reduce_aarch64_asm.S index 1d1847195c..b696069a17 100644 --- a/dev/aarch64_clean/src/mlkem_poly_reduce_aarch64_asm.S +++ b/dev/aarch64_clean/src/mlkem_poly_reduce_aarch64_asm.S @@ -22,7 +22,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ @@ -106,4 +107,5 @@ mlk_poly_reduce_loop_start: .unreq modulus_twisted /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/aarch64_clean/src/mlkem_poly_tobytes_aarch64_asm.S b/dev/aarch64_clean/src/mlkem_poly_tobytes_aarch64_asm.S index ac28c822de..53eca53f76 100644 --- a/dev/aarch64_clean/src/mlkem_poly_tobytes_aarch64_asm.S +++ b/dev/aarch64_clean/src/mlkem_poly_tobytes_aarch64_asm.S @@ -28,7 +28,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_KEYPAIR_API) || \ !defined(MLK_CONFIG_NO_ENCAPS_API)) @@ -96,5 +97,6 @@ mlk_poly_tobytes_loop_start: .unreq count /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ - (!MLK_CONFIG_NO_KEYPAIR_API || !MLK_CONFIG_NO_ENCAPS_API) */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_KEYPAIR_API || \ + !MLK_CONFIG_NO_ENCAPS_API) */ diff --git a/dev/aarch64_clean/src/mlkem_poly_tomont_aarch64_asm.S b/dev/aarch64_clean/src/mlkem_poly_tomont_aarch64_asm.S index cf050fff90..0f8894fbe5 100644 --- a/dev/aarch64_clean/src/mlkem_poly_tomont_aarch64_asm.S +++ b/dev/aarch64_clean/src/mlkem_poly_tomont_aarch64_asm.S @@ -22,7 +22,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_KEYPAIR_API) /* simpasm: header-end */ @@ -104,5 +105,5 @@ mlk_poly_tomont_loop: .unreq tmp0 /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ - !MLK_CONFIG_NO_KEYPAIR_API */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_KEYPAIR_API */ diff --git a/dev/aarch64_clean/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S b/dev/aarch64_clean/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S index 97b4ea1ad7..130a871c08 100644 --- a/dev/aarch64_clean/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S +++ b/dev/aarch64_clean/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S @@ -52,7 +52,8 @@ /* Re-implementation of asymmetric base multiplication following @[NeonNTT] */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 2) /* simpasm: header-end */ @@ -256,5 +257,6 @@ mlk_polyvec_basemul_acc_montgomery_cached_k2_loop_start: /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2) */ diff --git a/dev/aarch64_clean/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S b/dev/aarch64_clean/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S index 26b4612bb7..cc2810742e 100644 --- a/dev/aarch64_clean/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S +++ b/dev/aarch64_clean/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S @@ -52,7 +52,8 @@ /* Re-implementation of asymmetric base multiplication following @[NeonNTT] */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 3) /* simpasm: header-end */ @@ -259,5 +260,6 @@ mlk_polyvec_basemul_acc_montgomery_cached_k3_loop_start: .unreq t0 /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 3) */ diff --git a/dev/aarch64_clean/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S b/dev/aarch64_clean/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S index dfc09a075d..42e1bda725 100644 --- a/dev/aarch64_clean/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S +++ b/dev/aarch64_clean/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S @@ -52,7 +52,8 @@ /* Re-implementation of asymmetric base multiplication following @[NeonNTT] */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 4) /* simpasm: header-end */ @@ -269,5 +270,6 @@ mlk_polyvec_basemul_acc_montgomery_cached_k4_loop_start: .unreq t0 /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ diff --git a/dev/aarch64_clean/src/mlkem_rej_uniform_aarch64_asm.S b/dev/aarch64_clean/src/mlkem_rej_uniform_aarch64_asm.S index c0dd83ec77..159c6a83a9 100644 --- a/dev/aarch64_clean/src/mlkem_rej_uniform_aarch64_asm.S +++ b/dev/aarch64_clean/src/mlkem_rej_uniform_aarch64_asm.S @@ -40,7 +40,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ @@ -461,4 +462,5 @@ mlk_rej_uniform_return: #undef STACK_SIZE /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/aarch64_opt/src/mlkem_intt_aarch64_asm.S b/dev/aarch64_opt/src/mlkem_intt_aarch64_asm.S index e24c0165e3..b613ec7a55 100644 --- a/dev/aarch64_opt/src/mlkem_intt_aarch64_asm.S +++ b/dev/aarch64_opt/src/mlkem_intt_aarch64_asm.S @@ -51,7 +51,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) @@ -1423,5 +1424,6 @@ mlk_intt_layer123_start: .unreq ninv_tw /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ - (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) */ diff --git a/dev/aarch64_opt/src/mlkem_ntt_aarch64_asm.S b/dev/aarch64_opt/src/mlkem_ntt_aarch64_asm.S index 7ce1d5ac16..d30b23321c 100644 --- a/dev/aarch64_opt/src/mlkem_ntt_aarch64_asm.S +++ b/dev/aarch64_opt/src/mlkem_ntt_aarch64_asm.S @@ -51,7 +51,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ // Bounds: @@ -1270,4 +1271,5 @@ mlk_ntt_layer4567_start: .unreq t3 /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/aarch64_opt/src/mlkem_poly_mulcache_compute_aarch64_asm.S b/dev/aarch64_opt/src/mlkem_poly_mulcache_compute_aarch64_asm.S index 4143959118..209ad0e27a 100644 --- a/dev/aarch64_opt/src/mlkem_poly_mulcache_compute_aarch64_asm.S +++ b/dev/aarch64_opt/src/mlkem_poly_mulcache_compute_aarch64_asm.S @@ -40,7 +40,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ /* Montgomery multiplication, with precomputed Montgomery twist @@ -279,4 +280,5 @@ mlk_poly_mulcache_compute_loop_start: .unreq modulus_twisted /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/aarch64_opt/src/mlkem_poly_reduce_aarch64_asm.S b/dev/aarch64_opt/src/mlkem_poly_reduce_aarch64_asm.S index 7db0995d06..8c740e548f 100644 --- a/dev/aarch64_opt/src/mlkem_poly_reduce_aarch64_asm.S +++ b/dev/aarch64_opt/src/mlkem_poly_reduce_aarch64_asm.S @@ -22,7 +22,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ /* Barrett reduction */ @@ -332,4 +333,5 @@ mlk_poly_reduce_loop_start: .unreq modulus_twisted /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/aarch64_opt/src/mlkem_poly_tobytes_aarch64_asm.S b/dev/aarch64_opt/src/mlkem_poly_tobytes_aarch64_asm.S index ce4da552bf..3d44923005 100644 --- a/dev/aarch64_opt/src/mlkem_poly_tobytes_aarch64_asm.S +++ b/dev/aarch64_opt/src/mlkem_poly_tobytes_aarch64_asm.S @@ -28,7 +28,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_KEYPAIR_API) || \ !defined(MLK_CONFIG_NO_ENCAPS_API)) @@ -256,5 +257,6 @@ mlk_poly_tobytes_loop_start: .unreq count /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ - (!MLK_CONFIG_NO_KEYPAIR_API || !MLK_CONFIG_NO_ENCAPS_API) */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_KEYPAIR_API || \ + !MLK_CONFIG_NO_ENCAPS_API) */ diff --git a/dev/aarch64_opt/src/mlkem_poly_tomont_aarch64_asm.S b/dev/aarch64_opt/src/mlkem_poly_tomont_aarch64_asm.S index 1dd22fb7af..951da09e18 100644 --- a/dev/aarch64_opt/src/mlkem_poly_tomont_aarch64_asm.S +++ b/dev/aarch64_opt/src/mlkem_poly_tomont_aarch64_asm.S @@ -22,7 +22,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_KEYPAIR_API) /* simpasm: header-end */ @@ -222,5 +223,5 @@ mlk_poly_tomont_loop: .unreq tmp0 /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ - !MLK_CONFIG_NO_KEYPAIR_API */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_KEYPAIR_API */ diff --git a/dev/aarch64_opt/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S b/dev/aarch64_opt/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S index 761ed5d0dc..a62d8e745f 100644 --- a/dev/aarch64_opt/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S +++ b/dev/aarch64_opt/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S @@ -52,7 +52,8 @@ /* Re-implementation of asymmetric base multiplication following @[NeonNTT] */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 2) +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 2) /* simpasm: header-end */ // Input: @@ -586,5 +587,6 @@ mlk_polyvec_basemul_acc_montgomery_cached_k2_loop_start: /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2) */ diff --git a/dev/aarch64_opt/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S b/dev/aarch64_opt/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S index 9294a30d37..306f828089 100644 --- a/dev/aarch64_opt/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S +++ b/dev/aarch64_opt/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S @@ -52,7 +52,8 @@ /* Re-implementation of asymmetric base multiplication following @[NeonNTT] */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 3) +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 3) /* simpasm: header-end */ // Input: @@ -689,5 +690,6 @@ mlk_polyvec_basemul_acc_montgomery_cached_k3_loop_start: .unreq t0 /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 3) */ diff --git a/dev/aarch64_opt/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S b/dev/aarch64_opt/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S index 00c947dca2..a2210aa9e2 100644 --- a/dev/aarch64_opt/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S +++ b/dev/aarch64_opt/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S @@ -52,7 +52,8 @@ /* Re-implementation of asymmetric base multiplication following @[NeonNTT] */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 4) +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 4) /* simpasm: header-end */ // Input: @@ -799,5 +800,6 @@ mlk_polyvec_basemul_acc_montgomery_cached_k4_loop_start: .unreq t0 /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ diff --git a/dev/aarch64_opt/src/mlkem_rej_uniform_aarch64_asm.S b/dev/aarch64_opt/src/mlkem_rej_uniform_aarch64_asm.S index c0dd83ec77..159c6a83a9 100644 --- a/dev/aarch64_opt/src/mlkem_rej_uniform_aarch64_asm.S +++ b/dev/aarch64_opt/src/mlkem_rej_uniform_aarch64_asm.S @@ -40,7 +40,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ @@ -461,4 +462,5 @@ mlk_rej_uniform_return: #undef STACK_SIZE /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S b/dev/fips202/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S index 8143a1e787..307e8bb22d 100644 --- a/dev/fips202/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S +++ b/dev/fips202/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S @@ -33,7 +33,8 @@ */ #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X1_SCALAR) && \ +#if defined(MLK_SYS_AARCH64) && \ + defined(MLK_FIPS202_AARCH64_NEED_X1_SCALAR) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ @@ -470,5 +471,5 @@ mlk_keccak_f1600_x1_scalar_initial: #undef KECCAK_F1600_ROUNDS /* simpasm: footer-start */ -#endif /* MLK_FIPS202_AARCH64_NEED_X1_SCALAR && \ +#endif /* MLK_SYS_AARCH64 && MLK_FIPS202_AARCH64_NEED_X1_SCALAR && \ !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S b/dev/fips202/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S index 949fe79e9c..344300a4f7 100644 --- a/dev/fips202/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S +++ b/dev/fips202/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S @@ -49,10 +49,10 @@ // #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X1_V84A) && \ +#if defined(MLK_SYS_AARCH64_NEON) && defined(__ARM_FEATURE_SHA3) && \ + defined(MLK_FIPS202_AARCH64_NEED_X1_V84A) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) -#if defined(__ARM_FEATURE_SHA3) /* simpasm: header-end */ /****************** REGISTER ALLOCATIONS *******************/ @@ -486,7 +486,7 @@ mlk_keccak_f1600_x1_v84a_loop: #undef KECCAK_F1600_ROUNDS /* simpasm: footer-start */ -#endif /* __ARM_FEATURE_SHA3 */ -#endif /* MLK_FIPS202_AARCH64_NEED_X1_V84A && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ +#endif /* MLK_SYS_AARCH64_NEON && __ARM_FEATURE_SHA3 && \ + MLK_FIPS202_AARCH64_NEED_X1_V84A && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ */ diff --git a/dev/fips202/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S b/dev/fips202/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S index fa288aa39c..4115cd898d 100644 --- a/dev/fips202/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S +++ b/dev/fips202/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S @@ -49,10 +49,10 @@ // #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X2_V84A) && \ +#if defined(MLK_SYS_AARCH64_NEON) && defined(__ARM_FEATURE_SHA3) && \ + defined(MLK_FIPS202_AARCH64_NEED_X2_V84A) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) -#if defined(__ARM_FEATURE_SHA3) /* simpasm: header-end */ /****************** REGISTER ALLOCATIONS *******************/ @@ -432,7 +432,7 @@ mlk_keccak_f1600_x2_v84a_loop: #undef KECCAK_F1600_ROUNDS /* simpasm: footer-start */ -#endif /* __ARM_FEATURE_SHA3 */ -#endif /* MLK_FIPS202_AARCH64_NEED_X2_V84A && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ +#endif /* MLK_SYS_AARCH64_NEON && __ARM_FEATURE_SHA3 && \ + MLK_FIPS202_AARCH64_NEED_X2_V84A && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ */ diff --git a/dev/fips202/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S b/dev/fips202/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S index 9eee8c771d..738b9d5762 100644 --- a/dev/fips202/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S +++ b/dev/fips202/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S @@ -34,7 +34,8 @@ */ #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ @@ -2580,5 +2581,5 @@ mlk_keccak_f1600_x4_v8a_scalar_hybrid_done: #undef STACK_LOC_1 /* simpasm: footer-start */ -#endif /* MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID && \ - !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID \ + && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S b/dev/fips202/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S index 20edd2d212..43a792db8e 100644 --- a/dev/fips202/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S +++ b/dev/fips202/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S @@ -34,10 +34,10 @@ */ #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID) && \ +#if defined(MLK_SYS_AARCH64_NEON) && defined(__ARM_FEATURE_SHA3) && \ + defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) -#if defined(__ARM_FEATURE_SHA3) /* simpasm: header-end */ #define KECCAK_F1600_ROUNDS 24 @@ -2410,7 +2410,7 @@ mlk_keccak_f1600_x4_v8a_v84a_scalar_hybrid_done: #undef STACK_LOC_1 /* simpasm: footer-start */ -#endif /* __ARM_FEATURE_SHA3 */ -#endif /* MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID && \ +#endif /* MLK_SYS_AARCH64_NEON && __ARM_FEATURE_SHA3 && \ + MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID && \ !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/aarch64_symbolic/keccak_f1600_x1_scalar_symbolic.S b/dev/fips202/aarch64_symbolic/keccak_f1600_x1_scalar_symbolic.S index 3f5515b9d0..8fed88c665 100644 --- a/dev/fips202/aarch64_symbolic/keccak_f1600_x1_scalar_symbolic.S +++ b/dev/fips202/aarch64_symbolic/keccak_f1600_x1_scalar_symbolic.S @@ -35,7 +35,8 @@ */ #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X1_SCALAR) && \ +#if defined(MLK_SYS_AARCH64) && \ + defined(MLK_FIPS202_AARCH64_NEED_X1_SCALAR) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ @@ -522,5 +523,5 @@ mlk_keccak_f1600_x1_scalar_end_final: #undef KECCAK_F1600_ROUNDS /* simpasm: footer-start */ -#endif /* MLK_FIPS202_AARCH64_NEED_X1_SCALAR && \ +#endif /* MLK_SYS_AARCH64 && MLK_FIPS202_AARCH64_NEED_X1_SCALAR && \ !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/aarch64_symbolic/keccak_f1600_x4_v8a_scalar_hybrid_clean.S b/dev/fips202/aarch64_symbolic/keccak_f1600_x4_v8a_scalar_hybrid_clean.S index dec2e7745a..271ca668ca 100644 --- a/dev/fips202/aarch64_symbolic/keccak_f1600_x4_v8a_scalar_hybrid_clean.S +++ b/dev/fips202/aarch64_symbolic/keccak_f1600_x4_v8a_scalar_hybrid_clean.S @@ -33,7 +33,8 @@ */ #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ @@ -1026,5 +1027,5 @@ mlk_keccak_f1600_x4_v8a_scalar_hybrid_done: #undef STACK_LOC_1 /* simpasm: footer-start */ -#endif /* MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID && \ - !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID \ + && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/aarch64_symbolic/keccak_f1600_x4_v8a_v84a_scalar_hybrid_clean.S b/dev/fips202/aarch64_symbolic/keccak_f1600_x4_v8a_v84a_scalar_hybrid_clean.S index 0631163bb7..d6f3599278 100644 --- a/dev/fips202/aarch64_symbolic/keccak_f1600_x4_v8a_v84a_scalar_hybrid_clean.S +++ b/dev/fips202/aarch64_symbolic/keccak_f1600_x4_v8a_v84a_scalar_hybrid_clean.S @@ -34,10 +34,10 @@ */ #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID) && \ +#if defined(MLK_SYS_AARCH64_NEON) && defined(__ARM_FEATURE_SHA3) && \ + defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) -#if defined(__ARM_FEATURE_SHA3) /* simpasm: header-end */ #define KECCAK_F1600_ROUNDS 24 @@ -1045,7 +1045,7 @@ mlk_keccak_f1600_x4_v8a_v84a_scalar_hybrid_done: #undef STACK_LOC_1 /* simpasm: footer-start */ -#endif /* __ARM_FEATURE_SHA3 */ -#endif /* MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID && \ +#endif /* MLK_SYS_AARCH64_NEON && __ARM_FEATURE_SHA3 && \ + MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID && \ !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/armv81m/src/keccak_f1600_x4_mve.S b/dev/fips202/armv81m/src/keccak_f1600_x4_mve.S index fdeab40d6f..de4254c937 100644 --- a/dev/fips202/armv81m/src/keccak_f1600_x4_mve.S +++ b/dev/fips202/armv81m/src/keccak_f1600_x4_mve.S @@ -66,7 +66,8 @@ // 784 S[0][24]_odd, S[1][24]_odd, S[2][24]_odd, S[3][24]_odd #include "../../../../common.h" -#if defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ +#if defined(MLK_SYS_ARMV81M_MVE) && \ + defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ @@ -1637,4 +1638,5 @@ mlk_keccak_f1600_x4_mve_asm_roundend: .unreq qA20_l /* simpasm: footer-start */ -#endif /* MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_ARMV81M_MVE && MLK_FIPS202_ARMV81M_NEED_X4 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S b/dev/fips202/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S index d36bae151d..b08f6c82d2 100644 --- a/dev/fips202/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S +++ b/dev/fips202/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S @@ -58,7 +58,8 @@ // Tail -- extract remaining <8 bytes via predicated byte stores. #include "../../../../common.h" -#if defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ +#if defined(MLK_SYS_ARMV81M_MVE) && \ + defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ @@ -365,4 +366,5 @@ mlk_keccak_f1600_x4_state_extract_bytes_asm_exit: .unreq qd3 /* simpasm: footer-start */ -#endif /* MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_ARMV81M_MVE && MLK_FIPS202_ARMV81M_NEED_X4 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S b/dev/fips202/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S index b2069960bf..09fbfc7fc3 100644 --- a/dev/fips202/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S +++ b/dev/fips202/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S @@ -57,7 +57,8 @@ // Tail -- absorb remaining <8 bytes via predicated byte loads. #include "../../../../common.h" -#if defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ +#if defined(MLK_SYS_ARMV81M_MVE) && \ + defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* simpasm: header-end */ @@ -420,4 +421,5 @@ mlk_keccak_f1600_x4_state_xor_bytes_asm_exit: .unreq qS1 /* simpasm: footer-start */ -#endif /* MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_ARMV81M_MVE && MLK_FIPS202_ARMV81M_NEED_X4 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/fips202/x86_64/src/keccak_f1600_x4_avx2_asm.S b/dev/fips202/x86_64/src/keccak_f1600_x4_avx2_asm.S index 235ba8e4f1..4be2b08020 100644 --- a/dev/fips202/x86_64/src/keccak_f1600_x4_avx2_asm.S +++ b/dev/fips202/x86_64/src/keccak_f1600_x4_avx2_asm.S @@ -4,7 +4,8 @@ */ #include "../../../../common.h" -#if defined(MLK_FIPS202_X86_64_NEED_X4_AVX2) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_FIPS202_X86_64_NEED_X4_AVX2) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: keccak_f1600_x4_avx2_asm @@ -658,4 +659,5 @@ MLK_ASM_FN_SYMBOL(keccak_f1600_x4_avx2_asm) ret /* simpasm: footer-start */ -#endif /* MLK_FIPS202_X86_64_NEED_X4_AVX2 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_FIPS202_X86_64_NEED_X4_AVX2 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/ppc64le/src/mlkem_intt_ppc_asm.S b/dev/ppc64le/src/mlkem_intt_ppc_asm.S index c702a281dd..b02443d908 100644 --- a/dev/ppc64le/src/mlkem_intt_ppc_asm.S +++ b/dev/ppc64le/src/mlkem_intt_ppc_asm.S @@ -7,7 +7,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ +#if defined(MLK_SYS_PPC64LE_POWER8_VECTOR) && \ + defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) @@ -1003,5 +1004,6 @@ mlk_intt_ppc_asm_Loopf: #undef VS_26_STASH /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_PPC64LE_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) */ +#endif /* MLK_SYS_PPC64LE_POWER8_VECTOR && MLK_ARITH_BACKEND_PPC64LE_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) */ diff --git a/dev/ppc64le/src/mlkem_ntt_ppc_asm.S b/dev/ppc64le/src/mlkem_ntt_ppc_asm.S index 0319d96bea..946918366b 100644 --- a/dev/ppc64le/src/mlkem_ntt_ppc_asm.S +++ b/dev/ppc64le/src/mlkem_ntt_ppc_asm.S @@ -7,7 +7,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ +#if defined(MLK_SYS_PPC64LE_POWER8_VECTOR) && \ + defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: ntt_ppc_asm @@ -766,5 +767,5 @@ MLK_ASM_FN_SYMBOL(ntt_ppc_asm) #undef b4_offset /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_PPC64LE_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_PPC64LE_POWER8_VECTOR && MLK_ARITH_BACKEND_PPC64LE_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/ppc64le/src/mlkem_poly_tomont_ppc_asm.S b/dev/ppc64le/src/mlkem_poly_tomont_ppc_asm.S index 13e427b4b1..090a80c750 100644 --- a/dev/ppc64le/src/mlkem_poly_tomont_ppc_asm.S +++ b/dev/ppc64le/src/mlkem_poly_tomont_ppc_asm.S @@ -14,7 +14,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ +#if defined(MLK_SYS_PPC64LE_POWER8_VECTOR) && \ + defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_KEYPAIR_API) /*yaml @@ -241,5 +242,5 @@ MLK_ASM_FN_SYMBOL(poly_tomont_ppc_asm) #undef vresult4 /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_PPC64LE_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && !MLK_CONFIG_NO_KEYPAIR_API */ +#endif /* MLK_SYS_PPC64LE_POWER8_VECTOR && MLK_ARITH_BACKEND_PPC64LE_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_KEYPAIR_API */ diff --git a/dev/ppc64le/src/mlkem_reduce_ppc_asm.S b/dev/ppc64le/src/mlkem_reduce_ppc_asm.S index 1b4e43fabb..8640c6525f 100644 --- a/dev/ppc64le/src/mlkem_reduce_ppc_asm.S +++ b/dev/ppc64le/src/mlkem_reduce_ppc_asm.S @@ -6,7 +6,8 @@ * Written by Danny Tsen */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ +#if defined(MLK_SYS_PPC64LE_POWER8_VECTOR) && \ + defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: reduce_ppc_asm @@ -462,5 +463,5 @@ MLK_ASM_FN_SYMBOL(reduce_ppc_asm) #undef vu_q /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_PPC64LE_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_PPC64LE_POWER8_VECTOR && MLK_ARITH_BACKEND_PPC64LE_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/x86_64/src/mlkem_intt_avx2_asm.S b/dev/x86_64/src/mlkem_intt_avx2_asm.S index 2103947a9c..c3e5307cd8 100644 --- a/dev/x86_64/src/mlkem_intt_avx2_asm.S +++ b/dev/x86_64/src/mlkem_intt_avx2_asm.S @@ -29,7 +29,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) @@ -315,5 +316,6 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) */ diff --git a/dev/x86_64/src/mlkem_ntt_avx2_asm.S b/dev/x86_64/src/mlkem_ntt_avx2_asm.S index 44568b7d50..729506ca92 100644 --- a/dev/x86_64/src/mlkem_ntt_avx2_asm.S +++ b/dev/x86_64/src/mlkem_ntt_avx2_asm.S @@ -25,7 +25,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: ntt_avx2_asm @@ -267,5 +268,5 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/x86_64/src/mlkem_nttfrombytes_avx2_asm.S b/dev/x86_64/src/mlkem_nttfrombytes_avx2_asm.S index 0eda6a7767..bbf59d43bb 100644 --- a/dev/x86_64/src/mlkem_nttfrombytes_avx2_asm.S +++ b/dev/x86_64/src/mlkem_nttfrombytes_avx2_asm.S @@ -19,7 +19,8 @@ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) @@ -135,5 +136,6 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) */ diff --git a/dev/x86_64/src/mlkem_ntttobytes_avx2_asm.S b/dev/x86_64/src/mlkem_ntttobytes_avx2_asm.S index 0409dd864b..1b33ae274e 100644 --- a/dev/x86_64/src/mlkem_ntttobytes_avx2_asm.S +++ b/dev/x86_64/src/mlkem_ntttobytes_avx2_asm.S @@ -19,7 +19,8 @@ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_KEYPAIR_API) || \ !defined(MLK_CONFIG_NO_ENCAPS_API)) @@ -130,5 +131,6 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_KEYPAIR_API || !MLK_CONFIG_NO_ENCAPS_API) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_KEYPAIR_API || \ + !MLK_CONFIG_NO_ENCAPS_API) */ diff --git a/dev/x86_64/src/mlkem_nttunpack_avx2_asm.S b/dev/x86_64/src/mlkem_nttunpack_avx2_asm.S index aee8f72f82..512148d855 100644 --- a/dev/x86_64/src/mlkem_nttunpack_avx2_asm.S +++ b/dev/x86_64/src/mlkem_nttunpack_avx2_asm.S @@ -19,7 +19,8 @@ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: nttunpack_avx2_asm @@ -99,5 +100,5 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/x86_64/src/mlkem_poly_compress_d10_avx2_asm.S b/dev/x86_64/src/mlkem_poly_compress_d10_avx2_asm.S index 02fed45bd5..8b94763c89 100644 --- a/dev/x86_64/src/mlkem_poly_compress_d10_avx2_asm.S +++ b/dev/x86_64/src/mlkem_poly_compress_d10_avx2_asm.S @@ -29,7 +29,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) && \ @@ -189,7 +190,7 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) && \ - (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2 || MLKEM_K == 3) \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ + MLKEM_K == 2 || MLKEM_K == 3) */ diff --git a/dev/x86_64/src/mlkem_poly_compress_d11_avx2_asm.S b/dev/x86_64/src/mlkem_poly_compress_d11_avx2_asm.S index 4e86550354..f33a5b19f9 100644 --- a/dev/x86_64/src/mlkem_poly_compress_d11_avx2_asm.S +++ b/dev/x86_64/src/mlkem_poly_compress_d11_avx2_asm.S @@ -31,7 +31,8 @@ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) && \ @@ -161,6 +162,7 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) && \ - (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ + MLKEM_K == 4) */ diff --git a/dev/x86_64/src/mlkem_poly_compress_d4_avx2_asm.S b/dev/x86_64/src/mlkem_poly_compress_d4_avx2_asm.S index 719b677de7..f8452af8d5 100644 --- a/dev/x86_64/src/mlkem_poly_compress_d4_avx2_asm.S +++ b/dev/x86_64/src/mlkem_poly_compress_d4_avx2_asm.S @@ -29,7 +29,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) && \ @@ -148,7 +149,7 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) && \ - (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2 || MLKEM_K == 3) \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ + MLKEM_K == 2 || MLKEM_K == 3) */ diff --git a/dev/x86_64/src/mlkem_poly_compress_d5_avx2_asm.S b/dev/x86_64/src/mlkem_poly_compress_d5_avx2_asm.S index d88f300df1..f2075583ac 100644 --- a/dev/x86_64/src/mlkem_poly_compress_d5_avx2_asm.S +++ b/dev/x86_64/src/mlkem_poly_compress_d5_avx2_asm.S @@ -29,7 +29,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) && \ @@ -167,6 +168,7 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) && \ - (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ + MLKEM_K == 4) */ diff --git a/dev/x86_64/src/mlkem_poly_decompress_d10_avx2_asm.S b/dev/x86_64/src/mlkem_poly_decompress_d10_avx2_asm.S index 1dd99a596d..948ed28674 100644 --- a/dev/x86_64/src/mlkem_poly_decompress_d10_avx2_asm.S +++ b/dev/x86_64/src/mlkem_poly_decompress_d10_avx2_asm.S @@ -29,7 +29,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_DECAPS_API) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 2 || MLKEM_K == 3) @@ -124,6 +125,7 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && !MLK_CONFIG_NO_DECAPS_API && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ - MLKEM_K == 2 || MLKEM_K == 3) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_DECAPS_API && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2 || MLKEM_K == 3) \ + */ diff --git a/dev/x86_64/src/mlkem_poly_decompress_d11_avx2_asm.S b/dev/x86_64/src/mlkem_poly_decompress_d11_avx2_asm.S index 02119511b5..864df84839 100644 --- a/dev/x86_64/src/mlkem_poly_decompress_d11_avx2_asm.S +++ b/dev/x86_64/src/mlkem_poly_decompress_d11_avx2_asm.S @@ -31,7 +31,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_DECAPS_API) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 4) @@ -129,6 +130,6 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && !MLK_CONFIG_NO_DECAPS_API && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ - MLKEM_K == 4) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_DECAPS_API && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ diff --git a/dev/x86_64/src/mlkem_poly_decompress_d4_avx2_asm.S b/dev/x86_64/src/mlkem_poly_decompress_d4_avx2_asm.S index 364179ee76..8d68ae981d 100644 --- a/dev/x86_64/src/mlkem_poly_decompress_d4_avx2_asm.S +++ b/dev/x86_64/src/mlkem_poly_decompress_d4_avx2_asm.S @@ -29,7 +29,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_DECAPS_API) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 2 || MLKEM_K == 3) @@ -121,6 +122,7 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && !MLK_CONFIG_NO_DECAPS_API && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ - MLKEM_K == 2 || MLKEM_K == 3) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_DECAPS_API && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2 || MLKEM_K == 3) \ + */ diff --git a/dev/x86_64/src/mlkem_poly_decompress_d5_avx2_asm.S b/dev/x86_64/src/mlkem_poly_decompress_d5_avx2_asm.S index 20581d89a4..0a0d2197f9 100644 --- a/dev/x86_64/src/mlkem_poly_decompress_d5_avx2_asm.S +++ b/dev/x86_64/src/mlkem_poly_decompress_d5_avx2_asm.S @@ -30,7 +30,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_DECAPS_API) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 4) @@ -116,6 +117,6 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && !MLK_CONFIG_NO_DECAPS_API && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ - MLKEM_K == 4) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_DECAPS_API && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ diff --git a/dev/x86_64/src/mlkem_poly_mulcache_compute_avx2_asm.S b/dev/x86_64/src/mlkem_poly_mulcache_compute_avx2_asm.S index 16d4b0bd05..ba87773474 100644 --- a/dev/x86_64/src/mlkem_poly_mulcache_compute_avx2_asm.S +++ b/dev/x86_64/src/mlkem_poly_mulcache_compute_avx2_asm.S @@ -4,7 +4,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: poly_mulcache_compute_avx2_asm @@ -80,5 +81,5 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S b/dev/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S index bf1ddff788..c5109eae78 100644 --- a/dev/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S +++ b/dev/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S @@ -4,7 +4,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 2) /*yaml @@ -58,5 +59,6 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2) */ diff --git a/dev/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S b/dev/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S index 6152956a57..d6be732c5a 100644 --- a/dev/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S +++ b/dev/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S @@ -4,7 +4,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 3) /*yaml @@ -58,5 +59,6 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 3) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 3) */ diff --git a/dev/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S b/dev/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S index d9538f6efa..68cec1562f 100644 --- a/dev/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S +++ b/dev/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S @@ -4,7 +4,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 4) /*yaml @@ -58,5 +59,6 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ diff --git a/dev/x86_64/src/mlkem_reduce_avx2_asm.S b/dev/x86_64/src/mlkem_reduce_avx2_asm.S index af613b406d..17ed795b73 100644 --- a/dev/x86_64/src/mlkem_reduce_avx2_asm.S +++ b/dev/x86_64/src/mlkem_reduce_avx2_asm.S @@ -25,7 +25,8 @@ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: reduce_avx2_asm @@ -110,5 +111,5 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/x86_64/src/mlkem_rej_uniform_avx2_asm.S b/dev/x86_64/src/mlkem_rej_uniform_avx2_asm.S index 00ee1b9428..9869e97f87 100644 --- a/dev/x86_64/src/mlkem_rej_uniform_avx2_asm.S +++ b/dev/x86_64/src/mlkem_rej_uniform_avx2_asm.S @@ -20,7 +20,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: rej_uniform_avx2_asm @@ -209,5 +210,5 @@ mlk_rej_uniform_asm_end: #undef STACK_SIZE /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ diff --git a/dev/x86_64/src/mlkem_tomont_avx2_asm.S b/dev/x86_64/src/mlkem_tomont_avx2_asm.S index 78c359c10c..442635340a 100644 --- a/dev/x86_64/src/mlkem_tomont_avx2_asm.S +++ b/dev/x86_64/src/mlkem_tomont_avx2_asm.S @@ -23,7 +23,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_KEYPAIR_API) /*yaml @@ -107,5 +108,5 @@ vzeroupper ret /* simpasm: footer-start */ -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && !MLK_CONFIG_NO_KEYPAIR_API */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_KEYPAIR_API */ diff --git a/integration/aws-lc/pre_import.patch b/integration/aws-lc/pre_import.patch new file mode 100644 index 0000000000..53715fca17 --- /dev/null +++ b/integration/aws-lc/pre_import.patch @@ -0,0 +1,13 @@ +diff --git a/crypto/fipsmodule/ml_kem/importer.sh b/crypto/fipsmodule/ml_kem/importer.sh +index 6263a90..d582b4c 100644 +--- a/crypto/fipsmodule/ml_kem/importer.sh ++++ b/crypto/fipsmodule/ml_kem/importer.sh +@@ -146,6 +146,8 @@ for file in $SRC/native/aarch64/src/*.S $SRC/native/x86_64/src/*.S; do + # guard collapses and the body is included unconditionally. + sed -e ':a' -e 'N' -e '$!ba' -e 's/\\\n/ /g' "$file" | \ + unifdef -D$backend_define \ ++ -DMLK_SYS_AARCH64_NEON \ ++ -DMLK_SYS_X86_64_AVX2 \ + -UMLK_CONFIG_MULTILEVEL_NO_SHARED \ + -DMLK_CONFIG_MULTILEVEL_WITH_SHARED \ + -UMLK_CONFIG_NO_KEYPAIR_API \ diff --git a/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S b/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S index 108e17f83f..8809fa03e5 100644 --- a/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S +++ b/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_scalar_aarch64_asm.S @@ -33,7 +33,8 @@ */ #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X1_SCALAR) && \ +#if defined(MLK_SYS_AARCH64) && \ + defined(MLK_FIPS202_AARCH64_NEED_X1_SCALAR) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* @@ -369,7 +370,7 @@ Lmlk_keccak_f1600_x1_scalar_loop: MLK_ASM_FN_SIZE(keccak_f1600_x1_scalar_aarch64_asm) -#endif /* MLK_FIPS202_AARCH64_NEED_X1_SCALAR && \ +#endif /* MLK_SYS_AARCH64 && MLK_FIPS202_AARCH64_NEED_X1_SCALAR && \ !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) diff --git a/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S b/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S index cb27677691..4a375fc516 100644 --- a/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S +++ b/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S @@ -49,10 +49,10 @@ // #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X1_V84A) && \ +#if defined(MLK_SYS_AARCH64_NEON) && defined(__ARM_FEATURE_SHA3) && \ + defined(MLK_FIPS202_AARCH64_NEED_X1_V84A) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) -#if defined(__ARM_FEATURE_SHA3) /* * WARNING: This file is auto-derived from the mlkem-native source file @@ -196,9 +196,9 @@ Lmlk_keccak_f1600_x1_v84a_loop: MLK_ASM_FN_SIZE(keccak_f1600_x1_v84a_aarch64_asm) -#endif /* __ARM_FEATURE_SHA3 */ -#endif /* MLK_FIPS202_AARCH64_NEED_X1_V84A && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ +#endif /* MLK_SYS_AARCH64_NEON && __ARM_FEATURE_SHA3 && \ + MLK_FIPS202_AARCH64_NEED_X1_V84A && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ */ #if defined(__ELF__) diff --git a/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S b/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S index 36ebe1d32f..b6a218e353 100644 --- a/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S +++ b/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S @@ -49,10 +49,10 @@ // #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X2_V84A) && \ +#if defined(MLK_SYS_AARCH64_NEON) && defined(__ARM_FEATURE_SHA3) && \ + defined(MLK_FIPS202_AARCH64_NEED_X2_V84A) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) -#if defined(__ARM_FEATURE_SHA3) /* * WARNING: This file is auto-derived from the mlkem-native source file @@ -251,9 +251,9 @@ Lmlk_keccak_f1600_x2_v84a_loop: MLK_ASM_FN_SIZE(keccak_f1600_x2_v84a_aarch64_asm) -#endif /* __ARM_FEATURE_SHA3 */ -#endif /* MLK_FIPS202_AARCH64_NEED_X2_V84A && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ +#endif /* MLK_SYS_AARCH64_NEON && __ARM_FEATURE_SHA3 && \ + MLK_FIPS202_AARCH64_NEED_X2_V84A && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ */ #if defined(__ELF__) diff --git a/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S b/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S index 7f0f78b340..47cd29237e 100644 --- a/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S +++ b/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S @@ -34,7 +34,8 @@ */ #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* @@ -1071,8 +1072,8 @@ Lmlk_keccak_f1600_x4_v8a_scalar_hybrid_done: MLK_ASM_FN_SIZE(keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm) -#endif /* MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID && \ - !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_FIPS202_AARCH64_NEED_X4_V8A_SCALAR_HYBRID \ + && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S b/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S index c17267c605..79d41f30b3 100644 --- a/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S +++ b/mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S @@ -34,10 +34,10 @@ */ #include "../../../../common.h" -#if defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID) && \ +#if defined(MLK_SYS_AARCH64_NEON) && defined(__ARM_FEATURE_SHA3) && \ + defined(MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) -#if defined(__ARM_FEATURE_SHA3) /* * WARNING: This file is auto-derived from the mlkem-native source file @@ -979,9 +979,9 @@ Lmlk_keccak_f1600_x4_v8a_v84a_scalar_hybrid_done: MLK_ASM_FN_SIZE(keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm) -#endif /* __ARM_FEATURE_SHA3 */ -#endif /* MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID && \ +#endif /* MLK_SYS_AARCH64_NEON && __ARM_FEATURE_SHA3 && \ + MLK_FIPS202_AARCH64_NEED_X4_V8A_V84A_SCALAR_HYBRID && \ !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) diff --git a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S index 2bf6c3ec18..2ed34e9ce1 100644 --- a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S +++ b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S @@ -66,7 +66,8 @@ // 784 S[0][24]_odd, S[1][24]_odd, S[2][24]_odd, S[3][24]_odd #include "../../../../common.h" -#if defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ +#if defined(MLK_SYS_ARMV81M_MVE) && \ + defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* @@ -709,7 +710,8 @@ Lmlk_keccak_f1600_x4_mve_asm_roundend: MLK_ASM_FN_SIZE(keccak_f1600_x4_mve_asm) -#endif /* MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_ARMV81M_MVE && MLK_FIPS202_ARMV81M_NEED_X4 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S index 398f58f4d5..d495f8293d 100644 --- a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S +++ b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S @@ -58,7 +58,8 @@ // Tail -- extract remaining <8 bytes via predicated byte stores. #include "../../../../common.h" -#if defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ +#if defined(MLK_SYS_ARMV81M_MVE) && \ + defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* @@ -343,7 +344,8 @@ Lmlk_keccak_f1600_x4_state_extract_bytes_asm_exit: MLK_ASM_FN_SIZE(keccak_f1600_x4_state_extract_bytes_asm) -#endif /* MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_ARMV81M_MVE && MLK_FIPS202_ARMV81M_NEED_X4 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S index 3f1b852bbe..dbdabf53ff 100644 --- a/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S +++ b/mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S @@ -57,7 +57,8 @@ // Tail -- absorb remaining <8 bytes via predicated byte loads. #include "../../../../common.h" -#if defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ +#if defined(MLK_SYS_ARMV81M_MVE) && \ + defined(MLK_FIPS202_ARMV81M_NEED_X4) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* @@ -364,7 +365,8 @@ Lmlk_keccak_f1600_x4_state_xor_bytes_asm_exit: MLK_ASM_FN_SIZE(keccak_f1600_x4_state_xor_bytes_asm) -#endif /* MLK_FIPS202_ARMV81M_NEED_X4 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_ARMV81M_MVE && MLK_FIPS202_ARMV81M_NEED_X4 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S b/mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S index 6d1504bd5f..3d5ac10ef0 100644 --- a/mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S +++ b/mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S @@ -4,7 +4,8 @@ */ #include "../../../../common.h" -#if defined(MLK_FIPS202_X86_64_NEED_X4_AVX2) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_FIPS202_X86_64_NEED_X4_AVX2) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: keccak_f1600_x4_avx2_asm @@ -481,7 +482,8 @@ LLmlk_keccak_f1600_x4_avx2: MLK_ASM_FN_SIZE(keccak_f1600_x4_avx2_asm) -#endif /* MLK_FIPS202_X86_64_NEED_X4_AVX2 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_FIPS202_X86_64_NEED_X4_AVX2 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/aarch64/src/mlkem_intt_aarch64_asm.S b/mlkem/src/native/aarch64/src/mlkem_intt_aarch64_asm.S index 0901957893..8edd07f134 100644 --- a/mlkem/src/native/aarch64/src/mlkem_intt_aarch64_asm.S +++ b/mlkem/src/native/aarch64/src/mlkem_intt_aarch64_asm.S @@ -51,7 +51,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) @@ -627,8 +628,9 @@ Lmlk_intt_layer123_start: MLK_ASM_FN_SIZE(intt_aarch64_asm) -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ - (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/aarch64/src/mlkem_ntt_aarch64_asm.S b/mlkem/src/native/aarch64/src/mlkem_ntt_aarch64_asm.S index 2383c0f05e..0b63ad0da2 100644 --- a/mlkem/src/native/aarch64/src/mlkem_ntt_aarch64_asm.S +++ b/mlkem/src/native/aarch64/src/mlkem_ntt_aarch64_asm.S @@ -51,7 +51,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* * WARNING: This file is auto-derived from the mlkem-native source file @@ -558,7 +559,8 @@ Lmlk_ntt_layer4567_start: MLK_ASM_FN_SIZE(ntt_aarch64_asm) -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/aarch64/src/mlkem_poly_mulcache_compute_aarch64_asm.S b/mlkem/src/native/aarch64/src/mlkem_poly_mulcache_compute_aarch64_asm.S index 4b869f8c92..91953e7c59 100644 --- a/mlkem/src/native/aarch64/src/mlkem_poly_mulcache_compute_aarch64_asm.S +++ b/mlkem/src/native/aarch64/src/mlkem_poly_mulcache_compute_aarch64_asm.S @@ -40,7 +40,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* * WARNING: This file is auto-derived from the mlkem-native source file @@ -123,7 +124,8 @@ Lmlk_poly_mulcache_compute_loop_start: MLK_ASM_FN_SIZE(poly_mulcache_compute_aarch64_asm) -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/aarch64/src/mlkem_poly_reduce_aarch64_asm.S b/mlkem/src/native/aarch64/src/mlkem_poly_reduce_aarch64_asm.S index 0244ac6af3..a348ff9907 100644 --- a/mlkem/src/native/aarch64/src/mlkem_poly_reduce_aarch64_asm.S +++ b/mlkem/src/native/aarch64/src/mlkem_poly_reduce_aarch64_asm.S @@ -22,7 +22,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* * WARNING: This file is auto-derived from the mlkem-native source file @@ -146,7 +147,8 @@ Lmlk_poly_reduce_loop_start: MLK_ASM_FN_SIZE(poly_reduce_aarch64_asm) -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/aarch64/src/mlkem_poly_tobytes_aarch64_asm.S b/mlkem/src/native/aarch64/src/mlkem_poly_tobytes_aarch64_asm.S index 57b798c171..8c30cc7506 100644 --- a/mlkem/src/native/aarch64/src/mlkem_poly_tobytes_aarch64_asm.S +++ b/mlkem/src/native/aarch64/src/mlkem_poly_tobytes_aarch64_asm.S @@ -28,7 +28,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_KEYPAIR_API) || \ !defined(MLK_CONFIG_NO_ENCAPS_API)) @@ -116,8 +117,9 @@ Lmlk_poly_tobytes_loop_start: MLK_ASM_FN_SIZE(poly_tobytes_aarch64_asm) -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ - (!MLK_CONFIG_NO_KEYPAIR_API || !MLK_CONFIG_NO_ENCAPS_API) */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_KEYPAIR_API || \ + !MLK_CONFIG_NO_ENCAPS_API) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/aarch64/src/mlkem_poly_tomont_aarch64_asm.S b/mlkem/src/native/aarch64/src/mlkem_poly_tomont_aarch64_asm.S index 9179e3ff94..5279ce74cc 100644 --- a/mlkem/src/native/aarch64/src/mlkem_poly_tomont_aarch64_asm.S +++ b/mlkem/src/native/aarch64/src/mlkem_poly_tomont_aarch64_asm.S @@ -22,7 +22,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_KEYPAIR_API) @@ -94,8 +95,8 @@ Lmlk_poly_tomont_loop: MLK_ASM_FN_SIZE(poly_tomont_aarch64_asm) -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ - !MLK_CONFIG_NO_KEYPAIR_API */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_KEYPAIR_API */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S b/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S index 41bd1581ed..2003f18aaf 100644 --- a/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S +++ b/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S @@ -52,7 +52,8 @@ /* Re-implementation of asymmetric base multiplication following @[NeonNTT] */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 2) +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 2) /* * WARNING: This file is auto-derived from the mlkem-native source file @@ -256,7 +257,8 @@ Lmlk_polyvec_basemul_acc_montgomery_cached_k2_loop_start: MLK_ASM_FN_SIZE(polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm) -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2) */ #if defined(__ELF__) diff --git a/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S b/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S index 7dcc8aead2..2ccb14e77c 100644 --- a/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S +++ b/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S @@ -52,7 +52,8 @@ /* Re-implementation of asymmetric base multiplication following @[NeonNTT] */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 3) +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 3) /* * WARNING: This file is auto-derived from the mlkem-native source file @@ -309,7 +310,8 @@ Lmlk_polyvec_basemul_acc_montgomery_cached_k3_loop_start: MLK_ASM_FN_SIZE(polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm) -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 3) */ #if defined(__ELF__) diff --git a/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S b/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S index 5d1ff00e94..921749ec14 100644 --- a/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S +++ b/mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S @@ -52,7 +52,8 @@ /* Re-implementation of asymmetric base multiplication following @[NeonNTT] */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 4) +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 4) /* * WARNING: This file is auto-derived from the mlkem-native source file @@ -363,7 +364,8 @@ Lmlk_polyvec_basemul_acc_montgomery_cached_k4_loop_start: MLK_ASM_FN_SIZE(polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm) -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ #if defined(__ELF__) diff --git a/mlkem/src/native/aarch64/src/mlkem_rej_uniform_aarch64_asm.S b/mlkem/src/native/aarch64/src/mlkem_rej_uniform_aarch64_asm.S index 8ba4081485..45040f7249 100644 --- a/mlkem/src/native/aarch64/src/mlkem_rej_uniform_aarch64_asm.S +++ b/mlkem/src/native/aarch64/src/mlkem_rej_uniform_aarch64_asm.S @@ -40,7 +40,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_AARCH64) && \ +#if defined(MLK_SYS_AARCH64_NEON) && \ + defined(MLK_ARITH_BACKEND_AARCH64) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /* @@ -219,7 +220,8 @@ Lmlk_rej_uniform_return: MLK_ASM_FN_SIZE(rej_uniform_aarch64_asm) -#endif /* MLK_ARITH_BACKEND_AARCH64 && !MLK_CONFIG_MULTILEVEL_NO_SHARED */ +#endif /* MLK_SYS_AARCH64_NEON && MLK_ARITH_BACKEND_AARCH64 && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/ppc64le/src/mlkem_intt_ppc_asm.S b/mlkem/src/native/ppc64le/src/mlkem_intt_ppc_asm.S index e665bc0da2..a40b0e91a4 100644 --- a/mlkem/src/native/ppc64le/src/mlkem_intt_ppc_asm.S +++ b/mlkem/src/native/ppc64le/src/mlkem_intt_ppc_asm.S @@ -7,7 +7,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ +#if defined(MLK_SYS_PPC64LE_POWER8_VECTOR) && \ + defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) @@ -3237,8 +3238,9 @@ mlk_intt_ppc_asm_Loopf: MLK_ASM_FN_SIZE(intt_ppc_asm) -#endif /* MLK_ARITH_BACKEND_PPC64LE_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) */ +#endif /* MLK_SYS_PPC64LE_POWER8_VECTOR && MLK_ARITH_BACKEND_PPC64LE_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/ppc64le/src/mlkem_ntt_ppc_asm.S b/mlkem/src/native/ppc64le/src/mlkem_ntt_ppc_asm.S index cd9c7b810a..8ac59efce4 100644 --- a/mlkem/src/native/ppc64le/src/mlkem_ntt_ppc_asm.S +++ b/mlkem/src/native/ppc64le/src/mlkem_ntt_ppc_asm.S @@ -7,7 +7,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ +#if defined(MLK_SYS_PPC64LE_POWER8_VECTOR) && \ + defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: ntt_ppc_asm @@ -1664,8 +1665,8 @@ MLK_ASM_FN_SYMBOL(ntt_ppc_asm) MLK_ASM_FN_SIZE(ntt_ppc_asm) -#endif /* MLK_ARITH_BACKEND_PPC64LE_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_PPC64LE_POWER8_VECTOR && MLK_ARITH_BACKEND_PPC64LE_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/ppc64le/src/mlkem_poly_tomont_ppc_asm.S b/mlkem/src/native/ppc64le/src/mlkem_poly_tomont_ppc_asm.S index 7a9be58fa3..e80f99aa05 100644 --- a/mlkem/src/native/ppc64le/src/mlkem_poly_tomont_ppc_asm.S +++ b/mlkem/src/native/ppc64le/src/mlkem_poly_tomont_ppc_asm.S @@ -14,7 +14,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ +#if defined(MLK_SYS_PPC64LE_POWER8_VECTOR) && \ + defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_KEYPAIR_API) /*yaml @@ -308,8 +309,8 @@ MLK_ASM_FN_SYMBOL(poly_tomont_ppc_asm) MLK_ASM_FN_SIZE(poly_tomont_ppc_asm) -#endif /* MLK_ARITH_BACKEND_PPC64LE_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && !MLK_CONFIG_NO_KEYPAIR_API */ +#endif /* MLK_SYS_PPC64LE_POWER8_VECTOR && MLK_ARITH_BACKEND_PPC64LE_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_KEYPAIR_API */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/ppc64le/src/mlkem_reduce_ppc_asm.S b/mlkem/src/native/ppc64le/src/mlkem_reduce_ppc_asm.S index c3fffcf3f4..e690f65268 100644 --- a/mlkem/src/native/ppc64le/src/mlkem_reduce_ppc_asm.S +++ b/mlkem/src/native/ppc64le/src/mlkem_reduce_ppc_asm.S @@ -6,7 +6,8 @@ * Written by Danny Tsen */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ +#if defined(MLK_SYS_PPC64LE_POWER8_VECTOR) && \ + defined(MLK_ARITH_BACKEND_PPC64LE_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: reduce_ppc_asm @@ -723,8 +724,8 @@ MLK_ASM_FN_SYMBOL(reduce_ppc_asm) MLK_ASM_FN_SIZE(reduce_ppc_asm) -#endif /* MLK_ARITH_BACKEND_PPC64LE_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_PPC64LE_POWER8_VECTOR && MLK_ARITH_BACKEND_PPC64LE_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_intt_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_intt_avx2_asm.S index a1b915d924..5bf514a194 100644 --- a/mlkem/src/native/x86_64/src/mlkem_intt_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_intt_avx2_asm.S @@ -29,7 +29,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) @@ -736,8 +737,9 @@ MLK_ASM_FN_SYMBOL(invntt_avx2_asm) MLK_ASM_FN_SIZE(invntt_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_ntt_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_ntt_avx2_asm.S index 96897b8f90..921549b6b3 100644 --- a/mlkem/src/native/x86_64/src/mlkem_ntt_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_ntt_avx2_asm.S @@ -25,7 +25,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: ntt_avx2_asm @@ -654,8 +655,8 @@ MLK_ASM_FN_SYMBOL(ntt_avx2_asm) MLK_ASM_FN_SIZE(ntt_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_nttfrombytes_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_nttfrombytes_avx2_asm.S index 6e02c1a76a..69269e76d8 100644 --- a/mlkem/src/native/x86_64/src/mlkem_nttfrombytes_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_nttfrombytes_avx2_asm.S @@ -19,7 +19,8 @@ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) @@ -210,8 +211,9 @@ MLK_ASM_FN_SYMBOL(nttfrombytes_avx2_asm) MLK_ASM_FN_SIZE(nttfrombytes_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_ntttobytes_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_ntttobytes_avx2_asm.S index 4755d236ad..c6a49f4e07 100644 --- a/mlkem/src/native/x86_64/src/mlkem_ntttobytes_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_ntttobytes_avx2_asm.S @@ -19,7 +19,8 @@ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_KEYPAIR_API) || \ !defined(MLK_CONFIG_NO_ENCAPS_API)) @@ -198,8 +199,9 @@ MLK_ASM_FN_SYMBOL(ntttobytes_avx2_asm) MLK_ASM_FN_SIZE(ntttobytes_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_KEYPAIR_API || !MLK_CONFIG_NO_ENCAPS_API) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_KEYPAIR_API || \ + !MLK_CONFIG_NO_ENCAPS_API) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_nttunpack_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_nttunpack_avx2_asm.S index ff781ee505..c96d98fef9 100644 --- a/mlkem/src/native/x86_64/src/mlkem_nttunpack_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_nttunpack_avx2_asm.S @@ -19,7 +19,8 @@ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: nttunpack_avx2_asm @@ -183,8 +184,8 @@ MLK_ASM_FN_SYMBOL(nttunpack_avx2_asm) MLK_ASM_FN_SIZE(nttunpack_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_poly_compress_d10_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_poly_compress_d10_avx2_asm.S index a069501bdc..d733462799 100644 --- a/mlkem/src/native/x86_64/src/mlkem_poly_compress_d10_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_poly_compress_d10_avx2_asm.S @@ -29,7 +29,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) && \ @@ -404,10 +405,10 @@ MLK_ASM_FN_SYMBOL(poly_compress_d10_avx2_asm) MLK_ASM_FN_SIZE(poly_compress_d10_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) && \ - (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2 || MLKEM_K == 3) \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ + MLKEM_K == 2 || MLKEM_K == 3) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_poly_compress_d11_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_poly_compress_d11_avx2_asm.S index f78225b803..4ad822291e 100644 --- a/mlkem/src/native/x86_64/src/mlkem_poly_compress_d11_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_poly_compress_d11_avx2_asm.S @@ -31,7 +31,8 @@ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) && \ @@ -471,9 +472,10 @@ MLK_ASM_FN_SYMBOL(poly_compress_d11_avx2_asm) MLK_ASM_FN_SIZE(poly_compress_d11_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) && \ - (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ + MLKEM_K == 4) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_poly_compress_d4_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_poly_compress_d4_avx2_asm.S index 1e509e129a..000947ae69 100644 --- a/mlkem/src/native/x86_64/src/mlkem_poly_compress_d4_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_poly_compress_d4_avx2_asm.S @@ -29,7 +29,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) && \ @@ -185,10 +186,10 @@ MLK_ASM_FN_SYMBOL(poly_compress_d4_avx2_asm) MLK_ASM_FN_SIZE(poly_compress_d4_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) && \ - (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2 || MLKEM_K == 3) \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ + MLKEM_K == 2 || MLKEM_K == 3) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_poly_compress_d5_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_poly_compress_d5_avx2_asm.S index e85fc1148c..5fc50b9a55 100644 --- a/mlkem/src/native/x86_64/src/mlkem_poly_compress_d5_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_poly_compress_d5_avx2_asm.S @@ -29,7 +29,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (!defined(MLK_CONFIG_NO_ENCAPS_API) || \ !defined(MLK_CONFIG_NO_DECAPS_API)) && \ @@ -243,9 +244,10 @@ MLK_ASM_FN_SYMBOL(poly_compress_d5_avx2_asm) MLK_ASM_FN_SIZE(poly_compress_d5_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (!MLK_CONFIG_NO_ENCAPS_API || !MLK_CONFIG_NO_DECAPS_API) && \ - (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && (!MLK_CONFIG_NO_ENCAPS_API || \ + !MLK_CONFIG_NO_DECAPS_API) && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ + MLKEM_K == 4) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d10_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d10_avx2_asm.S index 6cfdc3ec0a..5b5a4b5ac6 100644 --- a/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d10_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d10_avx2_asm.S @@ -29,7 +29,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_DECAPS_API) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 2 || MLKEM_K == 3) @@ -249,9 +250,10 @@ MLK_ASM_FN_SYMBOL(poly_decompress_d10_avx2_asm) MLK_ASM_FN_SIZE(poly_decompress_d10_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && !MLK_CONFIG_NO_DECAPS_API && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ - MLKEM_K == 2 || MLKEM_K == 3) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_DECAPS_API && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2 || MLKEM_K == 3) \ + */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d11_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d11_avx2_asm.S index fe8d13d0ec..128696d5a5 100644 --- a/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d11_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d11_avx2_asm.S @@ -31,7 +31,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_DECAPS_API) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 4) @@ -299,9 +300,9 @@ MLK_ASM_FN_SYMBOL(poly_decompress_d11_avx2_asm) MLK_ASM_FN_SIZE(poly_decompress_d11_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && !MLK_CONFIG_NO_DECAPS_API && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ - MLKEM_K == 4) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_DECAPS_API && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d4_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d4_avx2_asm.S index 1e441c9b6a..0fbdf1b844 100644 --- a/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d4_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d4_avx2_asm.S @@ -29,7 +29,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_DECAPS_API) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 2 || MLKEM_K == 3) @@ -201,9 +202,10 @@ MLK_ASM_FN_SYMBOL(poly_decompress_d4_avx2_asm) MLK_ASM_FN_SIZE(poly_decompress_d4_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && !MLK_CONFIG_NO_DECAPS_API && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ - MLKEM_K == 2 || MLKEM_K == 3) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_DECAPS_API && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2 || MLKEM_K == 3) \ + */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d5_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d5_avx2_asm.S index fe2df3c1fe..4680c6401a 100644 --- a/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d5_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_poly_decompress_d5_avx2_asm.S @@ -30,7 +30,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_DECAPS_API) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 4) @@ -214,9 +215,9 @@ MLK_ASM_FN_SYMBOL(poly_decompress_d5_avx2_asm) MLK_ASM_FN_SIZE(poly_decompress_d5_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && !MLK_CONFIG_NO_DECAPS_API && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || \ - MLKEM_K == 4) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_DECAPS_API && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_poly_mulcache_compute_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_poly_mulcache_compute_avx2_asm.S index 42b331ef3f..a78e495158 100644 --- a/mlkem/src/native/x86_64/src/mlkem_poly_mulcache_compute_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_poly_mulcache_compute_avx2_asm.S @@ -4,7 +4,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: poly_mulcache_compute_avx2_asm @@ -111,8 +112,8 @@ MLK_ASM_FN_SYMBOL(poly_mulcache_compute_avx2_asm) MLK_ASM_FN_SIZE(poly_mulcache_compute_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S index 1e72e9ecca..e70acbb441 100644 --- a/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S @@ -4,7 +4,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 2) /*yaml @@ -529,8 +530,9 @@ MLK_ASM_FN_SYMBOL(polyvec_basemul_acc_montgomery_cached_k2_avx2_asm) MLK_ASM_FN_SIZE(polyvec_basemul_acc_montgomery_cached_k2_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 2) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S index 4cb8dc92d8..232e0d288c 100644 --- a/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S @@ -4,7 +4,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 3) /*yaml @@ -777,8 +778,9 @@ MLK_ASM_FN_SYMBOL(polyvec_basemul_acc_montgomery_cached_k3_avx2_asm) MLK_ASM_FN_SIZE(polyvec_basemul_acc_montgomery_cached_k3_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 3) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 3) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S index a7aada7e5a..ebb48be2b3 100644 --- a/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S @@ -4,7 +4,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ (defined(MLK_CONFIG_MULTILEVEL_WITH_SHARED) || MLKEM_K == 4) /*yaml @@ -1025,8 +1026,9 @@ MLK_ASM_FN_SYMBOL(polyvec_basemul_acc_montgomery_cached_k4_avx2_asm) MLK_ASM_FN_SIZE(polyvec_basemul_acc_montgomery_cached_k4_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && \ + (MLK_CONFIG_MULTILEVEL_WITH_SHARED || MLKEM_K == 4) */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_reduce_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_reduce_avx2_asm.S index 29ea77e754..b540c059b7 100644 --- a/mlkem/src/native/x86_64/src/mlkem_reduce_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_reduce_avx2_asm.S @@ -25,7 +25,8 @@ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: reduce_avx2_asm @@ -227,8 +228,8 @@ MLK_ASM_FN_SYMBOL(reduce_avx2_asm) MLK_ASM_FN_SIZE(reduce_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_rej_uniform_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_rej_uniform_avx2_asm.S index 18ed1c8df1..a6ccf4aead 100644 --- a/mlkem/src/native/x86_64/src/mlkem_rej_uniform_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_rej_uniform_avx2_asm.S @@ -20,7 +20,8 @@ **************************************************/ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) /*yaml Name: rej_uniform_avx2_asm @@ -128,8 +129,8 @@ Lmlk_rej_uniform_asm_end: MLK_ASM_FN_SIZE(rej_uniform_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/native/x86_64/src/mlkem_tomont_avx2_asm.S b/mlkem/src/native/x86_64/src/mlkem_tomont_avx2_asm.S index 144c2218d9..710b6351da 100644 --- a/mlkem/src/native/x86_64/src/mlkem_tomont_avx2_asm.S +++ b/mlkem/src/native/x86_64/src/mlkem_tomont_avx2_asm.S @@ -23,7 +23,8 @@ */ #include "../../../common.h" -#if defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ +#if defined(MLK_SYS_X86_64_AVX2) && \ + defined(MLK_ARITH_BACKEND_X86_64_DEFAULT) && \ !defined(MLK_CONFIG_MULTILEVEL_NO_SHARED) && \ !defined(MLK_CONFIG_NO_KEYPAIR_API) /*yaml @@ -165,8 +166,8 @@ MLK_ASM_FN_SYMBOL(tomont_avx2_asm) MLK_ASM_FN_SIZE(tomont_avx2_asm) -#endif /* MLK_ARITH_BACKEND_X86_64_DEFAULT && !MLK_CONFIG_MULTILEVEL_NO_SHARED \ - && !MLK_CONFIG_NO_KEYPAIR_API */ +#endif /* MLK_SYS_X86_64_AVX2 && MLK_ARITH_BACKEND_X86_64_DEFAULT && \ + !MLK_CONFIG_MULTILEVEL_NO_SHARED && !MLK_CONFIG_NO_KEYPAIR_API */ #if defined(__ELF__) .section .note.GNU-stack,"",%progbits diff --git a/mlkem/src/sys.h b/mlkem/src/sys.h index 5b65630106..41a9420bbc 100644 --- a/mlkem/src/sys.h +++ b/mlkem/src/sys.h @@ -57,8 +57,9 @@ #define MLK_SYS_AARCH64_EB #endif -/* Check if we're running on an Armv8.1-M system with MVE */ -#if defined(__ARM_ARCH_8_1M_MAIN__) || defined(__ARM_FEATURE_MVE) +/* Check if the Armv8.1-M compilation target supports MVE. Armv8.1-M + * architecture support alone does not imply that MVE is enabled. */ +#if defined(__ARM_FEATURE_MVE) #define MLK_SYS_ARMV81M_MVE #endif diff --git a/scripts/autogen b/scripts/autogen index cf47c21a8e..32514d63a0 100755 --- a/scripts/autogen +++ b/scripts/autogen @@ -3358,25 +3358,6 @@ def gen_hol_light_asm_file(job): ) -# Map dev/ source directory to the corresponding upstream under mlkem/. -def upstream_src_dir_for_dev_dir(dev_dir): - if dev_dir.startswith("dev/fips202/"): - # dev/fips202//src -> mlkem/src/fips202/native//src - arch = dev_dir.split("/")[2] - return f"mlkem/src/fips202/native/{arch}/src" - if dev_dir.startswith("dev/aarch64_"): - # dev/aarch64_opt/src and dev/aarch64_clean/src map to the same tree - return "mlkem/src/native/aarch64/src" - if dev_dir.startswith("dev/x86_64/"): - return "mlkem/src/native/x86_64/src" - if dev_dir.startswith("dev/ppc64le/"): - return "mlkem/src/native/ppc64le/src" - raise ValueError( - f"Unrecognised dev/ source directory {dev_dir!r}; " - "extend upstream_src_dir_for_dev_dir() to map it to mlkem/src/..." - ) - - def hol_light_asm_joblist(): """Return the list of simpasm export jobs, each (basename, dev_dir, cflags, arch). Consumed by the HOL-Light assembly copies (gen_hol_light_asm) and, as @@ -3788,13 +3769,15 @@ def synchronize_backends( # comparing the object code before and after simplification. cflags="-Idev/x86_64/src/ -Imlkem/src/native/x86_64/src/ -mavx2 -mbmi2 -msse4 -fcf-protection=none", ) + # GCC exposes __ARM_FEATURE_MVE only with a softfp or hard float ABI. + # The assembly feature guards must see MVE while regenerating kernels. synchronize_backend( "dev/fips202/armv81m/src", "mlkem/src/fips202/native/armv81m/src", delete=delete, force_cross=force_cross, no_simplify=no_simplify, - cflags="-Idev/fips202/armv81m/src -Imlkem/src/fips202/native/armv81m/src -march=armv8.1-m.main+mve -mthumb", + cflags="-Idev/fips202/armv81m/src -Imlkem/src/fips202/native/armv81m/src -march=armv8.1-m.main+mve -mthumb -mfloat-abi=hard", ) synchronize_backend( "dev/fips202/armv81m", @@ -3802,7 +3785,7 @@ def synchronize_backends( delete=delete, force_cross=force_cross, no_simplify=no_simplify, - cflags="-Idev/fips202/armv81m -Imlkem/src/fips202/native/armv81m -march=armv8.1-m.main+mve -mthumb", + cflags="-Idev/fips202/armv81m -Imlkem/src/fips202/native/armv81m -march=armv8.1-m.main+mve -mthumb -mfloat-abi=hard", ) synchronize_backend( "dev/fips202/x86_64/src", @@ -4865,71 +4848,37 @@ def extract_yaml_from_assembly(assembly_file): # ABI checker capability table. # # Maps each `ABI.Features:` tag from the kernel YAMLs to: -# - 'asm_subdir': the arch this cap belongs to; selects the per-arch -# test/abicheck//abicheck_.mk it is -# emitted into. # - 'guard': if non-None, wrap the generated check in #if defined(...). # - 'syscap': runtime capability; check skips if the host lacks it. -# - 'cflags': for the autogeneration of the per-arch abicheck_.mk. # - 'description': shown when a check is skipped. -# - 'aux_files': extra .S files needing these CFLAGS though not generated -# kernel exports (hand-written abicheck stubs/selftests, and -# sources whose YAML doesn't list them as ABI-tested kernels -# but still need the per-cap toolchain flags). ABI_CAPS = { "AVX2": { - "asm_subdir": "x86_64", - "guard": "__AVX2__", + "guard": "MLK_SYS_X86_64_AVX2", "syscap": "MLK_SYS_CAP_X86_64_AVX2", "description": "AVX2", - "cflags": ["-mavx2", "-mbmi2"], - "aux_files": [], }, "NEON": { - "asm_subdir": "aarch64", "guard": "MLK_SYS_AARCH64_NEON", "syscap": "MLK_SYS_CAP_AARCH64_NEON", "description": "AArch64 NEON", - "cflags": ["-march=armv8-a+simd"], - "aux_files": [], }, "SHA3": { - "asm_subdir": "aarch64", "guard": "__ARM_FEATURE_SHA3", "syscap": "MLK_SYS_CAP_AARCH64_SHA3", "description": "Armv8.4-A SHA3 (eor3, rax1, xar, bcax)", - "cflags": ["-march=armv8.4-a+sha3"], - "aux_files": [], }, "MVE": { - "asm_subdir": "armv81m", - "guard": "__ARM_FEATURE_MVE", + "guard": "MLK_SYS_ARMV81M_MVE", "syscap": "MLK_SYS_CAP_ARMV81M_MVE", "description": "Armv8.1-M MVE", - "cflags": ["-march=armv8.1-m.main+mve", "-mthumb"], - "aux_files": [ - "test/abicheck/armv81m/callstub_armv81m.S", - "test/abicheck/armv81m/selftest_armv81m.S", - # Shipped MVE helpers pulled in by the abicheck wildcard but - # not registered as ABI-tested kernels - they still need MVE - # CFLAGS to assemble. - "mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S", - "mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S", - ], }, # NTT/INTT use the POWER8 vector merges vmrgew/vmrgow (ISA 2.07). # AltiVec predates POWER8, and VSX was introduced in POWER7. # All current PPC64 kernels and ABI stubs share the backend's guard. "POWER8_VECTOR": { - "asm_subdir": "ppc64le", "guard": "MLK_SYS_PPC64LE_POWER8_VECTOR", "syscap": "MLK_SYS_CAP_PPC64LE_POWER8_VECTOR", "description": "AltiVec/VSX and POWER8 vector extensions (Power ISA 2.07)", - "cflags": ["-mcpu=power8", "-maltivec", "-mvsx"], - "aux_files": [ - "test/abicheck/ppc64le/callstub_ppc64le.S", - "test/abicheck/ppc64le/selftest_ppc64le.S", - ], }, } @@ -5113,10 +5062,6 @@ def gen_abicheck(): # Bucket joblist entries by their YAML-declared (arch, calling) pair so a # single dev source file is fully self-describing. jobs_by_arch_calling = {key: [] for key in ARCH_CALLINGS} - # Map cap -> sorted list of .S files that require it. Drives the - # generated per-arch abicheck_.mk at the end of this function. - cap_to_files = {cap: [] for cap in ABI_CAPS} - for entry in sorted(joblist, key=lambda j: j[0]): assembly_basename, dev_src_dir, _cflags, joblist_arch = entry dev_source = f"{dev_src_dir}/{assembly_basename}" @@ -5128,9 +5073,6 @@ def gen_abicheck(): f"{dev_source}: YAML 'ABI.Architecture: {arch_calling[0]}' " f"disagrees with joblist arch {joblist_arch!r}" ) - upstream_src_dir = upstream_src_dir_for_dev_dir(dev_src_dir) - for cap in kernel_features(yaml_data, dev_source): - cap_to_files[cap].append(f"{upstream_src_dir}/{assembly_basename}") jobs_by_arch_calling[arch_calling].append((entry, yaml_data)) # Per-(arch, calling) generated metadata used to assemble checks_all.h: @@ -5155,12 +5097,14 @@ def gen_abicheck(): features = kernel_features(yaml_data, dev_source) registers = kernel_registers(yaml_data, dev_source) # Compile-time guards derived from Features. Each capability with a - # 'guard' (e.g. __AVX2__ for AVX2, __ARM_FEATURE_SHA3 for SHA3) + # 'guard' (e.g. MLK_SYS_X86_64_AVX2 for AVX2) # contributes an #if term mirroring the backend's own compile-time # gate; runtime gating via mlk_sys_check_capability is # additional, not a replacement. feature_guards = [ - ABI_CAPS[f]["guard"] for f in features if ABI_CAPS[f]["guard"] + ABI_CAPS[f]["guard"] + for f in features + if ABI_CAPS[f]["guard"] and ABI_CAPS[f]["guard"] != arch_guard ] function_name = yaml_data.get("Name") @@ -5360,7 +5304,7 @@ def gen_abicheck(): # Emit one row per function, consolidating consecutive functions that # share the same feature_guards into a single #if/#endif block (rather # than one block per function). This collapses a uniform-feature group - # (e.g. x86_64, where every kernel is gated on __AVX2__) into a single + # (e.g. x86_64, where every kernel requires AVX2) into a single # block, while still splitting where guards differ (e.g. aarch64, where # SHA3 and non-SHA3 kernels are interleaved). def emit_feature_grouped(functions, render): @@ -5425,72 +5369,6 @@ def gen_abicheck(): force_format=True, ) - # Emit per-capability CFLAGS injection for the build, split per arch: - # one test/abicheck//abicheck_.mk per arch with caps, plus a - # top-level test/abicheck/abicheck.mk that includes them all. Single source - # of truth alongside the C-time guard (arch_flags) and runtime cap check. - caps_by_subdir = {} - for cap in sorted(ABI_CAPS): - caps_by_subdir.setdefault(ABI_CAPS[cap]["asm_subdir"], []).append(cap) - - def gen_features_mk(asm_subdir, caps): - yield from gen_yaml_header() - yield from gen_yaml_autogen_warning() - yield "#" - yield "# Edit the YAML 'ABI.Features:' list in dev//src/.S" - yield "# and re-run scripts/autogen instead." - yield "#" - yield "# For each capability declared by a kernel's ABI.Features list, this" - yield "# file appends the capability's CFLAGS to that kernel's .S object" - yield "# under mlkem/src/." - yield "" - yield "# Default each cap's file list to empty so the unconditional appends" - yield "# below are safe even when a cap has no kernels on this arch." - for cap in caps: - yield f"ABICHECK_REQ_{cap}_FILES :=" - for cap in caps: - # Files needing this cap's CFLAGS are: the kernel exports declared - # by YAML, plus any always-on auxiliary files (callstub/selftest) - # listed in ABI_CAPS[cap]['aux_files']. - files = sorted( - set(cap_to_files[cap]) | set(ABI_CAPS[cap].get("aux_files", [])) - ) - if not files: - continue - cflags = " ".join(ABI_CAPS[cap]["cflags"]) - yield "" - yield f"# {cap}: {ABI_CAPS[cap]['description']}" - yield f"ABICHECK_REQ_{cap}_FILES := \\" - for i, f in enumerate(files): - sep = " \\" if i + 1 < len(files) else "" - yield f" {f}{sep}" - yield ( - f"ABICHECK_REQ_{cap}_OBJS := " - f"$(call MAKE_OBJS,$(ABICHECK_DIR),$(ABICHECK_REQ_{cap}_FILES))" - ) - if cflags: - yield f"$(ABICHECK_REQ_{cap}_OBJS): CFLAGS += {cflags}" - yield "" - - for asm_subdir, caps in caps_by_subdir.items(): - update_file( - f"test/abicheck/{asm_subdir}/abicheck_{asm_subdir}.mk", - "\n".join(gen_features_mk(asm_subdir, caps)), - ) - - def gen_abicheck_mk(): - yield from gen_yaml_header() - yield from gen_yaml_autogen_warning() - yield "#" - yield "# Includes the per-arch abicheck_.mk, each of which appends" - yield "# its capabilities' CFLAGS to the matching .S objects." - yield "" - for asm_subdir in sorted(caps_by_subdir): - yield f"include test/abicheck/{asm_subdir}/abicheck_{asm_subdir}.mk" - yield "" - - update_file("test/abicheck/abicheck.mk", "\n".join(gen_abicheck_mk())) - def _main(): slothy_choices = [ diff --git a/test/abicheck/README.md b/test/abicheck/README.md index c83e1a13f7..1b545ca2f7 100644 --- a/test/abicheck/README.md +++ b/test/abicheck/README.md @@ -31,8 +31,9 @@ Before trusting any verdict, `abicheck.c` runs a self-test: hand-written corrupters (`/selftest_.S`) that each clobber one callee-saved register, confirming the checker fires. -The `mlkem/src/.../*.S` sources are assembled directly. Compile-time feature -guards select which checks are registered; a check is skipped if +The `mlkem/src/.../*.S` sources are assembled directly with the build's CPU +flags. Their system capability guards omit code for unsupported features. Matching +compile-time guards select which checks are registered; a check is skipped if `mlk_sys_check_capability()` reports a required feature as unavailable. On unsupported architectures the registry is empty and the driver exits cleanly. @@ -40,10 +41,8 @@ On unsupported architectures the registry is empty and the driver exits cleanly. Each kernel's buffer sizes, calling convention, and required CPU features come from a `/*yaml ... */` block in its `dev/` assembly source. `scripts/autogen` -turns that into the per-kernel `check_.c`, the `checks__all.h` -registry, and the per-arch `abicheck_.mk` (CFLAGS per feature, e.g. -`-mavx2`), all included via `abicheck.mk` from `test/mk/components.mk`. Edit the -YAML, not the generated files. +turns that into the per-kernel `check_.c` and the `checks__all.h` +registry. Edit the YAML, not the generated files. [^AAPCS32]: Arm Limited: Procedure Call Standard for the Arm Architecture (AAPCS32), [https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aapcs32.rst](https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aapcs32.rst) diff --git a/test/abicheck/aarch64/abicheck_aarch64.mk b/test/abicheck/aarch64/abicheck_aarch64.mk deleted file mode 100644 index 18404e5e91..0000000000 --- a/test/abicheck/aarch64/abicheck_aarch64.mk +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (c) The mlkem-native project authors -# SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT - -# WARNING: This file is auto-generated from scripts/autogen -# in the mlkem-native repository. -# Do not modify it directly. -# -# Edit the YAML 'ABI.Features:' list in dev//src/.S -# and re-run scripts/autogen instead. -# -# For each capability declared by a kernel's ABI.Features list, this -# file appends the capability's CFLAGS to that kernel's .S object -# under mlkem/src/. - -# Default each cap's file list to empty so the unconditional appends -# below are safe even when a cap has no kernels on this arch. -ABICHECK_REQ_NEON_FILES := -ABICHECK_REQ_SHA3_FILES := - -# NEON: AArch64 NEON -ABICHECK_REQ_NEON_FILES := \ - mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S \ - mlkem/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S \ - mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_scalar_hybrid_aarch64_asm.S \ - mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S \ - mlkem/src/native/aarch64/src/mlkem_intt_aarch64_asm.S \ - mlkem/src/native/aarch64/src/mlkem_ntt_aarch64_asm.S \ - mlkem/src/native/aarch64/src/mlkem_poly_mulcache_compute_aarch64_asm.S \ - mlkem/src/native/aarch64/src/mlkem_poly_reduce_aarch64_asm.S \ - mlkem/src/native/aarch64/src/mlkem_poly_tobytes_aarch64_asm.S \ - mlkem/src/native/aarch64/src/mlkem_poly_tomont_aarch64_asm.S \ - mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_aarch64_asm.S \ - mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_aarch64_asm.S \ - mlkem/src/native/aarch64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_aarch64_asm.S \ - mlkem/src/native/aarch64/src/mlkem_rej_uniform_aarch64_asm.S -ABICHECK_REQ_NEON_OBJS := $(call MAKE_OBJS,$(ABICHECK_DIR),$(ABICHECK_REQ_NEON_FILES)) -$(ABICHECK_REQ_NEON_OBJS): CFLAGS += -march=armv8-a+simd - -# SHA3: Armv8.4-A SHA3 (eor3, rax1, xar, bcax) -ABICHECK_REQ_SHA3_FILES := \ - mlkem/src/fips202/native/aarch64/src/keccak_f1600_x1_v84a_aarch64_asm.S \ - mlkem/src/fips202/native/aarch64/src/keccak_f1600_x2_v84a_aarch64_asm.S \ - mlkem/src/fips202/native/aarch64/src/keccak_f1600_x4_v8a_v84a_scalar_hybrid_aarch64_asm.S -ABICHECK_REQ_SHA3_OBJS := $(call MAKE_OBJS,$(ABICHECK_DIR),$(ABICHECK_REQ_SHA3_FILES)) -$(ABICHECK_REQ_SHA3_OBJS): CFLAGS += -march=armv8.4-a+sha3 diff --git a/test/abicheck/aarch64/callstub_aarch64.S b/test/abicheck/aarch64/callstub_aarch64.S index d3f8e81501..fa67994a97 100644 --- a/test/abicheck/aarch64/callstub_aarch64.S +++ b/test/abicheck/aarch64/callstub_aarch64.S @@ -5,6 +5,8 @@ #include "../../../mlkem/src/sys.h" +#if defined(MLK_SYS_AARCH64) + #if defined(__ELF__) .section .note.GNU-stack,"",@progbits #endif @@ -245,3 +247,5 @@ asm_call_stub_aarch64: .cfi_def_cfa_offset 0 ret .cfi_endproc + +#endif /* MLK_SYS_AARCH64 */ diff --git a/test/abicheck/aarch64/selftest_aarch64.S b/test/abicheck/aarch64/selftest_aarch64.S index 197fe67555..ef8c724fa7 100644 --- a/test/abicheck/aarch64/selftest_aarch64.S +++ b/test/abicheck/aarch64/selftest_aarch64.S @@ -5,6 +5,8 @@ #include "../../../mlkem/src/sys.h" +#if defined(MLK_SYS_AARCH64) + /* * AArch64 selftest stubs. * @@ -74,3 +76,5 @@ define_corrupter selftest_aarch64_corrupt_d13, "fneg d13, d13" define_corrupter selftest_aarch64_corrupt_d14, "fneg d14, d14" define_corrupter selftest_aarch64_corrupt_d15, "fneg d15, d15" #endif /* MLK_SYS_AARCH64_NEON */ + +#endif /* MLK_SYS_AARCH64 */ diff --git a/test/abicheck/abicheck.mk b/test/abicheck/abicheck.mk deleted file mode 100644 index 0204d07d52..0000000000 --- a/test/abicheck/abicheck.mk +++ /dev/null @@ -1,14 +0,0 @@ -# Copyright (c) The mlkem-native project authors -# SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT - -# WARNING: This file is auto-generated from scripts/autogen -# in the mlkem-native repository. -# Do not modify it directly. -# -# Includes the per-arch abicheck_.mk, each of which appends -# its capabilities' CFLAGS to the matching .S objects. - -include test/abicheck/aarch64/abicheck_aarch64.mk -include test/abicheck/armv81m/abicheck_armv81m.mk -include test/abicheck/ppc64le/abicheck_ppc64le.mk -include test/abicheck/x86_64/abicheck_x86_64.mk diff --git a/test/abicheck/armv81m/abicheck_armv81m.mk b/test/abicheck/armv81m/abicheck_armv81m.mk deleted file mode 100644 index c6e8f058b4..0000000000 --- a/test/abicheck/armv81m/abicheck_armv81m.mk +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright (c) The mlkem-native project authors -# SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT - -# WARNING: This file is auto-generated from scripts/autogen -# in the mlkem-native repository. -# Do not modify it directly. -# -# Edit the YAML 'ABI.Features:' list in dev//src/.S -# and re-run scripts/autogen instead. -# -# For each capability declared by a kernel's ABI.Features list, this -# file appends the capability's CFLAGS to that kernel's .S object -# under mlkem/src/. - -# Default each cap's file list to empty so the unconditional appends -# below are safe even when a cap has no kernels on this arch. -ABICHECK_REQ_MVE_FILES := - -# MVE: Armv8.1-M MVE -ABICHECK_REQ_MVE_FILES := \ - mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_mve.S \ - mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_extract_bytes_mve.S \ - mlkem/src/fips202/native/armv81m/src/keccak_f1600_x4_state_xor_bytes_mve.S \ - test/abicheck/armv81m/callstub_armv81m.S \ - test/abicheck/armv81m/selftest_armv81m.S -ABICHECK_REQ_MVE_OBJS := $(call MAKE_OBJS,$(ABICHECK_DIR),$(ABICHECK_REQ_MVE_FILES)) -$(ABICHECK_REQ_MVE_OBJS): CFLAGS += -march=armv8.1-m.main+mve -mthumb diff --git a/test/abicheck/armv81m/callstub_armv81m.S b/test/abicheck/armv81m/callstub_armv81m.S index 289edce8a9..6ae1267c55 100644 --- a/test/abicheck/armv81m/callstub_armv81m.S +++ b/test/abicheck/armv81m/callstub_armv81m.S @@ -3,6 +3,10 @@ * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT */ +#include "../../../mlkem/src/sys.h" + +#if defined(MLK_SYS_ARMV81M_MVE) + #if defined(__ELF__) .section .note.GNU-stack,"",%progbits #endif @@ -181,3 +185,5 @@ asm_call_stub_armv81m: .cfi_adjust_cfa_offset -64 pop {r4-r12, pc} .cfi_endproc + +#endif /* MLK_SYS_ARMV81M_MVE */ diff --git a/test/abicheck/armv81m/checks/check_keccak_f1600_x4_mve_asm.c b/test/abicheck/armv81m/checks/check_keccak_f1600_x4_mve_asm.c index 3f84d6186a..2913e4f1d8 100644 --- a/test/abicheck/armv81m/checks/check_keccak_f1600_x4_mve_asm.c +++ b/test/abicheck/armv81m/checks/check_keccak_f1600_x4_mve_asm.c @@ -14,7 +14,7 @@ #include "../abicheck_armv81m.h" #include "../checks_armv81m_all.h" -#if defined(MLK_SYS_ARMV81M_MVE) && defined(__ARM_FEATURE_MVE) +#if defined(MLK_SYS_ARMV81M_MVE) #include "../../../notrandombytes/notrandombytes.h" @@ -76,4 +76,4 @@ int check_keccak_f1600_x4_mve_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_ARMV81M_MVE && __ARM_FEATURE_MVE */ +#endif /* MLK_SYS_ARMV81M_MVE */ diff --git a/test/abicheck/armv81m/checks_armv81m_all.h b/test/abicheck/armv81m/checks_armv81m_all.h index 2f20ccaa71..2bb629310f 100644 --- a/test/abicheck/armv81m/checks_armv81m_all.h +++ b/test/abicheck/armv81m/checks_armv81m_all.h @@ -18,14 +18,10 @@ #if defined(MLK_SYS_ARMV81M_MVE) -#if defined(__ARM_FEATURE_MVE) int check_keccak_f1600_x4_mve_asm(void); -#endif static const abicheck_entry_t all_checks[] = { -#if defined(__ARM_FEATURE_MVE) {"keccak_f1600_x4_mve_asm", check_keccak_f1600_x4_mve_asm}, -#endif {NULL, NULL} /* Sentinel */ }; diff --git a/test/abicheck/armv81m/selftest_armv81m.S b/test/abicheck/armv81m/selftest_armv81m.S index e3f01c883e..8924706411 100644 --- a/test/abicheck/armv81m/selftest_armv81m.S +++ b/test/abicheck/armv81m/selftest_armv81m.S @@ -3,6 +3,10 @@ * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT */ +#include "../../../mlkem/src/sys.h" + +#if defined(MLK_SYS_ARMV81M_MVE) + /* * Armv8.1-M (Thumb-2, AAPCS32+MVE) selftest stubs. * @@ -61,3 +65,5 @@ corrupt_q selftest_armv81m_corrupt_q4, q4 corrupt_q selftest_armv81m_corrupt_q5, q5 corrupt_q selftest_armv81m_corrupt_q6, q6 corrupt_q selftest_armv81m_corrupt_q7, q7 + +#endif /* MLK_SYS_ARMV81M_MVE */ diff --git a/test/abicheck/ppc64le/abicheck_ppc64le.mk b/test/abicheck/ppc64le/abicheck_ppc64le.mk deleted file mode 100644 index acc89c0360..0000000000 --- a/test/abicheck/ppc64le/abicheck_ppc64le.mk +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright (c) The mlkem-native project authors -# SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT - -# WARNING: This file is auto-generated from scripts/autogen -# in the mlkem-native repository. -# Do not modify it directly. -# -# Edit the YAML 'ABI.Features:' list in dev//src/.S -# and re-run scripts/autogen instead. -# -# For each capability declared by a kernel's ABI.Features list, this -# file appends the capability's CFLAGS to that kernel's .S object -# under mlkem/src/. - -# Default each cap's file list to empty so the unconditional appends -# below are safe even when a cap has no kernels on this arch. -ABICHECK_REQ_POWER8_VECTOR_FILES := - -# POWER8_VECTOR: AltiVec/VSX and POWER8 vector extensions (Power ISA 2.07) -ABICHECK_REQ_POWER8_VECTOR_FILES := \ - mlkem/src/native/ppc64le/src/mlkem_intt_ppc_asm.S \ - mlkem/src/native/ppc64le/src/mlkem_ntt_ppc_asm.S \ - mlkem/src/native/ppc64le/src/mlkem_poly_tomont_ppc_asm.S \ - mlkem/src/native/ppc64le/src/mlkem_reduce_ppc_asm.S \ - test/abicheck/ppc64le/callstub_ppc64le.S \ - test/abicheck/ppc64le/selftest_ppc64le.S -ABICHECK_REQ_POWER8_VECTOR_OBJS := $(call MAKE_OBJS,$(ABICHECK_DIR),$(ABICHECK_REQ_POWER8_VECTOR_FILES)) -$(ABICHECK_REQ_POWER8_VECTOR_OBJS): CFLAGS += -mcpu=power8 -maltivec -mvsx diff --git a/test/abicheck/x86_64/abicheck_x86_64.mk b/test/abicheck/x86_64/abicheck_x86_64.mk deleted file mode 100644 index 638f4491d6..0000000000 --- a/test/abicheck/x86_64/abicheck_x86_64.mk +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright (c) The mlkem-native project authors -# SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT - -# WARNING: This file is auto-generated from scripts/autogen -# in the mlkem-native repository. -# Do not modify it directly. -# -# Edit the YAML 'ABI.Features:' list in dev//src/.S -# and re-run scripts/autogen instead. -# -# For each capability declared by a kernel's ABI.Features list, this -# file appends the capability's CFLAGS to that kernel's .S object -# under mlkem/src/. - -# Default each cap's file list to empty so the unconditional appends -# below are safe even when a cap has no kernels on this arch. -ABICHECK_REQ_AVX2_FILES := - -# AVX2: AVX2 -ABICHECK_REQ_AVX2_FILES := \ - mlkem/src/fips202/native/x86_64/src/keccak_f1600_x4_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_intt_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_ntt_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_nttfrombytes_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_ntttobytes_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_nttunpack_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_poly_compress_d10_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_poly_compress_d11_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_poly_compress_d4_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_poly_compress_d5_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_poly_decompress_d10_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_poly_decompress_d11_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_poly_decompress_d4_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_poly_decompress_d5_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_poly_mulcache_compute_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_reduce_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_rej_uniform_avx2_asm.S \ - mlkem/src/native/x86_64/src/mlkem_tomont_avx2_asm.S -ABICHECK_REQ_AVX2_OBJS := $(call MAKE_OBJS,$(ABICHECK_DIR),$(ABICHECK_REQ_AVX2_FILES)) -$(ABICHECK_REQ_AVX2_OBJS): CFLAGS += -mavx2 -mbmi2 diff --git a/test/abicheck/x86_64/callstub_x86_64.S b/test/abicheck/x86_64/callstub_x86_64.S index eed080aaee..cacf77e188 100644 --- a/test/abicheck/x86_64/callstub_x86_64.S +++ b/test/abicheck/x86_64/callstub_x86_64.S @@ -3,6 +3,10 @@ * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT */ +#include "../../../mlkem/src/sys.h" + +#if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) + /* * Function: asm_call_stub_x86_64_sysv * Description: x86_64 System V ABI compliance testing stub @@ -147,3 +151,5 @@ asm_call_stub_x86_64_sysv: .cfi_restore %r15 ret .cfi_endproc + +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED */ diff --git a/test/abicheck/x86_64/checks/check_invntt_avx2_asm.c b/test/abicheck/x86_64/checks/check_invntt_avx2_asm.c index a7c6a0ffbf..2314ce78f6 100644 --- a/test/abicheck/x86_64/checks/check_invntt_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_invntt_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -72,4 +72,4 @@ int check_invntt_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_keccak_f1600_x4_avx2_asm.c b/test/abicheck/x86_64/checks/check_keccak_f1600_x4_avx2_asm.c index 33aa051e6d..3f8e3129a6 100644 --- a/test/abicheck/x86_64/checks/check_keccak_f1600_x4_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_keccak_f1600_x4_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -82,4 +82,4 @@ int check_keccak_f1600_x4_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_ntt_avx2_asm.c b/test/abicheck/x86_64/checks/check_ntt_avx2_asm.c index b2185c6019..bbebcaa525 100644 --- a/test/abicheck/x86_64/checks/check_ntt_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_ntt_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -72,4 +72,4 @@ int check_ntt_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_nttfrombytes_avx2_asm.c b/test/abicheck/x86_64/checks/check_nttfrombytes_avx2_asm.c index 90b9c29563..f9f16bd3f0 100644 --- a/test/abicheck/x86_64/checks/check_nttfrombytes_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_nttfrombytes_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -73,4 +73,4 @@ int check_nttfrombytes_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_ntttobytes_avx2_asm.c b/test/abicheck/x86_64/checks/check_ntttobytes_avx2_asm.c index 36ad2af817..5cdc2f2ad3 100644 --- a/test/abicheck/x86_64/checks/check_ntttobytes_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_ntttobytes_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -74,4 +74,4 @@ int check_ntttobytes_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_nttunpack_avx2_asm.c b/test/abicheck/x86_64/checks/check_nttunpack_avx2_asm.c index eaee811376..6a8e6a5643 100644 --- a/test/abicheck/x86_64/checks/check_nttunpack_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_nttunpack_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -70,4 +70,4 @@ int check_nttunpack_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_poly_compress_d10_avx2_asm.c b/test/abicheck/x86_64/checks/check_poly_compress_d10_avx2_asm.c index a30c040d04..063a3c89f8 100644 --- a/test/abicheck/x86_64/checks/check_poly_compress_d10_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_poly_compress_d10_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -78,4 +78,4 @@ int check_poly_compress_d10_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_poly_compress_d11_avx2_asm.c b/test/abicheck/x86_64/checks/check_poly_compress_d11_avx2_asm.c index 8fc598be22..ba6453e070 100644 --- a/test/abicheck/x86_64/checks/check_poly_compress_d11_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_poly_compress_d11_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -78,4 +78,4 @@ int check_poly_compress_d11_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_poly_compress_d4_avx2_asm.c b/test/abicheck/x86_64/checks/check_poly_compress_d4_avx2_asm.c index 5d819961be..74e290dfec 100644 --- a/test/abicheck/x86_64/checks/check_poly_compress_d4_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_poly_compress_d4_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -77,4 +77,4 @@ int check_poly_compress_d4_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_poly_compress_d5_avx2_asm.c b/test/abicheck/x86_64/checks/check_poly_compress_d5_avx2_asm.c index e64c7966c2..2c852fa9cc 100644 --- a/test/abicheck/x86_64/checks/check_poly_compress_d5_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_poly_compress_d5_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -77,4 +77,4 @@ int check_poly_compress_d5_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_poly_decompress_d10_avx2_asm.c b/test/abicheck/x86_64/checks/check_poly_decompress_d10_avx2_asm.c index c878ae7319..077fc33bc4 100644 --- a/test/abicheck/x86_64/checks/check_poly_decompress_d10_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_poly_decompress_d10_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -78,4 +78,4 @@ int check_poly_decompress_d10_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_poly_decompress_d11_avx2_asm.c b/test/abicheck/x86_64/checks/check_poly_decompress_d11_avx2_asm.c index 573a11b47e..896b1c0a54 100644 --- a/test/abicheck/x86_64/checks/check_poly_decompress_d11_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_poly_decompress_d11_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -78,4 +78,4 @@ int check_poly_decompress_d11_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_poly_decompress_d4_avx2_asm.c b/test/abicheck/x86_64/checks/check_poly_decompress_d4_avx2_asm.c index a27768ccf5..debbca9cfd 100644 --- a/test/abicheck/x86_64/checks/check_poly_decompress_d4_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_poly_decompress_d4_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -78,4 +78,4 @@ int check_poly_decompress_d4_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_poly_decompress_d5_avx2_asm.c b/test/abicheck/x86_64/checks/check_poly_decompress_d5_avx2_asm.c index bdc2d6e806..b7c94995b8 100644 --- a/test/abicheck/x86_64/checks/check_poly_decompress_d5_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_poly_decompress_d5_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -78,4 +78,4 @@ int check_poly_decompress_d5_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_poly_mulcache_compute_avx2_asm.c b/test/abicheck/x86_64/checks/check_poly_mulcache_compute_avx2_asm.c index 1bacb3b763..32921dc402 100644 --- a/test/abicheck/x86_64/checks/check_poly_mulcache_compute_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_poly_mulcache_compute_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -78,4 +78,4 @@ int check_poly_mulcache_compute_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.c b/test/abicheck/x86_64/checks/check_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.c index 9e31b942c7..72d87683b3 100644 --- a/test/abicheck/x86_64/checks/check_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -82,4 +82,4 @@ int check_polyvec_basemul_acc_montgomery_cached_k2_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.c b/test/abicheck/x86_64/checks/check_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.c index e1add85cbb..a7e58914d1 100644 --- a/test/abicheck/x86_64/checks/check_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -82,4 +82,4 @@ int check_polyvec_basemul_acc_montgomery_cached_k3_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.c b/test/abicheck/x86_64/checks/check_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.c index 7cdabca54c..f4b17626a4 100644 --- a/test/abicheck/x86_64/checks/check_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -82,4 +82,4 @@ int check_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_reduce_avx2_asm.c b/test/abicheck/x86_64/checks/check_reduce_avx2_asm.c index 9e1ed6bb67..586838503e 100644 --- a/test/abicheck/x86_64/checks/check_reduce_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_reduce_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -69,4 +69,4 @@ int check_reduce_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_rej_uniform_avx2_asm.c b/test/abicheck/x86_64/checks/check_rej_uniform_avx2_asm.c index 3c65653861..2dcd60a715 100644 --- a/test/abicheck/x86_64/checks/check_rej_uniform_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_rej_uniform_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -78,4 +78,4 @@ int check_rej_uniform_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks/check_tomont_avx2_asm.c b/test/abicheck/x86_64/checks/check_tomont_avx2_asm.c index 38db3122a2..ff4a6b3e91 100644 --- a/test/abicheck/x86_64/checks/check_tomont_avx2_asm.c +++ b/test/abicheck/x86_64/checks/check_tomont_avx2_asm.c @@ -15,7 +15,7 @@ #include "../checks_x86_64_all.h" #if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) && \ - defined(__AVX2__) + defined(MLK_SYS_X86_64_AVX2) #include "../../../notrandombytes/notrandombytes.h" @@ -69,4 +69,4 @@ int check_tomont_avx2_asm(void) return MLK_ABICHECK_PASSED; } -#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && __AVX2__ */ +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED && MLK_SYS_X86_64_AVX2 */ diff --git a/test/abicheck/x86_64/checks_x86_64_all.h b/test/abicheck/x86_64/checks_x86_64_all.h index b7fbadaafc..aaaff96f81 100644 --- a/test/abicheck/x86_64/checks_x86_64_all.h +++ b/test/abicheck/x86_64/checks_x86_64_all.h @@ -19,7 +19,7 @@ #if defined(MLK_SYS_X86_64) #if defined(MLK_SYSV_ABI_SUPPORTED) -#if defined(__AVX2__) +#if defined(MLK_SYS_X86_64_AVX2) int check_keccak_f1600_x4_avx2_asm(void); int check_invntt_avx2_asm(void); int check_ntt_avx2_asm(void); @@ -41,12 +41,12 @@ int check_polyvec_basemul_acc_montgomery_cached_k4_avx2_asm(void); int check_reduce_avx2_asm(void); int check_rej_uniform_avx2_asm(void); int check_tomont_avx2_asm(void); -#endif /* __AVX2__ */ +#endif /* MLK_SYS_X86_64_AVX2 */ #endif /* MLK_SYSV_ABI_SUPPORTED */ static const abicheck_entry_t all_checks[] = { #if defined(MLK_SYSV_ABI_SUPPORTED) -#if defined(__AVX2__) +#if defined(MLK_SYS_X86_64_AVX2) {"keccak_f1600_x4_avx2_asm", check_keccak_f1600_x4_avx2_asm}, {"invntt_avx2_asm", check_invntt_avx2_asm}, {"ntt_avx2_asm", check_ntt_avx2_asm}, @@ -71,7 +71,7 @@ static const abicheck_entry_t all_checks[] = { {"reduce_avx2_asm", check_reduce_avx2_asm}, {"rej_uniform_avx2_asm", check_rej_uniform_avx2_asm}, {"tomont_avx2_asm", check_tomont_avx2_asm}, -#endif /* __AVX2__ */ +#endif /* MLK_SYS_X86_64_AVX2 */ #endif /* MLK_SYSV_ABI_SUPPORTED */ {NULL, NULL} /* Sentinel */ }; diff --git a/test/abicheck/x86_64/selftest_x86_64.S b/test/abicheck/x86_64/selftest_x86_64.S index a9f1af0604..e12a9ce63e 100644 --- a/test/abicheck/x86_64/selftest_x86_64.S +++ b/test/abicheck/x86_64/selftest_x86_64.S @@ -3,6 +3,10 @@ * SPDX-License-Identifier: Apache-2.0 OR ISC OR MIT */ +#include "../../../mlkem/src/sys.h" + +#if defined(MLK_SYS_X86_64) && defined(MLK_SYSV_ABI_SUPPORTED) + /* * x86_64 (System V) selftest stubs. * @@ -39,3 +43,5 @@ define_corrupter selftest_x86_64_corrupt_r12, "notq %r12" define_corrupter selftest_x86_64_corrupt_r13, "notq %r13" define_corrupter selftest_x86_64_corrupt_r14, "notq %r14" define_corrupter selftest_x86_64_corrupt_r15, "notq %r15" + +#endif /* MLK_SYS_X86_64 && MLK_SYSV_ABI_SUPPORTED */ diff --git a/test/mk/components.mk b/test/mk/components.mk index 3059580dc9..5c5363665c 100644 --- a/test/mk/components.mk +++ b/test/mk/components.mk @@ -198,20 +198,8 @@ else ABICHECK_ASM_SOURCES := endif -# Per-capability CFLAGS injection (e.g. -march=armv8.4-a+sha3 for SHA3, -# -mavx2 -mbmi2 for AVX2), generated by scripts/autogen from each kernel's -# YAML 'ABI.Features:' list. abicheck.mk includes the per-arch abicheck_.mk. -include test/abicheck/abicheck.mk - -# SHA3-not-assemblable case: some aarch64 compilers do not support -# `-march=armv8.4-a+sha3`, in which case we cannot even assemble the SHA3 -# Keccak kernels. -ifeq ($(ARCH),aarch64) -ifneq ($(MK_COMPILER_SUPPORTS_SHA3),1) -ABICHECK_ASM_SOURCES := $(filter-out $(ABICHECK_REQ_SHA3_FILES),$(ABICHECK_ASM_SOURCES)) -endif -endif - +# Compile the fixed source list with the platform's CPU flags. Each assembly +# source uses the same system capability guards as the C checks. ABICHECK_ALL_SOURCES = $(ABICHECK_SOURCES) $(ABICHECK_ASM_SOURCES) ABICHECK_OBJS = $(call MAKE_OBJS,$(ABICHECK_DIR),$(ABICHECK_ALL_SOURCES))