Add valgrind-3.18.1-ppc64-cmov.patch
This commit is contained in:
parent
5fd4dd6339
commit
0378dd3a63
33
valgrind-3.18.1-ppc64-cmov.patch
Normal file
33
valgrind-3.18.1-ppc64-cmov.patch
Normal file
@ -0,0 +1,33 @@
|
||||
commit fb6a77ed78876083e8ba4c2f92384db5c2e41be8
|
||||
Author: Mark Wielaard <mark@klomp.org>
|
||||
Date: Tue Feb 8 16:36:08 2022 +0100
|
||||
|
||||
ppc64 --track-origins=yes failure because of bad cmov addHRegUse
|
||||
|
||||
For Pin_CMov getRegUsage_PPCInstr called addHRegUse for the dst
|
||||
register with HRmWrite, but since this is a conditional move the
|
||||
register could be both read and written (read + write = modify).
|
||||
This matches the dst of Pin_FpCMov and Pin_AvCMov.
|
||||
|
||||
In a very rare case, and only with --track-origins=yes, this
|
||||
could cause bad code generation.
|
||||
|
||||
This is slightly amazing, this code is from 2005 and as far as
|
||||
I know we never seen an issue with --track-origins=yes on power
|
||||
before. And I have been unable to come up simple reproducer.
|
||||
|
||||
https://bugs.kde.org/show_bug.cgi?id=449672
|
||||
|
||||
diff --git a/VEX/priv/host_ppc_defs.c b/VEX/priv/host_ppc_defs.c
|
||||
index 3ae0f6e08..4222b4786 100644
|
||||
--- a/VEX/priv/host_ppc_defs.c
|
||||
+++ b/VEX/priv/host_ppc_defs.c
|
||||
@@ -2590,7 +2590,7 @@ void getRegUsage_PPCInstr ( HRegUsage* u, const PPCInstr* i, Bool mode64 )
|
||||
return;
|
||||
case Pin_CMov:
|
||||
addRegUsage_PPCRI(u, i->Pin.CMov.src);
|
||||
- addHRegUse(u, HRmWrite, i->Pin.CMov.dst);
|
||||
+ addHRegUse(u, HRmModify, i->Pin.CMov.dst);
|
||||
return;
|
||||
case Pin_Load:
|
||||
addRegUsage_PPCAMode(u, i->Pin.Load.src);
|
@ -140,6 +140,9 @@ Patch21: valgrind-3.18.1-ppc-hwcaps.patch
|
||||
# KDE#447991 s390x: Valgrind indicates illegal instruction on wflrx
|
||||
Patch22: valgrind-3.18.1-s390x-wflrx.patch
|
||||
|
||||
# KDE#449672 ppc64 --track-origins=yes failure because of bad cmov addHRegUse
|
||||
Patch23: valgrind-3.18.1-ppc64-cmov.patch
|
||||
|
||||
BuildRequires: make
|
||||
BuildRequires: glibc-devel
|
||||
|
||||
@ -294,6 +297,7 @@ Valgrind User Manual for details.
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
|
||||
%build
|
||||
# LTO triggers undefined symbols in valgrind. Valgrind has a --enable-lto
|
||||
@ -523,6 +527,9 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Feb 8 2022 Mark Wielaard <mjw@fedoraproject.org>
|
||||
- Add valgrind-3.18.1-ppc64-cmov.patch
|
||||
|
||||
* Sat Jan 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1:3.18.1-9
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user