diff --git a/valgrind-3.17.0-s390_insn_as_string.patch b/valgrind-3.17.0-s390_insn_as_string.patch new file mode 100644 index 0000000..39c956c --- /dev/null +++ b/valgrind-3.17.0-s390_insn_as_string.patch @@ -0,0 +1,54 @@ +commit 45873298ff2d17accc65654d64758360616aade5 +Author: Andreas Arnez +Date: Tue Mar 30 18:10:43 2021 +0200 + + s390x: Add missing UNOP insns to s390_insn_as_string + + Some unary operator insns are not handled by s390_insn_as_string(). If + they are encountered while the appropriate trace flag is set, a vpanic + occurs. Fix this: add handling for the missing insns. + +diff --git a/VEX/priv/host_s390_defs.c b/VEX/priv/host_s390_defs.c +index 8762975b2..6e0734ae0 100644 +--- a/VEX/priv/host_s390_defs.c ++++ b/VEX/priv/host_s390_defs.c +@@ -7860,12 +7860,24 @@ s390_insn_as_string(const s390_insn *insn) + op = "v-vunpacku"; + break; + +- case S390_VEC_FLOAT_NEG: +- op = "v-vfloatneg"; ++ case S390_VEC_ABS: ++ op = "v-vabs"; + break; + +- case S390_VEC_FLOAT_SQRT: +- op = "v-vfloatsqrt"; ++ case S390_VEC_COUNT_LEADING_ZEROES: ++ op = "v-vclz"; ++ break; ++ ++ case S390_VEC_COUNT_TRAILING_ZEROES: ++ op = "v-vctz"; ++ break; ++ ++ case S390_VEC_COUNT_ONES: ++ op = "v-vpopct"; ++ break; ++ ++ case S390_VEC_FLOAT_NEG: ++ op = "v-vfloatneg"; + break; + + case S390_VEC_FLOAT_ABS: +@@ -7876,6 +7888,10 @@ s390_insn_as_string(const s390_insn *insn) + op = "v-vfloatnabs"; + break; + ++ case S390_VEC_FLOAT_SQRT: ++ op = "v-vfloatsqrt"; ++ break; ++ + default: + goto fail; + } diff --git a/valgrind.spec b/valgrind.spec index 5aeaedd..ecaad4a 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -106,6 +106,10 @@ Patch6: valgrind-3.17.0-ppc64-isa-3.1.patch # Reduced precision Missing Integer based outer tests Patch7: valgrind-3.17.0-ppc64-isa-3.1-tests.patch +# commit 45873298ff2d17accc65654d64758360616aade5 +# s390x: Add missing UNOP insns to s390_insn_as_string +Patch8: valgrind-3.17.0-s390_insn_as_string.patch + BuildRequires: make BuildRequires: glibc-devel @@ -248,6 +252,7 @@ Valgrind User Manual for details. %patch6 -p1 %patch7 -p1 +%patch8 -p1 %build # LTO triggers undefined symbols in valgrind. Valgrind has a --enable-lto @@ -473,6 +478,9 @@ fi %endif %changelog +* Tue May 4 2021 Mark Wielaard +- Add valgrind-3.17.0-s390_insn_as_string.patch + * Tue May 4 2021 Mark Wielaard - 3.17.0-3 - Add valgrind-3.17.0-ppc64-isa-3.1{,tests}.patch