Merged update from upstream sources

This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/valgrind.git#de7a086ef34c1316e53d4565406be8a818b47751
This commit is contained in:
DistroBaker 2020-12-13 23:58:26 +00:00
parent 7535eca5ce
commit 7e3e7c8253
2 changed files with 71 additions and 1 deletions

View File

@ -0,0 +1,63 @@
diff --git a/VEX/priv/guest_ppc_toIR.c b/VEX/priv/guest_ppc_toIR.c
index c9c058a7a..d726d63de 100644
--- a/VEX/priv/guest_ppc_toIR.c
+++ b/VEX/priv/guest_ppc_toIR.c
@@ -25671,49 +25671,29 @@ dis_vx_store ( UInt prefix, UInt theInstr )
case 0x38D: // stxsibx
{
- IRExpr *stored_word;
- IRTemp byte_to_store = newTemp( Ity_I64 );
+ IRTemp byte_to_store = newTemp( Ity_I8 );
DIP("stxsibx %u,r%u,r%u\n", (UInt)XS, rA_addr, rB_addr);
- /* Can't store just a byte, need to fetch the word at EA merge data
- * and store.
- */
- stored_word = load( Ity_I64, mkexpr( EA ) );
- assign( byte_to_store, binop( Iop_And64,
+ assign( byte_to_store, unop( Iop_64to8,
unop( Iop_V128HIto64,
- mkexpr( vS ) ),
- mkU64( 0xFF ) ) );
+ mkexpr( vS ) ) ) );
- store( mkexpr( EA ), binop( Iop_Or64,
- binop( Iop_And64,
- stored_word,
- mkU64( 0xFFFFFFFFFFFFFF00 ) ),
- mkexpr( byte_to_store ) ) );
+ store( mkexpr( EA ), mkexpr( byte_to_store ) );
break;
}
case 0x3AD: // stxsihx
{
- IRExpr *stored_word;
- IRTemp byte_to_store = newTemp( Ity_I64 );
+ IRTemp hword_to_store = newTemp( Ity_I16 );
DIP("stxsihx %u,r%u,r%u\n", (UInt)XS, rA_addr, rB_addr);
- /* Can't store just a halfword, need to fetch the word at EA merge data
- * and store.
- */
- stored_word = load( Ity_I64, mkexpr( EA ) );
- assign( byte_to_store, binop( Iop_And64,
- unop( Iop_V128HIto64,
- mkexpr( vS ) ),
- mkU64( 0xFFFF ) ) );
+ assign( hword_to_store, unop( Iop_64to16,
+ unop( Iop_V128HIto64,
+ mkexpr( vS ) ) ) );
- store( mkexpr( EA ), binop( Iop_Or64,
- binop( Iop_And64,
- stored_word,
- mkU64( 0xFFFFFFFFFFFF0000 ) ),
- mkexpr( byte_to_store ) ) );
+ store( mkexpr( EA ), mkexpr( hword_to_store ) );
break;
}

View File

@ -3,7 +3,7 @@
Summary: Tool for finding memory management bugs in programs
Name: %{?scl_prefix}valgrind
Version: 3.16.1
Release: 8%{?dist}
Release: 9%{?dist}
Epoch: 1
License: GPLv2+
URL: http://www.valgrind.org/
@ -123,6 +123,9 @@ Patch15: valgrind-3.16.1-s390_emit_load_mem.patch
# KDE#133812 s390x: z14 vector instructions not implemented
Patch16: valgrind-3.16.1-s390x-z14-vector.patch
# KDE#430354 ppc stxsibx and stxsihx instructions write too much data
Patch17: valgrind-3.16.1-stxsibx-stxsihx.patch
BuildRequires: glibc-devel
%if %{build_openmpi}
@ -267,6 +270,7 @@ Valgrind User Manual for details.
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%build
# LTO triggers undefined symbols in valgrind. Valgrind has a --enable-lto
@ -491,6 +495,9 @@ fi
%endif
%changelog
* Sun Dec 13 2020 Mark Wielaard <mjw@fedoraproject.org> - 3.16.1-9
- Add valgrind-3.16.1-stxsibx-stxsihx.patch
* Thu Dec 3 2020 Mark Wielaard <mjw@fedoraproject.org> - 3.16.1-8
- Update valgrind-3.16.1-s390x-z14-vector.patch