Jasmin 2024.07.0
This is a major release of Jasmin.
For a complete list of changes, please have a look at the CHANGELOG. Below are a few highlights.
Arrays in the arguments and results of functions
A long-awaited feature has landed! Export functions can have reg ptr
arrays as arguments and results.
Another improvement has been made regarding functions and arrays. Local functions can have reg
arrays and sub-arrays as arguments and results.
Selective Speculative Load Hardening support
The compiler supports SLH operators, and a speculative constant-time checker is available. It can be called with jasmin-ct --sct
.
Easy spills and unspills
Spilling and unspilling of reg
and reg ptr
can now be done without introducing stack variables, thanks to the #spill
and #unspill
operators.
More flexible parameters
The definition of parameters can now use arbitrary expressions and depend on other parameters.
Stack zeroization support
The compiler can introduce code that zeroizes the stack at the end of export functions. The user can enable the feature with an annotation or a compiler flag.
Help for debugging
Option -g
adds source-code positions in the generated assembly files, which can help for debugging.
Enhancements to the support of the ARMv7 architecture
The support for the ARMv7 instruction set has been polished. In particular, some issues with large immediates have been fixed. The support for ARMv7 is still marked as experimental, but this is expected to change in the next releases.
Other noteworthy changes
Extraction to EasyCrypt for safety verification is deprecated.
The deprecated legacy interface to the CT checker has been removed.