3.17.0-6 - z15 support
Add valgrind-3.17.0-s390-prep.patch Add valgrind-3.17.0-s390-z15.patch Add valgrind-3.17.0-s390-z13-vec-fix.patch Resolves: #1920584 Valgrind support of IBM Z hardware z15
This commit is contained in:
parent
2548f79710
commit
4a7f098214
2283
valgrind-3.17.0-s390-prep.patch
Normal file
2283
valgrind-3.17.0-s390-prep.patch
Normal file
File diff suppressed because it is too large
Load Diff
46
valgrind-3.17.0-s390-z13-vec-fix.patch
Normal file
46
valgrind-3.17.0-s390-z13-vec-fix.patch
Normal file
@ -0,0 +1,46 @@
|
||||
commit 124ae6cfa303f0cc71ffd685620cb57c4f8f02bb
|
||||
Author: Andreas Arnez <arnez@linux.ibm.com>
|
||||
Date: Mon Jun 7 14:01:53 2021 +0200
|
||||
|
||||
s390x: Don't emit "vector or with complement" on z13
|
||||
|
||||
The z/Architecture instruction "vector or with complement" (VOC) can be
|
||||
used as an optimization to combine "vector or" with "vector nor". This is
|
||||
exploited in Valgrind since commit 6c1cb1a0128b00858b973e. However, VOC
|
||||
requires the vector-enhancements facility 1, which is not installed on a
|
||||
z13 CPU. Thus Valgrind can now run into SIGILL on z13 when trying to
|
||||
execute vector string instructions.
|
||||
|
||||
Fix this by suppressing the VOC optimization unless the
|
||||
vector-enhancements facility 1 is recognized on the host.
|
||||
|
||||
diff --git a/VEX/priv/host_s390_isel.c b/VEX/priv/host_s390_isel.c
|
||||
index ee20c6711..15ca92a6b 100644
|
||||
--- a/VEX/priv/host_s390_isel.c
|
||||
+++ b/VEX/priv/host_s390_isel.c
|
||||
@@ -4102,14 +4102,17 @@ s390_isel_vec_expr_wrk(ISelEnv *env, IRExpr *expr)
|
||||
case Iop_OrV128:
|
||||
size = 16;
|
||||
vec_binop = S390_VEC_OR;
|
||||
- if (arg1->tag == Iex_Unop && arg1->Iex.Unop.op == Iop_NotV128) {
|
||||
- IRExpr* orig_arg1 = arg1;
|
||||
- arg1 = arg2;
|
||||
- arg2 = orig_arg1->Iex.Unop.arg;
|
||||
- vec_binop = S390_VEC_ORC;
|
||||
- } else if (arg2->tag == Iex_Unop && arg2->Iex.Unop.op == Iop_NotV128) {
|
||||
- arg2 = arg2->Iex.Unop.arg;
|
||||
- vec_binop = S390_VEC_ORC;
|
||||
+ if (s390_host_has_vxe) {
|
||||
+ if (arg1->tag == Iex_Unop && arg1->Iex.Unop.op == Iop_NotV128) {
|
||||
+ IRExpr* orig_arg1 = arg1;
|
||||
+ arg1 = arg2;
|
||||
+ arg2 = orig_arg1->Iex.Unop.arg;
|
||||
+ vec_binop = S390_VEC_ORC;
|
||||
+ } else if (arg2->tag == Iex_Unop &&
|
||||
+ arg2->Iex.Unop.op == Iop_NotV128) {
|
||||
+ arg2 = arg2->Iex.Unop.arg;
|
||||
+ vec_binop = S390_VEC_ORC;
|
||||
+ }
|
||||
}
|
||||
goto Iop_VV_wrk;
|
||||
|
2413
valgrind-3.17.0-s390-z15.patch
Normal file
2413
valgrind-3.17.0-s390-z15.patch
Normal file
File diff suppressed because it is too large
Load Diff
@ -3,7 +3,7 @@
|
||||
Summary: Tool for finding memory management bugs in programs
|
||||
Name: %{?scl_prefix}valgrind
|
||||
Version: 3.17.0
|
||||
Release: 5%{?dist}
|
||||
Release: 6%{?dist}
|
||||
Epoch: 1
|
||||
License: GPLv2+
|
||||
URL: http://www.valgrind.org/
|
||||
@ -120,6 +120,39 @@ Patch10: valgrind-3.17.0-clone-parent-res.patch
|
||||
# workaround for https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100217
|
||||
Patch11: valgrind-3.17.0-s390x-tests-z14-workaround.patch
|
||||
|
||||
# commit d74a637206ef5532ccd2ccb2e31ee2762f184e60
|
||||
# Bug 433863 - s390x: Remove memcheck test cases for cs, cds, and csg
|
||||
# commit 18ddcc47c951427efd3b790ba2481159b9bd1598
|
||||
# s390x: Support "expensive" comparisons Iop_ExpCmpNE32/64
|
||||
# commit 5db3f929c43bf46f4707178706cfe90f43acdd19
|
||||
# s390x: Add convenience function mkV128()
|
||||
# commit e78bd78d3043729033b426218ab8c6dae9c51e96
|
||||
# Bug 434296 - s390x: Rework IR conversion of VSTRC, VFAE, and VFEE
|
||||
# commit 4f17a067c4f8245c05611d6e8aa36e8841bab376
|
||||
# Bug 434296 - s390x: Rework IR conversion of VFENE
|
||||
# commit 9bd78ebd8bb5cd4ebb3f081ceba46836cc485551
|
||||
# Bug 434296 - s390x: Rework IR conversion of VISTR
|
||||
# commit 32312d588b77c5b5b5a0145bb0cc6f795b447790
|
||||
# Bug 434296 - s390x: Add memcheck test cases for vector string insns
|
||||
# commit a0bb049ace14ab52d386bb1d49a399f39eec4986
|
||||
# s390x: Improve handling of amodes without base register
|
||||
# commit fd935e238d907d9c523a311ba795077d95ad6912
|
||||
# s390x: Rework insn "v-vdup" and add "v-vrep"
|
||||
# commit 6c1cb1a0128b00858b973ef9344e12d6ddbaaf57
|
||||
# s390x: Add support for emitting "vector or with complement"
|
||||
# commit 0bd4263326b2d48f782339a9bbe1a069c7de45c7
|
||||
# s390x: Fix/optimize Iop_64HLtoV128
|
||||
# commit cae5062b05b95e0303b1122a0ea9aadc197e4f0a
|
||||
# s390x: Add missing stdout.exp for vector string memcheck test
|
||||
Patch12: valgrind-3.17.0-s390-prep.patch
|
||||
|
||||
# KDE#432387 - s390x: z15 instructions support
|
||||
Patch13: valgrind-3.17.0-s390-z15.patch
|
||||
|
||||
# commit 124ae6cfa303f0cc71ffd685620cb57c4f8f02bb
|
||||
# s390x: Don't emit "vector or with complement" on z13
|
||||
Patch14: valgrind-3.17.0-s390-z13-vec-fix.patch
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: glibc-devel
|
||||
|
||||
@ -268,6 +301,11 @@ Valgrind User Manual for details.
|
||||
%patch9 -p1
|
||||
%patch11 -p1
|
||||
|
||||
%patch12 -p1
|
||||
touch memcheck/tests/s390x/vistr.stdout.exp
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
|
||||
%build
|
||||
# LTO triggers undefined symbols in valgrind. Valgrind has a --enable-lto
|
||||
# configure time option, but that doesn't seem to help.
|
||||
@ -492,6 +530,11 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Jun 24 2021 Mark Wielaard <mjw@redhat.com> - 3.17.0-6
|
||||
- Add valgrind-3.17.0-s390-prep.patch
|
||||
- Add valgrind-3.17.0-s390-z15.patch
|
||||
- Add valgrind-3.17.0-s390-z13-vec-fix.patch
|
||||
|
||||
* Mon Jun 7 2021 Mark Wielaard <mjw@redhat.com> - 3.17.0-5
|
||||
- Disable run_full_regtest.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user