Skip to content

Commit 9c62ded

Browse files
flyndmkannwischer
authored andcommitted
aarch64/src/polyz_unpack_table.c: Disable unused tables
Only one table is used for each parameter set, so add conditions to remove the unused table from non-shared builds. Signed-off-by: Anders Sonmark <Anders.Sonmark@axis.com>
1 parent dd2c459 commit 9c62ded

File tree

7 files changed

+47
-0
lines changed

7 files changed

+47
-0
lines changed

dev/aarch64_clean/src/arith_native_aarch64.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,15 @@ extern const uint8_t mld_rej_uniform_table[];
2929
#define mld_rej_uniform_eta_table MLD_NAMESPACE(rej_uniform_eta_table)
3030
extern const uint8_t mld_rej_uniform_eta_table[];
3131

32+
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || MLD_CONFIG_PARAMETER_SET == 44
3233
#define mld_polyz_unpack_17_indices MLD_NAMESPACE(polyz_unpack_17_indices)
3334
extern const uint8_t mld_polyz_unpack_17_indices[];
35+
#endif
36+
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || \
37+
(MLD_CONFIG_PARAMETER_SET == 65 || MLD_CONFIG_PARAMETER_SET == 87)
3438
#define mld_polyz_unpack_19_indices MLD_NAMESPACE(polyz_unpack_19_indices)
3539
extern const uint8_t mld_polyz_unpack_19_indices[];
40+
#endif
3641

3742

3843
/*

dev/aarch64_clean/src/polyz_unpack_table.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,26 @@
1919
/* Table of indices used for tbl instructions in polyz_unpack_{17,19}.
2020
* See autogen for details. */
2121

22+
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || MLD_CONFIG_PARAMETER_SET == 44
2223
MLD_ALIGN const uint8_t mld_polyz_unpack_17_indices[] = {
2324
0, 1, 2, 255, 2, 3, 4, 255, 4, 5, 6, 255, 6, 7, 8, 255,
2425
9, 10, 11, 255, 11, 12, 13, 255, 13, 14, 15, 255, 15, 16, 17, 255,
2526
2, 3, 4, 255, 4, 5, 6, 255, 6, 7, 8, 255, 8, 9, 10, 255,
2627
11, 12, 13, 255, 13, 14, 15, 255, 15, 28, 29, 255, 29, 30, 31, 255,
2728
};
29+
#endif /* MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLD_CONFIG_PARAMETER_SET == 44 \
30+
*/
2831

32+
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || \
33+
(MLD_CONFIG_PARAMETER_SET == 65 || MLD_CONFIG_PARAMETER_SET == 87)
2934
MLD_ALIGN const uint8_t mld_polyz_unpack_19_indices[] = {
3035
0, 1, 2, 255, 2, 3, 4, 255, 5, 6, 7, 255, 7, 8, 9, 255,
3136
10, 11, 12, 255, 12, 13, 14, 255, 15, 16, 17, 255, 17, 18, 19, 255,
3237
4, 5, 6, 255, 6, 7, 8, 255, 9, 10, 11, 255, 11, 12, 13, 255,
3338
14, 15, 24, 255, 24, 25, 26, 255, 27, 28, 29, 255, 29, 30, 31, 255,
3439
};
40+
#endif /* MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLD_CONFIG_PARAMETER_SET == 65 \
41+
|| MLD_CONFIG_PARAMETER_SET == 87 */
3542

3643
#else /* MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */
3744

dev/aarch64_opt/src/arith_native_aarch64.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,15 @@ extern const uint8_t mld_rej_uniform_table[];
2929
#define mld_rej_uniform_eta_table MLD_NAMESPACE(rej_uniform_eta_table)
3030
extern const uint8_t mld_rej_uniform_eta_table[];
3131

32+
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || MLD_CONFIG_PARAMETER_SET == 44
3233
#define mld_polyz_unpack_17_indices MLD_NAMESPACE(polyz_unpack_17_indices)
3334
extern const uint8_t mld_polyz_unpack_17_indices[];
35+
#endif
36+
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || \
37+
(MLD_CONFIG_PARAMETER_SET == 65 || MLD_CONFIG_PARAMETER_SET == 87)
3438
#define mld_polyz_unpack_19_indices MLD_NAMESPACE(polyz_unpack_19_indices)
3539
extern const uint8_t mld_polyz_unpack_19_indices[];
40+
#endif
3641

3742

3843
/*

dev/aarch64_opt/src/polyz_unpack_table.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,26 @@
1919
/* Table of indices used for tbl instructions in polyz_unpack_{17,19}.
2020
* See autogen for details. */
2121

22+
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || MLD_CONFIG_PARAMETER_SET == 44
2223
MLD_ALIGN const uint8_t mld_polyz_unpack_17_indices[] = {
2324
0, 1, 2, 255, 2, 3, 4, 255, 4, 5, 6, 255, 6, 7, 8, 255,
2425
9, 10, 11, 255, 11, 12, 13, 255, 13, 14, 15, 255, 15, 16, 17, 255,
2526
2, 3, 4, 255, 4, 5, 6, 255, 6, 7, 8, 255, 8, 9, 10, 255,
2627
11, 12, 13, 255, 13, 14, 15, 255, 15, 28, 29, 255, 29, 30, 31, 255,
2728
};
29+
#endif /* MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLD_CONFIG_PARAMETER_SET == 44 \
30+
*/
2831

