3.8.1-28 Implement SSE4 MOVNTDQA insn (valgrind-3.8.1-movntdqa.patch)

Don't BuildRequire /bin/ps, just BuildRequire procps.
This commit is contained in:
Mark Wielaard 2013-09-23 15:32:22 +02:00
parent e7fbf7c9c9
commit 59e54b5e3e
2 changed files with 51 additions and 2 deletions

View File

@ -0,0 +1,40 @@
commit 6c07dca0af0527226ec9784fbb703526887f09c0
Author: sewardj <sewardj@8f6e269a-dfd6-0310-a8e1-e2731360e62c>
Date: Tue Mar 26 10:27:39 2013 +0000
Implement SSE4 MOVNTDQA insn. Fixes #316503.
(Patrick J. LoPresti, lopresti@gmail.com)
git-svn-id: svn://svn.valgrind.org/vex/trunk@2700 8f6e269a-dfd6-0310-a8e1-e2731360e62c
diff --git a/VEX/priv/guest_amd64_toIR.c b/VEX/priv/guest_amd64_toIR.c
index 1034971..7e98e76 100644
--- a/VEX/priv/guest_amd64_toIR.c
+++ b/VEX/priv/guest_amd64_toIR.c
@@ -16378,6 +16378,25 @@ Long dis_ESC_0F38__SSE4 ( Bool* decode_OK,
}
break;
+ case 0x2A:
+ /* 66 0F 38 2A = MOVNTDQA
+ "non-temporal" "streaming" load
+ Handle like MOVDQA but only memory operand is allowed */
+ if (have66noF2noF3(pfx) && sz == 2) {
+ modrm = getUChar(delta);
+ if (!epartIsReg(modrm)) {
+ addr = disAMode ( &alen, vbi, pfx, delta, dis_buf, 0 );
+ gen_SEGV_if_not_16_aligned( addr );
+ putXMMReg( gregOfRexRM(pfx,modrm),
+ loadLE(Ity_V128, mkexpr(addr)) );
+ DIP("movntdqa %s,%s\n", dis_buf,
+ nameXMMReg(gregOfRexRM(pfx,modrm)));
+ delta += alen;
+ goto decode_success;
+ }
+ }
+ break;
+
case 0x2B:
/* 66 0f 38 2B /r = PACKUSDW xmm1, xmm2/m128
2x 32x4 S->U saturating narrow from xmm2/m128 to xmm1 */

View File

@ -3,7 +3,7 @@
Summary: Tool for finding memory management bugs in programs Summary: Tool for finding memory management bugs in programs
Name: %{?scl_prefix}valgrind Name: %{?scl_prefix}valgrind
Version: 3.8.1 Version: 3.8.1
Release: 27%{?dist} Release: 28%{?dist}
Epoch: 1 Epoch: 1
License: GPLv2 License: GPLv2
URL: http://www.valgrind.org/ URL: http://www.valgrind.org/
@ -191,6 +191,9 @@ Patch49: valgrind-3.8.1-s390-STFLE.patch
# KDE#323713 Support mmxext (integer sse) subset on i386 (athlon) # KDE#323713 Support mmxext (integer sse) subset on i386 (athlon)
Patch50: valgrind-3.8.1-mmxext.patch Patch50: valgrind-3.8.1-mmxext.patch
# KDE#316503 Implement SSE4 MOVNTDQA insn.
Patch51: valgrind-3.8.1-movntdqa.patch
%ifarch x86_64 ppc64 %ifarch x86_64 ppc64
# Ensure glibc{,-devel} is installed for both multilib arches # Ensure glibc{,-devel} is installed for both multilib arches
BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so BuildRequires: /lib/libc.so.6 /usr/lib/libc.so /lib64/libc.so.6 /usr/lib64/libc.so
@ -214,7 +217,7 @@ BuildRequires: %{?scl_prefix}gdb
BuildRequires: %{?scl_prefix}binutils BuildRequires: %{?scl_prefix}binutils
# gdbserver_tests/filter_make_empty uses ps in test # gdbserver_tests/filter_make_empty uses ps in test
BuildRequires: /bin/ps BuildRequires: procps
%{?scl:Requires:%scl_runtime} %{?scl:Requires:%scl_runtime}
@ -341,6 +344,7 @@ chmod 755 tests/check_isa-2_07_cap
%patch48 -p1 %patch48 -p1
%patch49 -p1 %patch49 -p1
%patch50 -p1 %patch50 -p1
%patch51 -p1
# These tests go into an endless loop on ARM # These tests go into an endless loop on ARM
# There is a __sync_add_and_fetch in the testcase. # There is a __sync_add_and_fetch in the testcase.
@ -502,6 +506,11 @@ echo ===============END TESTING===============
%endif %endif
%changelog %changelog
* Mon Sep 23 2013 Mark Wielaard <mjw@redhat.com> - 3.8.1-28
- Implement SSE4 MOVNTDQA insn (valgrind-3.8.1-movntdqa.patch)
- Don't BuildRequire /bin/ps, just BuildRequire procps
(procps-ng provides procps).
* Thu Sep 05 2013 Mark Wielaard <mjw@redhat.com> - 3.8.1-27 * Thu Sep 05 2013 Mark Wielaard <mjw@redhat.com> - 3.8.1-27
- Fix power_ISA2_05 testcase (valgrind-3.8.1-power-isa-205-deprecation.patch) - Fix power_ISA2_05 testcase (valgrind-3.8.1-power-isa-205-deprecation.patch)
- Fix ppc32 make check build (valgrind-3.8.1-initial-power-isa-207.patch) - Fix ppc32 make check build (valgrind-3.8.1-initial-power-isa-207.patch)