A new minor version of the Jasmin compiler has just been released. It contains a few fixes and additions whose details can be found in the CHANGELOG. Two important changes are highlighted below. Some updates to legacy code might be needed before updating to this version.

New instructions for x86

The x86 target now features a PADD instruction for (vectorized) addition in MMX registers, and a BSR instruction to locate the most significant non-zero bit of a non-zero machine-word (beware: it is unsafe to call this instruction on a zero value).

The MOVEMASK instruction replaces all uses of the legacy VPMOVMSKB.

The deprecated VPBLENDVB has been removed: the BLENDV instruction should be used instead.

L-values are no longer implicitly introduced

Prior to this release, the compiler (pre-typing) would automatically introduce missing L-values (with a warning enabled by the command-line flag -w_). The main use of this feature was to avoid listing all the boolean flags modified by intrinsics. This use case is now covered by the syntax ?{}; for instance, resetting a register x to zero can be written ?{}, x = #set0();.