A new major version of the Jasmin compiler has just been released. A few highlights on the changes are given below. Find more details in the CHANGELOG.

Deprecated syntaxes no longer supported

In Jasmin programs, square brackets have become mandatory around annotations (e.g., #[mmx] reg u64 t;), and the optional size annotation of memory accesses must be inside the brackets (e.g., [:u8 p + i]).

New syntax available

String constants can occur as literal values ("abcd"), assertions can appear as instructions (therefore assert is now a keyword), empty lists of L-values can be omitted (together with the equal sign), and the add-with-carry operation whose output carry is explicitly ignored (e.g., _, r = a + b + c) denotes the ADC instruction on arm-m4.

Compilation of SIMD shifts on x86

Due to a fix in the semantics of the x86 instructions VPSLL, VPSRL, and VPSRA, the compiler must be guided when compiling operators such as <<2u64.