32+
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || \
33+
(MLD_CONFIG_PARAMETER_SET == 65 || MLD_CONFIG_PARAMETER_SET == 87)
2934
MLD_ALIGN const uint8_t mld_polyz_unpack_19_indices[] = {
3035
0, 1, 2, 255, 2, 3, 4, 255, 5, 6, 7, 255, 7, 8, 9, 255,
3136
10, 11, 12, 255, 12, 13, 14, 255, 15, 16, 17, 255, 17, 18, 19, 255,
3237
4, 5, 6, 255, 6, 7, 8, 255, 9, 10, 11, 255, 11, 12, 13, 255,
3338
14, 15, 24, 255, 24, 25, 26, 255, 27, 28, 29, 255, 29, 30, 31, 255,
3439
};
40+
#endif /* MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLD_CONFIG_PARAMETER_SET == 65 \
41+
|| MLD_CONFIG_PARAMETER_SET == 87 */
3542

3643
#else /* MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */
3744

mldsa/src/native/aarch64/src/arith_native_aarch64.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,15 @@ extern const uint8_t mld_rej_uniform_table[];
2929
#define mld_rej_uniform_eta_table MLD_NAMESPACE(rej_uniform_eta_table)
3030
extern const uint8_t mld_rej_uniform_eta_table[];
3131

32+
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || MLD_CONFIG_PARAMETER_SET == 44
3233
#define mld_polyz_unpack_17_indices MLD_NAMESPACE(polyz_unpack_17_indices)
3334
extern const uint8_t mld_polyz_unpack_17_indices[];
35+
#endif
36+
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || \
37+
(MLD_CONFIG_PARAMETER_SET == 65 || MLD_CONFIG_PARAMETER_SET == 87)
3438
#define mld_polyz_unpack_19_indices MLD_NAMESPACE(polyz_unpack_19_indices)
3539
extern const uint8_t mld_polyz_unpack_19_indices[];
40+
#endif
3641

3742

3843
/*

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,19 +19,26 @@
1919
/* Table of indices used for tbl instructions in polyz_unpack_{17,19}.
2020
* See autogen for details. */
2121

22+
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || MLD_CONFIG_PARAMETER_SET == 44
2223
MLD_ALIGN const uint8_t mld_polyz_unpack_17_indices[] = {
2324
0, 1, 2, 255, 2, 3, 4, 255, 4, 5, 6, 255, 6, 7, 8, 255,
2425
9, 10, 11, 255, 11, 12, 13, 255, 13, 14, 15, 255, 15, 16, 17, 255,
2526
2, 3, 4, 255, 4, 5, 6, 255, 6, 7, 8, 255, 8, 9, 10, 255,
2627
11, 12, 13, 255, 13, 14, 15, 255, 15, 28, 29, 255, 29, 30, 31, 255,
2728
};
29+
#endif /* MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLD_CONFIG_PARAMETER_SET == 44 \
30+
*/
2831

32+
#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || \
33+
(MLD_CONFIG_PARAMETER_SET == 65 || MLD_CONFIG_PARAMETER_SET == 87)
2934
MLD_ALIGN const uint8_t mld_polyz_unpack_19_indices[] = {
3035
0, 1, 2, 255, 2, 3, 4, 255, 5, 6, 7, 255, 7, 8, 9, 255,
3136
10, 11, 12, 255, 12, 13, 14, 255, 15, 16, 17, 255, 17, 18, 19, 255,
3237
4, 5, 6, 255, 6, 7, 8, 255, 9, 10, 11, 255, 11, 12, 13, 255,
3338
14, 15, 24, 255, 24, 25, 26, 255, 27, 28, 29, 255, 29, 30, 31, 255,
3439
};
40+
#endif /* MLD_CONFIG_MULTILEVEL_WITH_SHARED || MLD_CONFIG_PARAMETER_SET == 65 \
41+
|| MLD_CONFIG_PARAMETER_SET == 87 */
3542

3643
#else /* MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */
3744

scripts/autogen

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1099,6 +1099,15 @@ def gen_aarch64_polyz_unpack_indices(bit_width):
10991099

11001100

11011101
def gen_aarch64_polyz_unpack_table():
1102+
# Map gamma1_bits to parameter set guards
1103+
param_set_guards = {
1104+
17: "#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || MLD_CONFIG_PARAMETER_SET == 44",
1105+
19: (
1106+
"#if defined(MLD_CONFIG_MULTILEVEL_WITH_SHARED) || \\\n"
1107+
" (MLD_CONFIG_PARAMETER_SET == 65 || MLD_CONFIG_PARAMETER_SET == 87)"
1108+
),
1109+
}
1110+
11021111
def format_row(vals):
11031112
return ", ".join(f"{v:>3}" for v in vals) + ","
11041113

@@ -1117,10 +1126,12 @@ def gen_aarch64_polyz_unpack_table():
11171126
for gamma1_bits in [17, 19]:
11181127
bit_width = gamma1_bits + 1
11191128
indices = list(gen_aarch64_polyz_unpack_indices(bit_width))
1129+
yield param_set_guards[gamma1_bits]
11201130
yield f"MLD_ALIGN const uint8_t mld_polyz_unpack_{gamma1_bits}_indices[] = {{"
11211131
for row_start in range(0, len(indices), 16):
11221132
yield " " + format_row(indices[row_start : row_start + 16])
11231133
yield "};"
1134+
yield "#endif"
11241135
yield ""
11251136
yield "#else /* MLD_ARITH_BACKEND_AARCH64 && !MLD_CONFIG_MULTILEVEL_NO_SHARED */"
11261137
yield ""

0 commit comments

Comments
 (0)