Closed tfaoliveira closed 1 year ago
This issue is no longer relevant since that, in the meantime, the error message changed. The experiment is described next:
make
(after replacing set_msf
by update_msf
in the code) yields:"kem.jpp", line 2364 (8-22)
warning: vector suffix simplified from 8u32 to 256
"kem.jpp", line 5716 (2-16)
from "kem.jpp", line 5790 (2-49):
compilation error:
register allocation: conflicting variables “skp.3667” and “hp.96853” must be merged due to:
at "kem.jpp", line 5716 (2-16)
from "kem.jpp", line 5790 (2-49):
( _15.96848, _16.96849, _17.96850, _18.96851, _19.96852, hp.96853) =
#ADD_64(skp.3667, ((64u) 32)); /* */
at "kem.jpp", line 5717 (2-34)
from "kem.jpp", line 5790 (2-49):
( _20.96854, _21.96855, _22.96856, _23.96857, _24.96858, hp.96859) =
#ADD_64(hp.96853, ((64u) 2304)); /* */
kem.jpp
)
This issue describes a compilation error in the context of libjade, more precisely
kyber768/avx2
, and Jasminglob_array3_slh
.To reproduce the compilation error, the following commands can be used:
If we change
src/crypto_kem/kyber/kyber768/amd64/avx2/Makefile
JFLAGS
variable toJFLAGS := -lazy-regalloc -lea
, the error changes to:Function
_poly_getnoise_eta1122_4x
is a non-inline function that is used by Kyber512 but not by Kyber768 if I'm not mistaken. The current, and temporary, fix for this problem is to declare_poly_getnoise_eta1122_4x
asinline
(which can be observed in recent commits oflibjade
sslh
branch).I think that it would be important:
RAX (defined at line -1) :
means, and if the error message can be improved to help to come up with a proper fix different than just inlining;register allocation: no more register to allocate
errors;