diff --git a/valgrind-3.8.1-movntdqa.patch b/valgrind-3.8.1-movntdqa.patch new file mode 100644 index 0000000..079bbe9 --- /dev/null +++ b/valgrind-3.8.1-movntdqa.patch @@ -0,0 +1,40 @@ +commit 6c07dca0af0527226ec9784fbb703526887f09c0 +Author: sewardj +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 */ diff --git a/valgrind.spec b/valgrind.spec index be44d65..23036b1 100644 --- a/valgrind.spec +++ b/valgrind.spec @@ -3,7 +3,7 @@ Summary: Tool for finding memory management bugs in programs Name: %{?scl_prefix}valgrind Version: 3.8.1 -Release: 27%{?dist} +Release: 28%{?dist} Epoch: 1 License: GPLv2 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) Patch50: valgrind-3.8.1-mmxext.patch +# KDE#316503 Implement SSE4 MOVNTDQA insn. +Patch51: valgrind-3.8.1-movntdqa.patch + %ifarch x86_64 ppc64 # 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 @@ -214,7 +217,7 @@ BuildRequires: %{?scl_prefix}gdb BuildRequires: %{?scl_prefix}binutils # gdbserver_tests/filter_make_empty uses ps in test -BuildRequires: /bin/ps +BuildRequires: procps %{?scl:Requires:%scl_runtime} @@ -341,6 +344,7 @@ chmod 755 tests/check_isa-2_07_cap %patch48 -p1 %patch49 -p1 %patch50 -p1 +%patch51 -p1 # These tests go into an endless loop on ARM # There is a __sync_add_and_fetch in the testcase. @@ -502,6 +506,11 @@ echo ===============END TESTING=============== %endif %changelog +* Mon Sep 23 2013 Mark Wielaard - 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 - 3.8.1-27 - 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)