Skip to content

Commit c1abbda

Browse files
committed
Autogen: Preserve NO_XXX_API config guards in generated table files
Signed-off-by: Matthias J. Kannwischer <matthias@zerorisc.com>
1 parent 7e22dd8 commit c1abbda

4 files changed

Lines changed: 39 additions & 9 deletions

File tree

dev/aarch64_clean/src/polyz_unpack_table.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ MLD_ALIGN const uint8_t mld_polyz_unpack_17_indices[] = {
2727
2, 3, 4, 255, 4, 5, 6, 255, 6, 7, 8, 255, 8, 9, 10, 255,
2828
11, 12, 13, 255, 13, 14, 15, 255, 15, 16, 17, 255, 17, 18, 19, 255,
2929
};
30-
#endif
30+
#endif /* MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLD_CONFIG_PARAMETER_SET == 44 \
31+
*/
3132

3233
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || \
3334
(MLD_CONFIG_PARAMETER_SET == 65 || MLD_CONFIG_PARAMETER_SET == 87)
@@ -37,7 +38,9 @@ MLD_ALIGN const uint8_t mld_polyz_unpack_19_indices[] = {
3738
4, 5, 6, 255, 6, 7, 8, 255, 9, 10, 11, 255, 11, 12, 13, 255,
3839
14, 15, 16, 255, 16, 17, 18, 255, 19, 20, 21, 255, 21, 22, 23, 255,
3940
};
40-
#endif
41+
#endif /* MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLD_CONFIG_PARAMETER_SET == 65 \
42+
|| MLD_CONFIG_PARAMETER_SET == 87 */
43+
4144
#endif /* !MLD_CONFIG_NO_SIGN_API || !MLD_CONFIG_NO_VERIFY_API */
4245

4346
#else /* MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */

dev/aarch64_opt/src/polyz_unpack_table.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ MLD_ALIGN const uint8_t mld_polyz_unpack_17_indices[] = {
2727
2, 3, 4, 255, 4, 5, 6, 255, 6, 7, 8, 255, 8, 9, 10, 255,
2828
11, 12, 13, 255, 13, 14, 15, 255, 15, 16, 17, 255, 17, 18, 19, 255,
2929
};
30-
#endif
30+
#endif /* MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLD_CONFIG_PARAMETER_SET == 44 \
31+
*/
3132

3233
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || \
3334
(MLD_CONFIG_PARAMETER_SET == 65 || MLD_CONFIG_PARAMETER_SET == 87)
@@ -37,7 +38,9 @@ MLD_ALIGN const uint8_t mld_polyz_unpack_19_indices[] = {
3738
4, 5, 6, 255, 6, 7, 8, 255, 9, 10, 11, 255, 11, 12, 13, 255,
3839
14, 15, 16, 255, 16, 17, 18, 255, 19, 20, 21, 255, 21, 22, 23, 255,
3940
};
40-
#endif
41+
#endif /* MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLD_CONFIG_PARAMETER_SET == 65 \
42+
|| MLD_CONFIG_PARAMETER_SET == 87 */
43+
4144
#endif /* !MLD_CONFIG_NO_SIGN_API || !MLD_CONFIG_NO_VERIFY_API */
4245

4346
#else /* MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */

mldsa/src/native/aarch64/src/polyz_unpack_table.c

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ MLD_ALIGN const uint8_t mld_polyz_unpack_17_indices[] = {
2727
2, 3, 4, 255, 4, 5, 6, 255, 6, 7, 8, 255, 8, 9, 10, 255,
2828
11, 12, 13, 255, 13, 14, 15, 255, 15, 16, 17, 255, 17, 18, 19, 255,
2929
};
30-
#endif
30+
#endif /* MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLD_CONFIG_PARAMETER_SET == 44 \
31+
*/
3132

3233
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || \
3334
(MLD_CONFIG_PARAMETER_SET == 65 || MLD_CONFIG_PARAMETER_SET == 87)
@@ -37,7 +38,9 @@ MLD_ALIGN const uint8_t mld_polyz_unpack_19_indices[] = {
3738
4, 5, 6, 255, 6, 7, 8, 255, 9, 10, 11, 255, 11, 12, 13, 255,
3839
14, 15, 16, 255, 16, 17, 18, 255, 19, 20, 21, 255, 21, 22, 23, 255,
3940
};
40-
#endif
41+
#endif /* MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLD_CONFIG_PARAMETER_SET == 65 \
42+
|| MLD_CONFIG_PARAMETER_SET == 87 */
43+
4144
#endif /* !MLD_CONFIG_NO_SIGN_API || !MLD_CONFIG_NO_VERIFY_API */
4245

