Due to a typo in s390_irgen_VFLR, the VFLR instruction behaves incorrectly
when its m3 field contains 4, meaning extended format. In that case VFLR
is also written as VFLRX (or WFLRX) and supposed to round down from the
extended 128-bit format to the long 64-bit format. However, the typo
checks for m3 == 2 instead, so the value of 4 is unhandled, causing
Valgrind to throw a specification exception.
This fixes the typo.
446281 Add a DRD suppression for fwrite
446103 Memcheck: `--track-origins=yes` causes extreme slowdowns for large mmap/munmap
446823 FreeBSD - missing syscalls when using libzm4
+447991 s390x: Valgrind indicates illegal instruction on wflrx
447995 Valgrind segfault on power10 due to hwcap checking code
449483 Powerpc: vcmpgtsq., vcmpgtuq,, vcmpequq. instructions not setting the
condition code correctly.
static const HChar *
s390_irgen_VFLR(UChar v1, UChar v2, UChar m3, UChar m4, UChar m5)
{
- s390_insn_assert("vflr", m3 == 3 || (s390_host_has_vxe && m3 == 2));
+ s390_insn_assert("vflr", m3 == 3 || (s390_host_has_vxe && m3 == 4));
if (m3 == 3)
s390_vector_fp_convert(Iop_F64toF32, Ity_F64, Ity_F32, True,