4346
#else /* MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */

scripts/autogen

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -988,7 +988,8 @@ def gen_aarch64_rej_uniform_eta_table():
988988
yield from gen_header()
989989
yield '#include "../../../common.h"'
990990
yield ""
991-
yield "#if defined(MLD_ARITH_BACKEND_AARCH64) && \\"
991+
yield "#if defined(MLD_ARITH_BACKEND_AARCH64) && \\"
992+
yield " !defined(MLD_CONFIG_NO_KEYPAIR_API) && \\"
992993
yield " !defined(MLD_CONFIG_MULTILEVEL_NO_SHARED)"
993994
yield ""
994995
yield '#include "arith_native_aarch64.h"'
@@ -1003,11 +1004,17 @@ def gen_aarch64_rej_uniform_eta_table():
10031004
yield ",".join(map(str, idxs)) + f" /* {i} */,"
10041005
yield "};"
10051006
yield ""
1006-
yield "#else"
1007+
yield (
1008+
"#else /* MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_NO_KEYPAIR_API && \\"
1009+
)
1010+
yield " !MLD_CONFIG_MULTILEVEL_NO_SHARED */"
10071011
yield ""
10081012
yield "MLD_EMPTY_CU(aarch64_rej_uniform_eta_table)"
10091013
yield ""
1010-
yield "#endif"
1014+
yield (
1015+
"#endif /* !(MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_NO_KEYPAIR_API && \\"
1016+
)
1017+
yield " !MLD_CONFIG_MULTILEVEL_NO_SHARED) */"
10111018
yield ""
10121019

10131020
update_file("dev/aarch64_opt/src/rej_uniform_eta_table.c", "\n".join(gen()))
@@ -1089,6 +1096,15 @@ def gen_aarch64_polyz_unpack_indices(bit_width):
10891096

10901097

10911098
def gen_aarch64_polyz_unpack_table():
1099+
# Map gamma1_bits to parameter set guards
1100+
param_set_guards = {
1101+
17: "#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || MLD_CONFIG_PARAMETER_SET == 44",
1102+
19: (
1103+
"#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || \\\n"
1104+
" (MLD_CONFIG_PARAMETER_SET == 65 || MLD_CONFIG_PARAMETER_SET == 87)"
1105+
),
1106+
}
1107+
10921108
def format_row(vals):
10931109
return ", ".join(f"{v:>3}" for v in vals) + ","
10941110

@@ -1101,17 +1117,22 @@ def gen_aarch64_polyz_unpack_table():
11011117
yield ""
11021118
yield '#include "arith_native_aarch64.h"'
11031119
yield ""
1120+
yield "#if !defined(MLD_CONFIG_NO_SIGN_API) || !defined(MLD_CONFIG_NO_VERIFY_API)"
11041121
yield "/* Table of indices used for tbl instructions in polyz_unpack_{17,19}."
11051122
yield " * See autogen for details. */"
11061123
yield ""
11071124
for gamma1_bits in [17, 19]:
11081125
bit_width = gamma1_bits + 1
11091126
indices = list(gen_aarch64_polyz_unpack_indices(bit_width))
1127+
yield param_set_guards[gamma1_bits]
11101128
yield f"MLD_ALIGN const uint8_t mld_polyz_unpack_{gamma1_bits}_indices[] = {{"
11111129
for row_start in range(0, len(indices), 16):
11121130
yield " " + format_row(indices[row_start : row_start + 16])
11131131
yield "};"
1132+
yield "#endif"
11141133
yield ""
1134+
yield "#endif /* !MLD_CONFIG_NO_SIGN_API || !MLD_CONFIG_NO_VERIFY_API */"
1135+
yield ""
11151136
yield "#else /* MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */"
11161137
yield ""
11171138
yield "MLD_EMPTY_CU(aarch64_polyz_unpack_table)"

0 commit comments

Comments
 (0)